リポジトリ Webhook について
リポジトリ Webhook を使用すると、リポジトリで特定のイベントが発生した� �合に必ず HTTP POST
ペイロードを受け取ることができます。 REST API を利用し、リポジトリ、組織、アプリ Webhook を管理できます。 Webhook の Webhook 配信を一覧表示したり、Webhook の個別の配信を取得して再配信したりできます。Webhook は、外部のアプリまたはサービスに統合できます。 REST API を使用して、Webhook の構成を変更することもできます。 たとえば、ペイロードURL、コンテントタイプ、SSLの検証、シークレットを変更できます。 詳細については、次を参照してく� さい。
Organization のすべてのリポジトリからイベントを受信する Webhook を 1 つ設定する� �合は、「Organization Webhook」での Rest API のドキュメントをご覧く� さい。
REST API に� えて、GitHub もリポジトリの PubSubHubbub ハブとして機能できます。
webhook の受信
GitHub Enterprise Server で webhook ペイロードを送信するには、インターネットからサーバーにアクセスできる必要があります。 暗号化されたペイロードを HTTPS 経由で送信できるように、SSL の使用も強く推奨します。
webhook ヘッダー
GitHub Enterprise Server は、イベントタイプとペイロード識別子を区別するために、複数の HTTP ヘッダーも送信します。 詳細については、Webhook のヘッダーに関する記事を参照してく� さい。
PubSubHubbub
GitHub は、すべてのリポジトリの PubSubHubbub ハブとしても機能できます。 PSHB はシンプルな公開/サブスクライブプロトコルで、トピックが更新されたときにサーバーが更新を受信できるよう登録できます。 更新は HTTP POST リクエストでコールバック URL に送信されます。 GitHub リポジトリのプッシュに対するトピック URL のフォーマットは以下の通りです。
https://github.com/{owner}/{repo}/events/{event}
イベントには、任意の使用可能な webhook イベントを指定します。 詳細については、「webhook イベントとペイロード」を参照してく� さい。
応答形式
既定の形式は、既存の post-receive フックで想定される形式、つまり POST の payload
パラメーターとして送信される JSON 本文になります。 Accept
ヘッダーまたは .json
拡張子を使用して、Raw 形式の JSON 本文を受信するように指定することもできます。
Accept: application/json
https://github.com/{owner}/{repo}/events/push.json
コールバック URL
コールバック URL では、http://
プロトコルを使用できます。
# Send updates to postbin.org
http://postbin.org/123
サブスクライブ
GitHub PubSubHubbub のエンドポイントは http(s)://HOSTNAME/api/v3/hub
です。 curl でリクエストに成功すると、以下のように表示されます。
curl -u "user" -i \
http(s)://HOSTNAME/api/v3/hub \
-F "hub.mode=subscribe" \
-F "hub.topic=https://github.com/{owner}/{repo}/events/push" \
-F "hub.callback=http://postbin.org/123"
PubSubHubbub リクエストは複数回送信できます。 フックがすでに存在する� �合は、リクエストに従って変更されます。
パラメーター
名前 | 型 | 説明 |
---|---|---|
hub.mode | string | [必� �] 。 subscribe または unsubscribe のいずれかです。 |
hub.topic | string | [必� �] 。 GitHub リポジトリがサブスクライブする URI。 パスは、/{owner}/{repo}/events/{event} の形式にしてく� さい。 |
hub.callback | string | トピックの更新を受信する URI。 |
hub.secret | string | 送信する本文コンテンツの ハッシュ署名を生成する共有秘密鍵。 生の要求本文と X-Hub-Signature または X-Hub-Signature-256 ヘッダーの内容と比較することで、GitHub からのプッシュを検証できます。 詳細については PubSubHubbub のドキュメントを参照してく� さい。 |