Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Persetujuan komentar permintaan tarik
CodeBuild mendukung kebijakan pembuatan permintaan tarik yang memberikan kontrol tambahan atas build yang dipicu oleh permintaan tarik. Anda mungkin tidak ingin secara otomatis membuat permintaan tarik dari pengguna yang tidak dikenal sampai 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 langkah keamanan ketika membangun kode yang diajukan oleh kontributor yang tidak dikenal.
Kebijakan pembuatan permintaan tarik memungkinkan Anda mengontrol kapan CodeBuild memicu build untuk permintaan tarik berdasarkan izin dan status persetujuan kontributor. 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 ketika:
-
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 ditetapkan dalam kebijakan berbasis permintaan tarik sebagai peran pemberi persetujuan. Ketika kontributor tepercaya membuat permintaan tarik, CodeBuild memicu build secara otomatis, mempertahankan perilaku saat ini.
- Kontributor yang tidak dipercaya
-
Kontributor yang tidak tepercaya adalah pengguna yang perannya tidak ditetapkan dalam daftar peran pemberi persetujuan. Saat kontributor yang tidak tepercaya membuat permintaan tarik:
-
CodeBuild menandai status build sebagai “Gagal” dengan pesan “Persetujuan permintaan tarik diperlukan untuk memulai build”.
-
Kontributor tepercaya harus meninjau perubahan dan mengirim komentar
/codebuild_run(untuk memicu build. Misalnya,<SHA_OF_THE_LATEST_COMMIT>)/codebuild_run(.046e8b67481d53bdc86c3f6affdd5d1afae6d369) -
CodeBuild memvalidasi izin komentator dan memicu build jika disetujui.
-
Hasil build dilaporkan kembali di halaman permintaan tarik.
-
- Sintaks persetujuan komentar
-
Kontributor tepercaya dapat menyetujui build menggunakan format komentar berikut:
-
/codebuild_run(- Pemicu dibangun di atas komit SHA yang ditentukan.046e8b67481d53bdc86c3f6affdd5d1afae6d369)
-
Konfigurasi
- Perilaku default
-
Kebijakan pembuatan permintaan tarik diaktifkan secara default untuk semua CodeBuild proyek yang baru dibuat.
- Parameter API:
-
Kebijakan pembuatan permintaan tarik dikonfigurasi menggunakan
PullRequestBuildPolicyparameter dalam tindakan berikut:-
CreateWebhook -
UpdateWebhook
-
PullRequestBuildPolicystruktur-
{ "requiresCommentApproval": "string", "approverRoles": ["string", ...] } requiresCommentApproval-
Menentukan kapan persetujuan berbasis komentar diperlukan sebelum memicu pembuatan permintaan tarik. 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 penyetujui). -
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 pembuatan permintaan tarik saat persetujuan komentar diperlukan. Hanya pengguna dengan peran ini yang dapat memberikan persetujuan komentar yang valid. Jika kontributor pull request adalah salah satu peran ini, build pull request mereka akan dipicu secara otomatis.
Tipe: Array string
Nilai yang valid untuk GitHub proyek (nilai-nilai dipetakan ke GitHub peran):
-
GITHUB_ADMIN- Administrator repositori -
GITHUB_MAINTAIN- Pengelola repositori -
GITHUB_WRITE- Pengguna dengan izin menulis -
GITHUB_TRIAGE- Pengguna dengan izin triage -
GITHUB_READ- Pengguna dengan izin baca -
Default:
["GITHUB_ADMIN", "GITHUB_MAINTAIN", "GITHUB_WRITE"]
Nilai yang valid untuk GitLab proyek (nilai-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-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"]
-
- Peran GitHub Perusahaan Kustom
-
CodeBuild memet GitHub akan peran repositori khusus Enterprise (GHE) ke
GITHUB_*nilai standar berdasarkan tingkat izin tertinggi yang diberikan untuk peran kustom. CodeBuild mengevaluasi izin dari hak istimewa tertinggi ke terendah, dan izin pertama yang diaktifkan menentukan peran yang dipetakan.-
admin→GITHUB_ADMIN -
maintain→GITHUB_MAINTAIN -
push(tulis) →GITHUB_WRITE -
triage→GITHUB_TRIAGE -
pull(baca) →GITHUB_READ
Misalnya, peran khusus yang memberikan keduanya
pushdantriageizin dipetakan keGITHUB_WRITEkarenapushmemiliki hak istimewa yang lebih tinggi daripadatriage.Jika peran kustom tidak memiliki izin yang diakui (admin, maintenance, push, triage, pull all dinonaktifkan), pengguna tidak cocok dengan peran penyetujui apa pun dan diperlakukan sebagai kontributor yang tidak tepercaya.
Peran GitHub standar (Admin, Maintain, Write, Triage, Read) dipetakan langsung ke
GITHUB_*nilai yang sesuai tanpa resolusi berbasis izin. -
Contoh
- Aktifkan persetujuan komentar untuk semua permintaan tarik
-
Untuk menggunakan AWS CodeBuild SDK untuk mengaktifkan atau menonaktifkan kebijakan Pull Request Build untuk webhook, gunakan
pullRequestBuildPolicybidang dalam sintaks permintaan metodeUpdateWebhookAPICreateWebhookor. Untuk informasi selengkapnya, lihat WebhookFilter di dalam Referensi API CodeBuild .Pengguna dengan GitHub peran 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 dan Maintain akan diperlakukan sebagai kontributor tepercaya.
"pullRequestBuildPolicy": { "requiresCommentApproval": "FORK_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAIN"] } - Nonaktifkan persetujuan komentar
-
"pullRequestBuildPolicy": { "requiresCommentApproval": "DISABLED" }
AWS CloudFormation
Untuk menggunakan AWS CloudFormation template untuk mengaktifkan atau menonaktifkan kebijakan Pull Request Build untuk webhook, gunakan PullRequestBuildPolicy properti. Bagian AWS CloudFormation template berikut YAML-formatted membuat proyek dengan webhook yang mengaktifkan Kebijakan Pembuatan Permintaan Pull untuk semua permintaan tarik. Peran Pertahankan dan Admin 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:
-
Untuk persetujuan Komentar, pilih dinonaktifkan atau diaktifkan untuk semua pull request (
ALL_PULL_REQUEST) atau hanya untuk permintaan tarik dari fork (FORK_PULL_REQUEST). -
Untuk peran Approver, pilih peran repositori yang memiliki hak istimewa persetujuan untuk build permintaan tarik saat persetujuan komentar diperlukan.
Untuk informasi selengkapnya, lihat Membuat proyek build (konsol) dan WebhookFilter di Refer CodeBuild ensi API.