GitHub リポジトリの Webhook を設定する
GitHub で、組織または特定のリポジトリに対して Webhook を設定できます。 Webhook は、1 つ以上のサブスクライブされたイベントが発生するたびにトリガーされます。 たとえば、Gollum イベントを使用して、Wiki の更新 (特に Wiki ページの作成と更新) をリッスンできます。
このユニットでは、会社の GitHub Wiki からの変更イベントをリッスンする Webhook を設定する方法について学習します。
Webhook を設定する
Webhook の設定は 2 ステップのプロセスです。 最初に、Webhook の動作方法とそれがリッスンするイベントを GitHub で指定します。 次に、Webhook からペイロードを受け取り、受け取ったペイロードを管理するように、Azure Functions で関数を設定します。 このシナリオ例では、特定のリポジトリに対して Webhook を設定します。
Webhook を設定するには、GitHub ポータルで、上部のメニュー バーから [Settings](設定) を選択します。 [Settings](設定) ページに、リポジトリの名前が表示されます。 左側のメニューで [Webhook] を選択し、[Add webhook](Webhook の追加) を選択します。 Webhook は、Webhook API (このモジュールでは説明しません) を使用して構築および管理することもできます。
Webhook を使用するには、いくつかの構成オプションが必要です。 次に、これらの各設定について説明します。
ペイロード URL
ペイロード URL は、Webhook の POST 要求を受け取るサーバーの URL です。
イベントの種類ごとに特定のペイロード形式があります。 そのペイロードには、Webhook をトリガーしたイベントに関する情報が含まれています。
Content type
Webhook は、2 つの異なるコンテンツ タイプを使用して配信できます。
- application/json コンテンツ タイプを使用して、JSON ペイロードを POST 要求の本文として直接配信します。
- application/x-www-form-urlencoded コンテンツ タイプは、JSON ペイロードを payload というフォーム パラメーターとして送信します。
Note
[Webhook の追加] ページでは、[シークレット] を使用して Webhook によって送信された情報を保護する方法を指定することもできます。 このトピックについては、このモジュールの後半で説明します。
イベント
イベントは Webhook の中心にあります。 イベントは、リポジトリでアクションが行われるたびに発生します。 イベントが発生すると Webhook が起動し、指定した URL が Webhook によって呼び出され、ペイロードとイベント情報が URL に送信されます。 たとえば、リポジトリで問題が発生するたびに応答するには、[Let me select individual events](個々のイベントを選択する) を選択し、[Issue] チェックボックスを選択します。 トリガーされた Webhook に対して issue イベントを受け取るには、[アクティブ] を選択します。 [Add webhook](Webhook の追加) を選択して、トリガーをアクティブにします。
リポジトリの Wiki の更新を監視するには、[Wiki] チェック ボックスをオンにします。このイベントは前述の Gollum イベントです。 [Add webhook](Webhook の追加) を選択して、選択した個々のイベントをすべて保存します。
Webhook イベントの全一覧と実行可能なタイミングについては、GitHub Webhook イベントを参照してください。
次の演習では、GitHub リポジトリ用の Webhook を設定するプロセスを示します。