GitHub 組織のウェブフックイベントをフィルタリング (CloudFormation)
CloudFormation テンプレートを使用して組織ウェブフックイベントをフィルタリングするには、AWS CodeBuild プロジェクトの ScopeConfiguration プロパティを使用します。グローバルおよび組織の GitHub ウェブフックの詳細については、「GitHub グローバルおよび組織のウェブフック」を参照してください。
注記
グローバルウェブフックと GitHub Enterprise ウェブフックは、CloudFormation ではサポートされていません。
以下の YAML 形式の CloudFormation テンプレート部分によって、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\]