

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# GitHub グローバルおよび組織のウェブフック
<a name="github-global-organization-webhook"></a>

CodeBuild GitHub グローバルまたは組織のウェブフックを使用して、GitHub 組織またはエンタープライズ内の任意のリポジトリからのウェブフックイベントでビルドを開始できます。グローバルおよび組織のウェブフックは、既存の GitHub ウェブフックイベントタイプのいずれでも動作し、CodeBuild ウェブフックの作成時にスコープ設定を追加することで設定できます。グローバルおよび組織のウェブフックを使用して [CodeBuild 内でセルフホスト型 GitHub Action Runner を設定](action-runner.md)し、単一のプロジェクト内の複数のリポジトリから `WORKFLOW_JOB_QUEUED` イベントを受信することもできます。

**Topics**
+ [グローバルまたは組織の GitHub ウェブフックを設定](github-global-organization-webhook-setup.md)
+ [GitHub グローバルまたは組織のウェブフックイベントをフィルタリング (コンソール)](github-global-organization-webhook-events-console.md)
+ [GitHub 組織のウェブフックイベントをフィルタリング (CloudFormation)](github-organization-webhook-events-cfn.md)

# グローバルまたは組織の GitHub ウェブフックを設定
<a name="github-global-organization-webhook-setup"></a>

グローバルまたは組織の GitHub ウェブフックを設定するための大まかなステップは次のとおりです。グローバルおよび組織の GitHub ウェブフックの詳細については、「[GitHub グローバルおよび組織のウェブフック](github-global-organization-webhook.md)」を参照してください。

1. プロジェクトのソースの場所を `CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION` に設定します。

1. ウェブフックのスコープ設定で、組織か[グローバルウェブフック](https://docs.github.com/en/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/exploring-user-activity-in-your-enterprise/managing-global-webhooks)かに応じて、スコープを `GITHUB_ORGANIZATION` または `GITHUB_GLOBAL` に設定します。詳細については、「[Types of webhooks](https://docs.github.com/en/webhooks/types-of-webhooks)」を参照してください。

1. ウェブフックのスコープ設定の一部として名前を指定します。組織ウェブフックの場合、これは組織名であり、グローバルウェブフックの場合、これはエンタープライズ名です。
**注記**  
プロジェクトのソースタイプが `GITHUB_ENTERPRISE` の場合、ウェブフックスコープ設定の一部としてドメインも指定する必要があります。

1. (オプション) 組織またはエンタープライズ内の特定のリポジトリのウェブフックイベントのみを受信する場合は、ウェブフックの作成時に `REPOSITORY_NAME` をフィルタとして指定できます。

1. 組織ウェブフックを作成する場合は、CodeBuild に GitHub 内で組織レベルのウェブフックを作成するアクセス許可があることを確認してください。組織のウェブフックアクセス許可を持つ GitHub 個人用アクセストークンを作成するか、CodeBuild OAuth を使用できます。詳細については、「[GitHub および GitHub Enterprise Server アクセストークン](access-tokens-github.md)」を参照してください。

   組織のウェブフックは、既存の GitHub ウェブフックイベントタイプのいずれでも動作することに注意してください。

1. グローバルウェブフックを作成する場合は、ウェブフックを手動で作成する必要があります。GitHub 内でウェブフックを手動で作成する方法の詳細については、「[GitHub 手動ウェブフック](github-manual-webhook.md)」を参照してください。

   グローバルウェブフックは `WORKFLOW_JOB_QUEUED` イベントタイプのみをサポートすることに注意してください。詳細については、「[チュートリアル: CodeBuild がホストする GitHub Actions ランナーを設定](action-runner.md)」を参照してください。

# GitHub グローバルまたは組織のウェブフックイベントをフィルタリング (コンソール)
<a name="github-global-organization-webhook-events-console"></a>

コンソールから GitHub プロジェクトを作成するときは、次のオプションを選択して、プロジェクト内に GitHub グローバルまたは組織のウェブフックを作成します。グローバルおよび組織の GitHub ウェブフックの詳細については、「[GitHub グローバルおよび組織のウェブフック](github-global-organization-webhook.md)」を参照してください。

1. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) で AWS CodeBuild コンソールを開きます。

1. ビルドプロジェクトを作成します。詳細については、「[ビルドプロジェクトの作成 (コンソール)](create-project.md#create-project-console)」および「[ビルドの実行 (コンソール)](run-build-console.md)」を参照してください。
   +  [**Source (ソース)**] で、次のようにします。
     +  **[ソースプロバイダ]** には、**[GitHub]**、または **[GitHub Enterprise]** を選択します。
     +  **[リポジトリ]** で、**[GitHub スコープ付きウェブフック]** を選択します。

        GitHub リポジトリは自動的に `CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION` に設定されます。これは、グローバルおよび組織のウェブフックに必要なソースの場所です。
**注記**  
組織ウェブフックを使用している場合は、CodeBuild に GitHub 内で組織レベルのウェブフックを作成するアクセス許可があることを確認してください。[既存の OAuth 接続](oauth-app-github.md)を使用している場合は、CodeBuild にこのアクセス許可を付与するために、接続を再生成する必要がある場合があります。または、[CodeBuild の手動ウェブフック機能](github-manual-webhook.md)を使用して、ウェブフックを手動で作成することもできます。既存の GitHub OAuth トークンがあり、追加の組織アクセス許可を追加する場合は、[OAuth トークンのアクセス許可を取り消し](https://docs.github.com/en/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps)、CodeBuild コンソールからトークンを再接続できます。  
![\[GitHub スコープ付きウェブフックの設定。\]](http://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/images/github-organization-webhook-source.png)
   +  **[プライマリソースのウェブフックイベント]** の場合: 
     +  **[スコープタイプ]** では、組織ウェブフックを作成する場合は **[組織レベル]**、グローバルウェブフックを作成する場合は **[エンタープライズレベル]** を選択します。
     +  **[名前]** には、ウェブフックがグローバルウェブフックか組織ウェブフックかに応じて、エンタープライズまたは組織名を入力します。

       プロジェクトのソースタイプが `GITHUB_ENTERPRISE` の場合、ウェブフック組織設定の一部としてドメインも指定する必要があります。例えば、組織の URL が **https://domain.com/orgs/org-name** の場合、ドメインは **https://domain.com** です。
**注記**  
 この名前をウェブフックの作成後に変更することはできません。名前を変更するには、ウェブフックを削除して再作成します。ウェブフックを完全に削除する場合は、プロジェクトソースの場所を GitHub リポジトリに更新することもできます。  
![\[グローバルまたは組織のウェブフックの設定。\]](http://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/images/github-organization-webhook-primary-events.png)
     +  (オプション) **[ウェブフックイベントフィルタグループ]** では、[新しいビルドをトリガーするイベント](github-webhook.md)を指定できます。また、`REPOSITORY_NAME` をフィルタとして指定して、特定のリポジトリからのウェブフックイベントでのみ、ビルドをトリガーすることもできます。  
![\[特定のリポジトリからのウェブフックイベントでのみビルドをトリガーするフィルタです。\]](http://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/images/github-organization-webhook-filter-groups.png)

       イベントタイプを `WORKFLOW_JOB_QUEUED` に設定して、セルフホスト型 GitHub Actions ランナーを設定することもできます。詳細については、「[チュートリアル: CodeBuild がホストする GitHub Actions ランナーを設定](action-runner.md)」を参照してください。

1. デフォルト値のまま続行し、**[ビルドプロジェクトを作成する]** を選択します。

# GitHub 組織のウェブフックイベントをフィルタリング (CloudFormation)
<a name="github-organization-webhook-events-cfn"></a>

 CloudFormation テンプレートを使用して組織のウェブフックイベントを AWS CodeBuild フィルタリングするには、プロジェクトの `ScopeConfiguration`プロパティを使用します。グローバルおよび組織の GitHub ウェブフックの詳細については、「[GitHub グローバルおよび組織のウェブフック](github-global-organization-webhook.md)」を参照してください。

**注記**  
グローバルウェブフックと GitHub Enterprise ウェブフックは ではサポートされていません CloudFormation。

 CloudFormation テンプレートの次の YAML 形式の部分は、4 つのフィルターグループを作成します。1 つまたはすべてが true と評価されると、これらが一緒になってビルドをトリガーします。
+  最初のフィルタグループでは、アカウント ID `^refs/heads/main$` を持たない GitHub ユーザーが、正規表現 `12345` と一致する Git 参照名を持つブランチに対してプルリクエストを作成または更新することを指定します。
+  2 番目のフィルターグループでは、正規表現 `READ_ME` に一致する Git 参照名を持つブランチで正規表現 `^refs/heads/.*` に一致する名前のファイルに対してプッシュリクエストが作成されることを指定します。
+ 3 番目のフィルタグループでは、正規表現 `\[CodeBuild\]` に一致する HEAD コミットメッセージを使用してプッシュリクエストを指定します。
+ 4 番目のフィルタグループは、正規表現 `\[CI-CodeBuild\]` に一致するワークフロー名を持つ GitHub Actions ワークフロージョブリクエストを指定します。

```
CodeBuildProject:
  Type: AWS::CodeBuild::Project
  Properties:
    Name: MyProject
    ServiceRole: service-role
    Artifacts:
      Type: NO_ARTIFACTS
    Environment:
      Type: LINUX_CONTAINER
      ComputeType: BUILD_GENERAL1_SMALL
      Image: aws/codebuild/standard:5.0
    Source:
      Type: GITHUB
      Location: source-location
    Triggers:
      Webhook: true
      ScopeConfiguration:
        Name: organization-name
        Scope: GITHUB_ORGANIZATION
      FilterGroups:
        - - Type: EVENT
            Pattern: PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED
          - Type: BASE_REF
            Pattern: ^refs/heads/main$
            ExcludeMatchedPattern: false
          - Type: ACTOR_ACCOUNT_ID
            Pattern: 12345
            ExcludeMatchedPattern: true
        - - Type: EVENT
            Pattern: PUSH
          - Type: HEAD_REF
            Pattern: ^refs/heads/.*
          - Type: FILE_PATH
            Pattern: READ_ME
            ExcludeMatchedPattern: true
        - - Type: EVENT
            Pattern: PUSH
          - Type: COMMIT_MESSAGE
            Pattern: \[CodeBuild\]
          - Type: FILE_PATH
            Pattern: ^src/.+|^test/.+
        - - Type: EVENT
            Pattern: WORKFLOW_JOB_QUEUED
          - Type: WORKFLOW_NAME
            Pattern: \[CI-CodeBuild\]
```