Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Kebijakan cabang membantu tim melindungi cabang penting pengembangan mereka. Kebijakan menegakkan standar kualitas kode dan manajemen perubahan tim Anda. Artikel ini menjelaskan cara mengatur dan mengelola kebijakan cabang. Untuk gambaran umum semua kebijakan dan pengaturan repositori dan cabang, lihat Pengaturan dan kebijakan repositori Git.
Cabang dengan kebijakan yang telah dikonfigurasi tidak dapat dihapus dan memerlukan permintaan tarik (PR) untuk semua perubahan.
Prasyarat
- Untuk menetapkan kebijakan cabang, menjadi anggota grup keamanan Administrator Proyek atau memiliki izin kebijakan Edit tingkat repositori. Untuk informasi selengkapnya, lihat Mengatur izin repositori Git.
Untuk mengelola kebijakan cabang, pilih Repos>Cabang untuk membuka halaman Cabang di portal web.
Anda juga dapat masuk ke pengaturan kebijakan cabang dengan Pengaturan Proyek>Repositori>Kebijakan>Kebijakan Cabang><Nama Cabang>.
Cabang yang memiliki kebijakan menampilkan ikon kebijakan. Anda dapat memilih ikon untuk langsung masuk ke pengaturan kebijakan cabang.
Untuk mengatur kebijakan cabang, temukan cabang yang ingin Anda kelola. Anda dapat menelusuri daftar atau mencari cabang Anda di kotak Nama cabang pencarian di kanan atas.
Pilih ikon Opsi lainnya di samping cabang, lalu pilih Kebijakan cabang dari menu konteks.
Konfigurasikan kebijakan pada halaman pengaturan cabang. Lihat bagian berikut untuk deskripsi dan instruksi untuk setiap jenis kebijakan.
Anda dapat menggunakan Azure DevOps CLI untuk mencantumkan atau menampilkan kebijakan untuk cabang atau repositori.
Mencantumkan kebijakan
Untuk mencantumkan semua kebijakan dalam proyek, gunakan az repos policy list.
az repos policy list [--branch]
[--detect {false, true}]
[--org]
[--project]
[--query-examples]
[--repository-id]
[--subscription]
Parameter
| Parameter |
Deskripsi |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
org, organization |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
query-examples |
String JMESPath yang direkomendasikan. Anda dapat menyalin salah satu kueri dan menempelkannya setelah --query parameter dalam tanda kutip ganda untuk melihat hasilnya. Anda dapat menambahkan satu atau beberapa kata kunci posisional sehingga saran didasarkan pada kata kunci ini. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
Contoh
Perintah berikut mengembalikan semua kebijakan cabang yang berlaku di main cabang repositori Fabrikam, ID d28cd374-e7f0-4b1f-ad60-f349f155d47c. Anda bisa mendapatkan ID repositori dengan menjalankan az repos list.
Contoh ini menggunakan konfigurasi default berikut: az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy list --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --branch main --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- --------------------------- ------------- ------------ ------------------------------------ ---------------
3 Work item linking False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
5 Minimum number of reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
6 Comment requirements False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
12 Required reviewers True False d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
13 Required reviewers False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Menampilkan detail kebijakan
Untuk menampilkan detail kebijakan apa pun, gunakan az repos policy show.
az repos policy show --id
[--detect {false, true}]
[--org]
[--project]
[--query-examples]
[--subscription]
Parameter
| Parameter |
Deskripsi |
id, policy-id |
ID kebijakan.
Diperlukan. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
org, organization |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
query-examples |
String JMESPath yang direkomendasikan. Anda dapat menyalin salah satu kueri dan menempelkannya setelah --query parameter dalam tanda kutip ganda untuk melihat hasilnya. Anda dapat menambahkan satu atau beberapa kata kunci posisional sehingga saran didasarkan pada kata kunci ini. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
Perintah Azure DevOps CLI tidak didukung untuk Azure DevOps Server.
Memerlukan jumlah minimum peninjau
Tinjauan kode penting untuk proyek pengembangan perangkat lunak. Untuk memastikan bahwa tim meninjau dan menyetujui PR, Anda dapat memerlukan persetujuan dari jumlah peninjau minimum. Kebijakan dasar mengharuskan sejumlah peninjau tertentu menyetujui kode, tanpa penolakan.
Untuk mengatur kebijakan, di bawah Kebijakan Cabang, atur Memerlukan jumlah minimum peninjau ke Aktif. Masukkan jumlah peninjau yang diperlukan, dan pilih salah satu opsi berikut:
Pilih Izinkan pemohon menyetujui perubahan mereka sendiri untuk memungkinkan pembuat PR memberikan suara untuk persetujuannya. Namun, pembuat masih dapat memilih Setujui pada PR, tetapi suara pembuat tidak diperhitungkan dalam jumlah minimum peninjau.
Pilih Larang pendorong terbaru untuk menyetujui perubahannya sendiri guna menerapkan pemisahan tugas. Secara default, siapa pun dengan izin push pada cabang sumber dapat menambahkan komit dan memberikan persetujuan pada PR. Memilih opsi ini berarti suara pengusul terbaru tidak dihitung, bahkan jika mereka biasanya dapat menyetujui perubahan mereka sendiri.
Pilih Izinkan penyelesaian meskipun beberapa peninjau memilih untuk menunggu atau menolak untuk mengizinkan penyelesaian PR meskipun beberapa peninjau memilih menolak persetujuan. Jumlah minimum peninjau masih harus memberikan persetujuan.
- Di bawah Saat perubahan baru didorong:
- Pilih Perlu setidaknya satu persetujuan pada setiap perulangan untuk memerlukan setidaknya satu suara persetujuan untuk perubahan cabang sumber terakhir. Persetujuan pengguna tidak dihitung terhadap perulangan yang tidak disetujui sebelumnya yang didorong oleh pengguna tersebut. Akibatnya, persetujuan lain pada iterasi terakhir diperlukan untuk dilakukan oleh pengguna lain.
Memerlukan setidaknya satu persetujuan pada setiap iterasi tersedia di Azure DevOps Server 2022.1 dan yang lebih tinggi.
- Pilih Perlu setidaknya satu persetujuan pada iterasi terakhir untuk memerlukan setidaknya satu suara persetujuan untuk perubahan cabang sumber terakhir.
- Pilih Reset semua suara persetujuan (tidak mengatur ulang suara untuk menolak atau menunggu) untuk menghapus semua suara persetujuan, tetapi pertahankan suara untuk menolak atau menunggu, setiap kali cabang sumber berubah.
- Pilih Reset semua suara peninjau kode untuk menghapus semua suara peninjau kode setiap kali cabang sumber berubah, termasuk suara untuk menyetujui, menolak, atau menunggu.
Jika semua kebijakan lainnya disetujui, pencipta dapat menyelesaikan PR ketika jumlah peninjau yang diperlukan telah menyetujuinya.
Anda dapat mengelola jumlah pemberi persetujuan yang diperlukan untuk permintaan pull menggunakan az repos policy approver-count.
Membuat kebijakan jumlah pemberi persetujuan
Untuk membuat kebijakan jumlah pemberi izin, gunakan az repos policy approver-count create.
az repos policy approver-count create --allow-downvotes {false, true}
--blocking {false, true}
--branch
--creator-vote-counts {false, true}
--enabled {false, true}
--minimum-approver-count
--repository-id
--reset-on-source-push {false, true}
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--project]
[--subscription]
Parameter
| Parameter |
Deskripsi |
allow-downvotes |
Izinkan suara tidak setuju. Nilai yang diterima: false, true.
Diperlukan. |
blocking |
Blokir jika kebijakan tidak terpenuhi. Nilai yang diterima: false, true.
Diperlukan. |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main.
Diperlukan. |
creator-vote-counts |
Hitung suara pembuat. Nilai yang diterima: false, true.
Diperlukan. |
enabled |
Aktifkan kebijakan. Nilai yang diterima: false, true.
Diperlukan. |
minimum-approver-count |
Jumlah minimum pemberi persetujuan yang diperlukan. Misalnya: 2.
Diperlukan. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Diperlukan. |
reset-on-source-push |
Reset suara saat perubahan dikirim ke sumber. Nilai yang diterima: false, true.
Diperlukan. |
branch-match-type |
branch Gunakan argumen untuk menerapkan kebijakan. Jika nilainya adalah exact, kebijakan berlaku pada cabang yang sama persis dengan --branch argumen. Jika nilainya adalah prefix, kebijakan berlaku di semua folder cabang yang cocok dengan awalan --branch dalam argumen. Nilai yang diterima: exact, prefix. Nilai default: exact. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
org |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
Contoh
Contoh berikut menetapkan jumlah minimum persetujuan yang diperlukan menjadi 2 untuk permintaan pull di cabang main repositori Fabrikam. Kebijakan ini memungkinkan suara tidak setuju, yang berarti bahwa permintaan penarikan dapat diselesaikan bahkan jika beberapa peninjau memilih untuk tidak menyetujui, selama jumlah suara setuju memenuhi kuorum minimum. Pengunggahan ke cabang sumber tidak menghapus suara. Kebijakan ini juga memungkinkan pembuat pull request untuk menyetujui pull request mereka sendiri.
Contoh ini menggunakan konfigurasi az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"default .
az repos policy approver-count create --allow-downvotes true --blocking true --branch main --creator-vote-counts true --enabled true --minimum-approver-count 2 --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --reset-on-source-push false --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- --------------------------- ------------- ------------ ------------------------------------ ---------------
27 Minimum number of reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Memperbarui kebijakan jumlah pemberi persetujuan
Untuk memperbarui kebijakan jumlah pemberi izin, gunakan az repos policy approver-count update.
az repos policy approver-count update --id
[--allow-downvotes {false, true}]
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--creator-vote-counts {false, true}]
[--detect {false, true}]
[--enabled {false, true}]
[--minimum-approver-count]
[--org]
[--project]
[--repository-id]
[--reset-on-source-push {false, true}]
[--subscription]
Parameter
| Parameter |
Deskripsi |
id, policy-id |
ID kebijakan.
Diperlukan. |
allow-downvotes |
Izinkan suara tidak setuju. Nilai yang diterima: false, true. |
blocking |
Blokir jika kebijakan tidak terpenuhi. Nilai yang diterima: false, true. |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main. |
branch-match-type |
branch Gunakan argumen untuk menerapkan kebijakan. Jika nilainya adalah exact, kebijakan berlaku pada cabang yang sama persis dengan --branch argumen. Jika nilainya adalah prefix, kebijakan berlaku di semua folder cabang yang cocok dengan awalan --branch dalam argumen. Nilai yang diterima: exact, prefix. Nilai default: exact. |
creator-vote-counts |
Hitung suara pembuat. Nilai yang diterima: false, true. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
enabled |
Aktifkan kebijakan. Nilai yang diterima: false, true. |
minimum-approver-count |
Jumlah minimum pemberi persetujuan yang diperlukan. Misalnya: 2. |
org |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
reset-on-source-push |
Reset suara saat perubahan dikirim ke sumber. Nilai yang diterima: false, true. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
Perintah Azure DevOps CLI tidak didukung untuk Azure DevOps Server.
Periksa item kerja tertaut
Untuk pelacakan manajemen item kerja, Anda dapat memerlukan asosiasi antara PR dan item kerja. Menautkan item kerja menyediakan lebih banyak konteks untuk perubahan, dan memastikan bahwa pembaruan melewati proses pelacakan item kerja Anda.
Untuk mengatur kebijakan, di bawah Kebijakan Cabang, atur Periksa item kerja yang tertaut ke Aktif. Pengaturan ini mengharuskan item kerja ditautkan ke PR sebelum PR dapat digabungkan. Buat pengaturan Opsional untuk memperingatkan ketika tidak ada item kerja tertaut, tetapi izinkan penyelesaian permintaan pull.
Anda dapat menggunakan azure CLI az repos policy work-item-linking untuk membuat dan memperbarui kebijakan penautan item kerja untuk cabang atau repositori.
Menetapkan kebijakan pengaitan item kerja
Gunakan az repos policy work-item-linking create untuk membuat kebijakan penautan item kerja untuk repositori atau cabang.
az repos policy work-item-linking create --blocking {false, true}
--branch
--enabled {false, true}
--repository-id
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--project]
[--subscription]
Parameter
| Parameter |
Deskripsi |
blocking |
Blokir jika kebijakan tidak terpenuhi. Nilai yang diterima: false, true.
Diperlukan. |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main.
Diperlukan. |
enabled |
Aktifkan kebijakan. Nilai yang diterima: false, true.
Diperlukan. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
branch-match-type |
branch Gunakan argumen untuk menerapkan kebijakan. Jika nilainya adalah exact, kebijakan berlaku pada cabang yang sama persis dengan --branch argumen. Jika nilainya adalah prefix, kebijakan berlaku di semua folder cabang yang cocok dengan awalan --branch dalam argumen. Nilai yang diterima: exact, prefix. Nilai default: exact. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
org |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
Memperbarui kebijakan penautan item kerja
Gunakan az repos policy work-item-linking update untuk memperbarui kebijakan penautan item kerja untuk repositori atau satu atau beberapa cabang.
az repos policy work-item-linking update --id
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--enabled {false, true}]
[--org]
[--project]
[--repository-id]
[--subscription]
Parameter
| Parameter |
Deskripsi |
id, policy-id |
ID kebijakan.
Diperlukan. |
blocking |
Blokir jika kebijakan tidak terpenuhi. Nilai yang diterima: false, true. |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main. |
branch-match-type |
branch Gunakan argumen untuk menerapkan kebijakan. Jika nilainya adalah exact, kebijakan berlaku pada cabang yang sama persis dengan --branch argumen. Jika nilainya adalah prefix, kebijakan berlaku di semua folder cabang yang cocok dengan awalan --branch dalam argumen. Nilai yang diterima: exact, prefix. Nilai default: exact. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
enabled |
Aktifkan kebijakan. Nilai yang diterima: false, true. |
minimum-approver-count |
Jumlah minimum pemberi persetujuan yang diperlukan. Misalnya: 2. |
org |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
Contoh
Contoh berikut memperbarui ID kebijakan 3 untuk cabang main di repositori Fabrikam sehingga diaktifkan namun bersifat opsional. Contoh menggunakan konfigurasi az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"default .
>az repos policy work-item-linking update --id 3 --blocking false --branch main --enabled true --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ----------------- ------------- ------------ ------------------------------------ ---------------
3 Work item linking False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Perintah Azure DevOps CLI tidak didukung untuk Azure DevOps Server.
Kebijakan Memeriksa penyelesaian komentar memastikan bahwa semua komentar PR telah diselesaikan.
Konfigurasikan kebijakan resolusi komentar untuk cabang Anda dengan mengatur Periksa resolusi komentar ke Aktif. Kemudian pilih apakah akan membuat kebijakan Diperlukan atau Opsional.
Untuk informasi selengkapnya tentang bekerja dengan komentar pada pull request, lihat Tinjau pull request.
Anda dapat menggunakan Azure DevOps CLI az repos policy comment-required untuk mengatur dan memperbarui kebijakan resolusi komentar.
Untuk membuat kebijakan resolusi komentar, gunakan az repos policy comment-required create.
az repos policy comment-required create --blocking {false, true}
--branch
--enabled {false, true}
--repository-id
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--project]
[--subscription]
Parameter
| Parameter |
Deskripsi |
blocking |
Blokir jika kebijakan tidak terpenuhi. Nilai yang diterima: false, true.
Diperlukan. |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main.
Diperlukan. |
enabled |
Aktifkan kebijakan. Nilai yang diterima: false, true.
Diperlukan. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Diperlukan. |
branch-match-type |
branch Gunakan argumen untuk menerapkan kebijakan. Jika nilainya adalah exact, kebijakan berlaku pada cabang yang sama persis dengan --branch argumen. Jika nilainya adalah prefix, kebijakan berlaku di semua folder cabang yang cocok dengan awalan --branch dalam argumen. Nilai yang diterima: exact, prefix. Nilai default: exact. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
org |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
Untuk memperbarui kebijakan resolusi komentar, gunakan az repos policy comment-required update.
az repos policy comment-required update --id
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--enabled {false, true}]
[--org]
[--project]
[--repository-id]
[--subscription]
Parameter
| Parameter |
Deskripsi |
id, policy-id |
ID kebijakan.
Diperlukan. |
blocking |
Blokir jika kebijakan tidak terpenuhi. Nilai yang diterima: false, true. |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main. |
branch-match-type |
branch Gunakan argumen untuk menerapkan kebijakan. Jika nilainya adalah exact, kebijakan berlaku pada cabang yang sama persis dengan --branch argumen. Jika nilainya adalah prefix, kebijakan berlaku di semua folder cabang yang cocok dengan awalan --branch dalam argumen. Nilai yang diterima: exact, prefix. Nilai default: exact. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
enabled |
Aktifkan kebijakan. Nilai yang diterima: false, true. |
org |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
Contoh
Contoh berikut memperbarui ID 6 kebijakan resolusi komentar di cabang repositori Fabrikam main agar memblokir. Komentar harus diselesaikan sebelum permintaan pull dapat digabungkan. Contoh ini menggunakan konfigurasi az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"default .
az repos policy comment-required update --id 6 --blocking true --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- -------------------- ------------- ------------ ------------------------------------ ---------------
6 Comment requirements True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Perintah Azure DevOps CLI tidak didukung untuk Azure DevOps Server.
Batasi jenis penggabungan
Azure Repos memiliki beberapa strategi penggabungan, dan secara default, semuanya diizinkan. Anda dapat mempertahankan riwayat cabang yang konsisten dengan memberlakukan strategi penggabungan untuk penyelesaian PR.
Atur Batasi jenis penggabungan ke Aktif untuk membatasi jenis penggabungan mana yang akan diizinkan dalam repositori Anda.
-
Penggabungan dasar (tanpa fast-forward) membuat commit penggabungan di target yang memiliki induk berupa cabang target dan cabang sumber.
-
Penggabungan squash membuat riwayat linier dengan satu komit di cabang target dengan perubahan dari cabang sumber.
Pelajari selengkapnya tentang penggabungan squash dan pengaruhnya terhadap riwayat cabang.
-
Rebase dan fast-forward membuat riwayat linier dengan memutar ulang commit dari sumber ke cabang target tanpa commit penggabungan.
-
Rebase dengan commit penggabungan memutar ulang commit sumber ke target dan juga membuat commit penggabungan.
Anda dapat menggunakan azure DevOps CLI az repos policy merge-strategy untuk mengatur dan memperbarui kebijakan strategi penggabungan.
Membuat kebijakan strategi penggabungan
Gunakan az repos policy merge-strategy create untuk membuat kebijakan strategi penggabungan.
az repos policy merge-strategy create --blocking {false, true}
--branch
--enabled {false, true}
--repository-id
[--allow-no-fast-forward {false, true}]
[--allow-rebase {false, true}]
[--allow-rebase-merge {false, true}]
[--allow-squash {false, true}]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--project]
[--subscription]
[--use-squash-merge {false, true}]
Parameter
| Parameter |
Deskripsi |
blocking |
Blokir jika kebijakan tidak terpenuhi. Nilai yang diterima: false, true.
Diperlukan. |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main.
Diperlukan. |
enabled |
Aktifkan kebijakan. Nilai yang diterima: false, true.
Diperlukan. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Diperlukan. |
allow-no-fast-forward |
Penggabungan dasar tanpa fast-forward. Mempertahankan sejarah nonlinear persis seperti yang terjadi selama pengembangan. Nilai yang diterima: false, true. |
allow-rebase |
Rebase dan maju cepat. Membuat riwayat linier dengan mengulang penerapan commit cabang sumber ke cabang target tanpa menyertakan commit penggabungan. Nilai yang diterima: false, true. |
allow-rebase-merge |
Rebase dengan penerapan penggabungan. Membuat riwayat semi-linier dengan memutar ulang commit dari cabang sumber ke cabang target lalu membuat commit penggabungan. Nilai yang diterima: false, true. |
allow-squash |
Penggabungan squash. Membuat riwayat linier dengan memusatkan penerapan cabang sumber menjadi satu penerapan baru pada cabang target. Nilai yang diterima: false, true. |
branch-match-type |
branch Gunakan argumen untuk menerapkan kebijakan. Jika nilainya adalah exact, kebijakan berlaku pada cabang yang sama persis dengan --branch argumen. Jika nilainya adalah prefix, kebijakan berlaku di semua folder cabang yang cocok dengan awalan --branch dalam argumen. Nilai yang diterima: exact, prefix. Nilai default: exact. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
org |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
use-squash-merge |
Selalu lakukan squash merge. Opsi ini tidak tersedia untuk jenis penggabungan lainnya. Nilai yang diterima: false, true.
Catatan: use-squash-merge tidak digunakan lagi dan akan dihapus dalam rilis mendatang. Gunakan --allow-squash sebagai gantinya. |
Contoh
Contoh berikut menetapkan strategi penggabungan yang diperlukan untuk permintaan pull pada cabang main repositori Fabrikam guna memungkinkan penggabungan squash. Contoh ini menggunakan konfigurasi az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"default .
az repos policy merge-strategy create --allow-squash true --blocking true --branch main --enabled true --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------------------ ------------- ------------ ------------------------------------ ---------------
29 Require a merge strategy True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Memperbarui kebijakan strategi penggabungan
Gunakan az repos policy merge-strategy update untuk memperbarui kebijakan strategi penggabungan.
az repos policy merge-strategy update --id
[--allow-no-fast-forward {false, true}]
[--allow-rebase {false, true}]
[--allow-rebase-merge {false, true}]
[--allow-squash {false, true}]
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--enabled {false, true}]
[--org]
[--project]
[--repository-id]
[--subscription]
[--use-squash-merge {false, true}]
Parameter
| Parameter |
Deskripsi |
id, policy-id |
ID kebijakan.
Diperlukan. |
allow-no-fast-forward |
Penggabungan dasar tanpa fast-forward. Mempertahankan sejarah nonlinear persis seperti yang terjadi selama pengembangan. Nilai yang diterima: false, true. |
allow-rebase |
Rebase dan maju cepat. Membuat riwayat linier dengan mengulang penerapan commit cabang sumber ke cabang target tanpa menyertakan commit penggabungan. Nilai yang diterima: false, true. |
allow-rebase-merge |
Rebase dengan penerapan penggabungan. Membuat riwayat semi-linier dengan memutar ulang commit dari cabang sumber ke cabang target lalu membuat commit penggabungan. Nilai yang diterima: false, true. |
allow-squash |
Penggabungan squash. Membuat riwayat linier dengan memusatkan penerapan cabang sumber menjadi satu penerapan baru pada cabang target. Nilai yang diterima: false, true. |
blocking |
Blokir jika kebijakan tidak terpenuhi. Nilai yang diterima: false, true. |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main. |
branch-match-type |
branch Gunakan argumen untuk menerapkan kebijakan. Jika nilainya adalah exact, kebijakan berlaku pada cabang yang sama persis dengan --branch argumen. Jika nilainya adalah prefix, kebijakan berlaku di semua folder cabang yang cocok dengan awalan --branch dalam argumen. Nilai yang diterima: exact, prefix. Nilai default: exact. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
enabled |
Aktifkan kebijakan. Nilai yang diterima: false, true. |
org |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
use-squash-merge |
Apakah harus selalu menggunakan squash merge. Opsi ini tidak berfungsi untuk jenis penggabungan lainnya. Nilai yang diterima: false, true. |
Perintah Azure DevOps CLI tidak didukung untuk Azure DevOps Server.
Membuat validasi
Anda dapat mengatur kebijakan yang mengharuskan perubahan PR berhasil dibangun sebelum PR dapat diselesaikan.
Kebijakan pembangunan mengurangi gangguan dan menjaga hasil pengujian Anda tetap berhasil. Kebijakan build membantu meskipun Anda menggunakan Continuous Integration (CI) di cabang pengembangan Anda untuk mengidentifikasi masalah sebelumnya.
Kebijakan validasi build mengantrekan build baru saat PR baru dibuat atau perubahan didorong ke PR yang ada yang menargetkan cabang. Kebijakan build mengevaluasi hasil build untuk menentukan apakah PR dapat diselesaikan.
Penting
Sebelum menetapkan kebijakan validasi build, setel dahulu alur build. Jika Anda tidak memiliki alur, lihat Membuat alur build. Pilih jenis build yang cocok dengan jenis proyek Anda.
Untuk menambahkan kebijakan validasi penyusunan
Pilih tombol + di sebelah Validasi build.
Isi formulir Tetapkan kebijakan build:
Pilih Build pipeline.
Atur filter jalur secara opsional.
Pelajari selengkapnya tentang filter jalur dalam kebijakan cabang.
Di bawah Pemicu, pilih Otomatis (setiap kali cabang sumber diperbarui) atau Manual.
Di bawah Persyaratan kebijakan, pilih Diperlukan atau Opsional. Jika Anda memilih Diperlukan, build harus berhasil diselesaikan untuk menyelesaikan PR. Pilih Opsional untuk memberikan pemberitahuan kegagalan build tetapi tetap memungkinkan penyelesaian PR.
Atur kedaluwarsa pembentukan untuk memastikan pembaruan ke cabang Anda yang dilindungi tidak mengganggu perubahan pada PR yang terbuka.
Segera ketika <nama> cabang diperbarui: Opsi ini mengatur status kebijakan build PR menjadi gagal setiap kali cabang diperbarui, dan mengulang antrean build. Pengaturan ini memastikan bahwa perubahan PR berhasil dikompilasi meskipun cabang yang dilindungi mengalami perubahan.
Opsi ini terbaik untuk tim yang cabang pentingnya memiliki sedikit perubahan. Tim yang bekerja di cabang pengembangan yang sibuk mungkin merasa terganggu harus menunggu build setiap kali cabang tersebut diperbarui.
Setelah <n> jam jika <nama> cabang telah diperbarui: Opsi ini akan mengakhiri status kebijakan saat ini ketika cabang yang dilindungi diperbarui, jika build yang berhasil lebih lama dari ambang batas yang Anda masukkan. Opsi ini merupakan kompromi antara selalu memerlukan build atau tidak pernah memerlukannya ketika cabang dilindungi diperbarui. Pilihan ini mengurangi jumlah build saat cabang anda yang dilindungi memiliki pembaruan yang sering.
Tidak Pernah: Pembaruan pada cabang yang dilindungi tidak mengubah status kebijakan. Nilai ini mengurangi jumlah build, tetapi dapat menyebabkan masalah saat menyelesaikan PR yang tidak diperbarui baru-baru ini.
Masukkan Nama tampilan opsional untuk kebijakan build ini. Nama ini mengidentifikasi kebijakan pada halaman Kebijakan cabang. Jika Anda tidak menentukan nama tampilan, kebijakan menggunakan nama alur build.
Pilih Simpan.
Ketika pemilik PR mendorong perubahan yang berhasil dibangun, status kebijakan diperbarui.
Jika Anda memiliki kebijakan build Segera setelah <nama cabang> diperbarui atau Setelah <n> jam jika <nama cabang> diperbarui, status kebijakan akan diperbarui saat cabang yang dilindungi diperbarui, jika build sebelumnya tidak lagi valid.
Anda dapat menggunakan azure DevOps CLI az repos policy build untuk mengatur dan memperbarui kebijakan validasi build.
Membuat sebuah kebijakan validasi build
Gunakan az repos policy build create untuk membuat kebijakan validasi build.
az repos policy build create --blocking {false, true}
--branch
--build-definition-id
--display-name
--enabled {false, true}
--manual-queue-only {false, true}
--queue-on-source-update-only {false, true}
--repository-id
--valid-duration
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--path-filter]
[--project]
[--subscription]
Parameter
| Parameter |
Deskripsi |
blocking |
Blokir jika kebijakan tidak terpenuhi. Nilai yang diterima: false, true.
Diperlukan. |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main.
Diperlukan. |
build-definition-id |
ID definisi sebuah build.
Diperlukan. |
display-name |
Nama yang ditampilkan untuk kebijakan build ini agar dapat mengidentifikasi kebijakan. Misalnya: Manual queue policy.
Diperlukan. |
enabled |
Aktifkan kebijakan. Nilai yang diterima: false, true.
Diperlukan. |
manual-queue-only |
Apakah hanya mengizinkan antrean build dilakukan secara manual. Nilai yang diterima: false, true.
Diperlukan. |
queue-on-source-update-only |
Apakah akan mengantrekan build hanya ketika ada pembaruan sumber? Nilai yang diterima: false, true.
Diperlukan. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Diperlukan. |
valid-duration |
Durasi validitas kebijakan, dalam hitungan menit.
Catatan:valid-duration harus antara nol dan satu tahun, dan harus nol ketika --queue-on-source-update-only adalah false.
Diperlukan. |
branch-match-type |
branch Gunakan argumen untuk menerapkan kebijakan. Jika nilainya adalah exact, kebijakan berlaku pada cabang yang sama persis dengan --branch argumen. Jika nilainya adalah prefix, kebijakan berlaku di semua folder cabang yang cocok dengan awalan --branch dalam argumen. Nilai yang diterima: exact, prefix. Nilai default: exact. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
org |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
path-filter |
Jalur tempat kebijakan diterapkan. Mendukung jalur absolut, karakter pengganti, dan beberapa jalur yang dipisahkan oleh ;. Contoh: /WebApp/Models/Data.cs, , /WebApp/*atau *.cs, atau /WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
Contoh
Contoh berikut menetapkan kebijakan build yang diperlukan untuk permintaan pull di main cabang repositori Fabrikam. Kebijakan ini memerlukan keberhasilan build dari definisi build dengan ID 1, dan hanya memungkinkan antrean build manual. Contoh ini menggunakan konfigurasi az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"default .
az repos policy build create --blocking true --branch main --build-definition-id 1 --display-name build-policy --enabled true --manual-queue-only true --queue-on-source-update-only false --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --valid-duration 0 --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------ ------------- ------------ ------------------------------------ ---------------
31 build-policy True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Memperbarui kebijakan validasi build
Gunakan az repos policy build update untuk memperbarui kebijakan validasi build.
az repos policy build update --id
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--build-definition-id]
[--detect {false, true}]
[--display-name]
[--enabled {false, true}]
[--manual-queue-only {false, true}]
[--org]
[--path-filter]
[--project]
[--queue-on-source-update-only {false, true}]
[--repository-id]
[--subscription]
[--valid-duration]
Parameter
| Parameter |
Deskripsi |
id, policy-id |
ID kebijakan.
Diperlukan. |
blocking |
Blokir jika kebijakan tidak terpenuhi. Nilai yang diterima: false, true. |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main. |
branch-match-type |
branch Gunakan argumen untuk menerapkan kebijakan. Jika nilainya adalah exact, kebijakan berlaku pada cabang yang sama persis dengan --branch argumen. Jika nilainya adalah prefix, kebijakan berlaku di semua folder cabang yang cocok dengan awalan --branch dalam argumen. Nilai yang diterima: exact, prefix. Nilai default: exact. |
build-definition-id |
ID definisi sebuah build. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
display-name |
Nama yang ditampilkan untuk kebijakan build ini agar dapat mengidentifikasi kebijakan. Misalnya: Manual queue policy. |
enabled |
Aktifkan kebijakan. Nilai yang diterima: false, true. |
manual-queue-only |
Apakah hanya mengizinkan antrean build dilakukan secara manual. Nilai yang diterima: false, true. |
org |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
path-filter |
Jalur tempat kebijakan akan diterapkan. Mendukung jalur absolut, karakter pengganti, dan beberapa jalur yang dipisahkan oleh ;. Contoh: /WebApp/Models/Data.cs, , /WebApp/*atau *.cs, atau /WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
queue-on-source-update-only |
Apakah akan mengantrekan build hanya ketika ada pembaruan sumber? Nilai yang diterima: false, true. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
valid-duration |
Durasi validitas kebijakan, dalam hitungan menit. |
Perintah Azure DevOps CLI tidak didukung untuk Azure DevOps Server.
Pengecekan status
Layanan eksternal dapat menggunakan PR Status API untuk memposting status terperinci ke PR Anda. Kebijakan cabang untuk layanan tambahan memungkinkan layanan eksternal tersebut untuk berpartisipasi dalam alur kerja PR dan menetapkan persyaratan kebijakan.
Untuk petunjuk tentang mengonfigurasi kebijakan ini, lihat Mengonfigurasi kebijakan cabang untuk layanan eksternal.
Secara otomatis menyertakan peninjau kode
Anda dapat secara otomatis menambahkan peninjau ke pull request yang mengubah file di direktori atau file tertentu, atau ke semua pull request dalam repo.
Pilih tombol + di samping Peninjau yang Secara Otomatis Disertakan.
Isi layar Tambahkan kebijakan peninjau baru.
Tambahkan orang dan grup ke Peninjau.
Pilih Opsional jika Anda ingin menambahkan peninjau secara otomatis, tetapi tidak memerlukan persetujuan mereka untuk menyelesaikan permintaan pull.
Atau, pilih Diperlukan jika permintaan pull tidak dapat diselesaikan hingga:
- Setiap individu ditambahkan sebagai peninjau menyetujui perubahan.
- Setidaknya satu orang di setiap grup yang ditambahkan sebagai peninjau menyetujui perubahan.
- Jika hanya satu grup yang diperlukan, jumlah minimum anggota yang Anda tentukan menyetujui perubahan.
Tentukan file dan folder yang memerlukan peninjau yang disertakan secara otomatis. Biarkan bidang ini kosong untuk mengharuskan peninjau untuk semua permintaan pull di cabang.
Pilih Izinkan pemohon untuk menyetujui perubahan mereka sendiri jika pemilik permintaan pull dapat memilih untuk menyetujui permintaan pull mereka sendiri untuk memenuhi kebijakan ini.
Anda dapat menentukan pesan Umpan aktivitas yang muncul di permintaan penarikan.
Pilih Simpan.
Anda dapat menggunakan azure DevOps CLI az repos policy required-reviewer untuk mengatur dan memperbarui kebijakan peninjau yang diperlukan.
Membuat kebijakan peninjau yang diperlukan
Gunakan az repos policy required-reviewer create untuk membuat kebijakan peninjau wajib.
az repos policy required-reviewer create --blocking {false, true}
--branch
--enabled {false, true}
--message
--repository-id
--required-reviewer-ids
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--path-filter]
[--project]
[--subscription]
Parameter
| Parameter |
Deskripsi |
blocking |
Blokir jika kebijakan tidak terpenuhi. Nilai yang diterima: false, true.
Diperlukan. |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main.
Diperlukan. |
enabled |
Aktifkan kebijakan. Nilai yang diterima: false, true.
Diperlukan. |
message |
Pesan umpan aktivitas yang muncul dalam permintaan pull.
Diperlukan. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Diperlukan. |
required-reviewer-ids |
Alamat email peninjau dipisahkan oleh ;. Misalnya: john@contoso.com;alice@contoso.com. |
branch-match-type |
branch Gunakan argumen untuk menerapkan kebijakan. Jika nilainya adalah exact, kebijakan berlaku pada cabang yang sama persis dengan --branch argumen. Jika nilainya adalah prefix, kebijakan berlaku di semua folder cabang yang cocok dengan awalan --branch dalam argumen. Nilai yang diterima: exact, prefix. Nilai default: exact. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
org |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
path-filter |
Jalur tempat kebijakan akan diterapkan. Mendukung jalur absolut, karakter pengganti, dan beberapa jalur yang dipisahkan oleh ;. Contoh: /WebApp/Models/Data.cs, , /WebApp/*atau *.cs, atau /WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
Contoh
Contoh berikut menetapkan Jamal Hartnett sebagai peninjau yang diperlukan untuk permintaan pull di main cabang repositori Fabrikam. Contoh ini menggunakan konfigurasi az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"default .
az repos policy required-reviewer create --blocking true --branch main --enabled true --message "Please review." --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --required-reviewer-ids fabrikamfiber4@hotmail.com --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------------ ------------- ------------ ------------------------------------ ---------------
35 Required reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Memperbarui kebijakan peninjau yang diperlukan
Gunakan az repos policy required-reviewer update untuk memperbarui kebijakan peninjau yang diperlukan.
az repos policy required-reviewer update --id
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--enabled {false, true}]
[--message]
[--org]
[--path-filter]
[--project]
[--repository-id]
[--required-reviewer-ids]
[--subscription]
Parameter
| Parameter |
Deskripsi |
id, policy-id |
ID kebijakan.
Diperlukan. |
blocking |
Blokir jika kebijakan tidak terpenuhi. Nilai yang diterima: false, true. |
branch |
Nama cabang untuk menyaring hasil berdasarkan kecocokan yang persis. Parameter --repository-id diperlukan untuk menggunakan filter cabang. Misalnya: --branch main. |
branch-match-type |
branch Gunakan argumen untuk menerapkan kebijakan. Jika nilainya adalah exact, kebijakan berlaku pada cabang yang sama persis dengan --branch argumen. Jika nilainya adalah prefix, kebijakan berlaku di semua folder cabang yang cocok dengan awalan --branch dalam argumen. Nilai yang diterima: exact, prefix. Nilai default: exact. |
detect |
Mendeteksi organisasi secara otomatis. Nilai yang diterima: false, true. |
enabled |
Aktifkan kebijakan. Nilai yang diterima: false, true. |
message |
Pesan umpan aktivitas yang muncul dalam permintaan pull. |
org |
URL organisasi Azure DevOps. Anda dapat mengonfigurasi organisasi default dengan menggunakan az devops configure -d organization=<ORG_URL>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. Contoh: https://dev.azure.com/MyOrganizationName/. |
path-filter |
Jalur tempat kebijakan akan diterapkan. Mendukung jalur absolut, karakter pengganti, dan beberapa jalur yang dipisahkan oleh ;. Contoh: /WebApp/Models/Data.cs, , /WebApp/*atau *.cs, atau /WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Nama atau ID proyek. Anda dapat mengonfigurasi proyek default menggunakan az devops configure -d project=<NAME_OR_ID>.
Diperlukan jika tidak dikonfigurasi sebagai default atau diambil dari konfigurasi git. |
repository-id |
ID repositori untuk memfilter hasil berdasarkan kecocokan yang tepat. Contohnya,--repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
required-reviewer-ids |
Alamat email peninjau dipisahkan oleh ;. Misalnya: john@contoso.com;alice@contoso.com. |
subscription |
Nama atau ID langganan. Anda dapat mengonfigurasi langganan default menggunakan az account set -s <NAME_OR_ID>. |
Perintah Azure DevOps CLI tidak didukung untuk Azure DevOps Server.
Mengecualikan kebijakan cabang
Dalam beberapa kasus, Anda mungkin perlu melewati persyaratan kebijakan. Izin bypass memungkinkan Anda mendorong perubahan ke cabang secara langsung, atau menyelesaikan permintaan pull yang tidak memenuhi kebijakan cabang. Anda dapat memberikan izin bypass kepada pengguna atau grup. Anda dapat mengatur izin bypass untuk seluruh proyek, repositori, atau satu cabang.
Dua izin memungkinkan pengguna untuk melewati kebijakan cabang dengan cara yang berbeda:
Melewati kebijakan saat menyelesaikan permintaan pull hanya berlaku untuk penyelesaian permintaan pull. Pengguna dengan izin ini dapat menyelesaikan permintaan pull meskipun permintaan pull tidak memenuhi kebijakan.
Melewati kebijakan ketika push berlaku untuk push pada repositori lokal dan pengeditan di web. Pengguna dengan izin ini dapat mendorong perubahan langsung ke cabang yang dilindungi tanpa memenuhi persyaratan kebijakan.
Untuk informasi selengkapnya tentang mengelola izin ini, lihat Izin Git.
Penting
Berhati-hatilah saat memberikan kemampuan untuk melewati kebijakan, terutama di tingkat repositori dan proyek. Kebijakan adalah landasan manajemen kode sumber yang aman dan sesuai.
Filter jalur
Beberapa kebijakan cabang menyediakan filter jalur. Jika filter jalur diatur, kebijakan hanya berlaku untuk file yang cocok dengan filter jalur. Membiarkan bidang ini kosong berarti bahwa kebijakan berlaku untuk semua file di cabang.
Anda dapat menentukan jalur absolut (jalur harus dimulai dengan / atau karakter pengganti) dan karakter pengganti.
Contoh:
/WebApp/Models/Data.cs
/WebApp/*
*/Models/Data.cs
*.cs
Anda dapat menentukan beberapa jalur menggunakan ; sebagai pemisah.
Contoh:
/WebApp/Models/Data.cs;/ClientApp/Models/Data.cs
Jalur yang diawali dengan ! dikecualikan jika seharusnya disertakan.
Contoh:
-
/WebApp/*;!/WebApp/Tests/* menyertakan semua file dalam /WebApp kecuali file di /WebApp/Tests
-
!/WebApp/Tests/* menentukan tidak ada file, karena tidak ada yang disertakan terlebih dahulu
Urutan filter signifikan. Filter diterapkan kiri-ke-kanan.
T&J
Dapatkah saya mendorong perubahan langsung ke cabang yang memiliki kebijakan cabang?
Anda tidak dapat menerapkan perubahan secara langsung pada cabang dengan kebijakan cabang yang wajib kecuali Anda memiliki izin untuk melewati kebijakan cabang. Perubahan pada cabang ini hanya dapat dilakukan melalui pull request. Anda dapat mendorong perubahan langsung ke cabang yang memiliki kebijakan cabang opsional , jika mereka tidak memiliki kebijakan cabang yang diperlukan.
Apa itu pelengkapan otomatis?
Permintaan tarik ke cabang dengan kebijakan cabang yang sudah dikonfigurasi memiliki tombol Atur penyelesaian otomatis. Pilih opsi ini untuk menyelesaikan permintaan pull secara otomatis setelah memenuhi semua kebijakan. Pelengkapan otomatis berguna saat Anda tidak menduga akan ada masalah dengan perubahan.
Kapan dilakukan pemeriksaan terhadap kondisi kebijakan cabang?
Kebijakan cabang dievaluasi ulang di server ketika pemilik permintaan tarik melakukan perubahan dan ketika peninjau memberikan suara. Jika kebijakan memicu build, status build diatur untuk menunggu hingga build selesai.
Dapatkah saya menggunakan definisi build XAML dalam kebijakan cabang?
Tidak, Anda tidak dapat menggunakan definisi build XAML dalam kebijakan cabang.
Karakter wildcard apa yang dapat saya gunakan untuk peninjau kode yang diwajibkan?
Tanda bintang tunggal * dapat mencocokkan sejumlah karakter apa pun, termasuk garis miring ke depan / dan garis miring ke belakang \. Tanda tanya ? cocok dengan satu karakter apa pun.
Contoh:
-
*.sql mencocokkan semua file dengan ekstensi .sql .
-
/ConsoleApplication/* cocok dengan semua file di bawah folder bernama ConsoleApplication.
-
/.gitattributes cocok dengan file.gitattributes* di akar repositori.
-
*/.gitignoremencocokkan semua file .gitignore di repositori.
Apakah jalur peninjau kode yang diperlukan peka terhadap huruf besar atau kecil?
Tidak, kebijakan cabang tidak sensitif terhadap huruf besar/kecil.
Anda dapat menambahkan pengguna ke grup, lalu menambahkan grup sebagai peninjau. Setiap anggota grup kemudian dapat menyetujui untuk memenuhi persyaratan kebijakan.
Saya memiliki izin untuk mengabaikan kebijakan. Mengapa saya masih melihat kegagalan kebijakan dalam status pull request?
Kebijakan yang telah dikonfigurasi selalu dievaluasi untuk perubahan pada pull request. Untuk pengguna yang memiliki izin untuk melewati kebijakan, status kebijakan yang dilaporkan bersifat saran. Jika pengguna dengan izin bypass menyetujui, status kegagalan tidak memblokir penyelesaian permintaan pull.
Mengapa saya tidak dapat melakukan permintaan pull saya sendiri saat "Izinkan pemohon menyetujui perubahan mereka sendiri diaktifkan"?
Kebijakan Memerlukan Minimum Jumlah Peninjau dan Kebijakan Peninjau yang Disertakan Secara Otomatis memiliki opsi untuk Mengizinkan Pemohon Menyetujui Perubahan Mereka Sendiri. Dalam setiap kebijakan, pengaturan hanya berlaku untuk kebijakan tersebut. Pengaturan tidak memengaruhi kebijakan lain.
Misalnya, permintaan pull Anda memiliki kebijakan berikut yang ditetapkan:
-
Memerlukan jumlah minimum peninjau memerlukan setidaknya satu peninjau.
-
Peninjau yang disertakan secara otomatis memerlukan Anda atau tim Anda sebagai peninjau.
-
Peninjau yang disertakan secara otomatis memiliki fitur Izinkan pemohon menyetujui perubahan mereka sendiri yang diaktifkan.
-
Memerlukan jumlah minimum peninjau tidak mengaktifkan Izinkan pemohon untuk menyetujui perubahan mereka sendiri.
Dalam hal ini, persetujuan Anda memenuhi Peninjau yang ditambahkan secara otomatis, tetapi tidak memenuhi Persyaratan jumlah minimum peninjau, sehingga Anda tidak dapat menyelesaikan permintaan penarikan.
Mungkin juga ada kebijakan lain, seperti Melarang pendorong terbaru menyetujui perubahan mereka sendiri, yang mencegah Anda menyetujui perubahan Anda sendiri bahkan jika Izinkan pemohon untuk menyetujui perubahan mereka sendiri diaktifkan.
Apa yang terjadi ketika jalur pada filter tidak dimulai dengan / atau dengan karakter pengganti?
Jalur dalam filter jalur yang tidak dimulai dengan / atau dengan karakter pengganti tidak memiliki efek, dan filter jalur mengevaluasi seolah-olah jalur tersebut tidak ditentukan. Jalur seperti itu tidak dapat mencocokkan jalur file absolut yang dimulai dengan /.
Artikel terkait