# webhookの作成

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

## webhookの作成について

特定のリポジトリ、組織、 GitHub Enterprise アカウント、 GitHub Marketplace アカウント、 または GitHub Sponsors で発生する GitHub App の具体的なイベントに対して購読するための Webhook を作成できます。

さまざまな種類の Webhook の詳細については、「[Webhook の種類](/ja/webhooks/types-of-webhooks)」を参照してください。

Webhook イベントの完全な一覧については、「[Webhook のイベントとペイロード](/ja/webhooks/webhook-events-and-payloads)」を参照してください。

## リポジトリの Webhook の作成

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

GitHub Web インターフェイスまたは REST API を使って、リポジトリの Webhook を作成できます。 REST API を使用してリポジトリ Webhook を作成する方法の詳細については、「[リポジトリ ウェブフック の REST API エンドポイント](/ja/rest/webhooks/repos#create-a-repository-webhook)」を参照してください。

1. GitHub で、リポジトリのメイン ページに移動します。
2. リポジトリ名の下にある **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-gear" aria-label="gear" role="img"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg> \[Settings]** をクリックします。 \[設定] タブが表示されない場合は、 **\[<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="More" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg>]** ドロップダウン メニューを選び、 **\[設定]** をクリックします。

   ![タブを示すリポジトリ ヘッダーのスクリーンショット。 \[設定\] タブが濃いオレンジ色の枠線で強調表示されています。](/assets/images/help/repository/repo-actions-settings.png)
3. 左側のサイドバーで、**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-webhook" aria-label="webhook" role="img"><path d="M5.5 4.25a2.25 2.25 0 0 1 4.5 0 .75.75 0 0 0 1.5 0 3.75 3.75 0 1 0-6.14 2.889l-2.272 4.258a.75.75 0 0 0 1.324.706L7 7.25a.75.75 0 0 0-.309-1.015A2.25 2.25 0 0 1 5.5 4.25Z"></path><path d="M7.364 3.607a.75.75 0 0 1 1.03.257l2.608 4.349a3.75 3.75 0 1 1-.628 6.785.75.75 0 0 1 .752-1.299 2.25 2.25 0 1 0-.033-3.88.75.75 0 0 1-1.03-.256L7.107 4.636a.75.75 0 0 1 .257-1.03Z"></path><path d="M2.9 8.776A.75.75 0 0 1 2.625 9.8 2.25 2.25 0 1 0 6 11.75a.75.75 0 0 1 .75-.751h5.5a.75.75 0 0 1 0 1.5H7.425a3.751 3.751 0 1 1-5.55-3.998.75.75 0 0 1 1.024.274Z"></path></svg> \[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 配信を検証する](/ja/webhooks/using-webhooks/securing-your-webhooks)」をご覧ください。
8. \[この Webhook をトリガーするイベントを指定してください] で、受信する Webhook イベントを選択します。 必要な Webhook イベントのみをサブスクライブしてください。
9. **\[個別のイベントを選択する]** を選択した場合、Webhook をトリガーしたいイベントを選択します。
10. 構成を追加した直後に Webhook をアクティブにするには、 **\[アクティブ]** を選びます。
11. **\[Webhook の追加]** を選択します。

新しい Webhook を作成すると、GitHub から簡単な `ping` イベントが送信されて、Webhook が正しく設定されたことがわかります。 詳しくは、「[Webhook のイベントとペイロード](/ja/webhooks/webhook-events-and-payloads#ping)」をご覧ください。

## 組織のウェブフック作成

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

GitHub Web インターフェイスまたは REST API を使って、organization の Webhook を作成できます。 REST API を使用して organization の Webhook を作成する方法の詳細については、「[組織の Webhook の REST API エンドポイント](/ja/rest/orgs/webhooks#create-an-organization-webhook)」を参照してください。

1. GitHub の任意のページで、右上隅にあるプロフィール画像クリックします。
2. ```
          **[自分の組織]** をクリックします。
   ```
3. 組織の右側にある **\[設定]** をクリックします。
4. 左側のサイドバーで、**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-webhook" aria-label="webhook" role="img"><path d="M5.5 4.25a2.25 2.25 0 0 1 4.5 0 .75.75 0 0 0 1.5 0 3.75 3.75 0 1 0-6.14 2.889l-2.272 4.258a.75.75 0 0 0 1.324.706L7 7.25a.75.75 0 0 0-.309-1.015A2.25 2.25 0 0 1 5.5 4.25Z"></path><path d="M7.364 3.607a.75.75 0 0 1 1.03.257l2.608 4.349a3.75 3.75 0 1 1-.628 6.785.75.75 0 0 1 .752-1.299 2.25 2.25 0 1 0-.033-3.88.75.75 0 0 1-1.03-.256L7.107 4.636a.75.75 0 0 1 .257-1.03Z"></path><path d="M2.9 8.776A.75.75 0 0 1 2.625 9.8 2.25 2.25 0 1 0 6 11.75a.75.75 0 0 1 .75-.751h5.5a.75.75 0 0 1 0 1.5H7.425a3.751 3.751 0 1 1-5.55-3.998.75.75 0 0 1 1.024.274Z"></path></svg> \[Webhooks]** をクリックします。
5. **\[Webhook の追加]** を選択します。
6. \[ペイロード URL] の下に、ペイロードを受信する URL を入力します。
7. 必要に応じて、 **\[コンテンツ タイプ]** ドロップダウン メニューを選び、Webhook ペイロードを受信するデータ形式をクリックします。
   * **application/json**は、JSONペイロードを`POST`リクエストのボディとして直接配信します。
   * **application/x-www-form-urlencoded** は、JSON ペイロードを payload というフォーム パラメーターとして送信します。`payload`
8. 必要に応じて、 \[シークレット] フィールドの下に、 `secret`キーとして使用する文字列を入力します。 エントロピーの高いランダムな文字列を選択してください。 Webhook シークレットを使用して、GitHub から発信されたリクエストのみに受信を制限することができます。 詳しくは、「[Webhook 配信を検証する](/ja/webhooks/using-webhooks/securing-your-webhooks)」をご覧ください。
9. \[この webhook をトリガーするイベントを指定してください]で、受信する Webhook の種類を選択します。 必要な Webhook イベントのみをサブスクライブしてください。
10. ```
           **個別のイベントを選択する**場合は、Webhook をトリガーするイベントを選択します。
    ```
11. 構成を追加した直後に Webhook をアクティブにするには、 **\[アクティブ]** を選びます。
12. ```
           **[Webhook の追加]** を選択します。
    ```

新しい Webhook を作成すると、GitHub から簡単な `ping` イベントが送信されて、Webhook が正しく設定されたことがわかります。 詳しくは、「[Webhook のイベントとペイロード](/ja/webhooks/webhook-events-and-payloads#ping)」をご覧ください。

## GitHub Marketplace Webhookを作成する

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

1. ```
          [GitHub Marketplace 一覧ページ](https://github.com/marketplace/manage) に移動します。
   ```
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 配信を検証する](/ja/webhooks/using-webhooks/securing-your-webhooks)」をご覧ください。
7. 構成を追加した直後に Webhook をアクティブにするには、 **\[アクティブ]** を選びます。
8. ```
          **[Webhook の作成]** をクリックします。
   ```

新しい Webhook を作成すると、GitHub から簡単な `ping` イベントが送信されて、Webhook が正しく設定されたことがわかります。 詳しくは、「[Webhook のイベントとペイロード](/ja/webhooks/webhook-events-and-payloads#ping)」をご覧ください。

## GitHub Sponsors webhook を作成する

スポンサーに関連するイベントに登録するWebhookを作成できます。 スポンサーされたアカウントのオーナーのみが、そのアカウントのスポンサー Webhook を作成できます。 スポンサー Webhook がサブスクライブしているイベントの詳細については、[`sponsorship`「Webhook イベント」](/ja/webhooks-and-events/webhooks/webhook-events-and-payloads#sponsorship)を参照してください。

1. 任意のページで、右上隅にあるプロフィール画像をクリックし、次に **\[Your sponsors]** をクリックします。
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 配信を検証する](/ja/webhooks/using-webhooks/securing-your-webhooks)」をご覧ください。
8. 構成を追加した直後に Webhook をアクティブにするには、 **\[アクティブ]** を選びます。
9. ```
          **[Webhook の作成]** をクリックします。
   ```

## GitHub App 用 Webhook を作成する

GitHub App のオーナーは、アプリを Webhook イベントにサブスクライブして、特定のイベントが発生したときに通知を受け取ることができます。 アプリ所有者が GitHub App のアプリ マネージャーを指定している場合、アプリ マネージャーはアプリを Webhook イベントにサブスクライブさせることもできます。 詳しくは、「[GitHub Apps での Webhook の使用](/ja/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps)」をご覧ください。

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

GitHub App を登録するときに Webhook を構成する方法の詳細については、「[GitHub アプリの登録](/ja/apps/creating-github-apps/registering-a-github-app/registering-a-github-app)」を参照してください。

既存の GitHub App 登録の Webhook を設定するには:

1. GitHub の任意のページの右上隅にある、自分のプロフィール写真をクリックします。
2. アカウント設定にアクセスしてください。
   * 個人用アカウントが所有するアプリの場合は、**\[設定]** をクリックします。
   * 組織が所有するアプリの場合:
     1. **\[自分の組織]** をクリックします。
     2. 組織の右側にある **\[設定]** をクリックします。
3. 左側のサイドバーの **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> \[Developer settings]** をクリックします。
4. 左側のサイドバーで、 **\[GitHub Apps]** をクリックします。
5. Webhook を設定する GitHub App の横にある **\[編集]** をクリックします。
6. \[Webhook] で **\[アクティブ]** を選択します。
7. \[Webhook URL] にペイロードを受信する URL を入力します。
8. 必要に応じて、 \[Webhook シークレット] フィールドに `secret` キーとして使用する文字列を入力します。 エントロピーの高いランダムな文字列を選択してください。 Webhook シークレットを使って、着信する要求を GitHub から発信されたもののみに制限できます。 詳しくは、「[Webhook 配信を検証する](/ja/webhooks/using-webhooks/securing-your-webhooks)」をご覧ください。
9. \[ **変更の保存] をクリックします**。
10. サイドバーで、**\[アクセス許可とイベント]** をクリックします。
11. GitHub App の登録で選択できる具体的な Webhook イベントは、アプリに対して選択したアクセス許可の種類によって決まります。 まず、アプリに付与するアクセス許可を選択する必要があります。これで、そのアクセス許可のセットに関連する Webhook イベントにアプリをサブスクライブできます。

    セクション \[リポジトリのアクセス許可]、\[組織のアクセス許可]、\[アカウントのアクセス許可] で、アプリがサブスクライブするイベントに必要なアクセス許可を選びます。 詳しくは、「[GitHub アプリのアクセス許可の選択](/ja/apps/creating-github-apps/creating-github-apps/choosing-permissions-for-a-github-app)」をご覧ください。 アクセス許可を変更する際に考慮すべき事項の詳細については、「[GitHub App 登録の変更](/ja/apps/maintaining-github-apps/modifying-a-github-app-registration#changing-the-permissions-of-a-github-app)」を参照してください。
12. \[イベントにサブスクライブする] で、GitHub App で受け取りたい Webhook イベントを選びます。
13. \[ **変更の保存] をクリックします**。

REST API を使用して、GitHub App の Webhook を作成することもできます。 詳しくは、「[GitHub App Webhook の REST API エンドポイント](/ja/rest/apps/webhooks)」をご覧ください。

## 参考資料

* [webhook について](/ja/webhooks/about-webhooks)
* [webhookの配信処理](/ja/webhooks/using-webhooks/handling-webhook-deliveries)