GitHub、Gitlab、またはGitea Webhooksを受け取り、それらに作用するためのFlask Blueprintsを提供するPythonライブラリ。ライブラリは、自動展開、テスト、統合を可能にするWebhookを提供します。ただし、青写真のオープンエンドの性質により、非常にオープンエンドのクラス依存性ツリーのおかげで、この動作は簡単にカスタマイズできます。
セットアップ中にGit側にWebhookをセットアップしてください。あらゆる種類の秘密キーを入力する機会に細心の注意を払ってください。 Webhook検証を有効にしたい場合は、後でそのキーが必要になります。 Githubは、作成中に提供する秘密の弦、Gitlabは、秘密のトークンであり、Giteaにとって認証トークンとなるGitlabの場合。
このパッケージをインストールします
PIPを使用します
pip install gitAppWebhookリポジトリをクローニングすることにより
git clone https://github.com/TCA166/gitWebhook.git
pip install -r gitWebhook/requirements.txtこのリポジトリをサブモジュールとして含めることにより
git submodule add https://github.com/example/repo.git gitWebhook
pip install -r gitWebhook/requirements.txt PIPパッケージをインストールしているときに、他のパッケージとして機能している間、このレポフォルダーにあるものは、ローカルパッケージのように機能することです。つまり、このリポジトリをプロジェクトフォルダーにクローニングすると、PIPを介してインストールされているかのようにgitWebhookインポートできます。同じことがサブモジュールを追加して、Gitが何が起こっているのかを理解するという追加の利点を追加することにも当てはまります。
設定でwebhookBlueprint (またはサブクラスのいずれか)のインスタンスを作成します
import gitWebhook
wb = gitWebhook . webhookBlueprint ( token , url_prefix = "/" )選択したフラスコアプリ内にインスタンスを登録してください
from flask import Flask
app = Flask ( __name__ )
app . register_blueprint ( wb )紛失した場合は、いつでも公式のGitHubリソースを見るか、Flask WebAppを構成した例があるWSGI.pyを見ることができます。
このライブラリは、Webhooksを受信するための基本的な青写真派生クラスと、異なるWebhook処理機能を備えたいくつかの派生クラスのみを提供します。
この非常に基本的なクラス自体には、Webhook処理機能はありませんが、青写真を受け取るWebhookが導き出されるベースとして機能します。 GithubとGitlabの青写真に必要なすべての検証を完全に実装しているため、導き出すべきクラスである必要があります。
webhookBlueprintから派生したこのクラスは、サーバーでの展開とテストを自動化する手段として使用することを目的としています。 GitHubアクションを使用したくない場合は、この青写真が登録されているFlaskアプリをいつでも使用できます。
/ endpointへのblueprintへのPOSTリクエストを受け取ったとき:
git pullを実行します webhookBlueprintから派生したこのクラスは、異なるサービスを統合する手段として使用することを目的としています。初期化時に、単一の引数としてWebhookペイロードでのCallable撮影のリストを提供します。これらの関数は、Webhookを受信すると呼び出されます。したがって、このようCallableなもので統合を行うだけで、このクラスとサービスを簡単に統合できます。
/ endpointへのblueprintへのPOSTリクエストを受け取ったとき:
functionsリストに含まれるすべての関数を呼び出しますクラスのいずれかを2つの方法で好みに合わせて簡単に微調整できます。
webhookTokenを提供する(または提供しない)ことにより、Webhook検証を有効または無効にするunittest.testSuiteインスタンス(pullerwebhookblueprint)を提供して実行する単位テストを有効にしますlogging.Loggerインスタンスを提供して、ロギングを有効にしますreceiveWebhookとprocessWebhook 。前者をオーバーライドして、生のリクエストがどのように処理され、検証されているかを変更します。後者をオーバーライドして、Webhookが検証されたら行われたことを変更します。 この作業は、MITライセンスの下でライセンスされています。