AWS CloudFormation 템플릿을 사용하여 조직 웹후크 이벤트를 필터링하려면 AWS CodeBuild 프로젝트의 ScopeConfiguration
속성을 사용합니다. 글로벌 및 조직 GitHub 웹후크에 대한 자세한 내용은 GitHub 글로벌 및 조직 웹후크 섹션을 참조하세요.
참고
글로벌 웹후크 및 GitHub Enterprise 웹후크는 AWS CloudFormation에서 지원되지 않습니다.
다음 AWS CloudFormation 템플릿의 YAML 형식 부분은 네 개의 필터 그룹을 생성합니다. 이들은 하나 또는 모두 true로 평가되면 빌드를 트리거합니다.
-
첫 번째 필터 그룹은 계정 ID가
12345
와 일치하지 않는 GitHub 사용자가 정규식^refs/heads/main$
와 일치하는 Git 참조 이름을 갖는 브랜치에서 생성 또는 업데이트한 pull 요청을 지정합니다. -
두 번째 필터 그룹은 정규식
^refs/heads/.*
와 일치하는 Git 참조 이름을 갖는 브랜치에서 정규식READ_ME
와 일치하는 이름을 갖는 파일에 생성되는 push 요청을 지정합니다. -
세 번째 필터 그룹은 정규식
\[CodeBuild\]
와 일치하는 헤드 커밋 메시지에서 push 요청을 지정합니다. -
네 번째 필터 그룹은 정규식
\[CI-CodeBuild\]
와 일치하는 워크플로 이름을 가진 GitHub Action 워크플로 작업 요청을 지정합니다.
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
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\]