

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

# Tarik permintaan persetujuan komentar
<a name="pull-request-build-policy"></a>

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
<a name="pull-request-build-policy.how-it-works"></a>

**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”.

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

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

1. Hasil build dilaporkan kembali di halaman permintaan tarik.

**Sintaks persetujuan komentar**  
Kontributor tepercaya dapat menyetujui build menggunakan format komentar berikut:  
+ `/codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369)`- Pemicu membangun komit SHA yang ditentukan.

## Konfigurasi
<a name="pull-request-build-policy.configuration"></a>

**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`

**`PullRequestBuildPolicy`struktur**  

```
{
    "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
<a name="pull-request-build-policy.examples"></a>

**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](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html) 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
<a name="pull-request-build-policy.cloudformation"></a>

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
<a name="pull-request-build-policy.console"></a>

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`).

1. 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)](create-project.md#create-project-console) dan [WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html)di *Referensi CodeBuild API*.

![\[Konsol acara webhook sumber utama dengan persetujuan komentar.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/pull-request-comment-approval.png)
