Skip to main content

Enterprise Server 3.15 は、現在リリース候補として使用できます。

webhookの作成

Webhook を作成して、GitHub で発生する特定のイベントをサブスクライブできます。

webhookの作成について

Webhook を作成してリポジトリ、組織、GitHub Enterprise、、GitHub Appで発生するGitHubの特定イベントにサブスクライブできます。

さまざまな種類の Webhookについて詳しくは、「Webhook の種類」をご覧ください。

Webhook イベントの詳細な一覧については、「Webhook のイベントとペイロード」をご覧ください。

リポジトリの Webhook の作成

特定のリポジトリで発生したイベントをサブスクライブするWebhook を作成できます。 そのリポジトリに Webhook を作成するには、リポジトリのオーナーであるか、リポジトリの管理者アクセス権が必要です。

GitHub Web インターフェイスまたは REST API を使用して、リポジトリの最近の Webhook 配信を表示できます。 REST API を使用してリポジトリ Webhook を作成する方法の詳細については、「リポジトリ ウェブフック の REST API エンドポイント」を参照してください。

  1. GitHub で、リポジトリのメイン ページに移動します。1. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。
    1. 左側のサイドバーで、 [ Webhooks] をクリックします。1. [Webhook の追加] を選択します。

  2. [ペイロード URL] の下に、ペイロードを受信する URL を入力します。

  3. 必要に応じて、 [コンテンツ タイプ] ドロップダウン メニューを選び、Webhook ペイロードを受信するデータ形式をクリックします。

    • application/jsonは、JSONペイロードをPOSTリクエストのボディとして直接配信します。
    • application/x-www-form-urlencoded は、JSON ペイロードを payload というフォーム パラメーターとして送信します。payload
  4. 必要に応じて、 [シークレット] フィールドの下に、 secretキーとして使用する文字列を入力します。 エントロピーの高いランダムな文字列を選択してください。 Webhook シークレットを使用して、GitHub から発信されたリクエストのみに受信を制限することができます。 詳しくは、「Webhook 配信を検証する」を参照してください。

  5. [この webhook をトリガーするイベントを指定してください]で、受信する Webhook イベントを選択します。 必要な Webhook イベントのみをサブスクライブしてください。

  6. 個別のイベントを選択する場合は、Webhook をトリガーするイベントを選択します。

  7. 構成を追加した直後に Webhook をアクティブにするには、 [アクティブ] を選びます。

  8. [Webhook の追加] を選択します。

新しい webhook を作成すると、GitHub から単純な ping イベントが送信され、Webhook が正しく設定されたことを通知します。 詳しくは、「Webhook のイベントとペイロード」を参照してください。

組織の Webhook の作成

特定の組織で発生するイベントをサブスクライブする Webhook を作成できます。 その組織で Webhook を作成するには、組織のオーナーである必要があります。

GitHub Web インターフェイスまたは REST API を使用して、組織の最近の Webhook 配信を表示できます。 REST API を使用して組織の Webhook を作成する方法の詳細については、「組織の Webhook の REST API エンドポイント」を参照してください。

  1. GitHub にある任意のページの右上隅で、プロフィール写真をクリックします。
  2. [自分の組織] をクリックします。
  3. 組織の右側にある [設定] をクリックします。
  4. 左側のサイドバーで、 [ Webhooks] をクリックします。1. [Webhook の追加] を選択します。
  5. [ペイロード URL] の下に、ペイロードを受信する URL を入力します。
  6. 必要に応じて、 [コンテンツ タイプ] ドロップダウン メニューを選び、Webhook ペイロードを受信するデータ形式をクリックします。
    • application/jsonは、JSONペイロードをPOSTリクエストのボディとして直接配信します。
    • application/x-www-form-urlencoded は、JSON ペイロードを payload というフォーム パラメーターとして送信します。payload
  7. 必要に応じて、 [シークレット] フィールドの下に、 secretキーとして使用する文字列を入力します。 エントロピーの高いランダムな文字列を選択してください。 Webhook シークレットを使用して、GitHub から発信されたリクエストのみに受信を制限することができます。 詳しくは、「Webhook 配信を検証する」を参照してください。
  8. [この webhook をトリガーするイベントを指定してください]で、受信する Webhook の種類を選択します。 必要な Webhook イベントのみをサブスクライブしてください。
  9. 個別のイベントを選択する場合は、Webhook をトリガーするイベントを選択します。
  10. 構成を追加した直後に Webhook をアクティブにするには、 [アクティブ] を選びます。
  11. [Webhook の追加] を選択します。

新しい webhook を作成すると、GitHub から単純な ping イベントが送信され、Webhook が正しく設定されたことを通知します。 詳しくは、「Webhook のイベントとペイロード」を参照してください。

GitHub Enterprise

のグローバル Webhook の作成

エンタープライズオーナーは、グローバル Webhook を作成して、企業内で発生するイベントをサブスクライブできます。

GitHub Web インターフェイスまたは REST API を使用して、グローバル Webhook を作成できます。 REST API を使用してグローバル Webhook を作成する方法の詳細については、「グローバル Webhook の REST API エンドポイント」を参照してください。

  1. GitHub Enterprise Server の右上で、ご自分のプロフィール フォトをクリックしてから、 [Enterprise 設定] をクリックします。

    GitHub Enterprise Server のプロファイル写真をクリックしたときに表示されるドロップダウン メニューのスクリーンショット。 [エンタープライズ設定] オプションが濃いオレンジ色の枠線で強調表示されています。

  2. ページの左側にある Enterprise アカウントのサイドバーで、 [設定] をクリックします。

  3. [ 設定] で、 [フック] をクリックします。

  4. [Webhook の追加] を選択します。

  5. [ペイロード URL] フィールドに、ペイロードを受信する URL を入力します。

  6. 必要に応じて、 [コンテンツ タイプ] ドロップダウン メニューを選び、Webhook ペイロードを受信するデータ形式をクリックします。

    • application/jsonは、JSONペイロードをPOSTリクエストのボディとして直接配信します。
    • application/x-www-form-urlencoded は、JSON ペイロードを payload というフォーム パラメーターとして送信します。payload
  7. 必要に応じて、 [シークレット] フィールドの下に、 secretキーとして使用する文字列を入力します。 エントロピーの高いランダムな文字列を選択してください。 Webhook シークレットを使用して、GitHub から発信されたリクエストのみに受信を制限することができます。 詳しくは、「Webhook 配信を検証する」を参照してください。

  8. オプションとして、ペイロードの URL が HTTPS で、ペイロードを配信するときに GitHub Enterprise Server で SSL 証明書が検証されないようにしたい場合は、[SSL の検証] で [無効にする] を選びます。 SSL の検証に関する情報を読んでから、 [無効にします。Webhook が安全ではないかもしれないことを理解しました] をクリックします。

    警告: SSL の検証は、フックのペイロードが安全に配信されることを保証するのに役立ちます。 SSL 検証を無効化することはおすすめしません。

  9. [この webhook をトリガーするイベントを指定してください]で、受信する Webhook の種類を選択します。 必要な Webhook イベントのみをサブスクライブしてください。

  10. 個別のイベントを選択する場合は、Webhook をトリガーするイベントを選択します。

  11. 構成を追加した直後に Webhook をアクティブにするには、 [アクティブ] を選びます。

  12. [Webhook の追加] を選択します。

Webhook のGitHub App の作成

GitHub App のオーナーは、アプリを Webhook イベントにサブスクライブして、特定のイベントが発生したときに通知を受け取ることができます。 組織が、その組織が所有する GitHub App のアプリマネージャーを指定している場合、アプリ マネージャーもアプリを Webhook イベントにサブスクライブすることができます。 詳しくは、「GitHub Apps での Webhook の使用」を参照してください。

それぞれの GitHub App には、一つの Webhook があります。 GitHub App を登録するときに webhook を構成することも、既存の GitHub App 登録の Webhook 構成を編集することもできます。

GitHub App を登録する際の Webhook 設定に関する詳細は、「GitHub App の登録」を参照してください。

既存の GitHub App 登録の Webhook を構成するには:

  1. GitHub の任意のページの右上隅にある、自分のプロファイル写真をクリックします。

  2. アカウント設定にアクセスしてください。

    • 個人用アカウントが所有するアプリの場合は、[設定] をクリックします。
    • 組織が所有するアプリの場合:
      1. [自分の組織] をクリックします。
      2. 組織の右側にある [設定] をクリックします。
  3. 左側のサイドバーで [ 開発者設定] をクリックします。

  4. 左側のサイドバーで、 [GitHub Apps] をクリックします。

  5. Webhook を設定する GitHub App の横にある [編集] をクリックします。

  6. [Webhook] で [アクティブ] を選択します。

  7. [Webhook URL] にペイロードを受信する URL を入力します。

  8. 必要に応じて、 [Webhook シークレット] フィールドに secret キーとして使用する文字列を入力します。 エントロピーの高いランダムな文字列を選択してください。 Webhook シークレットを使用して、GitHub から発信されたリクエストのみに受信を制限することができます。 詳しくは、「Webhook 配信を検証する」を参照してください。

  9. [変更を保存] をクリックします。

  10. サイドバーで、[アクセス許可とイベント] をクリックします。

  11. GitHub App の登録で選択できる具体的な Webhook イベントは、アプリに対して選択したアクセス許可の種類によって決まります。 まず、アプリに付与するアクセス許可を選択する必要があります。これで、そのアクセス許可のセットに関連する Webhook イベントにアプリをサブスクライブできます。

    セクション [リポジトリのアクセス許可]、[組織のアクセス許可]、[アカウントのアクセス許可] で、アプリがサブスクライブするイベントに必要なアクセス許可を選びます。 詳しくは、「GitHub アプリのアクセス許可を選択する」を参照してください。 アクセス許可を変更する際に考慮すべき事項の詳細については、「GitHub App 登録の変更」を参照してください。

  12. [イベントにサブスクライブする] で、GitHub App で受け取りたい Webhook イベントを選びます。

  13. [変更を保存] をクリックします。

REST API を使用して、GitHub App の Webhook を作成することもできます。 詳しくは、「GitHub AppWebhook 用 REST API エンドポイント」を参照してください。

参考資料