Tarik permintaan persetujuan komentar - AWS CodeBuild

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tarik permintaan persetujuan komentar

CodeBuild mendukung kebijakan build permintaan tarik yang memberikan kontrol tambahan atas build yang dipicu oleh permintaan tarik. Anda mungkin tidak ingin membuat permintaan tarik secara otomatis dari pengguna yang tidak dikenal hingga perubahannya dapat ditinjau. Fitur ini memungkinkan Anda untuk meminta salah satu anggota tim Anda untuk terlebih dahulu meninjau kode dan kemudian menjalankan pipeline. Ini biasanya digunakan sebagai tindakan pengamanan saat membuat kode yang dikirimkan oleh kontributor yang tidak dikenal.

Kebijakan pembuatan permintaan tarik memungkinkan Anda mengontrol kapan CodeBuild pemicu build untuk permintaan tarik berdasarkan izin kontributor dan status persetujuan. Ini sangat penting untuk repositori publik atau repositori yang menerima kontribusi dari kolaborator eksternal.

Saat diaktifkan, fitur ini memastikan bahwa build hanya dipicu untuk permintaan tarik saat:

  • Permintaan tarik dibuat oleh kontributor tepercaya.

  • Kontributor tepercaya menyetujui permintaan tarik dengan memposting komentar tertentu.

Cara kerjanya

Kontributor tepercaya

Kontributor tepercaya adalah pengguna yang perannya saat ini dalam sistem kontrol sumber diatur dalam kebijakan berbasis permintaan tarik sebagai peran pemberi persetujuan. Saat kontributor tepercaya membuat permintaan tarik, akan CodeBuild memicu build secara otomatis, mempertahankan perilaku saat ini.

Kontributor tidak tepercaya

Kontributor tidak tepercaya adalah pengguna yang perannya tidak ditetapkan dalam daftar peran pemberi persetujuan. Saat kontribusi yang tidak tepercaya membuat permintaan tarik:

  1. CodeBuild menandai status build sebagai “Gagal” dengan pesan “Tarik persetujuan permintaan diperlukan untuk memulai build”.

  2. Kontributor tepercaya harus meninjau perubahan dan memposting komentar /codebuild_run(<SHA_OF_THE_LATEST_COMMIT>) untuk memicu build. Misalnya, /codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369).

  3. CodeBuild memvalidasi izin komentator dan memicu build jika disetujui.

  4. Hasil build dilaporkan kembali di halaman permintaan tarik.

Sintaks persetujuan komentar

Kontributor tepercaya dapat menyetujui build menggunakan format komentar berikut:

  • /codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369)- Pemicu dibangun di atas komit SHA yang ditentukan.

Konfigurasi

Perilaku default

Kebijakan pembuatan permintaan tarik diaktifkan secara default untuk semua CodeBuild proyek yang baru dibuat.

Parameter API:

Kebijakan build permintaan tarik dikonfigurasi menggunakan PullRequestBuildPolicy parameter dalam tindakan berikut:

  • CreateWebhook

  • UpdateWebhook

PullRequestBuildPolicystruktur
{ "requiresCommentApproval": "string", "approverRoles": ["string", ...] }
requiresCommentApproval

Menentukan kapan persetujuan berbasis komentar diperlukan sebelum memicu build on pull request. Pengaturan ini menentukan apakah build berjalan secara otomatis atau memerlukan persetujuan eksplisit melalui komentar.

Tipe: String

Nilai valid:

  • DISABLED- Membangun pemicu secara otomatis tanpa memerlukan persetujuan komentar.

  • FORK_PULL_REQUESTS- Hanya permintaan tarik dari repositori bercabang yang memerlukan persetujuan komentar (kecuali kontributor adalah salah satu peran pemberi persetujuan).

  • ALL_PULL_REQUESTS- Semua permintaan tarik memerlukan persetujuan komentar sebelum build dijalankan (kecuali kontributor adalah salah satu peran pemberi persetujuan). Ini adalah nilai default.

approverRoles

Daftar peran repositori yang memiliki hak persetujuan untuk build permintaan tarik saat persetujuan komentar diperlukan. Hanya pengguna dengan peran ini yang dapat memberikan persetujuan komentar yang valid. Jika kontributor permintaan tarik adalah salah satu peran ini, build permintaan tarik mereka akan terpicu secara otomatis.

Tipe: Array string

Nilai yang valid untuk GitHub proyek (nilai dipetakan ke GitHub peran):

  • GITHUB_ADMIN- Administrator repositori

  • GITHUB_MAINTAIN- Pengelola repositori

  • GITHUB_WRITE- Pengguna dengan izin menulis

  • GITHUB_TRIAGE- Pengguna dengan izin triase

  • GITHUB_READ- Pengguna dengan izin baca

  • Default: ["GITHUB_ADMIN", "GITHUB_MAINTAINER", "GITHUB_WRITE"]

Nilai yang valid untuk GitLab proyek (nilai dipetakan ke GitLab peran):

  • GITLAB_OWNER- Pemilik repositori

  • GITLAB_MAINTAINER- Pengelola repositori

  • GITLAB_DEVELOPER- Pengguna dengan izin pengembang

  • GITLAB_REPORTER- Pengguna dengan izin reporter

  • GITLAB_PLANNER- Pengguna dengan izin perencana

  • GITLAB_GUEST - Pengguna dengan izin tamu

  • Default: ["GITLAB_OWNER", "GITLAB_MAINTAINER", "GITLAB_DEVELOPER"]

Nilai yang valid untuk proyek Bitbucket (nilai dipetakan ke peran Bitbucket):

  • BITBUCKET_ADMIN - Administrator repositori

  • BITBUCKET_WRITE- Pengguna dengan izin menulis

  • BITBUCKET_READ - Pengguna dengan izin baca

  • Default: ["BITBUCKET_ADMIN", "BITBUCKET_WRITE"]

Contoh

Aktifkan persetujuan komentar untuk semua permintaan tarik

Untuk menggunakan AWS CodeBuild SDK untuk mengaktifkan atau menonaktifkan kebijakan Pull Request Build untuk webhook, gunakan pullRequestBuildPolicy bidang dalam sintaks permintaan metode CreateWebhook atau UpdateWebhook API. Untuk informasi selengkapnya, lihat WebhookFilter di dalam Referensi API CodeBuild .

Pengguna dengan peran Github Admin, Maintain, dan Write akan diperlakukan sebagai kontributor tepercaya.

"pullRequestBuildPolicy": { "requiresCommentApproval": "ALL_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAIN", "GITHUB_WRITE"] }
Aktifkan persetujuan komentar hanya untuk admin dan pengelola repositori

Pengguna dengan GitHub peran Admin, Pertahankan, akan diperlakukan sebagai kontributor tepercaya.

"pullRequestBuildPolicy": { "requiresCommentApproval": "FORK_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAINER"] }
Nonaktifkan persetujuan komentar
"pullRequestBuildPolicy": { "requiresCommentApproval": "DISABLED" }

AWS CloudFormation

Untuk menggunakan AWS CloudFormation template untuk mengaktifkan atau menonaktifkan kebijakan Pull Request Build untuk PullRequestBuildPolicy properti penggunaan webhook. Bagian AWS CloudFormation template yang diformat YAML berikut membuat proyek dengan webhook yang mengaktifkan Pull Request Build Policy untuk semua permintaan tarik. Pertahankan dan peran Admin sebagaimana ditentukan sebagai pemberi persetujuan.

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

Konfigurasi konsol

Untuk menggunakan AWS Management Console untuk memfilter peristiwa webhook:

  1. Untuk persetujuan Komentar, pilih dinonaktifkan atau diaktifkan untuk semua permintaan tarik (ALL_PULL_REQUEST) atau hanya untuk permintaan tarik dari forks (FORK_PULL_REQUEST).

  2. Untuk peran Penyetuju, pilih peran repositori yang memiliki hak persetujuan untuk build permintaan tarik saat persetujuan komentar diperlukan.

Untuk informasi selengkapnya, lihat Buat proyek build (konsol) dan WebhookFilterdi Referensi CodeBuild API.

Konsol acara webhook sumber utama dengan persetujuan komentar.