기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
GitHub 웹후크 이벤트
웹후크 필터 그룹을 사용하여 빌드를 트리거하는 GitHub 웹후크 이벤트를 지정할 수 있습니다. 예를 들어 특정 분기가 변경된 경우에만 빌드가 트리거되도록 지정할 수 있습니다.
하나 이상의 Webhook 필터 그룹을 생성하여 어느 Webhook 이벤트가 빌드를 트리거할지 지정할 수 있습니다. 필터 그룹이 true로 평가(그룹 내 모든 필터가 true로 평가)되면 빌드가 트리거됩니다. 필터 그룹을 생성할 때 다음을 지정합니다.
- 이벤트
-
의 경우 GitHub,,,,
PUSH
,PULL_REQUEST_CREATED
PULL_REQUEST_UPDATED
PULL_REQUEST_REOPENED
PULL_REQUEST_MERGED
PULL_REQUEST_CLOSED
RELEASED
, 및 이벤트 중 하나 이상을 선택할 수 있습니다.PRERELEASED
webhook 이벤트 유형은 webhook 페이로드의X-GitHub-Event
헤더에 있습니다.X-GitHub-Event
헤더에서pull_request
또는push
를 볼 수 있습니다. 풀 요청 이벤트의 경우 유형은 webhook 이벤트 페이로드의action
필드에 있습니다. 다음 표에서는X-GitHub-Event
헤더 값과 webhook 풀 요청 페이로드action
필드 값이 사용 가능한 이벤트 유형에 매핑되는 방법을 보여 줍니다.X-GitHub-Event
헤더 값Webhook 이벤트 페이로드 action
값이벤트 유형 pull_request
opened
PULL_REQUEST_CREATED
pull_request
reopened
PULL_REQUEST_REOPENED
pull_request
synchronize
PULL_REQUEST_UPDATED
pull_request
closed
및merged
필드는true
임PULL_REQUEST_MERGED
pull_request
closed
및merged
필드는false
임PULL_REQUEST_CLOSED
push
해당 사항 없음 PUSH
release
공개 RELEASED
release
프리릴리즈 PRERELEASED
참고
PULL_REQUEST_REOPENED
이벤트 유형은 GitHub 엔터프라이즈 서버에서만 사용할 수 있습니다. GitHubRELEASED
및PRERELEASED
이벤트 유형은 GitHub 다음에만 사용할 수 있습니다. - 하나 이상의 선택적 필터
-
정규식을 사용하여 필터를 지정합니다. 이벤트가 빌드를 트리거하려면 연결된 그룹 내의 필터가 모두 true로 평가되어야 합니다.
ACTOR_ACCOUNT_ID
(콘솔의ACTOR_ID
)-
웹후크 이벤트는 GitHub 또는 GitHub Enterprise Server 계정 ID가 정규 표현식 패턴과 일치할 때 빌드를 트리거합니다. webhook 페이로드에 있는
sender
객체의id
속성에서 이 값을 찾을 수 있습니다. HEAD_REF
-
헤드 참조가 정규식 패턴(예:
refs/heads/branch-name
또는refs/tags/tag-name
)과 일치하면 webhook 이벤트가 빌드를 트리거합니다. 푸시 이벤트의 경우 webhook 페이로드의ref
속성에서 참조 이름을 찾을 수 있습니다. 풀 요청 이벤트의 경우 webhook 페이로드에 있는head
객체의ref
속성에서 브랜치 이름을 찾을 수 있습니다. BASE_REF
-
기본 참조가 정규식 패턴(예:
refs/heads/branch-name
)과 일치하면 webhook 이벤트가 빌드를 트리거합니다. 풀 요청 이벤트에서만BASE_REF
필터를 사용할 수 있습니다. webhook 페이로드에 있는base
객체의ref
속성에서 브랜치 이름을 찾을 수 있습니다. FILE_PATH
-
변경된 파일의 경로가 정규식 패턴과 일치하면 webhook이 빌드를 트리거합니다.
FILE_PATH
필터는 GitHub 푸시 및 풀 요청 이벤트 및 GitHub 엔터프라이즈 서버 푸시 이벤트와 함께 사용할 수 있습니다. GitHub엔터프라이즈 서버 풀 리퀘스트 이벤트와 함께 사용할 수 없습니다. COMMIT_MESSAGE
-
헤드 커밋 메시지가 정규식 패턴과 일치하면 webhook가 빌드를 트리거합니다.
COMMIT_MESSAGE
필터는 GitHub 푸시 및 풀 요청 이벤트 및 GitHub 엔터프라이즈 서버 푸시 이벤트와 함께 사용할 수 있습니다. GitHub엔터프라이즈 서버 풀 리퀘스트 이벤트와 함께 사용할 수 없습니다. TAG_NAME
-
웹후크는 릴리스의 태그 이름이 정규 표현식 패턴과 일치할 때 빌드를 트리거합니다.
TAG_NAME
필터는 릴리즈된 요청 이벤트 및 GitHub 프리릴리즈된 요청 이벤트와 함께 사용할 수 있습니다. RELEASE_NAME
-
웹후크는 릴리스 이름이 정규 표현식 패턴과 일치할 때 빌드를 트리거합니다.
RELEASE_NAME
필터는 릴리즈된 요청 이벤트 및 GitHub 프리릴리즈된 요청 이벤트와 함께 사용할 수 있습니다.
참고
리포지토리의 웹후크 설정에서 웹후크 페이로드를 찾을 수 있습니다. GitHub
GitHub 웹후크 이벤트 필터링 (콘솔)
기본 소스 webhook 이벤트에서 다음을 선택합니다. 이 섹션은 내 GitHub 계정에서 소스 리포지토리로 리포지토리를 선택한 경우에만 사용할 수 있습니다.
-
프로젝트를 생성할 때 코드 변경이 이 리포지토리로 푸시될 때마다 다시 빌드를 선택합니다.
-
이벤트 유형에서 하나 이상의 이벤트를 선택합니다.
-
이벤트가 빌드를 트리거할 때를 필터링하려면 Start a build under these conditions(다음 조건에서 빌드를 시작)에서 하나 이상의 선택적 필터를 추가합니다.
-
이벤트가 트리거되지 않을 때를 필터링하려면 Don't start a build under these conditions(다음 조건에서 빌드를 시작하지 않음)에서 하나 이상의 선택적 필터를 추가합니다.
-
필요한 경우 필터 그룹 추가를 선택하여 다른 필터 그룹을 추가합니다.
자세한 내용을 알아보려면 AWS CodeBuild API 참조의 빌드 프로젝트 만들기(콘솔) 및 WebhookFilter 섹션을 참조하세요.
이 예제에서는 Webhook 필터 그룹이 pull 요청에 대해서만 빌드를 트리거합니다.
두 Webhook 필터 그룹을 사용하는 예제에서는 하나 또는 두 필터 그룹이 true로 평가되면 빌드가 트리거됩니다.
-
첫 번째 필터 그룹은 정규식
^refs/heads/main$
와 일치하는 Git 참조 이름과^refs/heads/branch1$
와 일치하는 헤드 참조를 갖는 브랜치에서 생성되거나 업데이트되거나 다시 열린 pull 요청을 지정합니다. -
두 번째 필터 그룹은 정규식
^refs/heads/branch1$
와 일치하는 Git 참조 이름을 갖는 브랜치에서 push 요청을 지정합니다.
이 예제에서는 Webhook 필터 그룹이 태그 이벤트를 제외한 모든 요청에 대해 빌드를 트리거합니다.
이 예제에서는 Webhook 필터 그룹이 정규식 ^buildspec.*
와 일치하는 이름을 갖는 파일이 변경될 때만 빌드를 트리거합니다.
이 예제에서 Webhook 필터 그룹은 파일이 src
또는 test
폴더에서 변경된 경우에만 빌드를 트리거합니다.
이 예제에서 웹후크 필터 그룹은 정규 표현식과 일치하는 계정 ID를 가진 지정된 사용자 GitHub 또는 GitHub Enterprise Server 사용자가 변경한 경우에만 빌드를 트리거합니다. actor-account-id
참고
GitHub 계정 ID를 찾는 방법에 대한 자세한 내용은 https://api.github.com/users/ 사용자 이름을 참조하십시오. 여기서 사용자 이름은
사용자 이름입니다
. GitHub
이 예제에서 webhook 필터 그룹은 헤드 커밋 메시지가 정규식 \[CodeBuild\]
와 일치할 때 푸시 이벤트에 대한 빌드를 트리거합니다.
GitHub 웹후크 이벤트 (SDK) 필터링
AWS CodeBuild SDK를 사용하여 웹후크 이벤트를 필터링하려면 또는 API 메서드의 요청 구문에 있는 filterGroups
필드를 사용하십시오. CreateWebhook
UpdateWebhook
자세한 내용을 알아보려면 CodeBuild API 참조의 WebhookFilter(을)를 참조하세요.
pull 요청에 대해서만 빌드를 트리거하는 Webhook 필터를 생성하려면 요청 구문에 다음을 삽입합니다.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED" } ] ]
지정된 브랜치에 대해서만 빌드를 트리거하는 Webhook 필터를 생성하려면 pattern
파라미터를 사용하여 브랜치 이름을 필터링하는 정규식을 지정합니다. 두 필터 그룹을 사용하는 예제에서는 하나 또는 두 필터 그룹이 true로 평가되면 빌드가 트리거됩니다.
-
첫 번째 필터 그룹은 정규식
^refs/heads/main$
와 일치하는 Git 참조 이름과^refs/heads/myBranch$
와 일치하는 헤드 참조를 갖는 브랜치에서 생성되거나 업데이트되거나 다시 열린 pull 요청을 지정합니다. -
두 번째 필터 그룹은 정규식
^refs/heads/myBranch$
와 일치하는 Git 참조 이름을 갖는 브랜치에서 push 요청을 지정합니다.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED" }, { "type": "HEAD_REF", "pattern": "^refs/heads/myBranch$" }, { "type": "BASE_REF", "pattern": "^refs/heads/main$" } ], [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "HEAD_REF", "pattern": "^refs/heads/myBranch$" } ] ]
excludeMatchedPattern
파라미터를 사용하여 빌드를 트리거하지 않을 이벤트를 지정할 수 있습니다. 예를 들어 이 예제에서는 태그 이벤트를 제외한 모든 요청에 대해 빌드가 트리거됩니다.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED" }, { "type": "HEAD_REF", "pattern": "^refs/tags/.*", "excludeMatchedPattern": true } ] ]
pattern
인수의 정규식과 일치하는 이름을 갖는 파일이 변경되는 경우에만 빌드를 트리거하는 필터를 생성할 수 있습니다. 이 예제에서는 필터 그룹이 정규식 ^buildspec.*
와 일치하는 이름을 갖는 파일이 변경될 때만 빌드가 트리거되도록 지정합니다.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "FILE_PATH", "pattern": "^buildspec.*" } ] ]
이 예제에서 필터 그룹은 파일이 src
또는 test
폴더에서 변경될 때만 빌드가 트리거되도록 지정합니다.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "FILE_PATH", "pattern": "^src/.+|^test/.+" } ] ]
지정된 사용자 GitHub 또는 계정 ID를 가진 GitHub Enterprise Server 사용자가 변경한 경우에만 빌드를 트리거하는 필터를 만들 수 있습니다. actor-account-id
참고
GitHub 계정 ID를 찾는 방법에 대한 자세한 내용은 https://api.github.com/users/ username을
참조하십시오. 여기서 사용자 이름은 사용자 GitHub 이름입니다
.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED" }, { "type": "ACTOR_ACCOUNT_ID", "pattern": "actor-account-id" } ] ]
헤드 커밋 메시지가 패턴 인수의 정규식과 일치할 때만 빌드를 트리거하는 필터를 생성할 수 있습니다. 이 예제에서 필터 그룹은 푸시 이벤트의 헤드 커밋 메시지가 정규식 \[CodeBuild\]
와 일치할 때만 빌드가 트리거되도록 지정합니다.
"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "COMMIT_MESSAGE", "pattern": "\[CodeBuild\]" } ] ]
GitHub 웹후크 이벤트 필터링 ()AWS CloudFormation
AWS CloudFormation 템플릿을 사용하여 웹후크 이벤트를 필터링하려면 AWS CodeBuild 프로젝트의 FilterGroups
속성을 사용하십시오. 다음 AWS CloudFormation
템플릿의 YAML 형식 부분은 두 개의 필터 그룹을 생성합니다. 이들은 하나 또는 둘 모두 true로 평가되면 빌드를 트리거합니다.
-
첫 번째 필터 그룹은 계정 ID가 없는 GitHub 사용자가 정규 표현식과
^refs/heads/main$
일치하는 Git 참조 이름을 가진 브랜치에서 pull 요청을 만들거나 업데이트하도록 지정합니다.12345
-
두 번째 필터 그룹은 정규식
^refs/heads/.*
와 일치하는 Git 참조 이름을 갖는 브랜치에서 정규식READ_ME
와 일치하는 이름을 갖는 파일에 생성되는 push 요청을 지정합니다. -
세 번째 필터 그룹은 정규식
\[CodeBuild\]
와 일치하는 헤드 커밋 메시지에서 push 요청을 지정합니다.
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 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/.+