Git-WebHook自動化導入ツール-Github/GitLab/Gogs/GitOscをサポート


一、背景
まず住所を貼り、オープンソース項目:https://github.com/NetEaseGame/git-webhook、DEMOアドレス:http://webhook.hust.cc/
私個人はオンラインのこちらのテスト開発で、主な仕事はいくつかのツールを開発することで、補助テストと開発、規範の流れなど、これらのイントラネットのツールは、一般的に何の同時性も存在しないで、性能のボトルネック、オンラインの配置は実はとても簡単で、オンラインを更新する必要がある時、最新のコードをrelease分岐に提出して、それからsshはサーバーに上陸して、shellスクリプトを実行し、最新のコードを引いてrestartを引くといいですが、複雑ではありません.その後、いくつかの問題があります.
  • ssh権限のない学生がコードを更新したら、再起動を手伝ってくれる.
  • 土日祝日、残業している人から電話がありました.サービスが切れたら再起動しなければなりません.どうすればいいですか.
  • pushのたびにrestartに行くのですが、実はイライラしています.
  • git pushのコードを一度に多くのサーバに更新する必要があると、さらにイライラします.

  • gitのwebhookを利用して導入を簡素化する小さなツールを作りました
    二、git-webhook
    Git WebHookは、Python Flask+SQLAchemy+Celery+Redis+Reactを使用して開発されたWebHookを迅速に構築し、使用して自動化された導入とメンテナンスシステムであり、Github/GitLab/Gogs/GitOscをサポートしています.
  • 技術スタックが簡単で、配置が簡単である;
  • コードが簡潔で分かりやすく、二次開発にストレスがない.
  • Github/GitLab/Gogs/GitOscをサポートする;
  • SSH方式を使用し、マルチサービス構成をサポートする;

  • 三、どのようにインストールしますか?
    1.アプリケーションのインストール
    pip install git-webhook

    メモ:プロジェクト内の依存ライブラリにpython-devをインストールする必要があります.
    2.構成の作成
    gitwebhook config

    コマンドが実行されると、対応するユーザディレクトリ(~)に新しいプロファイルが生成され、プロファイルの内容が変更されます.主に3点を設定する必要があります.
  • DATABASE_URI:データベースアドレスは、理論的には任意の関係データベースを使用することができる.sqliteとmysql(テスト済み)の使用を推奨します.
  • CELERY REDIS:Redis URI配置、主にCeleryバックグラウンドタスクに使用する;
  • GITHUB:GitHub登録構成、OAuthアプリケーションへ自己申請可能、登録Callbackアドレス:your_domain/github/callback
  • 3.データベース構造の初期化
    gitwebhook createdb

    4.アプリケーションの実行
    # 1. run python webserver
    gitwebhook runserver
    # 2. run celery async task
    gitwebhook celery

    実行後、開くhttp://127.0.0.1:18340 (扇動して死ぬ)すぐ訪問できます.GitHubアカウントでログインします.
    ツールにWebHookアイテムを追加し、WebHookのURLを取得し、Github/GitLab/OscGitのWebHook構成に記入します.
    四、スクリーンショット
    MIT @hustcc