Skip to main content

webhookの作成

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

webhookの作成について

Webhook を作成してリポジトリ、組織、GitHub Marketplaceアカウント、GitHub Sponsorsアカウント、、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 を使用して organization の 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 Marketplace Webhookの作成

GitHub Marketplace で発行したアプリに関連するイベントをサブスクライブする Webhook を作成できます。 GitHub Marketplace Webhook を作成できるのは、アプリのオーナー、またはアプリを所有する組織のアプリ マネージャーだけです。

  1. GitHub Marketplace 一覧ページ に移動します。
  2. Webhook 配信を表示する GitHub Marketplace 一覧の横にある [リストの管理] をクリックします。
  3. サイドバーで、[Webhook] をクリックします。
  4. [ペイロード URL] の下に、ペイロードを受信する URL を入力します。
  5. 必要に応じて、 [コンテンツ タイプ] ドロップダウン メニューを選び、Webhook ペイロードを受信するデータ形式をクリックします。
    • application/jsonは、JSONペイロードをPOSTリクエストのボディとして直接配信します。
    • application/x-www-form-urlencoded は、JSON ペイロードを payload というフォーム パラメーターとして送信します。payload
  6. 必要に応じて、 [シークレット] フィールドの下に、 secretキーとして使用する文字列を入力します。 エントロピーの高いランダムな文字列を選択してください。 Webhook シークレットを使用して、GitHub から発信されたリクエストのみに受信を制限することができます。 詳しくは、「Webhook 配信を検証する」を参照してください。
  7. 構成を追加した直後に Webhook をアクティブにするには、 [アクティブ] を選びます。
  8. [Webhook の作成] をクリックします。

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

GitHub Sponsors Webhookの作成

スポンサーに関連するイベントをサブスクライブする Webhook を作成できます。 スポンサーされたアカウントのオーナーのみが、そのアカウントのスポンサー Webhook を作成できます。 スポンサー Webhook がサブスクライブしているイベントの詳細については、sponsorship Webhook イベントを参照してください。

  1. 任意のページで、右上隅にあるプロファイルの画像をクリックし、次に [スポンサー] をクリックします。
  2. Webhook を作成するアカウントの横にある [ダッシュボード] をクリックします。
  3. 左のサイドバーで、 [Webhooks] をクリックします。
  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. 構成を追加した直後に Webhook をアクティブにするには、 [アクティブ] を選びます。
  9. [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 エンドポイント」をご覧ください。

参考資料