Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-03-15. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください

サイト管理者が Enterprise Server インスタンスを Enterprise Server 3.9 以降にアップグレードすると、REST API はバージョン管理されます。 インスタンスのバージョンを検索する方法については、「GitHub Docs のバージョンについて」を参照してください。 詳細については、「API のバージョン管理について」を参照してください。

リポジトリ webhook

REST API を使って、リポジトリ用に Webhook を作成および管理できます。

リポジトリ 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 a PostBin bin
https://www.toptal.com/developers/postbin/123

サブスクライブ

GitHub PubSubHubbub エンドポイントは http(s)://HOSTNAME/api/v3/hub であり、次のパラメーターを受け取ります。

名前種類必須説明
hub.modestringsubscribe または unsubscribe のいずれかです。
hub.topicstringGitHub リポジトリがサブスクライブする URI。 パスは、/{owner}/{repo}/events/{event} の形式にしてください。
hub.callbackstringトピックの更新を受信する URI。
hub.secretstring送信する本文コンテンツの ハッシュ署名を生成する共有秘密鍵。 生の要求本文と X-Hub-Signature または X-Hub-Signature-256 ヘッダーの内容と比較することで、GitHub からのプッシュを検証できます。 詳細については PubSubHubbub のドキュメントを参照してください。

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=https://www.toptal.com/developers/postbin/123"

PubSubHubbub リクエストは複数回送信できます。 フックがすでに存在する場合は、リクエストに従って変更されます。