View a markdown version of this page

풀 요청 설명 승인 - AWS CodeBuild

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

풀 요청 설명 승인

CodeBuild는 풀 요청에 의해 트리거되는 빌드에 대한 추가 제어를 제공하는 풀 요청 빌드 정책을 지원합니다. 변경 사항을 검토할 수 있을 때까지 알 수 없는 사용자의 풀 요청을 자동으로 빌드하지 않을 수 있습니다. 이 기능을 사용하면 팀원 중 한 명이 먼저 코드를 검토한 다음 파이프라인을 실행하도록 요구할 수 있습니다. 이는 일반적으로 알 수 없는 기여자가 제출한 코드를 빌드할 때 보안 조치로 사용됩니다.

풀 요청 빌드 정책을 사용하면 CodeBuild가 기여자의 권한 및 승인 상태에 따라 풀 요청에 대한 빌드를 트리거하는 시기를 제어할 수 있습니다. 이는 퍼블릭 리포지토리 또는 외부 공동 작업자의 기여를 수락하는 리포지토리에 특히 중요합니다.

이 기능을 활성화하면 다음 중 하나에 해당하는 경우에만 풀 요청에 대해 빌드가 트리거됩니다.

  • 풀 요청이 신뢰할 수 있는 기여자에 의해 생성됩니다.

  • 신뢰할 수 있는 기여자가 특정 설명을 게시하여 풀 요청을 승인합니다.

작동 방식

신뢰할 수 있는 기여자

신뢰할 수 있는 기여자는 풀 요청 기반 정책에서 소스 제어 시스템의 현재 역할이 승인자 역할로 설정된 사용자입니다. 신뢰할 수 있는 기여자가 풀 요청을 생성하면 CodeBuild는 빌드를 자동으로 트리거하여 현재 동작을 유지합니다.

신뢰할 수 없는 기여자

신뢰할 수 없는 기여자는 승인자 역할 목록에 역할이 설정되지 않은 사용자입니다. 신뢰할 수 없는 기여자가 풀 요청을 생성하는 경우:

  1. CodeBuild는 "빌드를 시작하는 데 필요한 풀 요청 승인"이라는 메시지와 함께 빌드 상태를 "실패"로 표시합니다.

  2. 신뢰할 수 있는 기여자는 변경 사항을 검토하고 /codebuild_run(<SHA_OF_THE_LATEST_COMMIT>)과 함께 설명을 게시하여 빌드를 트리거해야 합니다. 예를 들어 /codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369)입니다.

  3. CodeBuild는 해설자의 권한을 검증하고 승인된 경우 빌드를 트리거합니다.

  4. 빌드 결과는 풀 요청 페이지에 다시 보고됩니다.

설명 승인 구문

신뢰할 수 있는 기여자는 다음 설명 형식을 사용하여 빌드를 승인할 수 있습니다.

  • /codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369) - 지정된 커밋 SHA에서 빌드를 트리거합니다.

구성

기본 동작

풀 요청 빌드 정책은 새로 생성된 모든 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_MAINTAIN", "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"]

사용자 지정 GitHub Enterprise 역할

CodeBuild는 사용자 지정 역할에 부여된 가장 높은 권한 수준을 기반으로 사용자 지정 GitHub Enterprise(GHE) 리포지토리 역할을 표준 GITHUB_* 값에 매핑합니다. CodeBuild는 가장 높은 권한에서 가장 낮은 권한으로 권한을 평가하며, 활성화된 첫 번째 권한에 따라 매핑된 역할이 결정됩니다.

  • adminGITHUB_ADMIN

  • maintainGITHUB_MAINTAIN

  • push (쓰기) → GITHUB_WRITE

  • triageGITHUB_TRIAGE

  • pull (읽기) → GITHUB_READ

예를 들어가 보다 높은 권한을 push 가지고 GITHUB_WRITE 있기 때문에 pushtriage 권한을 모두 부여하는 사용자 지정 역할은에 매핑됩니다triage.

사용자 지정 역할에 인식된 권한(관리자, 유지 관리, 푸시, 분류, 모두 가져오기 비활성화됨)이 없는 경우 사용자는 승인자 역할과 일치하지 않으며 신뢰할 수 없는 기여자로 처리됩니다.

표준 GitHub 역할(관리자, 유지 관리, 쓰기, 분류, 읽기)은 권한 기반 확인 없이 해당 GITHUB_* 값에 직접 매핑됩니다.

예제

모든 풀 요청에 대한 설명 승인 활성화

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_MAINTAIN"] }
설명 승인 비활성화
"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 관리 콘솔을 사용하여 웹후크 이벤트를 필터링하려면:

  1. 설명 승인에서 모든 풀 요청(ALL_PULL_REQUEST)에 대해 비활성화 또는 활성화를 선택하거나 포크의 풀 요청(FORK_PULL_REQUEST)에 대해서만 비활성화 또는 활성화를 선택합니다.

  2. 승인자 역할에서 설명 승인이 필요할 때 풀 요청 빌드에 대한 승인 권한이 있는 리포지토리 역할을 선택합니다.

자세한 내용은 CodeBuild API 참조빌드 프로젝트 만들기(콘솔)WebhookFilter를 참조하세요.

설명 승인이 있는 기본 소스 웹후크 이벤트 콘솔입니다.