풀 요청 설명 승인 - 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_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 관리 콘솔을 사용하여 웹후크 이벤트를 필터링하려면:

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

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

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

주석 승인이 있는 기본 소스 웹후크 이벤트 콘솔.