Buat aturan persetujuan untuk permintaan pull - AWS CodeCommit

AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari lebih lanjut”

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

Buat aturan persetujuan untuk permintaan pull

Membuat aturan persetujuan untuk permintaan pull Anda membantu memastikan kualitas kode Anda dengan mewajibkan pengguna untuk menyetujui permintaan pull sebelum kode dapat digabung ke cabang tujuan. Anda dapat menentukan jumlah pengguna yang harus menyetujui permintaan pull. Anda juga dapat menentukan grup persetujuan pengguna untuk aturan tersebut. Jika Anda melakukannya, hanya persetujuan dari pengguna yang dihitung terhadap jumlah persetujuan yang diperlukan untuk aturan tersebut.

catatan

Anda juga dapat membuat templat aturan persetujuan, yang dapat membantu Anda mengotomatisasi pembuatan aturan persetujuan di seluruh repositori yang akan berlaku untuk setiap permintaan pull. Untuk informasi selengkapnya, lihat Bekerja dengan templat aturan persetujuan.

Anda dapat menggunakan konsol AWS CodeCommit atau AWS CLI untuk membuat aturan persetujuan untuk repositori Anda.

Buat aturan persetujuan untuk permintaan pull (konsol)

Anda dapat menggunakan CodeCommit konsol untuk membuat aturan persetujuan untuk permintaan pull dalam CodeCommit repositori.

  1. Membuka CodeCommit konsol dihttps://console.aws.amazon.com/codesuite/codecommit/home.

  2. Dalam Repositori, pilih nama repositori tempat Anda ingin membuat aturan persetujuan untuk permintaan pull.

  3. Di panel navigasi, pilih Permintaan Pull.

  4. Pilih permintaan pull yang ingin Anda buat aturan persetujuan dari daftar. Anda hanya dapat membuat aturan persetujuan untuk permintaan pull terbuka.

    Daftar permintaan pull untuk repositori di CodeCommit konsol.
  5. Dalam permintaan pull, pilih Persetujuan, lalu pilih Buat aturan persetujuan.

  6. Dalam Nama aturan, berikan aturan nama deskriptif sehingga Anda tahu untuk apa itu. Misalnya, jika Anda ingin meminta dua orang untuk menyetujui permintaan pull sebelum dapat digabung, Anda dapat menyebutkan aturan Require two approvals before merge.

    catatan

    Anda tidak dapat mengubah nama grup persetujuan setelah Anda membuatnya.

    Dalam Jumlah persetujuan yang dibutuhkan, masukkan jumlah yang Anda inginkan. Default-nya adalah 1.

    Membuat aturan persetujuan untuk permintaan pull
  7. (Opsional) Jika Anda ingin meminta persetujuan untuk permintaan pull yang berasal dari grup pengguna tertentu, dalam Anggota aturan persetujuan, pilih Tambahkan. Dalam Jenis penyetuju, pilih salah satu langkah berikut:

    • Nama pengguna IAM atau peran yang diasumsikan: Opsi ini prepopulatesAWSID akun dengan 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. Misalnya, jika Anda masuk dengan akun Amazon Web Services 123456789012 dan memilih opsi ini, dan Anda menentukan Mary_Major, 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_Major (arn:aws:sts::123456789012:federated-user/Mary_Major)

      Opsi ini tidak akan mengenali sesi aktif dari seseorang yang memiliki peran CodeCommitReview dengan nama sesi peran Mary_Major (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 yang sepenuhnya 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 dimiliki yang digunakan oleh layanan AWS, 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 (*) dalam nilainya. Misalnya, jika Anda memilih nama pengguna atau peran yang dimiliki IAM, dan Anda menentukan CodeCommitReview/*, 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_Major maupun Li_Juan dihitung sebagai persetujuan ketika masuk dan memiliki peran CodeCommitReview. Untuk informasi lebih lanjut tentang IAM ARN, wildcard, dan format, lihat Pengidentifikasi IAM.

    catatan

    Aturan persetujuan tidak mendukung persetujuan lintas akun.

  8. Setelah selesai mengonfigurasi aturan persetujuan, pilih Kirimkan.

Buat aturan persetujuan untuk permintaan pull (AWS CLI)

Untuk menggunakanAWS CLIperintah dengan CodeCommit, instalAWS CLI. Untuk informasi selengkapnya, lihat Referensi baris perintah.

Untuk membuat aturan persetujuan untuk permintaan pull dalam CodeCommit repositori

  1. Jalankan perintah create-pull-request-approval-rule, dengan menentukan:

    • ID dari permintaan pull (dengan pilihan --id).

    • Nama aturan persetujuan (dengan pilihan --approval-rule-name).

    • Isi aturan persetujuan (dengan pilihan --approval-rule-content).

    Saat membuat aturan persetujuan, Anda dapat menentukan penyetuju di grup persetujuan dengan salah satu dari dua cara:

    • CodeCommitApprovers: Opsi ini hanya memerlukan akun dan sumber daya Amazon Web Services. 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. Misalnya, jika Anda menentukan akun Amazon Web Services 123456789012 dan Mary_Major, 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_Major (arn:aws:sts::123456789012:federated-user/Mary_Major)

      Opsi ini tidak akan mengenali sesi aktif dari seseorang yang memiliki peran CodeCommitReview dengan nama sesi peran Mary_Major (arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major) kecuali Anda menyertakan wildcard (*Mary_Major).

    • ARN yang sepenuhnya memenuhi syarat: Opsi ini memungkinkan Anda untuk menentukan Amazon Resource Name (ARN) yang memenuhi syarat dari pengguna atau peran IAM.

    Untuk informasi lebih lanjut tentang IAM ARN, wildcard, dan format, lihat Pengidentifikasi IAM.

    Contoh berikut membuat aturan persetujuan bernama Require two approved approvers untuk permintaan pull dengan ID dari 27. Aturan menetapkan dua persetujuan diperlukan dari grup persetujuan. Kolam renang mencakup semua pengguna yang mengakses CodeCommit dan mengasumsikan peranCodeCommitReviewdi dalam123456789012Akun Amazon Web Services. Ini juga mencakup pengguna IAM atau pengguna gabungan bernama Nikhil_Jayashankar di akun Amazon Web Services yang sama:

    aws codecommit create-pull-request-approval-rule --pull-request-id 27 --approval-rule-name "Require two approved approvers" --approval-rule-content "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:123456789012:Nikhil_Jayashankar\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}"
  2. Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

    { "approvalRule": { "approvalRuleName": "Require two approved approvers", "lastModifiedDate": 1570752871.932, "ruleContentSha256": "7c44e6ebEXAMPLE", "creationDate": 1570752871.932, "approvalRuleId": "aac33506-EXAMPLE", "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:123456789012:Nikhil_Jayashankar\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major" } }