

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

# Membuat templat aturan persetujuan
<a name="how-to-create-template"></a>

Anda dapat membuat satu atau beberapa templat aturan persetujuan untuk membantu Anda menyesuaikan alur kerja pengembangan di seluruh repositori. Dengan membuat beberapa templat, Anda dapat mengkonfigurasi pembuatan otomatis aturan persetujuan sehingga cabang yang berbeda memiliki tingkat persetujuan dan kontrol yang sesuai. Misalnya, Anda dapat membuat templat yang berbeda untuk cabang produksi dan pengembangan dan menerapkan templat ini ke satu atau lebih repositori. Ketika pengguna membuat permintaan pull di repositori tersebut, permintaan dievaluasi terhadap templat tersebut. Jika permintaan cocok dengan syarat dalam templat yang diterapkan, aturan persetujuan dibuat untuk permintaan pull.

Anda dapat menggunakan konsol atau AWS CLI membuat templat aturan persetujuan. Untuk informasi selengkapnya tentang kebijakan terkelola dan izin untuk templat aturan persetujuan, lihat [Izin untuk tindakan pada templat aturan persetujuan](auth-and-access-control-permissions-reference.md#aa-art) dan[AWS kebijakan terkelola untuk CodeCommit](security-iam-awsmanpol.md).

**Topics**
+ [Membuat templat aturan persetujuan (konsol)](#how-to-create-template-console)
+ [Buat templat aturan persetujuan (AWS CLI)](#how-to-create-template-cli)

## Membuat templat aturan persetujuan (konsol)
<a name="how-to-create-template-console"></a>

Templat aturan persetujuan tidak dikaitkan dengan repositori apa pun secara default. Anda dapat membuat hubungan antara templat dan satu repositori atau lebih ketika Anda membuat templat, atau Anda dapat menambahkan hubungan di lain waktu.<a name="create-template-console"></a>

## Untuk membuat templat aturan persetujuan (Konsol)
<a name="create-template-console"></a>

1. Buka CodeCommit konsol di [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Pilih **Templat aturan persetujuan**, lalu pilih **Buat templat**.

1. Dalam **Nama templat aturan persetujuan**, berikan nama deskriptif untuk templat sehingga Anda tahu untuk apa templat dibuat. Misalnya, jika Anda ingin meminta satu orang dari sekumpulan developer senior untuk menyetujui permintaan pull sebelum dapat digabungkan, Anda dapat menyebutkan aturan **Require 1 approver from a senior developer**. 

1. (Opsional) Dalam **Deskripsi**, berikan deskripsi tentang tujuan templat ini. Hal ini dapat membantu orang lain memutuskan apakah templat ini sesuai untuk repositori mereka.

1. Dalam **Jumlah persetujuan yang dibutuhkan**, masukkan jumlah yang Anda inginkan. Nilai default-nya adalah 1. 

1. (Opsional) Jika Anda ingin mengharuskan bahwa persetujuan untuk permintaan pull berasal dari grup pengguna tertentu, di **Anggota aturan persetujuan**, pilih **Tambahkan**. Dalam **Jenis penyetuju**, pilih salah satu dari berikut ini: 
   + **Nama pengguna atau peran yang dimiliki IAM**: Opsi ini mem-prepopulasikan ID akun Amazon Web Services untuk akun yang Anda gunakan untuk masuk, dan hanya memerlukan nama. Ini dapat digunakan untuk baik oleh pengguna IAM maupun pengguna akses gabungan yang namanya cocok dengan nama yang disediakan. Ini adalah pilihan yang sangat kuat yang menawarkan fleksibilitas tinggi. Sebagai contoh, jika Anda memilih opsi ini dan masuk dengan akun Amazon Web Services 123456789012, dan Anda menentukan **Mary\$1Major**, semua hal berikut dihitung sebagai persetujuan yang berasal dari pengguna tersebut:
     + Pengguna IAM di akun () `arn:aws:iam::123456789012:user/Mary_Major`
     + Seorang pengguna gabungan yang diidentifikasi dalam IAM sebagai Mary\$1Major (`arn:aws:sts::123456789012:federated-user/Mary_Major`)

     Opsi ini tidak mengenali sesi aktif seseorang dengan memiliki peran **CodeCommitReview** dengan nama sesi peran Mary\$1Major (`arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major`) kecuali Anda menyertakan wildcard (`*Mary_Major`). Anda juga dapat menentukan nama peran secara eksplisit (`CodeCommitReview/Mary_Major`).
   + **ARN memenuhi syarat**: Opsi ini memungkinkan Anda untuk menentukan Amazon Resource Name (ARN) yang memenuhi syarat dari pengguna atau peran IAM. Opsi ini juga mendukung peran yang diasumsikan yang digunakan oleh AWS layanan lain, seperti AWS Lambda dan AWS CodeBuild. Untuk peran yang dimiliki, format ARN seharusnya `arn:aws:sts::AccountID:assumed-role/RoleName` untuk peran dan `arn:aws:sts::AccountID:assumed-role/FunctionName` untuk fungsi.

   Jika Anda memilih **nama pengguna atau peran yang dimiliki IAM** sebagai tipe penyetuju, di **Nilai**, masukkan nama pengguna IAM atau peran atau ARN yang memenuhi syarat dari pengguna atau peran. Pilih **Tambahkan** lagi untuk menambahkan lebih banyak pengguna atau peran, hingga Anda menambahkan semua pengguna atau peran yang persetujuannya dihitung untuk jumlah persetujuan yang diperlukan. 

   Kedua jenis penyetuju memungkinkan Anda menggunakan wildcard (\$1) dalam nilainya. Misalnya, jika Anda memilih **nama pengguna atau peran yang dimiliki IAM**, dan Anda menentukan **CodeCommitReview/\$1**, semua pengguna yang mengambil peran **CodeCommitReview** dihitung dalam grup persetujuan. Nama sesi peran masing-masing dihitung terhadap jumlah penyetuju yang diperlukan. Dengan cara ini, baik Mary\$1Major maupun Li\$1Juan dihitung sebagai persetujuan ketika masuk dan memiliki peran `CodeCommitReview`. Untuk informasi selengkapnya tentang IAM ARNs, wildcard, dan format, lihat Pengidentifikasi [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).
**catatan**  
Aturan persetujuan tidak mendukung persetujuan lintas akun.

1. (Opsional) Dalam **Filter cabang**, masukkan nama cabang tujuan untuk digunakan untuk mem-filter pembuatan aturan persetujuan. Misalnya, jika Anda menentukan*main*, aturan persetujuan dibuat untuk permintaan tarik di repositori terkait hanya jika cabang tujuan untuk permintaan tarik adalah cabang bernama. *main* Anda dapat menggunakan wildcard (\$1) dalam nama cabang untuk menerapkan aturan persetujuan untuk semua nama cabang yang cocok dengan kasus wildcard. Namun, Anda tidak dapat menggunakan wildcard di awal nama cabang. Anda dapat menentukan hingga 100 nama cabang. Jika Anda tidak menentukan filter apapun, templat berlaku untuk semua cabang di repositori terkait.

1. (Opsional) **Repositori terkait**, di daftar **Repositori**, pilih repositori dalam Wilayah AWS ini yang ingin Anda kaitkan dengan aturan persetujuan ini. 
**catatan**  
Anda dapat memilih untuk mengaitkan repositori setelah membuat templat. Untuk informasi selengkapnya, lihat [Kaitkan templat aturan persetujuan dengan repositori](how-to-associate-template.md).

1. Pilih **Buat**.

![\[Templat aturan persetujuan yang membutuhkan 1 penyetuju dari aturan persetujuan yang ditetapkan jika permintaan pull dibuat pada cabang bernama utama, terkait dengan dua repositori\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-approval-rule-template.png)


## Buat templat aturan persetujuan (AWS CLI)
<a name="how-to-create-template-cli"></a>

Anda dapat menggunakan AWS CLI untuk membuat templat aturan persetujuan. Saat Anda menggunakan AWS CLI, Anda dapat menentukan referensi tujuan untuk templat, sehingga hanya berlaku untuk menarik permintaan yang cabang tujuannya cocok dengan yang ada di templat.<a name="create-template-cli"></a>

## Untuk membuat templat aturan persetujuan (AWS CLI)
<a name="create-template-cli"></a>

1. Pada sebuah terminal atau baris perintah, jalankan perintah **create-approval-rule-template**, dengan menentukan:
   + Nama untuk templat aturan persetujuan. Pertimbangkan untuk menggunakan nama yang menggambarkan tujuannya.
   + Deskripsi templat aturan persetujuan. Seperti namanya, pertimbangkan untuk memberikan penjelasan mendetail.
   + Struktur JSON dari templat aturan persetujuan. Struktur ini dapat mencakup persyaratan untuk referensi tujuan, yang merupakan cabang tujuan untuk permintaan pull yang aturan persetujuannya diterapkan, dan anggota grup persetujuan, yang merupakan pengguna yang persetujuannya dihitung terhadap jumlah persetujuan yang diperlukan.

   Saat membuat isi aturan persetujuan, Anda dapat menentukan penyetuju di grup persetujuan dengan salah satu dari dua cara berikut:
   + **CodeCommitApprovers**: Opsi ini hanya memerlukan akun Amazon Web Services dan sumber daya. Ini dapat digunakan baik untuk pengguna IAM maupun pengguna akses gabungan yang namanya cocok dengan nama sumber daya yang disediakan. Ini adalah pilihan yang sangat kuat yang menawarkan fleksibilitas tinggi. Sebagai contoh, jika Anda menentukan akun AWS 123456789012 dan **Mary\$1Major**, semua hal berikut dihitung sebagai persetujuan yang berasal dari pengguna tersebut:
     + Pengguna IAM di akun () `arn:aws:iam::123456789012:user/Mary_Major`
     + Seorang pengguna gabungan yang diidentifikasi dalam IAM sebagai Mary\$1Major (`arn:aws:sts::123456789012:federated-user/Mary_Major`)

     Opsi ini tidak mengenali sesi aktif seseorang yang mengambil peran *SeniorDevelopers* dengan nama sesi peran *Mary\$1Major* (`arn:aws:sts::123456789012:assumed-role/SeniorDevelopers/Mary_Major`) kecuali Anda menyertakan wildcard (`*Mary_Major`).
   + **ARN memenuhi syarat**: Opsi ini memungkinkan Anda untuk menentukan Amazon Resource Name (ARN) yang memenuhi syarat dari pengguna atau peran IAM. 

   Untuk informasi selengkapnya tentang IAM ARNs, wildcard, dan format, lihat Pengidentifikasi [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).

   Contoh berikut membuat templat aturan persetujuan bernama **2-approver-rule-for-main** dan deskripsi **Requires two developers from the team to approve the pull request if the destination branch is main**. Templat membutuhkan dua pengguna yang memiliki peran **CodeCommitReview** untuk menyetujui permintaan pull apapun sebelum dapat digabungkan ke cabang **main**:

   ```
   aws codecommit create-approval-rule-template --approval-rule-template-name 2-approver-rule-for-main --approval-rule-template-description "Requires two developers from the team to approve the pull request if the destination branch is main" --approval-rule-template-content "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}"
   ```

1. Jika berhasil, perintah ini mengembalikan output yang serupa dengan yang berikut:

   ```
   {
       "approvalRuleTemplate": {
           "approvalRuleTemplateName": "2-approver-rule-for-main",
           "creationDate": 1571356106.936,
           "approvalRuleTemplateId": "dd8b17fe-EXAMPLE",
           "approvalRuleTemplateContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
           "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
           "approvalRuleTemplateDescription": "Requires two developers from the team to approve the pull request if the destination branch is main",
           "lastModifiedDate": 1571356106.936,
           "ruleContentSha256": "4711b576EXAMPLE"
       }
   }
   ```