

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

# Bekerja dengan permintaan tarik di AWS CodeCommit repositori
<a name="pull-requests"></a>

Permintaan pull adalah cara utama Anda dan pengguna repositori lainnya dapat meninjau, mengomentari, dan menggabungkan perubahan kode dari satu cabang ke cabang lainnya. Anda dapat menggunakan permintaan pull untuk secara kolaboratif meninjau perubahan kode untuk perubahan kecil atau perbaikan, penambahan fitur utama, atau versi baru dari perangkat lunak yang dirilis. Berikut adalah salah satu alur kerja yang mungkin untuk permintaan pull:

Li Juan, seorang pengembang yang bekerja di repo bernama MyDemoRepo, ingin mengerjakan fitur baru untuk versi produk yang akan datang. Untuk menjaga pekerjaannya terpisah dari kode siap produksi, dia membuat cabang dari cabang default dan menamainya. *feature-randomizationfeature* Dia menulis kode, membuat commit, dan mendorong kode fitur baru ke cabang ini. Dia menginginkan pengguna repositori lain untuk meninjau kode untuk kualitas sebelum dia menggabungkan perubahannya ke cabang default. Untuk melakukan ini, dia membuat permintaan pull. Permintaan pull berisi perbandingan antara cabang kerjanya dan cabang kode di mana dia bermaksud untuk menggabungkan perubahannya (dalam hal ini, cabang default). Dia juga dapat membuat aturan persetujuan yang mengharuskan sejumlah pengguna tertentu untuk menyetujui permintaan pull-nya. Dia bahkan bisa menentukan grup persetujuan pengguna. Pengguna lain meninjau kode dan perubahannya, menambahkan komentar dan saran. Dia mungkin memperbarui cabang kerjanya beberapa kali dengan perubahan kode dalam menanggapi komentar. Perubahannya dimasukkan ke dalam permintaan tarik setiap kali dia mendorongnya ke cabang itu. CodeCommit Dia mungkin juga menggabungkan perubahan yang telah dibuat di cabang tujuan yang dimaksudkan sementara permintaan pull terbuka, sehingga pengguna dapat yakin mereka meninjau semua perubahan yang diusulkan dalam konteks. Ketika dia dan pengulasnya puas, dan kondisi untuk aturan persetujuan (jika ada) telah puas, dia atau salah satu pengulasnya menggabungkan kode dan menutup permintaan pull. 

![\[Membuat permintaan pull\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-create.png)


Permintaan pull memerlukan dua cabang: cabang sumber yang berisi kode yang ingin Anda tinjau, dan cabang tujuan, di mana Anda menggabungkan kode yang ditinjau. Cabang sumber berisi commit SETELAH, yang merupakan komit yang berisi perubahan yang ingin Anda gabungkan ke cabang tujuan. Cabang tujuan berisi commit SEBELUM, yang mewakili keadaan kode sebelum cabang permintaan pull digabung ke cabang tujuan. Pilihan strategi penggabungan memengaruhi detail bagaimana komit digabungkan antara cabang sumber dan tujuan di konsol. CodeCommit Untuk informasi selengkapnya tentang strategi penggabungan CodeCommit, lihat[Menggabungkan permintaan pull (konsol)](how-to-merge-pull-request.md#how-to-merge-pull-request-console).

![\[Sumber dan tujuan cabang untuk permintaan pull, menunjukkan hubungan antara commit sebelum dan sesudah\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-concepts.png)


Permintaan pull menampilkan perbedaan antara ujung cabang sumber dan commit terbaru pada cabang tujuan ketika permintaan pull dibuat, sehingga pengguna dapat melihat dan mengomentari perubahan. Anda dapat memperbarui permintaan pull dalam menanggapi komentar dengan melakukan dan mengirim perubahan ke cabang sumber. 

![\[Menambahkan komentar pada baris dalam permintaan pull.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-comment.png)


Ketika kode Anda telah ditinjau, dan persyaratan aturan persetujuan (jika ada) telah terpenuhi, Anda dapat menutup permintaan pull dengan salah satu dari beberapa cara: 
+ Menggabungkan cabang-cabang lokal dan mengirim perubahan Anda. Ini menutup permintaan secara otomatis jika strategi penggabungan maju cepat digunakan dan tidak ada konflik penggabungan.
+ Gunakan AWS CodeCommit konsol untuk menutup permintaan tarik tanpa menggabungkan, menyelesaikan konflik dalam penggabungan, atau, jika tidak ada konflik, tutup dan gabungkan cabang menggunakan salah satu strategi penggabungan yang tersedia.
+ Gunakan AWS CLI.

Sebelum Anda membuat permintaan pull:
+ Pastikan bahwa Anda telah membuat commit dan mengirim perubahan kode yang ingin Anda tinjau ke cabang (sumber cabang).
+ Mengatur pemberitahuan untuk repositori Anda, sehingga pengguna lain dapat diberitahu tentang permintaan pull dan perubahan untuk itu. (Langkah ini memang opsional, tetapi direkomendasikan.)
+ Buat dan kaitkan templat aturan persetujuan dengan repositori Anda, sehingga aturan persetujuan dibuat secara otomatis untuk permintaan pull untuk membantu memastikan kualitas kode. Untuk informasi selengkapnya, lihat [Bekerja dengan templat aturan persetujuan](approval-rule-templates.md).

Permintaan pull lebih efektif ketika Anda telah mengatur pengguna IAM untuk pengguna repositori Anda di akun Amazon Web Services Anda. Lebih mudah untuk mengidentifikasi pengguna mana yang membuat komentar. Keuntungan lainnya adalah bahwa pengguna IAM dapat menggunakan kredensial Git untuk akses repositori. Untuk informasi selengkapnya, lihat [Langkah 1: Konfigurasi awal untuk CodeCommit](setting-up-gc.md#setting-up-gc-account). Anda dapat menggunakan permintaan pull dengan jenis pengguna lainnya, termasuk pengguna akses gabungan.

Untuk informasi tentang bekerja dengan aspek lain dari repositori Anda di CodeCommit, lihat,[Bekerja dengan repositori](repositories.md),,[Bekerja dengan templat aturan persetujuan](approval-rule-templates.md), [Bekerja dengan file](files.md) [Bekerja dengan commit](commits.md)[Bekerja dengan cabang](branches.md), dan. [Bekerja dengan preferensi pengguna](user-preferences.md) 

**Topics**
+ [Membuat sebuah pull request](how-to-create-pull-request.md)
+ [Buat aturan persetujuan untuk permintaan pull](how-to-create-pull-request-approval-rule.md)
+ [Lihat permintaan tarik dalam AWS CodeCommit repositori](how-to-view-pull-request.md)
+ [Meninjau permintaan pull](how-to-review-pull-request.md)
+ [Memperbarui sebuah permintaan pull](how-to-update-pull-request.md)
+ [Mengedit atau menghapus aturan persetujuan untuk permintaan pull](how-to-edit-delete-pull-request-approval-rule.md)
+ [Menimpa aturan persetujuan pada sebuah permintaan pull](how-to-override-approval-rules.md)
+ [Gabungkan permintaan tarik dalam repositori AWS CodeCommit](how-to-merge-pull-request.md)
+ [Menyelesaikan konflik dalam permintaan tarik di AWS CodeCommit repositori](how-to-resolve-conflict-pull-request.md)
+ [Tutup permintaan tarik di AWS CodeCommit repositori](how-to-close-pull-request.md)

# Membuat sebuah pull request
<a name="how-to-create-pull-request"></a>

Membuat pull request akan membantu pengguna lain melihat dan meninjau perubahan kode Anda sebelum Anda menggabungkan mereka ke cabang lain. Pertama, Anda harus membuat sebuah cabang untuk perubahan kode Anda. Hal ini disebut sebagai cabang sumber untuk sebuah pull request. Setelah Anda melakukan commit dan push pada perubahan ke repositori, Anda dapat membuat pull request yang membandingkan isi dari cabang tersebut (sumber cabang) ke cabang di mana Anda ingin menggabungkan perubahan Anda setelah pull request ditutup (cabang tujuan). 

Anda dapat menggunakan AWS CodeCommit konsol atau AWS CLI untuk membuat permintaan tarik untuk repositori Anda. 

**Topics**
+ [Membuat sebuah pull request (konsol)](#how-to-create-pull-request-console)
+ [Membuat sebuah pull request (AWS CLI)](#how-to-create-pull-request-cli)

## Membuat sebuah pull request (konsol)
<a name="how-to-create-pull-request-console"></a>

Anda dapat menggunakan CodeCommit konsol untuk membuat permintaan tarik di CodeCommit repositori. Jika repositori Anda [dikonfigurasi dengan notifikasi](how-to-repository-email.md), pengguna yang berlangganan akan menerima email saat Anda membuat sebuah pull request.

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

1. Di **Repositori**, pilih nama repositori tempat Anda ingin membuat sebuah pull request. 

1. Di panel navigasi, pilih **Permintaan Pull**.
**Tip**  
Anda juga dapat membuat pull request dari **Cabang** dan **Kode**.

1. Pilih **Membuat permintaan pull**.   
![\[Membuat permintaan tarik dari halaman permintaan Tarik di CodeCommit konsol.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Di **Buat permintaan pull**, di **Sumber**, pilih cabang yang berisi perubahan yang ingin Anda tinjau. 

1. Di **Tujuan**, pilih cabang di mana Anda berniat untuk menggabungkan perubahan kode Anda ketika permintaan pull ditutup. 

1. Pilih **Bandingkan**. Perbandingan berjalan pada dua cabang, dan perbedaan di antara keduanya akan ditampilkan. Analisis juga dilakukan untuk menentukan apakah dua cabang tersebut dapat digabung secara otomatis ketika permintaan pull ditutup.

1. Tinjau detail perbandingan dan perubahan untuk memastikan bahwa permintaan pull berisi perubahan dan perbaikan yang ingin Anda tinjau. Jika tidak, sesuaikan pilihan Anda untuk cabang sumber dan tujuan, lalu pilih **Bandingkan** sekali lagi.

1. Ketika Anda puas dengan hasil perbandingan pull request, pada **Judul**, masukkan deskripsi singkat namun deskriptif untuk tinjauan ini. Ini adalah judul yang muncul dalam daftar permintaan pull untuk repositori. 

1. (Opsional) Di **Deskripsi**, masukkan detail tentang tinjauan ini dan informasi berguna lainnya untuk peninjau.

1. Pilih **Buat**.  
![\[Membuat permintaan pull\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-create.png)

Permintaan pull Anda muncul dalam daftar permintaan pull untuk repositori. Jika Anda [telah mengkonfigurasi notifikasi](how-to-repository-email.md), pelanggan untuk topik Amazon SNS akan menerima email untuk menginformasikan mereka tentang permintaan pull yang baru saja dibuat.

## Membuat sebuah pull request (AWS CLI)
<a name="how-to-create-pull-request-cli"></a>

Untuk menggunakan AWS CLI perintah dengan CodeCommit, instal file AWS CLI. Untuk informasi selengkapnya, lihat [Referensi baris perintah](cmd-ref.md). 

**Untuk menggunakan AWS CLI untuk membuat permintaan tarik di CodeCommit repositori**
+ Jalankan perintah **create-pull-request**, dengan menentukan:
  + Nama pull request (dengan opsi **--title**).
  + Deskripsi pull request (dengan opsi **--description**).
  + Daftar target untuk perintah **create-pull-request**, termasuk:
    + Nama CodeCommit repositori tempat permintaan tarik dibuat (dengan **repositoryName** atribut).
    + Nama cabang yang berisi perubahan kode yang ingin Anda tinjau, juga dikenal sebagai cabang sumber (dengan atribut **sourceReference**).
    + (Opsional) Nama cabang di mana Anda berniat untuk menggabungkan perubahan kode Anda, juga dikenal sebagai cabang tujuan, jika Anda tidak ingin menggabungkan ke cabang default (dengan atribut **destinationReference**).
  + Sebuah token idempotensi yang unik dan dihasilkan klien (dengan opsi **--client-request-token**). 

  Contoh ini membuat permintaan tarik bernama *Pronunciation difficulty analyzer* dengan deskripsi *Please review these changes by Tuesday* yang menargetkan cabang *jane-branch* sumber. Permintaan tarik harus digabungkan ke cabang *main* default dalam CodeCommit repositori bernama: `MyDemoRepo`

  ```
  aws codecommit create-pull-request --title "Pronunciation difficulty analyzer" --description "Please review these changes by Tuesday" --client-request-token 123Example --targets repositoryName=MyDemoRepo,sourceReference=jane-branch 
  ```

# Buat aturan persetujuan untuk permintaan pull
<a name="how-to-create-pull-request-approval-rule"></a>

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 mengotomatiskan pembuatan aturan persetujuan di seluruh repositori yang akan berlaku untuk setiap permintaan tarik. Untuk informasi selengkapnya, lihat [Bekerja dengan templat aturan persetujuan](approval-rule-templates.md).

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

**Topics**
+ [Buat aturan persetujuan untuk permintaan pull (konsol)](#how-to-create-pull-request-approval-rule-console)
+ [Buat aturan persetujuan untuk permintaan pull (AWS CLI)](#how-to-create-pull-request-approval-rule-cli)

## Buat aturan persetujuan untuk permintaan pull (konsol)
<a name="how-to-create-pull-request-approval-rule-console"></a>

Anda dapat menggunakan CodeCommit konsol untuk membuat aturan persetujuan untuk permintaan tarik di CodeCommit repositori. 

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

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

1. Di panel navigasi, pilih **Permintaan Pull**.

1. Pilih permintaan pull yang ingin Anda buat aturan persetujuan dari daftar. Anda hanya dapat membuat aturan persetujuan untuk permintaan pull terbuka.  
![\[Daftar permintaan tarik untuk repositori di konsol. CodeCommit\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Dalam permintaan pull, pilih **Persetujuan**, lalu pilih **Buat aturan persetujuan**. 

1. 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\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-create-approval-rule.png)

1. (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 atau peran yang dimiliki pengguna IAM**: Opsi ini terlebih dulu mengumpulkan ID akun AWS 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\$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 akan mengenali sesi aktif dari seseorang yang 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. Setelah selesai mengonfigurasi aturan persetujuan, pilih **Kirimkan**.

 

## Buat aturan persetujuan untuk permintaan pull (AWS CLI)
<a name="how-to-create-pull-request-approval-rule-cli"></a>

Untuk menggunakan AWS CLI perintah dengan CodeCommit, instal file AWS CLI. Untuk informasi selengkapnya, lihat [Referensi baris perintah](cmd-ref.md). 

## Untuk membuat aturan persetujuan untuk permintaan tarik di CodeCommit repositori

+ 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 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. Misalnya, jika Anda menentukan akun Amazon Web Services 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 akan mengenali sesi aktif dari seseorang yang memiliki peran **CodeCommitReview** dengan nama sesi peran Mary\$1Major (`arn:aws:sts::123456789012:assumed-role/CodeCommitReview/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 aturan persetujuan bernama `Require two approved approvers` untuk permintaan tarik dengan ID dari`27`. Aturan menetapkan dua persetujuan diperlukan dari grup persetujuan. Kumpulan ini mencakup semua pengguna yang mengakses CodeCommit dan mengambil peran **CodeCommitReview** dalam akun `123456789012` Amazon Web Services. Ini juga mencakup pengguna IAM atau pengguna federasi yang disebutkan `Nikhil_Jayashankar` dalam 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/*\"]}]}"
  ```

# Lihat permintaan tarik dalam AWS CodeCommit repositori
<a name="how-to-view-pull-request"></a>

Anda dapat menggunakan AWS CodeCommit konsol atau AWS CLI untuk melihat permintaan tarik untuk repositori Anda. Secara default, Anda hanya melihat permintaan pull terbuka, tetapi Anda dapat mengubah filter untuk melihat semua permintaan pull, hanya permintaan tertutup, hanya menarik permintaan yang Anda buat, dan lainnya. 

**Topics**
+ [Tampilkan permintaan pull (konsol)](#how-to-view-pull-request-console)
+ [Lihat permintaan pull (AWS CLI)](#how-to-view-pull-request-cli)

## Tampilkan permintaan pull (konsol)
<a name="how-to-view-pull-request-console"></a>

Anda dapat menggunakan AWS CodeCommit konsol untuk melihat daftar permintaan tarik di CodeCommit repositori. Dengan mengubah filter, Anda dapat mengubah tampilan daftar untuk hanya menampilkan serangkaian permintaan pull tertentu. Misalnya, Anda dapat melihat daftar permintaan pull yang Anda buat dengan status **Terbuka**, atau Anda dapat memilih filter lain dan melihat permintaan pull yang Anda buat dengan status **Ditutup**.

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

1. Dalam **Repositori**, pilih nama repositori tempat Anda ingin menampilkan permintaan pull. 

1. Di panel navigasi, pilih **Permintaan Pull**.

1. Secara default, daftar semua permintaan pull terbuka ditampilkan.   
![\[Permintaan tarik ditampilkan di AWS CodeCommit konsol.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-view-list.png)

1. Untuk mengubah filter tampilan, pilih dari daftar filter yang tersedia:
   + **Permintaan pull terbuka** (default): Menampilkan semua permintaan pull dengan status **Terbuka**.
   + **Semua permintaan pull**: Menampilkan semua permintaan pull.
   + **Permintaan pull ditutup**: Menampilkan semua permintaan pull dengan status **Ditutup**.
   + **Permintaan pull saya**: Menampilkan semua permintaan pull yang Anda buat, apa pun statusnya. Ini tidak menampilkan ulasan yang telah Anda komentari atau yang terdapat partisipasi Anda.
   + **Permintaan pull terbuka saya**: Menampilkan semua permintaan pull yang Anda buat dengan status **Terbuka**.
   + **Permintaan pull ditutup saya**: Menampilkan semua permintaan pull yang Anda buat dengan status **Ditutup**.

1. Jika Anda menemukan permintaan pull dalam daftar yang ditampilkan yang ingin Anda lihat, pilihlah permintaan pull tersebut.

## Lihat permintaan pull (AWS CLI)
<a name="how-to-view-pull-request-cli"></a>

Untuk menggunakan AWS CLI perintah dengan CodeCommit, instal file AWS CLI. Untuk informasi selengkapnya, lihat [Referensi baris perintah](cmd-ref.md). 

Ikuti langkah-langkah ini untuk menggunakan AWS CLI untuk melihat permintaan tarik dalam CodeCommit repositori.

1. Untuk menampilkan daftar permintaan pull dalam repositori, jalankan perintah **list-pull-requests**, menentukan:
   + Nama CodeCommit repositori tempat Anda ingin melihat permintaan tarik (dengan **--repository-name** opsi).
   + (Opsional) Status permintaan pull (dengan opsi **--pull-request-status**).
   + (Opsional) Amazon Resource Name (ARN) dari IAM pengguna yang menciptakan permintaan pull (dengan opsi **--author-arn**).
   + (Opsional) Sebuah token enumerasi yang dapat digunakan untuk mengembalikan batch berikutnya dari hasil (dengan opsi **--next-token**) 
   + (Opsional) Batas jumlah hasil yang dikembalikan per permintaan (dengan opsi **--max-results**).

   Misalnya, untuk membuat daftar permintaan tarik yang dibuat oleh pengguna IAM dengan *arn:aws:iam::111111111111:user/Li\$1Juan* ARN dan status dalam *CLOSED* repositori CodeCommit bernama: `MyDemoRepo`

   ```
   aws codecommit list-pull-requests --author-arn arn:aws:iam::111111111111:user/Li_Juan --pull-request-status CLOSED --repository-name MyDemoRepo 
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

   ```
   {
      "nextToken": "",
      "pullRequestIds": ["2","12","16","22","23","35","30","39","47"]
   }
   ```

    IDs Permintaan tarik ditampilkan dalam urutan aktivitas terbaru.

1. Untuk melihat rincian permintaan pull, jalankan perintah **get-pull-request** dengan opsi **--pull-request-id**, menentukan ID dari permintaan pull. Misalnya, untuk melihat informasi tentang permintaan tarik dengan ID*27*:

   ```
   aws codecommit get-pull-request --pull-request-id 27
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "2-approver-rule-for-main",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "lastActivityDate": 1562619583.565,
           "pullRequestTargets": [
               {
                   "sourceCommit": "ca45e279EXAMPLE",
                   "sourceReference": "refs/heads/bugfix-1234",
                   "mergeBase": "a99f5ddbEXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": false
                   },
                   "destinationCommit": "2abfc6beEXAMPLE",
                   "repositoryName": "MyDemoRepo"
               }
           ],
           "revisionId": "e47def21EXAMPLE",
           "title": "Quick fix for bug 1234",
           "authorArn": "arn:aws:iam::123456789012:user/Nikhil_Jayashankar",
           "clientRequestToken": "d8d7612e-EXAMPLE",
           "creationDate": 1562619583.565,
           "pullRequestId": "27",
           "pullRequestStatus": "OPEN"
       }
   }
   ```

1. <a name="get-pull-request-approval-state"></a>Untuk menampilkan persetujuan pada permintaan pull, jalankan perintah **get-pull-request-approval-state**, menentukan:
   + ID dari permintaan pull (menggunakan opsi **--pull-request-id**).
   + ID revisi dari permintaan pull (menggunakan **--revision-id option)**. Anda bisa mendapatkan ID revisi saat ini untuk permintaan pull dengan menggunakan perintah [get-pull-request](#get-pull-request).

   Misalnya, untuk melihat persetujuan pada permintaan tarik dengan ID dari *8* dan ID revisi dari: *9f29d167EXAMPLE*

   ```
   aws codecommit get-pull-request-approval-state --pull-request-id 8 --revision-id 9f29d167EXAMPLE
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

   ```
   {
       "approvals": [
           {
               "userArn": "arn:aws:iam::123456789012:user/Mary_Major",
               "approvalState": "APPROVE"
           }
       ]
   }
   ```

1. Untuk menampilkan peristiwa dalam permintaan pull, jalankan perintah **describe-pull-request-events** dengan **--pull-request-id**, menentukan ID dari permintaan pull. Misalnya, untuk melihat peristiwa untuk permintaan tarik dengan ID*8*:

   ```
   aws codecommit describe-pull-request-events --pull-request-id 8
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

   ```
   {
       "pullRequestEvents": [
           {
               "pullRequestId": "8",
               "pullRequestEventType": "PULL_REQUEST_CREATED",
               "eventDate": 1510341779.53,
               "actor": "arn:aws:iam::111111111111:user/Zhang_Wei"
           },
           {
               "pullRequestStatusChangedEventMetadata": {
                   "pullRequestStatus": "CLOSED"
               },
               "pullRequestId": "8",
               "pullRequestEventType": "PULL_REQUEST_STATUS_CHANGED",
               "eventDate": 1510341930.72,
               "actor": "arn:aws:iam::111111111111:user/Jane_Doe"
           }
       ]
   }
   ```

1. Untuk menampilkan apakah ada konflik penggabungan untuk permintaan pull, jalankan perintah **get-merge-conflicts**, menentukan:
   + Nama CodeCommit repositori (dengan **--repository-name** opsi).
   + Cabang, tanda, HEAD, atau referensi memenuhi syarat lainnya untuk sumber perubahan untuk digunakan dalam evaluasi penggabungan (dengan opsi **--source-commit-specifier**).
   + Cabang, tanda, HEAD, atau referensi memenuhi syarat lainnya untuk tujuan perubahan untuk digunakan dalam evaluasi penggabungan (dengan opsi **--destination-commit-specifier**).
   + Opsi penggabungan yang akan digunakan (dengan opsi **--merge-option**) 

   Misalnya, untuk melihat apakah ada konflik gabungan antara ujung cabang sumber bernama *my-feature-branch* dan cabang tujuan bernama *main* dalam repositori bernama: `MyDemoRepo`

   ```
   aws codecommit get-merge-conflicts --repository-name MyDemoRepo --source-commit-specifier my-feature-branch --destination-commit-specifier main --merge-option FAST_FORWARD_MERGE
   ```

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

   ```
   {
       "destinationCommitId": "fac04518EXAMPLE",
       "mergeable": false,
       "sourceCommitId": "16d097f03EXAMPLE"
   }
   ```

# Meninjau permintaan pull
<a name="how-to-review-pull-request"></a>

Anda dapat menggunakan AWS CodeCommit konsol untuk meninjau perubahan yang disertakan dalam permintaan tarik. Anda dapat menambahkan komentar untuk permintaan, file, dan baris kode individu. Anda juga dapat membalas komentar yang dibuat oleh pengguna lain. Jika repositori Anda adalah [dikonfigurasi dengan notifikasi](how-to-repository-email.md), Anda menerima email ketika pengguna membalas komentar Anda atau ketika pengguna mengomentari permintaan pull.

Anda dapat menggunakan AWS CLI untuk mengomentari permintaan tarik dan membalas komentar. Untuk meninjau perubahan, Anda harus menggunakan CodeCommit konsol, **git diff** perintah, atau alat diff.

**Topics**
+ [Meninjau permintaan pull (konsol)](#how-to-review-pull-request-console)
+ [Tinjau permintaan pull (AWS CLI)](#how-to-review-pull-request-cli)

## Meninjau permintaan pull (konsol)
<a name="how-to-review-pull-request-console"></a>

Anda dapat menggunakan CodeCommit konsol untuk meninjau permintaan tarik di CodeCommit repositori. 

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

1. Di **Repositori**, pilih nama repositori. 

1. Di panel navigasi, pilih **Permintaan pull**.

1. Secara default, daftar semua permintaan pull terbuka ditampilkan. Pilih permintaan pull terbuka yang ingin Anda tinjau.   
![\[Buka permintaan tarik yang ditampilkan di CodeCommit konsol.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-view-list.png)
**catatan**  
Anda dapat mengomentari permintaan pull tertutup atau digabung, tetapi Anda tidak dapat menggabungkan atau membukanya kembali.

1. Dalam permintaan pull, pilih **Perubahan**.

1. Lakukan salah satu tindakan berikut:
   + Untuk menambahkan komentar umum untuk seluruh permintaan pull, di **Komentar perubahan**, di **Komentar baru**, masukkan komentar, dan kemudian pilih **Simpan**. Anda dapat menggunakan [Markdown](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html), atau Anda dapat memasukkan komentar Anda di plaintext.  
![\[Sebuah komentar umum pada perubahan dalam permintaan pull.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-commenting-changecomment.png)
   + Untuk menambahkan komentar ke file dalam commit, dalam **Perubahan**, cari nama file. Pilih ikon komentar ![\[The comment bubble icon that that indicates that you can leave a comment on that line of code.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-commentbubble.png) yang muncul di samping nama file, masukkan komentar, dan kemudian pilih **Simpan**.   
![\[Menambahkan komentar pada file dalam permintaan pull.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-commenting-addfilecomment.png)
   + Untuk menambahkan komentar ke baris yang diubah dalam permintaan pull, di **Perubahan**, pergi ke baris yang ingin Anda komentari. Pilih ikon komentar ![\[The comment bubble icon that that indicates that you can leave a comment on that line of code.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-commentbubble.png) yang muncul untuk baris tersebut, masukkan komentar, dan kemudian pilih **Simpan**.   
![\[Menambahkan komentar pada baris dalam permintaan pull.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-comment.png)

1. Untuk membalas komentar pada komit, di **Perubahan** atau **Aktivitas**, pilih **Balas**. Anda dapat membalas dengan teks dan dengan emoji.   
![\[Menambahkan balasan dan reaksi emoji pada komentar.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-commenting-commenttab.png)

   Anda dapat melihat nama-nama mereka yang menanggapi dengan jawaban reaksi emoji tertentu dengan memilihnya. Untuk melihat semua reaksi emoji dan informasi tentang siapa yang menanggapi emoji, pilih **Lihat semua reaksi**. Jika Anda menanggapi dengan emoji pada komentar, respons Anda akan ditampilkan di ikon tombol reaksi emoji.
**catatan**  
Jumlah reaksi yang ditampilkan di konsol akurat sejak halaman dimuat. Untuk informasi terkini tentang jumlah reaksi emoji, segarkan halaman, atau pilih **Lihat semua reaksi**.  
![\[Melihat informasi tentang pengguna yang menanggapi komentar dengan reaksi emoji.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-comment-view-reaction.png)

1. (Opsional) Untuk membalas rekomendasi yang dibuat oleh Amazon CodeGuru Reviewer, termasuk memberikan umpan balik tentang kualitas rekomendasi, pilih **Balas**. Gunakan tombol reaksi untuk memberikan informasi umum tentang apakah Anda menyetujui atau tidak menyetujui rekomendasi tersebut. Gunakan kolom komentar untuk memberikan rincian lebih lanjut tentang reaksi Anda.
**catatan**  
Amazon CodeGuru Reviewer adalah layanan peninjauan kode otomatis yang menggunakan analisis program dan pembelajaran mesin untuk mendeteksi masalah umum dan merekomendasikan perbaikan dalam kode Java atau Python Anda.  
Anda hanya melihat komentar Amazon CodeGuru Reviewer jika Anda telah mengaitkan repositori dengan Amazon CodeGuru Reviewer, jika analisisnya selesai, dan jika kode dalam permintaan tarik adalah kode Java atau Python. Untuk informasi selengkapnya, lihat [Mengaitkan atau memisahkan AWS CodeCommit repositori dengan Amazon Reviewer CodeGuru](how-to-amazon-codeguru-reviewer.md).
Komentar Amazon CodeGuru Reviewer hanya muncul di tab **Perubahan** jika komentar dibuat pada revisi terbaru dari permintaan tarik. Mereka selalu muncul di tab **Aktivitas**.
Meskipun Anda dapat merespons dengan reaksi emoji apa pun yang tersedia terhadap rekomendasi Amazon CodeGuru Reviewer, hanya reaksi emoji jempol ke atas dan jempol ke bawah yang digunakan untuk mengevaluasi kegunaan rekomendasi tersebut.   
![\[Rekomendasi yang dibuat oleh Amazon CodeGuru Reviewer dengan pekerjaan peninjauan sedang berlangsung.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-reply-bot.png)

1. Untuk menyetujui perubahan yang dibuat dalam permintaan pull, pilih **Setujui**. 
**catatan**  
Anda tidak dapat menyetujui permintaan pull yang Anda buat.

   Anda dapat melihat persetujuan, aturan persetujuan untuk permintaan pull, dan persetujuan aturan yang dibuat oleh templat aturan persetujuan di **Persetujuan**. Jika Anda memutuskan Anda tidak ingin menyetujui permintaan pull setelah semua, Anda dapat memilih **Cabut persetujuan**.
**catatan**  
Anda hanya dapat menyetujui atau mencabut persetujuan atas permintaan pull terbuka. Anda tidak dapat menyetujui atau mencabut persetujuan permintaan pull yang statusnya digabung atau ditutup.  
![\[Persetujuan dan persetujuan aturan dalam permintaan pull.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-approval-rule-met.png)

## Tinjau permintaan pull (AWS CLI)
<a name="how-to-review-pull-request-cli"></a>

Untuk menggunakan AWS CLI perintah dengan CodeCommit, instal file AWS CLI. Untuk informasi selengkapnya, lihat [Referensi baris perintah](cmd-ref.md). 

Anda dapat meninjau permintaan tarik dengan AWS CLI perintah berikut:
+ [**post-comment-for-pull-request**](#post-comment-reply), untuk menambahkan komentar ke permintaan pull
+ [**get-comments-for-pull-request**](#get-comments-for-pull-request), untuk melihat komentar yang tersisa pada permintaan pull
+ [**update-pull-request-approval-state**](#update-pull-request-approval-state), untuk menyetujui atau mencabut persetujuan untuk permintaan pull
+ [**post-comment-reply**](#post-comment-reply), untuk membalas komentar dalam permintaan pull

Anda juga dapat menggunakan emoji dengan komentar dalam permintaan pull dengan perintah berikut: 
+ Untuk membalas komentar dengan emoji, jalankan [**put-comment-reaction**](how-to-commit-comment.md#how-to-commit-comment-cli-commit-reply-emoji).
+ Untuk menampilkan reaksi emoji pada komentar, jalankan [**get-comment-reactions**](how-to-commit-comment.md#how-to-commit-comment-cli-commit-emoji-view).

**Untuk menggunakan AWS CLI untuk meninjau permintaan tarik dalam CodeCommit repositori**

1. Untuk menambahkan komentar untuk permintaan pull dalam repositori, jalankan perintah **post-comment-for-pull-request**, menentukan:
   + ID dari permintaan pull (dengan opsi **--pull-request-id**).
   + Nama repositori yang berisi permintaan pull (dengan opsi **--repository-name**).
   + ID commit penuh dari commit di cabang tujuan dimana permintaan pull digabung (dengan opsi **--before-commit-id**).
   + ID commit penuh commit di cabang sumber yang ujung cabang saat ini untuk permintaan pull ketika Anda mengirim komentar (dengan opsi **--after-commit-id**).
   + Token idempotensi yang unik dan dihasilkan klien (dengan opsi **--client-request-token**).
   + Isi dari komentar Anda (dengan opsi **--content**).
   + Daftar informasi lokasi tentang tempat untuk menempatkan komentar, termasuk:
     + Nama file yang dibandingkan, termasuk ekstensi dan subdirektori, jika ada (dengan opsi **filePath**).
     + Nomor baris perubahan dalam file dibandingkan (dengan opsi **filePosition**).
     + Apakah komentar pada perubahan adalah "sebelum" atau "setelah" dalam perbandingan antara sumber dan cabang tujuan (dengan opsi **relativeFileVersion**).

   Misalnya, gunakan perintah ini untuk menambahkan komentar *"These don't appear to be used anywhere. Can we remove them?"* pada perubahan ke *ahs\$1count.py* file dalam permintaan tarik dengan ID *47* dalam repositori bernama. *MyDemoRepo*

   ```
   aws codecommit post-comment-for-pull-request --pull-request-id "47" --repository-name MyDemoRepo --before-commit-id 317f8570EXAMPLE --after-commit-id 5d036259EXAMPLE --client-request-token 123Example --content "These don't appear to be used anywhere. Can we remove them?" --location filePath=ahs_count.py,filePosition=367,relativeFileVersion=AFTER   
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut.

   ```
   { 
            "afterBlobId": "1f330709EXAMPLE",
            "afterCommitId": "5d036259EXAMPLE",
            "beforeBlobId": "80906a4cEXAMPLE",
            "beforeCommitId": "317f8570EXAMPLE",
            "comment": {
                  "authorArn": "arn:aws:iam::111111111111:user/Saanvi_Sarkar",
                  "clientRequestToken": "123Example",
                  "commentId": "abcd1234EXAMPLEb5678efgh",
                  "content": "These don't appear to be used anywhere. Can we remove them?",
                  "creationDate": 1508369622.123,
                  "deleted": false,
                  "lastModifiedDate": 1508369622.123,
                  "callerReactions": [],
                  "reactionCounts": []
               }
                "location": { 
                  "filePath": "ahs_count.py",
                  "filePosition": 367,
                  "relativeFileVersion": "AFTER"
                },
            "repositoryName": "MyDemoRepo",
            "pullRequestId": "47"
    }
   ```

1. Untuk melihat komentar untuk permintaan pull, jalankan perintah **get-comments-for-pull-request**, menentukan:
   + Nama CodeCommit repositori (dengan `--repository-name` opsi).
   + ID yang dihasilkan sistem dari permintaan pull (dengan opsi `--pull-request-id`).
   + (Opsional) Sebuah enumerasi token untuk mengembalikan batch berikutnya dari hasil (dengan opsi `--next-token`).
   + (Opsional) Sebuah bilangan bulat non-negatif untuk membatasi jumlah hasil yang dikembalikan (dengan opsi `--max-results`).

   Misalnya, gunakan perintah ini untuk melihat komentar untuk permintaan pull dengan ID 42.

   ```
   aws codecommit get-comments-for-pull-request --pull-request-id 42
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut.

   ```
   {
      "commentsForPullRequestData": [ 
         { 
            "afterBlobId": "1f330709EXAMPLE",
            "afterCommitId": "5d036259EXAMPLE",
            "beforeBlobId": "80906a4cEXAMPLE",
            "beforeCommitId": "317f8570EXAMPLE",
            "comments": [ 
               { 
                  "authorArn": "arn:aws:iam::111111111111:user/Saanvi_Sarkar",
                  "clientRequestToken": "",
                  "commentId": "abcd1234EXAMPLEb5678efgh",
                  "content": "These don't appear to be used anywhere. Can we remove them?",
                  "creationDate": 1508369622.123,
                  "deleted": false,
                  "lastModifiedDate": 1508369622.123,
                  "callerReactions": [],
                  "reactionCounts": 
                   {
                     "THUMBSUP" : 6,
                     "CONFUSED" : 1
                   }
               },
               {
                  "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
                  "clientRequestToken": "",
                  "commentId": "442b498bEXAMPLE5756813",
                  "content": "Good catch. I'll remove them.",
                  "creationDate": 1508369829.104,
                  "deleted": false,
                  "lastModifiedDate": 150836912.273,
                  "callerReactions": ["THUMBSUP"]
                  "reactionCounts": 
                   {
                     "THUMBSUP" : 14
                   }
                }
            ],
            "location": { 
               "filePath": "ahs_count.py",
               "filePosition": 367,
               "relativeFileVersion": "AFTER"
            },
            "repositoryName": "MyDemoRepo",
            "pullRequestId": "42"
         }
      ],
      "nextToken": "exampleToken"
   }
   ```

1. <a name="update-pull-request-approval-state"></a>Untuk menyetujui atau mencabut persetujuan untuk permintaan pull, jalankan perintah **update-pull-request-approval-state**, menentukan:
   + ID dari permintaan pull (menggunakan **--pull-request-id**).
   + ID revisi dari permintaan pull (menggunakan **--revision-id option)**. Anda bisa mendapatkan ID revisi saat ini untuk permintaan pull dengan menggunakan perintah [get-pull-request](how-to-view-pull-request.md#get-pull-request).
   + Status persetujuan yang ingin Anda terapkan pilihan (menggunakan **--approval-state**). Status persetujuan yang valid mencakup `APPROVE` dan `REVOKE`.

   Misalnya, gunakan perintah ini untuk menyetujui permintaan tarik dengan ID *27* dan ID revisi dari. *9f29d167EXAMPLE*

   ```
   aws codecommit update-pull-request-approval-state --pull-request-id 27 --revision-id 9f29d167EXAMPLE --approval-state "APPROVE"
   ```

   Jika berhasil, perintah ini tidak mengembalikan apa pun.

1. Untuk mengirim balasan ke komentar dalam permintaan pull, jalankan perintah **post-comment-reply**, menentukan:
   + ID yang dihasilkan sistem dari komentar yang ingin Anda balas (dengan opsi **--in-reply-to**).
   + Sebuah token idempotensi yang unik dan dihasilkan klien (dengan opsi **--client-request-token**).
   + Isi dari komentar Anda (dengan opsi **--content**). 

    Misalnya, gunakan perintah ini untuk menambahkan balasan *"Good catch. I'll remove them."* ke komentar dengan ID yang dihasilkan sistem dari. *abcd1234EXAMPLEb5678efgh* 

   ```
   aws codecommit post-comment-reply --in-reply-to abcd1234EXAMPLEb5678efgh --content "Good catch. I'll remove them." --client-request-token 123Example
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut.

   ```
   { 
       "comment": {
           "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
           "clientRequestToken": "123Example",
           "commentId": "442b498bEXAMPLE5756813",
           "content": "Good catch. I'll remove them.",
           "creationDate": 1508369829.136,
           "deleted": false,
           "lastModifiedDate": 150836912.221,
           "callerReactions": [],
           "reactionCounts": []
       }
    }
   ```

# Memperbarui sebuah permintaan pull
<a name="how-to-update-pull-request"></a>

Anda dapat memperbarui sebuah permintaan pull dengan perubahan kode lebih lanjut dengan mendorong commit ke cabang sumber permintaan pull yang terbuka. Untuk informasi selengkapnya, lihat [Buat komit di AWS CodeCommit](how-to-create-commit.md).

Anda dapat menggunakan AWS CodeCommit konsol atau AWS CLI untuk memperbarui judul atau deskripsi permintaan tarik. Anda mungkin ingin memperbarui judul atau deskripsi sebuah permintaan pull karena:
+ Pengguna lain tidak memahami deskripsi, atau judul aslinya tidak begitu tepat.
+ Anda ingin judul atau deskripsi agar mencerminkan perubahan yang dibuat ke cabang sumber dari permintaan pull terbuka.

## Memperbarui sebuah permintaan pull (konsol)
<a name="how-to-update-pull-request-console"></a>

Anda dapat menggunakan CodeCommit konsol untuk memperbarui judul dan deskripsi permintaan tarik di CodeCommit repositori. Untuk memperbarui kode dalam permintaan pull, Anda harus melakukan push commit ke cabang sumber dari sebuah permintaan pull terbuka.

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

1. Di **Repositori**, pilih nama repositori tempat Anda ingin memperbarui sebuah permintaan pull. 

1. Di panel navigasi, pilih **Permintaan pull**.

1. Secara default, daftar semua permintaan pull terbuka ditampilkan. Pilih permintaan pull terbuka yang ingin Anda perbarui.

1. Dalam permintaan pull, pilih **Detail**, lalu pilih **Edit detail** untuk mengedit judul atau deskripsi.
**catatan**  
Anda tidak dapat memperbarui judul atau deskripsi permintaan pull yang sudah tertutup atau digabung.

## Memperbarui permintaan pull (AWS CLI)
<a name="how-to-update-pull-request-cli"></a>

Untuk menggunakan AWS CLI perintah dengan CodeCommit, instal file AWS CLI. Untuk informasi selengkapnya, lihat [Referensi baris perintah](cmd-ref.md). 

Anda mungkin juga tertarik dengan perintah-perintah berikut:
+ **[update-pull-request-approval-state](how-to-review-pull-request.md#update-pull-request-approval-state)**, untuk menyetujui atau mencabut persetujuan pada sebuah permintaan pull.
+ [**create-pull-request-approval-rule**](how-to-create-pull-request-approval-rule.md#how-to-create-pull-request-approval-rule-cli), untuk membuat aturan persetujuan untuk sebuah permintaan pull.
+ [**delete-pull-request-approval-rule**](how-to-edit-delete-pull-request-approval-rule.md#delete-pull-request-approval-rule), untuk menghapus aturan persetujuan untuk sebuah permintaan pull.
+ [Buat komit menggunakan AWS CLI](how-to-create-commit.md#how-to-create-commit-cli) atau [Buatlah sebuah commit menggunakan klien Git](how-to-create-commit.md#how-to-create-commit-git), untuk membuat dan mendorong perubahan kode tambahan ke cabang sumber permintaan pull terbuka.

**Untuk menggunakan AWS CLI untuk memperbarui permintaan tarik dalam CodeCommit repositori**

1.  Untuk memperbarui judul permintaan pull dalam sebuah repositori, jalankan perintah **update-pull-request-title**, dengan menentukan:
   + ID dari permintaan pull (dengan pilihan **--pull-request-id**).
   + Judul permintaan pull (dengan pilihan **--title**).

   Misalnya, untuk memperbarui judul permintaan tarik dengan ID*47*:

   ```
   aws codecommit update-pull-request-title --pull-request-id 47 --title "Consolidation of global variables - updated review"  
   ```

1. Untuk memperbarui deskripsi dari sebuah permintaan pull, jalankan perintah **update-pull-request-description**, dengan menentukan:
   + ID dari permintaan pull (dengan pilihan **--pull-request-id**).
   + Deskripsi (dengan pilihan **--description**). 

    Misalnya, untuk memperbarui deskripsi permintaan tarik dengan ID*47*:

   ```
   aws codecommit update-pull-request-description --pull-request-id 47 --description "Updated the pull request to remove unused global variable."
   ```

# Mengedit atau menghapus aturan persetujuan untuk permintaan pull
<a name="how-to-edit-delete-pull-request-approval-rule"></a>

Ketika Anda memiliki sebuah aturan persetujuan pada permintaan pull, Anda tidak dapat menggabungkan permintaan pull tersebut sampai syarat-syaratnya telah terpenuhi. Anda dapat mengubah aturan persetujuan untuk permintaan pull untuk membuatnya menjadi lebih mudah untuk memenuhi syarat-syaratnya, atau untuk meningkatkan ketelitian tinjauan. Anda dapat mengubah jumlah pengguna yang harus menyetujui sebuah permintaan pull. Anda juga dapat menambahkan, menghapus, atau mengubah keanggotaan dalam kolam persetujuan pengguna untuk aturan tersebut. Yang terakhir, jika Anda tidak lagi ingin menggunakan aturan persetujuan untuk sebuah permintaan pull, Anda dapat menghapusnya.

**catatan**  
Anda juga dapat mengganti aturan persetujuan untuk sebuah permintaan pull. Untuk informasi selengkapnya, lihat [Menimpa aturan persetujuan pada sebuah permintaan pull](how-to-override-approval-rules.md).

Anda dapat menggunakan AWS CodeCommit konsol atau AWS CLI untuk mengedit dan menghapus aturan persetujuan untuk repositori Anda. 

**Topics**
+ [Mengedit atau menghapus aturan persetujuan untuk permintaan pull (konsol)](#how-to-edit-delete-pull-request-approval-rule-console)
+ [Mengedit atau menghapus aturan persetujuan untuk permintaan pull (AWS CLI)](#how-to-edit-delete-pull-request-approval-rule-cli)

## Mengedit atau menghapus aturan persetujuan untuk permintaan pull (konsol)
<a name="how-to-edit-delete-pull-request-approval-rule-console"></a>

Anda dapat menggunakan CodeCommit konsol untuk mengedit atau menghapus aturan persetujuan untuk permintaan tarik di CodeCommit repositori. 

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

1. Dalam **Repositori**, pilih nama repositori tempat Anda ingin mengedit atau menghapus aturan persetujuan untuk permintaan pull. 

1. Di panel navigasi, pilih **Permintaan Pull**.

1. Pilih permintaan pull tempat Anda ingin mengedit atau menghapus aturan persetujuan. Anda hanya dapat mengedit dan menghapus aturan persetujuan untuk permintaan pull yang terbuka.  
![\[Daftar permintaan tarik untuk repositori di konsol. CodeCommit\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Dalam permintaan pull, pilih **Persetujuan**, dan kemudian pilih aturan yang ingin Anda edit atau hapus dari daftar. Lakukan salah satu tindakan berikut:
   + Jika Anda ingin mengedit aturan, pilih **Edit**. 
   + Jika Anda ingin menghapus aturan, pilih **Hapus**, lalu ikuti petunjuk untuk memverifikasi penghapusan aturan.

1. Di **Edit aturan persetujuan**, buat perubahan yang Anda inginkan pada aturan tersebut, lalu pilih **Kirim**.  
![\[Mengedit sebuah aturan persetujuan\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-edit-rule.png)

1. Setelah selesai mengonfigurasi aturan persetujuan, pilih **Kirim**.

 

## Mengedit atau menghapus aturan persetujuan untuk permintaan pull (AWS CLI)
<a name="how-to-edit-delete-pull-request-approval-rule-cli"></a>

Untuk menggunakan AWS CLI perintah dengan CodeCommit, instal file AWS CLI. Untuk informasi selengkapnya, lihat [Referensi baris perintah](cmd-ref.md). 

Anda dapat menggunakan AWS CLI untuk mengedit konten aturan persetujuan dan untuk menghapus aturan persetujuan. 

**catatan**  
Anda mungkin juga tertarik dengan perintah-perintah berikut:  
**[update-pull-request-approval-state](how-to-review-pull-request.md#update-pull-request-approval-state)**, untuk menyetujui atau mencabut persetujuan pada sebuah permintaan pull.
[**get-pull-request-approval-states**](how-to-view-pull-request.md#get-pull-request-approval-state), untuk melihat persetujuan pada permintaan pull.
[**evaluate-pull-request-approval-rules**](how-to-merge-pull-request.md#evaluate-pull-request-approval-rules), untuk menentukan apakah aturan persetujuan untuk permintaan pull syarat-syaratnya telah terpenuhi.

**Untuk menggunakan aturan AWS CLI untuk mengedit atau menghapus aturan persetujuan untuk permintaan tarik di CodeCommit repositori**<a name="update-pull-request-approval-rule-content"></a>

1. Untuk mengedit aturan persetujuan, jalankan perintah **update-pull-request-approval-rule-content**, 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**).

   Contoh ini memperbarui aturan persetujuan yang dinamai *Require two approved approvers* untuk permintaan tarik dengan ID*27*. Aturan tersebut mewajibkan satu persetujuan pengguna dari kumpulan persetujuan yang menyertakan setiap pengguna IAM di akun *123456789012* Amazon Web Services:

   ```
   aws codecommit update-pull-request-approval-rule-content --pull-request-id 27 --approval-rule-name "Require two approved approvers" --approval-rule-content "{Version: 2018-11-08, Statements: [{Type: \"Approvers\", NumberOfApprovalsNeeded: 1, ApprovalPoolMembers:[\"CodeCommitApprovers:123456789012:user/*\"]}]}}"
   ```

1. <a name="delete-pull-request-approval-rule"></a>Untuk menghapus aturan persetujuan, jalankan perintah **delete-pull-request-approval-rule**, dengan menentukan:
   + ID dari permintaan pull (dengan pilihan **--id**).
   + Nama aturan persetujuan (dengan pilihan **--approval-rule-name**).

   Misalnya, untuk menghapus aturan persetujuan dengan nama *My Approval Rule* untuk permintaan tarik dengan ID*15*:

   ```
   aws codecommit delete-pull-request-approval-rule --pull-request-id 15 --approval-rule-name "My Approval Rule"
   ```

# Menimpa aturan persetujuan pada sebuah permintaan pull
<a name="how-to-override-approval-rules"></a>

Dalam pengembangan normal, Anda ingin pengguna untuk memenuhi syarat aturan persetujuan sebelum Anda menggabungkan permintaan pull. Namun, mungkin ada kalanya Anda perlu mempercepat penggabungan sebuah permintaan pull. Misalnya, Anda mungkin ingin menempatkan perbaikan bug ke dalam produksi, tetapi tidak ada seorang pun di kolam persetujuan yang tersedia untuk menyetujui permintaan pull. Dalam kasus seperti ini, Anda dapat memilih untuk menimpa aturan persetujuan pada sebuah permintaan pull. Anda dapat mengganti semua aturan persetujuan untuk sebuah permintaan pull, termasuk yang dibuat khusus untuk permintaan pull tersebut dan dihasilkan dari templat aturan persetujuan. Anda tidak dapat secara selektif menimpa aturan persetujuan tertentu, harus semua aturan. Setelah Anda telah menimpa persyaratan aturan persetujuan dengan menimpa aturan, Anda dapat menggabungkan permintaan pull ke cabang tujuan.

Ketika Anda mengganti aturan persetujuan pada sebuah permintaan pull, informasi tentang pengguna yang menimpa aturan akan dicatat dalam aktivitas untuk permintaan pull tersebut. Dengan cara ini Anda dapat kembali ke dalam riwayat permintaan pull dan meninjau siapa yang menimpa aturan. Anda juga dapat memilih untuk mencabut penimpaan jika permintaan pull masih terbuka. Setelah permintaan pull telah digabung, Anda tidak dapat lagi mencabut penimpaan tersebut.

**Topics**
+ [Menimpa aturan persetujuan (konsol)](#how-to-override-approval-rules-console)
+ [Menimpa aturan persetujuan (AWS CLI)](#how-to-override-approval-rules-cli)

## Menimpa aturan persetujuan (konsol)
<a name="how-to-override-approval-rules-console"></a>

Anda dapat menimpa persyaratan aturan persetujuan pada sebuah permintaan pull di konsol, sebagai bagian dari peninjauan permintaan pull. Jika Anda berubah pikiran, Anda dapat mencabut penimpaan Anda, dan persyaratan aturan persetujuan tersebut kemudian diterapkan kembali. Anda hanya dapat menimpa aturan persetujuan atau mencabut penimpaan jika permintaan pull masih terbuka. Jika ia sudah digabung atau ditutup, Anda tidak dapat mengubah status penimpaan-nya.

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

1. Di **Repositori**, pilih nama repositori. 

1. Di panel navigasi, pilih **Permintaan pull**. Pilih permintaan pull dimana anda ingin menimpa persyaratan aturan persetujuan, atau mencabut penimpaan.

1. Pada tab **Persetujuan**, pilih **Menimpa aturan persetujuan**. Persyaratan kemudian disisihkan, dan teks tombol berubah menjadi **Cabut penimpaan**. Untuk menerapkan kembali persyaratan aturan persetujuan, pilih **Cabut penimpaan**.

## Menimpa aturan persetujuan (AWS CLI)
<a name="how-to-override-approval-rules-cli"></a>

Anda dapat menggunakan persyaratan aturan persetujuan AWS CLI untuk mengganti. Anda juga dapat menggunakannya untuk melihat status penimpaan untuk sebuah permintaan pull.<a name="override-approval-rules"></a>

## Untuk menimpa persyaratan aturan persetujuan pada sebuah permintaan pull
<a name="override-approval-rules"></a>

1. Pada sebuah terminal atau baris perintah, jalankan perintah **override-pull-request-approval-rules**, dengan menentukan:
   + ID permintaan pull yang dihasilkan sistem.
   + ID permintaan pull revisi terbaru. Untuk melihat informasi ini, gunakan **get-pull-request**.
   + Status yang Anda inginkan untuk penimpaan, `OVERRIDE` atau `REVOKE`. Status `REVOKE` menghapus status `OVERRIDE` tetapi tidak disimpan.

   Sebagai contoh, untuk menimpa aturan persetujuan pada permintaan pull dengan ID **34** dan ID revisi **927df8d8EXAMPLE**:

   ```
   aws codecommit override-pull-request-approval-rules --pull-request-id 34 --revision-id 927df8d8dEXAMPLE --override-status OVERRIDE
   ```

1. Jika berhasil, perintah ini tidak mengembalikan apa pun.

1. Untuk mencabut penimpaan pada permintaan pull dengan ID **34** dan ID revisi **927df8d8EXAMPLE**:

   ```
   aws codecommit override-pull-request-approval-rules --pull-request-id 34 --revision-id 927df8d8dEXAMPLE --override-status REVOKE
   ```<a name="get-override-status"></a>

## Untuk mendapatkan informasi tentang status penimpaan dari sebuah permintaan pull
<a name="get-override-status"></a>

1. Pada sebuah terminal atau baris perintah, jalankan perintah **get-pull-request-override-state**, dengan menentukan:
   + ID permintaan pull yang dihasilkan sistem.
   + ID permintaan pull revisi terbaru. Untuk melihat informasi ini, gunakan **get-pull-request**.

   Misalnya, untuk melihat status penimpaan untuk sebuah permintaan pull dengan ID **34** dan ID revisi **927df8d8EXAMPLE**:

   ```
   aws codecommit get-pull-request-override-state --pull-request-id 34 --revision-id 927df8d8dEXAMPLE
   ```

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

   ```
   {
       "overridden": true,
       "overrider": "arn:aws:iam::123456789012:user/Mary_Major"
   }
   ```

# Gabungkan permintaan tarik dalam repositori AWS CodeCommit
<a name="how-to-merge-pull-request"></a>

Setelah kode Anda ditinjau dan semua aturan persetujuan (jika ada) pada permintaan pull telah terpenuhi, Anda dapat menggabungkan permintaan pull dengan salah satu dari beberapa cara:
+ <a name="is-mergable"></a>Anda dapat menggunakan konsol untuk menggabungkan cabang sumber Anda ke cabang tujuan menggunakan salah satu strategi penggabungan yang tersedia, yang juga menutup permintaan pull. Anda juga dapat menyelesaikan konflik penggabungan di konsol tersebut. Konsol menampilkan pesan yang menunjukkan jika permintaan pull dapat digabungkan atau jika konflik harus diselesaikan. Ketika semua konflik diselesaikan dan Anda memilih **Gabungkan**, penggabungan dilakukan menggunakan strategi penggabungan yang Anda pilih. Fast-forward adalah strategi merge default, yang merupakan pilihan default untuk Git. Tergantung pada status kode di cabang sumber dan tujuan, strategi tersebut mungkin tidak tersedia, tetapi pilihan lain mungkin tersedia, seperti squash atau 3-way.
+ Anda dapat menggunakan AWS CLI untuk menggabungkan dan menutup permintaan tarik menggunakan strategi fast-forward, squash, atau 3-way merge. 
+ <a name="why-git-merge"></a>Pada komputer lokal Anda, Anda dapat menggunakan perintah **git merge** untuk menggabungkan cabang sumber ke cabang tujuan, dan kemudian mendorong kode gabungan ke cabang tujuan. Pendekatan ini memiliki kekurangan yang harus Anda pertimbangkan dengan hati-hati. Ini menggabungkan permintaan pull terlepas jika persyaratan untuk aturan persetujuan pada permintaan pull telah dipenuhi atau tidak, yang menghindari kontrol tersebut. Penggabungan dan pengiriman ke cabang tujuan juga menutup permintaan pull secara otomatis jika permintaan pull digabung menggunakan strategi penggabungan fast-forward. Salah satu keuntungan dari pendekatan ini adalah bahwa **git merge** perintah memungkinkan Anda untuk memilih opsi gabungan atau strategi yang tidak tersedia di CodeCommit konsol. Untuk informasi lebih lanjut tentang **git merge** dan opsi penggabungan, lihat [git-merge](https://git-scm.com/docs/git-merge) atau dokumentasi Git Anda.

CodeCommit menutup permintaan tarik secara otomatis jika cabang sumber atau tujuan permintaan tarik dihapus.

**Topics**
+ [Menggabungkan permintaan pull (konsol)](#how-to-merge-pull-request-console)
+ [Menggabungkan permintaan pull (AWS CLI)](#how-to-merge-pull-request-cli)

## Menggabungkan permintaan pull (konsol)
<a name="how-to-merge-pull-request-console"></a>

Anda dapat menggunakan CodeCommit konsol untuk menggabungkan permintaan tarik dalam CodeCommit repositori. Setelah status permintaan pull diubah menjadi **Digabungkan**, maka tidak akan lagi muncul di daftar permintaan pull terbuka. Permintaan pull gabungan dikategorikan sebagai tertutup. Hal ini tidak dapat diubah kembali ke **Buka**, namun pengguna masih dapat mengomentari perubahan dan membalas komentar. Setelah permintaan pull digabung atau ditutup, Anda tidak dapat menyetujuinya, mencabut persetujuan untuk itu, atau mengesampingkan aturan persetujuan yang diterapkan pada permintaan pull.

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

1. Di **Repositori**, pilih nama repositori. 

1. Di panel navigasi, pilih **Permintaan pull**.

1. Secara default, daftar semua permintaan pull terbuka ditampilkan. Pilih permintaan pull terbuka yang ingin Anda gabungkan.

1. Dalam permintaan pull, pilih **Persetujuan**. Tinjau daftar pemberi persetujuan, dan verifikasi bahwa semua aturan persetujuan (jika ada) telah memenuhi syarat. Anda tidak dapat menggabungkan permintaan pull jika satu atau lebih persetujuan aturan memiliki status **Aturan tidak terpenuhi**. Jika tidak ada yang menyetujui permintaan pull, pertimbangkan apakah Anda ingin menggabungkannya, atau apakah Anda ingin menunggu persetujuan.
**catatan**  
Jika aturan persetujuan dibuat untuk permintaan pull, Anda dapat mengeditnya atau menghapusnya untuk membuka blokir penggabungan. Jika aturan persetujuan dibuat dengan templat aturan persetujuan, Anda tidak dapat mengedit atau menghapusnya. Anda hanya dapat memilih untuk mengesampingkan persyaratan. Untuk informasi selengkapnya, lihat [Menimpa aturan persetujuan pada sebuah permintaan pull](how-to-override-approval-rules.md).  
![\[Permintaan pull menunjukkan aturan persetujuan yang syaratnya belum terpenuhi dan daftar pemberi persetujuan yang kosong.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-approval-rule-not-met.png)

1. Pilih **Gabungkan**.

1. Dalam permintaan pull, pilih antara strategi penggabungan yang tersedia. Menggabungkan strategi yang tidak dapat diterapkan muncul berwarna abu-abu. Jika tidak ada strategi penggabungan yang tersedia, Anda dapat memilih untuk menyelesaikan konflik secara manual di CodeCommit konsol, atau Anda dapat menyelesaikannya secara lokal menggunakan klien Git Anda. Untuk informasi selengkapnya, lihat [Menyelesaikan konflik dalam permintaan tarik di AWS CodeCommit repositori](how-to-resolve-conflict-pull-request.md).  
![\[Permintaan tarik yang menunjukkan strategi penggabungan yang tersedia untuk penggabungan di konsol. CodeCommit\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-merge-squash.png)
   + Penggabungan fast-forward menggerakkan referensi untuk cabang tujuan maju ke commit terbaru cabang sumber. Ini adalah perilaku default Git bila memungkinkan. Tidak ada commit penggabungan yang dibuat, tetapi semua riwayat commit dari cabang sumber disimpan seolah-olah telah terjadi di cabang tujuan. Penggabungan fast-forward tidak muncul sebagai gabungan cabang dalam tampilan visualizer commit riwayat cabang tujuan karena tidak ada gabungan commit dibuat. Ujung cabang sumber cepat diteruskan ke ujung cabang tujuan. 
   + Penggabungan squash menciptakan satu commit yang berisi perubahan di cabang sumber dan memberlakukan satu commit squash ke cabang tujuan. Secara default, pesan commit untuk commit squash berisi semua pesan commit dari perubahan di cabang sumber. Tidak ada riwayat commit individu perubahan cabang yang disimpan. Hal ini dapat membantu menyederhanakan riwayat repositori Anda dengan terus mempertahankan representasi grafis dari gabungan dalam tampilan visualizer commit riwayat cabang tujuan. 
   + Penggabungan tiga arah menciptakan commit gabungan untuk penggabungan di cabang tujuan, tetapi juga mempertahankan commit individu yang dibuat di cabang sumber sebagai bagian dari riwayat cabang tujuan. Hal ini dapat membantu mempertahankan riwayat perubahan lengkap pada repositori Anda.

1. Jika Anda memilih strategi penggabungan squash atau 3-way, tinjau pesan commit yang dihasilkan secara otomatis dan ubah jika Anda ingin mengubah informasi. Tambahkan nama dan alamat email Anda untuk riwayat commit.

1. (Opsional) Hapus opsi untuk menghapus cabang sumber sebagai bagian dari penggabungan. Default-nya adalah menghapus cabang sumber ketika permintaan pull digabung.

1. Pilih **Gabungkan permintaan pull** untuk menyelesaikan penggabungan.

## Menggabungkan permintaan pull (AWS CLI)
<a name="how-to-merge-pull-request-cli"></a>

Untuk menggunakan AWS CLI perintah dengan CodeCommit, instal file AWS CLI. Untuk informasi selengkapnya, lihat [Referensi baris perintah](cmd-ref.md). 

**Untuk menggunakan AWS CLI untuk menggabungkan permintaan tarik dalam repositori CodeCommit **

1. <a name="evaluate-pull-request-approval-rules"></a>Untuk mengevaluasi apakah permintaan pull telah memenuhi semua aturan persetujuan dan siap untuk digabung, jalankan perintah **evaluate-pull-request-approval-rules**, menentukan:
   + ID dari permintaan pull (menggunakan opsi **--pull-request-id**).
   + ID revisi dari permintaan pull (menggunakan **--revision-id option)**. Anda bisa mendapatkan ID revisi saat ini untuk permintaan pull dengan menggunakan perintah **[get-pull-request](how-to-view-pull-request.md#get-pull-request)**.

   Misalnya, untuk mengevaluasi status aturan persetujuan pada permintaan tarik dengan ID *27* dan ID revisi dari*9f29d167EXAMPLE*:

   ```
   aws codecommit evaluate-pull-request-approval-rules --pull-request-id 27 --revision-id 9f29d167EXAMPLE
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

   ```
   {
       "evaluation": {
           "approved": false,
           "approvalRulesNotSatisfied": [
               "Require two approved approvers"
           ],
           "overridden": false,
           "approvalRulesSatisfied": []
       }
   }
   ```
**catatan**  
Output ini menunjukkan bahwa permintaan pull tidak dapat digabungkan karena persyaratan aturan persetujuan belum dipenuhi. Untuk menggabungkan permintaan pull ini, Anda dapat meminta pengulas menyetujuinya untuk memenuhi persyaratan aturan. Tergantung pada izin dan cara aturan dibuat, Anda mungkin juga dapat mengedit, menimpa, atau menghapus aturan. Lihat informasi selengkapnya di [Meninjau permintaan pull](how-to-review-pull-request.md), [Menimpa aturan persetujuan pada sebuah permintaan pull](how-to-override-approval-rules.md), dan [Mengedit atau menghapus aturan persetujuan untuk permintaan pull](how-to-edit-delete-pull-request-approval-rule.md). 

1. Untuk menggabungkan dan menutup permintaan pull menggunakan strategi penggabungan fast-forward, jalankan perintah **merge-pull-request-by-fast-forward**, menentukan:
   + ID dari permintaan pull (dengan opsi **--pull-request-id**).
   + ID commit penuh dari ujung cabang sumber (dengan opsi **--source-commit-id**). 
   + Nama repositori (dengan opsi **--repository-name**).

    Misalnya, untuk menggabungkan dan menutup permintaan tarik dengan ID dari *47* dan ID komit sumber dari *99132ab0EXAMPLE* dalam repositori bernama: *MyDemoRepo*

   ```
   aws codecommit merge-pull-request-by-fast-forward --pull-request-id 47 --source-commit-id 99132ab0EXAMPLE --repository-name MyDemoRepo
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 1,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "I want one approver for this pull request",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "authorArn": "arn:aws:iam::123456789012:user/Li_Juan",
           "clientRequestToken": "",
           "creationDate": 1508530823.142,
           "description": "Review the latest changes and updates to the global variables",
           "lastActivityDate": 1508887223.155,
           "pullRequestId": "47",
           "pullRequestStatus": "CLOSED",
           "pullRequestTargets": [
               {
                   "destinationCommit": "9f31c968EXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": true,
                       "mergedBy": "arn:aws:iam::123456789012:user/Mary_Major"
                   },
                   "repositoryName": "MyDemoRepo",
                   "sourceCommit": "99132ab0EXAMPLE",
                   "sourceReference": "refs/heads/variables-branch"
               }
           ],
           "title": "Consolidation of global variables"
       }
   }
   ```

1. Untuk menggabungkan dan menutup permintaan pull menggunakan strategi penggabungan squash, jalankan perintah **merge-pull-request-by-squash**, menentukan:
   + ID permintaan pull (dengan opsi **--pull-request-id**).
   + ID commit penuh dari ujung cabang sumber (dengan opsi **--source-commit-id**). 
   + Nama repositori (dengan opsi **--repository-name**).
   + Tingkat detail konflik yang ingin Anda gunakan (dengan opsi **--conflict-detail-level**). Jika tidak ditentukan, default **`FILE_LEVEL`** digunakan.
   + Strategi resolusi konflik yang ingin Anda gunakan (dengan opsi **--conflict-resolution-strategy**). Jika tidak ditentukan, secara default diatur ke `NONE`, dan konflik harus diselesaikan secara manual.
   + Pesan commit yang harus disertakan (dengan opsi **--commit-message**).
   + Nama yang digunakan untuk commit (dengan opsi **--author-name**).
   + Alamat email yang digunakan untuk commit (dengan opsi **--email**).
   + Apakah menyimpan folder kosong (dengan opsi **--keep-empty-folders**).

   Contoh berikut menggabungkan dan menutup permintaan tarik dengan ID *47* dan ID komit sumber dari *99132ab0EXAMPLE* dalam repositori bernama. *MyDemoRepo* Ini menggunakan detail konflik `LINE_LEVEL` dan strategi penyelesaian konflik `ACCEPT_SOURCE`:

   ```
   aws codecommit merge-pull-request-by-squash --pull-request-id 47 --source-commit-id 99132ab0EXAMPLE --repository-name MyDemoRepo --conflict-detail-level LINE_LEVEL --conflict-resolution-strategy ACCEPT_SOURCE --author-name "Jorge Souza" --email "jorge_souza@example.com" --commit-message "Merging pull request 47 by squash and accepting source in merge conflicts"
   ```

   Jika berhasil, perintah ini menghasilkan jenis output yang sama sebagai penggabungan dengan fast-forward, output mirip dengan berikut ini:

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "2-approver-rule-for-main",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "originApprovalRuleTemplate": {
                       "approvalRuleTemplateId": "dd8b17fe-EXAMPLE",
                       "approvalRuleTemplateName": "2-approver-rule-for-main"
                   },
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "authorArn": "arn:aws:iam::123456789012:user/Li_Juan",
           "clientRequestToken": "",
           "creationDate": 1508530823.142,
           "description": "Review the latest changes and updates to the global variables",
           "lastActivityDate": 1508887223.155,
           "pullRequestId": "47",
           "pullRequestStatus": "CLOSED",
           "pullRequestTargets": [
               {
                   "destinationCommit": "9f31c968EXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": true,
                       "mergedBy": "arn:aws:iam::123456789012:user/Mary_Major"
                   },
                   "repositoryName": "MyDemoRepo",
                   "sourceCommit": "99132ab0EXAMPLE",
                   "sourceReference": "refs/heads/variables-branch"
               }
           ],
           "title": "Consolidation of global variables"
       }
   }
   ```

1. Untuk menggabungkan dan menutup permintaan pull menggunakan strategi penggabungan tiga arah, jalankan perintah **merge-pull-request-by-three-way**, menentukan:
   + ID dari permintaan pull (dengan opsi **--pull-request-id**).
   + ID commit penuh dari ujung cabang sumber (dengan opsi **--source-commit-id**). 
   + Nama repositori (dengan opsi **--repository-name**).
   + Tingkat detail konflik yang ingin Anda gunakan (dengan opsi **--conflict-detail-level**). Jika tidak ditentukan, default **`FILE_LEVEL`** digunakan.
   + Strategi resolusi konflik yang ingin Anda gunakan (dengan opsi **--conflict-resolution-strategy**). Jika tidak ditentukan, secara default diatur ke `NONE`, dan konflik harus diselesaikan secara manual.
   + Pesan commit yang harus disertakan (dengan opsi **--commit-message**).
   + Nama yang digunakan untuk commit (dengan opsi **--author-name**).
   + Alamat email yang digunakan untuk commit (dengan opsi **--email**).
   + Apakah menyimpan folder kosong (dengan opsi **--keep-empty-folders**).

   Contoh berikut menggabungkan dan menutup permintaan tarik dengan ID *47* dan ID komit sumber dari *99132ab0EXAMPLE* dalam repositori bernama. *MyDemoRepo* Ini menggunakan opsi default untuk detail konflik dan strategi penyelesaian konflik:

   ```
   aws codecommit merge-pull-request-by-three-way --pull-request-id 47 --source-commit-id 99132ab0EXAMPLE --repository-name MyDemoRepo --author-name "Maria Garcia" --email "maria_garcia@example.com" --commit-message "Merging pull request 47 by three-way with default options"
   ```

   Jika berhasil, perintah ini menghasilkan jenis yang sama output sebagai penggabungan dengan fast-forward, mirip dengan berikut ini:

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "2-approver-rule-for-main",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "originApprovalRuleTemplate": {
                       "approvalRuleTemplateId": "dd8b17fe-EXAMPLE",
                       "approvalRuleTemplateName": "2-approver-rule-for-main"
                   },
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "authorArn": "arn:aws:iam::123456789012:user/Li_Juan",
           "clientRequestToken": "",
           "creationDate": 1508530823.142,
           "description": "Review the latest changes and updates to the global variables",
           "lastActivityDate": 1508887223.155,
           "pullRequestId": "47",
           "pullRequestStatus": "CLOSED",
           "pullRequestTargets": [
               {
                   "destinationCommit": "9f31c968EXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": true,
                       "mergedBy": "arn:aws:iam::123456789012:user/Mary_Major"
                   },
                   "repositoryName": "MyDemoRepo",
                   "sourceCommit": "99132ab0EXAMPLE",
                   "sourceReference": "refs/heads/variables-branch"
               }
           ],
           "title": "Consolidation of global variables"
       }
   }
   ```

# Menyelesaikan konflik dalam permintaan tarik di AWS CodeCommit repositori
<a name="how-to-resolve-conflict-pull-request"></a>

Jika permintaan pull Anda memiliki konflik dan tidak dapat digabung, Anda dapat mencoba menyelesaikan konflik dengan salah satu dari beberapa cara:
+ Pada komputer lokal Anda, Anda dapat menggunakan perintah **git diff** untuk menemukan konflik antara dua cabang dan membuat perubahan untuk mengatasinya. Anda juga dapat menggunakan alat perbedaan atau perangkat lunak lain untuk membantu Anda menemukan dan menyelesaikan perbedaan. Setelah Anda menyelesaikannya sesuai keinginan Anda, Anda dapat mengirim cabang sumber Anda dengan perubahan yang berisi konflik yang diselesaikan, yang memperbarui permintaan pull. Untuk informasi selengkapnya tentang **git diff** dan **git difftool**, lihat dokumentasi Git.
+ Di konsol, Anda dapat memilih **Selesaikan konflik**. Ini akan membuka editor teks biasa yang menunjukkan konflik dengan cara yang sama seperti perintah **git diff**. Anda dapat secara manual meninjau konflik di setiap file yang berisi konflik, membuat perubahan, dan kemudian memperbarui permintaan pull dengan perubahan Anda.
+ Di dalamnya AWS CLI, Anda dapat menggunakan file AWS CLI untuk mendapatkan informasi tentang konflik gabungan dan membuat komit gabungan yang tidak direferensikan untuk menguji penggabungan. 

**Topics**
+ [Menyelesaikan konflik dalam permintaan pull (konsol)](#how-to-resolve-conflict-pull-request-console)
+ [Menyelesaikan konflik dalam permintaan pull (AWS CLI)](#how-to-resolve-conflict-pull-request-cli)

## Menyelesaikan konflik dalam permintaan pull (konsol)
<a name="how-to-resolve-conflict-pull-request-console"></a>

Anda dapat menggunakan CodeCommit konsol untuk menyelesaikan konflik dalam permintaan tarik di CodeCommit repositori. 

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

1. Di **Repositori**, pilih nama repositori. 

1. Di panel navigasi, pilih **Permintaan pull**.

1. Secara default, daftar semua permintaan pull terbuka ditampilkan. Pilih permintaan pull terbuka yang ingin Anda gabungkan tetapi berisi konflik.

1. Dalam permintaan pull, pilih **Selesaikan konflik**. Opsi ini hanya muncul jika ada konflik yang harus diselesaikan sebelum permintaan pull dapat digabung.  
![\[Permintaan pull menunjukkan bahwa permintaan pull memiliki konflik yang harus diselesaikan sebelum dapat digabung.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-resolve-conflicts.png)

1. Jendela penyelesaian konflik membuka daftar setiap file yang memiliki konflik yang harus diselesaikan. Pilih setiap file dalam daftar untuk meninjau konflik, dan membuat perubahan yang diperlukan sampai semua konflik telah diselesaikan.  
![\[Editor penyelesaian konflik menampilkan file dengan konflik yang belum diselesaikan.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-resolve.png)
   + Anda dapat memilih untuk menggunakan isi file sumber, isi file tujuan, atau jika file bukan file biner, untuk mengedit isi file secara manual sehingga hanya berisi perubahan yang Anda inginkan. Penanda diff git standar digunakan untuk menunjukkan konflik antara tujuan (HEAD) dan cabang sumber dalam file.
   + Jika suatu file adalah file biner, Git submodule, atau jika ada konflik nama file/folder, Anda harus memilih untuk menggunakan file sumber atau file tujuan untuk menyelesaikan konflik. Anda tidak dapat melihat atau mengedit file biner di CodeCommit konsol.
   + Jika ada konflik mode file, Anda melihat opsi untuk menyelesaikan konflik tersebut dengan memilih antara mode file dari file sumber dan mode file dari file tujuan. 
   + Jika Anda memutuskan ingin membuang perubahan untuk file dan mengembalikannya ke keadaan konflik, pilih **Atur ulang file**. Hal ini memungkinkan Anda menyelesaikan konflik dengan cara yang berbeda.

1. Jika Anda puas dengan perubahan Anda, pilih **Perbarui permintaan pull**.
**catatan**  
Anda harus menyelesaikan semua konflik di semua file sebelum Anda dapat berhasil memperbarui permintaan pull dengan perubahan Anda. 

1. Permintaan pull diperbarui dengan perubahan Anda dan dapat digabung. Anda melihat halaman penggabungan. Anda dapat memilih untuk menggabungkan permintaan pull saat ini, atau Anda dapat kembali ke daftar permintaan pull. 

## Menyelesaikan konflik dalam permintaan pull (AWS CLI)
<a name="how-to-resolve-conflict-pull-request-cli"></a>

Untuk menggunakan AWS CLI perintah dengan CodeCommit, instal file AWS CLI. Untuk informasi selengkapnya, lihat [Referensi baris perintah](cmd-ref.md). 

Tidak ada AWS CLI perintah tunggal yang memungkinkan Anda menyelesaikan konflik dalam permintaan tarik dan menggabungkan permintaan itu. Namun, Anda dapat menggunakan perintah individu untuk menemukan konflik, mencoba untuk menyelesaikannya, dan menguji apakah permintaan pull dapat digabung. Anda dapat menggunakan:
+ **get-merge-options**, untuk mengetahui opsi gabungan apa yang tersedia untuk penggabungan antara dua penentu commit.
+ **get-merge-conflicts**, untuk mengembalikan daftar file dengan konflik penggabungan dalam suatu penggabungan antara dua penentu commit.
+ **batch-describe-merge-conflicts**, untuk mendapatkan informasi tentang semua konflik penggabungan dalam file dalam penggabungan antara dua commit menggunakan strategi penggabungan tertentu. 
+ **describe-merge-conflicts**, untuk mendapatkan informasi tentang konflik penggabungan untuk file khusus antara dua commit menggunakan strategi penggabungan yang ditentukan.
+ **create-unreferenced-merge-commit**, untuk menguji hasil penggabungan dua penentu commit menggunakan strategi gabungan yang ditentukan.

1. <a name="get-merge-options"></a>Untuk menemukan opsi penggabungan apa yang tersedia untuk penggabungan antara dua penentu commit, jalankan perintah **get-merge-options**, menentukan:
   + Sebuah penentu commit untuk sumber penggabungan (dengan opsi **--source-commit-specifier**).
   + Sebuah penentu commit untuk tujuan untuk penggabungan (dengan opsi **--destination-commit-specifier**). 
   + Nama repositori (dengan opsi **--repository-name**).
   + (Opsional) Strategi penyelesaian konflik untuk dgunakan (dengan opsi **--conflict-resolution-strategy**).
   + (Opsional) Tingkat detail yang Anda inginkan tentang konflik apapun (dengan opsi **--conflict-detail-level**).

    Misalnya, untuk menentukan strategi penggabungan yang tersedia untuk menggabungkan cabang sumber bernama *bugfix-1234* dengan cabang tujuan bernama *main* dalam repositori bernama: *MyDemoRepo*

   ```
   aws codecommit get-merge-options --source-commit-specifier bugfix-1234 --destination-commit-specifier main --repository-name MyDemoRepo
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

   ```
   {
       "mergeOptions": [
           "FAST_FORWARD_MERGE",
           "SQUASH_MERGE",
           "THREE_WAY_MERGE"
       ],
       "sourceCommitId": "d49940adEXAMPLE",
       "destinationCommitId": "86958e0aEXAMPLE",
       "baseCommitId": "86958e0aEXAMPLE"
   }
   ```

1. <a name="get-merge-conflict"></a>Untuk mendapatkan daftar file yang berisi konflik penggabungan dalam suatu penggabungan antara dua penentu commit, jalankan perintah **get-merge-conflicts**, menentukan:
   + Sebuah penentu commit untuk sumber penggabungan (dengan opsi **--source-commit-specifier**).
   + Sebuah penentu commit untuk tujuan untuk penggabungan (dengan opsi **--destination-commit-specifier**). 
   + Nama repositori (dengan opsi **--repository-name**).
   + Opsi penggabungan yang ingin Anda gunakan (dengan opsi **--merge-option**).
   + (Opsional) Tingkat detail yang Anda inginkan tentang konflik apapun (dengan opsi **--conflict-detail-level**).
   + (Opsional) Strategi penyelesaian konflik untuk digunakan (dengan opsi **--conflict-resolution-strategy**).
   + (Opsional) Jumlah maksimum file dengan konflik untuk kembali (dengan opsi **--max-conflict-files**).

   Misalnya, untuk mendapatkan daftar file yang berisi konflik dalam penggabungan antara cabang sumber bernama feature-randomizationfeature dan cabang tujuan bernama main menggunakan strategi penggabungan tiga arah dalam repositori bernama: MyDemoRepo

   ```
   aws codecommit get-merge-conflicts --source-commit-specifier feature-randomizationfeature --destination-commit-specifier main --merge-option THREE_WAY_MERGE --repository-name MyDemoRepo
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

   ```
   {
       "mergeable": false,
       "destinationCommitId": "86958e0aEXAMPLE",
       "sourceCommitId": "6ccd57fdEXAMPLE",
       "baseCommitId": "767b6958EXAMPLE",
       "conflictMetadataList": [
           {
               "filePath": "readme.md",
               "fileSizes": {
                   "source": 139,
                   "destination": 230,
                   "base": 85
               },
               "fileModes": {
                   "source": "NORMAL",
                   "destination": "NORMAL",
                   "base": "NORMAL"
               },
               "objectTypes": {
                   "source": "FILE",
                   "destination": "FILE",
                   "base": "FILE"
               },
               "numberOfConflicts": 1,
               "isBinaryFile": {
                   "source": false,
                   "destination": false,
                   "base": false
               },
               "contentConflict": true,
               "fileModeConflict": false,
               "objectTypeConflict": false,
               "mergeOperations": {
                   "source": "M",
                   "destination": "M"
               }
           }
       ]
   }
   ```

1. <a name="batch-describe-merge-conflicts"></a>Untuk mendapatkan informasi tentang konflik penggabungan di semua file atau subset dari file dalam penggabungan antara dua penentu commit, jalankan perintah **batch-describe-merge-conflicts**, menentukan:
   + Sebuah penentu commit untuk sumber penggabungan (dengan opsi **--source-commit-specifier**).
   + Sebuah penentu commit untuk tujuan untuk penggabungan (dengan opsi **--destination-commit-specifier**). 
   + Opsi gabungan yang ingin Anda gunakan (dengan opsi **--merge-option**).
   + Nama repositori (dengan opsi **--repository-name**).
   + (Opsional) Strategi penyelesaian konflik untuk dgunakan (dengan opsi **--conflict-resolution-strategy**).
   + (Opsional) Tingkat detail yang Anda inginkan tentang konflik apapun (dengan opsi **--conflict-detail-level**).
   + (Opsional) Jumlah maksimum hunk penggabungan yang akan dikembalikan (dengan opsi **--max-merge-hunks**).
   + (Opsional) Jumlah maksimum file dengan konflik yang akan dikembalikan (dengan opsi **--max-conflict-files**).
   + (Opsional) Path dari file target untuk digunakan untuk menggambarkan konflik (dengan opsi **--file-paths**).

    Misalnya, untuk menentukan konflik gabungan untuk menggabungkan cabang sumber bernama *feature-randomizationfeature* dengan cabang tujuan bernama *main* menggunakan *THREE\$1WAY\$1MERGE* strategi dalam repositori bernama: *MyDemoRepo*

   ```
   aws codecommit batch-describe-merge-conflicts --source-commit-specifier feature-randomizationfeature --destination-commit-specifier main --merge-option THREE_WAY_MERGE --repository-name MyDemoRepo
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

   ```
   {
       "conflicts": [
           {
               "conflictMetadata": {
                   "filePath": "readme.md",
                   "fileSizes": {
                       "source": 139,
                       "destination": 230,
                       "base": 85
                   },
                   "fileModes": {
                       "source": "NORMAL",
                       "destination": "NORMAL",
                       "base": "NORMAL"
                   },
                   "objectTypes": {
                       "source": "FILE",
                       "destination": "FILE",
                       "base": "FILE"
                   },
                   "numberOfConflicts": 1,
                   "isBinaryFile": {
                       "source": false,
                       "destination": false,
                       "base": false
                   },
                   "contentConflict": true,
                   "fileModeConflict": false,
                   "objectTypeConflict": false,
                   "mergeOperations": {
                       "source": "M",
                       "destination": "M"
                   }
               },
               "mergeHunks": [
                   {
                       "isConflict": true,
                       "source": {
                           "startLine": 0,
                           "endLine": 3,
                           "hunkContent": "VGhpcyBpEXAMPLE=="
                       },
                       "destination": {
                           "startLine": 0,
                           "endLine": 1,
                           "hunkContent": "VXNlIHRoEXAMPLE="
                       }
                   }
               ]
           }
       ],
       "errors": [],
       "destinationCommitId": "86958e0aEXAMPLE",
       "sourceCommitId": "6ccd57fdEXAMPLE",
       "baseCommitId": "767b6958EXAMPLE"
   }
   ```

1. <a name="describe-merge-conflicts"></a>Untuk mendapatkan informasi rinci tentang konflik penggabungan untuk file tertentu dalam gabungan antara dua penentu commit, jalankan perintah **describe-merge-conflicts**, menentukan:
   + Sebuah penentu commit untuk sumber penggabungan (dengan opsi **--source-commit-specifier**).
   + Sebuah penentu commit untuk tujuan untuk penggabungan (dengan opsi **--destination-commit-specifier**). 
   + Opsi penggabungan yang ingin Anda gunakan (dengan opsi **--merge-option**).
   + Path dari file target untuk digunakan untuk menggambarkan konflik (dengan opsi **--file-path**).
   + Nama repositori (dengan opsi **--repository-name**).
   + (Opsional) Strategi penyelesaian konflik untuk dgunakan (dengan opsi **--conflict-resolution-strategy**).
   + (Opsional) Tingkat detail yang Anda inginkan tentang konflik apapun (dengan opsi **--conflict-detail-level**).
   + (Opsional) Jumlah maksimum hunk penggabungan yang akan dikembalikan (dengan opsi **--max-merge-hunks**).
   + (Opsional) Jumlah maksimum file dengan konflik yang akan dikembalikan (dengan opsi **--max-conflict-files**).

   Misalnya, untuk menentukan konflik gabungan untuk file bernama *readme.md* dalam cabang sumber bernama *feature-randomizationfeature* dengan cabang tujuan bernama *main* menggunakan *THREE\$1WAY\$1MERGE* strategi dalam repositori bernama: *MyDemoRepo*

   ```
   aws codecommit describe-merge-conflicts --source-commit-specifier feature-randomizationfeature --destination-commit-specifier main --merge-option THREE_WAY_MERGE --file-path readme.md --repository-name MyDemoRepo
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

   ```
   {
       "conflictMetadata": {
           "filePath": "readme.md",
           "fileSizes": {
               "source": 139,
               "destination": 230,
               "base": 85
           },
           "fileModes": {
               "source": "NORMAL",
               "destination": "NORMAL",
               "base": "NORMAL"
           },
           "objectTypes": {
               "source": "FILE",
               "destination": "FILE",
               "base": "FILE"
           },
           "numberOfConflicts": 1,
           "isBinaryFile": {
               "source": false,
               "destination": false,
               "base": false
           },
           "contentConflict": true,
           "fileModeConflict": false,
           "objectTypeConflict": false,
           "mergeOperations": {
               "source": "M",
               "destination": "M"
           }
       },
       "mergeHunks": [
           {
               "isConflict": true,
               "source": {
                   "startLine": 0,
                   "endLine": 3,
                   "hunkContent": "VGhpcyBpEXAMPLE=="
               },
               "destination": {
                   "startLine": 0,
                   "endLine": 1,
                   "hunkContent": "VXNlIHRoEXAMPLE="
               }
           }
       ],
       "destinationCommitId": "86958e0aEXAMPLE",
       "sourceCommitId": "6ccd57fdEXAMPLE",
       "baseCommitId": "767b69580EXAMPLE"
   }
   ```

1. <a name="create-unreferenced-merge-commit"></a>Untuk membuat commit yang tidak direferensikan yang mewakili hasil penggabungan dua penentu commit, jalankan perintah **create-unreferenced-merge-commit**, menentukan:
   + Sebuah penentu commit untuk sumber penggabungan (dengan opsi **--source-commit-specifier**).
   + Sebuah penentu commit untuk tujuan untuk penggabungan (dengan opsi **--destination-commit-specifier**). 
   + Opsi gabungan yang ingin Anda gunakan (dengan opsi **--merge-option**).
   + Nama repositori (dengan opsi **--repository-name**).
   + (Opsional) Strategi penyelesaian konflik untuk dgunakan (dengan opsi **--conflict-resolution-strategy**).
   + (Opsional) Tingkat detail yang Anda inginkan tentang konflik apapun (dengan opsi **--conflict-detail-level**).
   + (Opsional) Pesan commit yang harus disertakan (dengan opsi **--commit-message**).
   + (Opsional) Nama yang digunakan untuk commit (dengan opsi **--name**).
   + (Opsional) Alamat email yang akan digunakan untuk commit (dengan opsi **--email**).
   + (Opsional) Apakah akan menyimpan folder kosong (dengan opsi **--keep-empty-folders**).

    Misalnya, untuk menentukan konflik gabungan untuk menggabungkan cabang sumber bernama *bugfix-1234* dengan cabang tujuan bernama *main* menggunakan strategi ACCEPT\$1SOURCE dalam repositori bernama: *MyDemoRepo*

   ```
   aws codecommit create-unreferenced-merge-commit --source-commit-specifier bugfix-1234 --destination-commit-specifier main --merge-option THREE_WAY_MERGE --repository-name MyDemoRepo --name "Maria Garcia" --email "maria_garcia@example.com" --commit-message "Testing the results of this merge."
   ```

   Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

   ```
   {
       "commitId": "4f178133EXAMPLE",
       "treeId": "389765daEXAMPLE"
   }
   ```

# Tutup permintaan tarik di AWS CodeCommit repositori
<a name="how-to-close-pull-request"></a>

Jika Anda ingin menutup pull request tanpa menggabungkan kode, Anda dapat melakukannya dengan salah satu dari beberapa cara berikut:
+ Di konsol, Anda dapat menutup sebuah pull request tanpa menggabungkan kode. Anda mungkin ingin melakukan ini jika Anda ingin menggunakan perintah **git merge** untuk menggabungkan cabang secara manual, atau jika kode dalam cabang sumber pull request bukanlah kode yang Anda ingin gabungkan ke cabang tujuan. 
+ Anda dapat menghapus cabang sumber yang ditentukan dalam permintaan tarik. CodeCommit menutup permintaan tarik secara otomatis jika cabang sumber atau tujuan permintaan tarik dihapus.
+ Di dalam AWS CLI, Anda dapat memperbarui status permintaan tarik dari `OPEN` ke`CLOSED`. Hal ini akan menutup pull request tanpa menggabungkan kode. 

**Topics**
+ [Menutup sebuah pull request (konsol)](#how-to-close-pull-request-console)
+ [Menutup sebuah pull request (AWS CLI)](#how-to-close-pull-request-cli)

## Menutup sebuah pull request (konsol)
<a name="how-to-close-pull-request-console"></a>

Anda dapat menggunakan CodeCommit konsol untuk menutup permintaan tarik di CodeCommit repositori. Setelah status pull request diubah menjadi **Tutup**, maka pull request itu tidak dapat diubah statusnya kembali ke **Buka**, namun pengguna masih dapat mengomentari perubahan dan membalas komentar.

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

1. Di **Repositori**, pilih nama repositori. 

1. Di panel navigasi, pilih **Permintaan pull**.

1. Secara default, daftar semua pull request terbuka ditampilkan. Pilih pull request terbuka yang ingin Anda tutup.  
![\[Permintaan tarik ditampilkan di CodeCommit konsol.\]](http://docs.aws.amazon.com/id_id/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Dalam pull request, pilih **Tutup pull request**. Opsi ini menutup pull request tanpa mencoba untuk menggabungkan cabang sumber ke cabang tujuan. Opsi ini tidak menyediakan cara untuk menghapus cabang sumber sebagai bagian dari menutup pull request, tetapi Anda dapat melakukannya sendiri setelah permintaan itu ditutup.

## Menutup sebuah pull request (AWS CLI)
<a name="how-to-close-pull-request-cli"></a>

Untuk menggunakan AWS CLI perintah dengan CodeCommit, instal file AWS CLI. Untuk informasi selengkapnya, lihat [Referensi baris perintah](cmd-ref.md). 

**Untuk menggunakan AWS CLI untuk menutup permintaan tarik dalam CodeCommit repositori**
+ Untuk memperbarui status pull request dalam repositori dari `OPEN` ke `CLOSED`, jalankan perintah **update-pull-request-status**, yang menentukan:
  + ID dari pull request (dengan opsi **--pull-request-id**).
  + Status pull request (dengan opsi **--pull-request-status**).

  Misalnya, untuk memperbarui status permintaan tarik dengan ID dari *42* ke status *CLOSED* dalam CodeCommit repositori bernama: `MyDemoRepo`

  ```
  aws codecommit update-pull-request-status --pull-request-id 42 --pull-request-status CLOSED  
  ```

  Jika berhasil, perintah ini menghasilkan output yang serupa dengan yang berikut:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "codecommit:GetRepository",
              "Resource": [
                  "arn:aws:codecommit:us-east-2:111122223333:MySharedDemoRepo"
              ]
          }
      ]
  }
  ```

------