기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
풀 요청 설명 승인
CodeBuild는 풀 요청에 의해 트리거되는 빌드에 대한 추가 제어를 제공하는 풀 요청 빌드 정책을 지원합니다. 변경 사항을 검토할 수 있을 때까지 알 수 없는 사용자의 풀 요청을 자동으로 빌드하지 않을 수 있습니다. 이 기능을 사용하면 팀원 중 한 명이 먼저 코드를 검토한 다음 파이프라인을 실행하도록 요구할 수 있습니다. 이는 일반적으로 알 수 없는 기여자가 제출한 코드를 빌드할 때 보안 조치로 사용됩니다.
풀 요청 빌드 정책을 사용하면 CodeBuild가 기여자의 권한 및 승인 상태에 따라 풀 요청에 대한 빌드를 트리거하는 시기를 제어할 수 있습니다. 이는 외부 공동 작업자의 기여를 수락하는 퍼블릭 리포지토리 또는 리포지토리에 특히 중요합니다.
이 기능을 활성화하면 다음 중 하나에 해당하는 경우에만 풀 요청에 대해 빌드가 트리거됩니다.
-
풀 요청은 신뢰할 수 있는 기여자에 의해 생성됩니다.
-
신뢰할 수 있는 기여자는 특정 설명을 게시하여 풀 요청을 승인합니다.
작동 방법
- 신뢰할 수 있는 기여자
-
신뢰할 수 있는 기여자는 소스 제어 시스템의 현재 역할이 풀 요청 기반 정책에 승인자 역할로 설정된 사용자입니다. 신뢰할 수 있는 기여자가 풀 요청을 생성하면 CodeBuild는 빌드를 자동으로 트리거하여 현재 동작을 유지합니다.
- 신뢰할 수 없는 기여자
-
신뢰할 수 없는 기여자는 승인자 역할 목록에 역할이 설정되지 않은 사용자입니다. 신뢰할 수 없는 기여자가 풀 요청을 생성하는 경우:
-
CodeBuild는 "빌드를 시작하는 데 필요한 풀 요청 승인"이라는 메시지와 함께 빌드 상태를 "실패"로 표시합니다.
-
신뢰할 수 있는 기여자는 변경 사항을 검토하고에 설명을 게시
/codebuild_run(
하여 빌드를 트리거해야 합니다. 예를 들어<SHA_OF_THE_LATEST_COMMIT>
)/codebuild_run(
입니다.046e8b67481d53bdc86c3f6affdd5d1afae6d369
) -
CodeBuild는 해설자의 권한을 검증하고 승인된 경우 빌드를 트리거합니다.
-
빌드 결과는 풀 요청 페이지에 다시 보고됩니다.
-
- 설명 승인 구문
-
신뢰할 수 있는 기여자는 다음 설명 형식을 사용하여 빌드를 승인할 수 있습니다.
-
/codebuild_run(
- 지정된 커밋 SHA에서 빌드를 트리거합니다.046e8b67481d53bdc86c3f6affdd5d1afae6d369
)
-
구성
- 기본 동작
-
풀 요청 빌드 정책은 새로 생성된 모든 CodeBuild 프로젝트에 대해 기본적으로 활성화됩니다.
- API 파라미터
-
풀 요청 빌드 정책은 다음 작업의
PullRequestBuildPolicy
파라미터를 사용하여 구성됩니다.-
CreateWebhook
-
UpdateWebhook
-
PullRequestBuildPolicy
구조-
{ "requiresCommentApproval": "string", "approverRoles": ["string", ...] }
requiresCommentApproval
-
풀 요청에 대한 빌드를 트리거하기 전에 설명 기반 승인이 필요한 시기를 지정합니다. 이 설정은 빌드가 자동으로 실행되는지 또는 주석을 통한 명시적 승인이 필요한지 여부를 결정합니다.
유형: 문자열
유효 값:
-
DISABLED
- 주석 승인 없이 트리거를 자동으로 빌드합니다. -
FORK_PULL_REQUESTS
- 포크된 리포지토리의 풀 요청만 주석 승인이 필요합니다(기여자가 승인자 역할 중 하나가 아닌 경우). -
ALL_PULL_REQUESTS
- 모든 풀 요청은 빌드를 실행하기 전에 주석 승인이 필요합니다(기여자가 승인자 역할 중 하나가 아닌 경우). 이것이 기본값입니다.
-
approverRoles
-
설명 승인이 필요한 경우 풀 요청 빌드에 대한 승인 권한이 있는 리포지토리 역할 목록입니다. 이러한 역할을 가진 사용자만 유효한 설명 승인을 제공할 수 있습니다. 풀 요청 기여자가 이러한 역할 중 하나인 경우 풀 요청 빌드가 자동으로 트리거됩니다.
유형: 문자열 배열
GitHub 프로젝트에 유효한 값(값은 GitHub 역할에 매핑됨):
-
GITHUB_ADMIN
- 리포지토리 관리자 -
GITHUB_MAINTAIN
- 리포지토리 유지 관리 -
GITHUB_WRITE
- 쓰기 권한이 있는 사용자 -
GITHUB_TRIAGE
- 분류 권한이 있는 사용자 -
GITHUB_READ
- 읽기 권한이 있는 사용자 -
기본값:
["GITHUB_ADMIN", "GITHUB_MAINTAINER", "GITHUB_WRITE"]
GitLab 프로젝트의 유효한 값(값은 GitLab 역할에 매핑됨):
-
GITLAB_OWNER
- 리포지토리 소유자 -
GITLAB_MAINTAINER
- 리포지토리 유지 관리 -
GITLAB_DEVELOPER
- 개발자 권한이 있는 사용자 -
GITLAB_REPORTER
- 리포터 권한이 있는 사용자 -
GITLAB_PLANNER
- 플래너 권한이 있는 사용자 -
GITLAB_GUEST
- 게스트 권한이 있는 사용자 -
기본값:
["GITLAB_OWNER", "GITLAB_MAINTAINER", "GITLAB_DEVELOPER"]
Bitbucket 프로젝트에 유효한 값(값은 Bitbucket 역할에 매핑됨):
-
BITBUCKET_ADMIN
- 리포지토리 관리자 -
BITBUCKET_WRITE
- 쓰기 권한이 있는 사용자 -
BITBUCKET_READ
- 읽기 권한이 있는 사용자 -
기본값:
["BITBUCKET_ADMIN", "BITBUCKET_WRITE"]
-
예시
- 모든 풀 요청에 대한 설명 승인 활성화
-
AWS CodeBuild SDK를 사용하여 웹후크에 대한 풀 요청 빌드 정책을 활성화하거나 비활성화하려면
CreateWebhook
또는UpdateWebhook
API 메서드의 요청 구문에서pullRequestBuildPolicy
필드를 사용합니다. 자세한 내용은 CodeBuild API 참조의 WebHookFilter를 참조하세요.Github 역할 관리, 유지 관리 및 쓰기를 사용하는 사용자는 신뢰할 수 있는 기여자로 취급됩니다.
"pullRequestBuildPolicy": { "requiresCommentApproval": "ALL_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAIN", "GITHUB_WRITE"] }
- 리포지토리 관리자 및 유지 관리에 대해서만 설명 승인 활성화
-
GitHub 역할 관리자, 유지 관리가 있는 사용자는 신뢰할 수 있는 기여자로 처리됩니다.
"pullRequestBuildPolicy": { "requiresCommentApproval": "FORK_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAINER"] }
- 설명 승인 비활성화
-
"pullRequestBuildPolicy": { "requiresCommentApproval": "DISABLED" }
AWS CloudFormation
AWS CloudFormation 템플릿을 사용하여 웹후크에 대한 풀 요청 빌드 정책을 활성화하거나 비활성화하려면 PullRequestBuildPolicy 속성을 사용합니다. AWS CloudFormation 템플릿의 다음 YAML 형식 부분은 모든 풀 요청에 대해 풀 요청 빌드 정책이 활성화된 웹후크를 사용하여 프로젝트를 생성합니다. 승인자로 지정된 대로 및 관리자 역할을 유지 관리합니다.
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: BITBUCKET 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 PullRequestBuildPolicy: RequiresCommentApproval: ALL_PULL_REQUESTS ApproverRoles: - GITHUB_MAINTAIN - GITHUB_ADMIN
콘솔 구성
AWS 관리 콘솔을 사용하여 웹후크 이벤트를 필터링하려면:
-
설명 승인의 경우 모든 풀 요청(
ALL_PULL_REQUEST
)에 대해 비활성화 또는 활성화를 선택하거나 포크의 풀 요청()에 대해서만 비활성화 또는 활성화를 선택합니다FORK_PULL_REQUEST
. -
승인자 역할에서 설명 승인이 필요할 때 풀 요청 빌드에 대한 승인 권한이 있는 리포지토리 역할을 선택합니다.
자세한 내용은 CodeBuild API 참조의 빌드 프로젝트 만들기(콘솔) 및 WebhookFilter를 참조하세요. CodeBuild
