Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Gunakan kebijakan cabang untuk melindungi cabang penting dengan mewajibkan pull request, peninjau, build, dan pemeriksaan lainnya sebelum perubahan digabungkan. Artikel ini memperlihatkan cara mengonfigurasi dan mengelola kebijakan cabang di portal web Azure DevOps dan Azure DevOps CLI. Untuk ringkasan kebijakan cabang dan panduan percabangan yang tersedia, lihat Tentang kebijakan cabang dan cabang.
Untuk panduan keamanan yang lengkap yang mencakup kebijakan cabang, kontrol akses repositori, penandatanganan commit, dan skenario penerapan di dunia nyata, lihat Mengamankan repositori dan pull request.
Anda tidak dapat menghapus cabang yang dikonfigurasi dengan kebijakan wajib, dan semua perubahan harus melalui pull request (PR).
Prasyarat
| Requirement |
Rincian |
| Permissions |
Harus menjadi anggota grup keamanan Administrator Proyek, atau memiliki izin Edit kebijakan pada tingkat repositori. Untuk informasi selengkapnya, lihat Mengatur izin repositori Git. |
| penyiapan CLI Azure DevOps (opsional) |
Untuk menggunakan perintah az repos policy Azure DevOps CLI, ikuti Mulai menggunakan Azure DevOps CLI. |
| Penentuan repositori target untuk CLI (opsional) |
Sebelum Anda membuat atau memperbarui kebijakan di CLI, identifikasi ID repositori dengan menjalankan az repos list. Untuk menghindari pengulangan --org dan --project, atur default dengan az devops configure --defaults. |
| Dependensi kebijakan |
Sebelum Anda mengonfigurasi validasi Build, siapkan alur build. Sebelum Anda mengonfigurasi pemeriksaan status, pastikan layanan eksternal atau integrasi bawaan sudah dapat mengirimkan status pull request. |
| Penyiapan bantuan AI (opsional) |
Untuk menggunakan bantuan AI dengan Azure DevOps MCP Server, gunakan Azure DevOps Services, aktifkan mode agen di asisten AI Anda, dan instal Node.js 20.0+. Untuk informasi selengkapnya, lihat Mengaktifkan bantuan AI dengan Azure DevOps McP Server. |
| Requirement |
Rincian |
| Permissions |
Harus menjadi anggota grup keamanan Administrator Proyek, atau memiliki izin Mengedit kebijakan pada tingkat repositori. Untuk informasi selengkapnya, lihat Mengatur izin repositori Git. |
Buka pengaturan kebijakan cabang
Untuk membuka pengaturan kebijakan cabang di portal web:
- Pilih Repositori>Cabang.
- Temukan cabang yang ingin Anda kelola.
- Pilih ikon Opsi lainnya di samping cabang, lalu pilih Kebijakan cabang.
Anda juga dapat membuka pengaturan kebijakan cabang dari Pengaturan proyek>Repositori>Kebijakan>Kebijakan cabang><Nama cabang>.
Cabang yang memiliki kebijakan menampilkan ikon kebijakan. Pilih ikon untuk langsung masuk ke pengaturan kebijakan cabang.
Anda dapat menelusuri daftar atau mencari cabang di kotak Nama cabang pencarian .
Konfigurasikan kebijakan pada halaman pengaturan cabang. Gunakan bagian berikut untuk mengaktifkan atau memperbarui kebijakan yang sudah ada.
Gunakan CLI Azure DevOps untuk mencantumkan kebijakan yang ada untuk cabang atau repositori sebelum Anda membuat atau memperbarui kebijakan.
Jika Anda sering menggunakan CLI Azure DevOps, tetapkan nilai default untuk organisasi dan proyek Anda dengan az devops configure --defaults. Ketika Anda ingin kebijakan hanya berlaku untuk satu cabang, gunakan --branch-match-type exact. Gunakan prefix hanya ketika Anda ingin kebijakan diterapkan di seluruh folder cabang seperti release/.
Mencantumkan kebijakan
Untuk mencantumkan semua kebijakan dalam proyek, gunakan az repos policy list.
az repos policy list [--branch]
[--detect {false, true}]
[--org]
[--project]
[--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. Konfigurasikan 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. Konfigurasikan 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. Konfigurasikan 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. Dapatkan 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]
[--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. Konfigurasikan 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. Konfigurasikan 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. Konfigurasikan langganan default menggunakan az account set -s <NAME_OR_ID>. |
Perintah Azure DevOps CLI tidak didukung untuk Azure DevOps Server.
Tetapkan kebijakan jumlah minimum peninjau
Memerlukan persetujuan dari jumlah minimum peninjau sebelum permintaan pull dapat diselesaikan.
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. Jika tidak, pembuat masih dapat memberikan suara Setujui pada PR, tetapi suaranya tidak dihitung sebagai bagian dari jumlah minimum peninjau yang diperlukan.
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. Konfigurasikan 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. Konfigurasikan 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. Konfigurasikan 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. Konfigurasikan langganan default menggunakan az account set -s <NAME_OR_ID>. |
Perintah Azure DevOps CLI tidak didukung untuk Azure DevOps Server.
Wajibkan item kerja yang ditautkan
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. Konfigurasikan 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. Konfigurasikan 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. |
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. Konfigurasikan 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. Konfigurasikan 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.
Atur Periksa resolusi komentar ke Aktif untuk mengonfigurasi kebijakan resolusi komentar untuk cabang Anda. Kemudian pilih apakah akan membuat kebijakan Diperlukan atau Opsional.
Untuk informasi selengkapnya tentang menggunakan komentar pull request, lihat Meninjau pull request.
Gunakan 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. Konfigurasikan 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. Konfigurasikan 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. Konfigurasikan 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. Konfigurasikan 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 mendukung beberapa strategi penggabungan, dan secara default, itu memungkinkan semuanya. Untuk mempertahankan riwayat cabang yang konsisten, terapkan strategi penggabungan untuk penyelesaian PR.
Atur Batasi jenis penggabungan ke Aktif untuk membatasi jenis penggabungan mana yang diizinkan dalam repositori Anda.
-
Penggabungan dasar (tanpa fast-forward) membuat commit penggabungan di target yang memiliki induk berupa cabang target dan cabang sumber.
-
Squash merge menciptakan riwayat linear dengan satu komit di cabang target yang mencakup 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.
Gunakan 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. Konfigurasikan 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. Konfigurasikan 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. Konfigurasikan 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. Konfigurasikan 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.
Mengatur validasi build
Tetapkan kebijakan yang memerlukan perubahan PR agar 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.
Saat Anda mengatur pemicu kebijakan ke Otomatis, kebijakan validasi build akan mengantrikan build baru saat Anda membuat PR baru atau mendorong perubahan ke PR yang sudah ada yang menargetkan cabang tersebut. Jika Anda mengatur pemicu kebijakan ke Manual, pengguna harus mengantre build itu sendiri. Dalam kedua kasus, kebijakan mengevaluasi hasil kompilasi untuk menentukan apakah PR dapat diselesaikan.
Penting
Sebelum menentukan kebijakan validasi build, buat 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:
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.
Gunakan 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. Konfigurasikan 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. Konfigurasikan 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. Konfigurasikan 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. Konfigurasikan 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.
Memerlukan pemeriksaan 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 mengonfigurasi kebijakan pemeriksaan status:
- Pastikan layanan dapat memublikasikan status permintaan pull ke Azure Repos.
- Di Kebijakan cabang, di bawah Pemeriksaan status, pilih +.
- Di Status untuk memeriksa, pilih pemeriksaan yang diposting dari daftar. Jika layanan belum memublikasikan status, ketik nilai
genre/name secara langsung.
- Atur Persyaratan kebijakan ke Diperlukan atau Opsional.
- Secara opsional mengonfigurasi identitas resmi, Mengatur ulang kondisi, Penerapan kebijakan, dan Filter jalur.
- Gunakan Terapkan secara default jika kebijakan harus berlaku segera setelah permintaan pull dibuat.
- Gunakan Conditional jika kebijakan hanya boleh berlaku setelah status pertama dipublikasikan.
- Buat atau perbarui permintaan pull yang menargetkan cabang, dan konfirmasikan bahwa kebijakan muncul di bagian Kebijakan PR.
Untuk pemeriksaan Layanan Azure DevOps bawaan dan pengidentifikasinyagenre/name, lihat Pemeriksaan status permintaan pull yang tersedia. Untuk panduan lengkap penyiapan layanan eksternal, lihat Mengonfigurasi kebijakan cabang untuk layanan eksternal.
Jika integrasi baru belum muncul di menu tarik-turun, kirim status sekali dari layanan tersebut, lalu tambahkan kebijakan, atau ketik langsung nilai genre/name.
Secara otomatis menyertakan peninjau
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.
Gunakan 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. Konfigurasikan 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. Konfigurasikan 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. Konfigurasikan 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. Konfigurasikan langganan default menggunakan az account set -s <NAME_OR_ID>. |
Perintah Azure DevOps CLI tidak didukung untuk Azure DevOps Server.
Izinkan melewati kebijakan jika diperlukan
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, dan mencakup izin tersebut ke 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.
Gunakan filter jalur dengan kebijakan cabang
Beberapa kebijakan cabang mendukung filter jalur. Jika Anda mengatur filter jalur, kebijakan hanya berlaku untuk file yang cocok dengan filter. Biarkan bidang ini kosong untuk menerapkan kebijakan ke semua file di cabang.
Anda dapat menentukan jalur absolut (jalur harus diawali dengan / atau karakter pengganti) dan karakter pengganti.
Contoh:
/WebApp/Models/Data.cs
/WebApp/*
*/Models/Data.cs
*.cs
Anda dapat menentukan beberapa jalur dengan menggunakan ; sebagai pemisah.
Contoh:
/WebApp/Models/Data.cs;/ClientApp/Models/Data.cs
Jika Anda menambahkan awalan ! pada jalur, jalur tersebut akan dikecualikan jika sebelumnya 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. Terapkan filter kiri-ke-kanan.
Memecahkan Masalah Kebijakan Cabang
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. Anda hanya dapat membuat perubahan pada cabang ini melalui permintaan pull. Anda dapat mendorong perubahan langsung ke cabang yang memiliki kebijakan cabang opsional , jika mereka tidak memiliki kebijakan cabang yang diperlukan.
Apa itu pelengkapan otomatis?
Cabang dengan kebijakan cabang yang dikonfigurasi untuk permintaan pull memiliki tombol Atur lengkapi otomatis . Pilih opsi ini untuk mengatur permintaan pull untuk melengkapi otomatis setelah memenuhi semua kebijakan. Pelengkapan otomatis berguna saat Anda tidak menduga akan ada masalah dengan perubahan.
Kapan dilakukan pemeriksaan terhadap kondisi kebijakan cabang?
Server mengevaluasi ulang kebijakan cabang saat pemilik pull request mendorong perubahan dan saat 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 * cocok dengan sejumlah karakter, termasuk garis miring / ke depan dan garis miring terbelakang \. 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?
Sistem selalu mengevaluasi kebijakan yang dikonfigurasi untuk perubahan permintaan pull. Untuk pengguna yang memiliki izin untuk melewati kebijakan, status kebijakan yang dilaporkan hanya bersifat informatif. Jika pengguna dengan izin bypass menyetujui, status kegagalan tidak memblokir penyelesaian permintaan pull.
Mengapa saya tidak dapat menyelesaikan permintaan pull saya sendiri saat saya mengatur "Izinkan pemohon untuk menyetujui perubahan mereka sendiri"?
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.
Kebijakan lain mungkin mencegah Anda menyetujui perubahan Anda sendiri, bahkan jika Izinkan pemohon menyetujui perubahan mereka sendiri diatur. Misalnya, Melarang pengguna yang terakhir melakukan push untuk menyetujui perubahannya sendiri.
Apa yang terjadi jika filter jalur tidak diawali dengan / atau wildcard?
Jalur dalam filter jalur yang tidak diawali dengan / atau karakter wildcard tidak memiliki efek. Filter jalur mengevaluasi seolah-olah jalur tersebut tidak ditentukan. Jalur seperti itu tidak dapat mencocokkan jalur file absolut yang dimulai dengan /.
Jika Anda mengonfigurasi Azure DevOps MCP Server, Anda dapat menggunakan bahasa alami untuk mengumpulkan konteks repositori, cabang, pull request, dan build sebelum memperbarui kebijakan cabang di Azure DevOps Services.
Server MCP Azure DevOps memerlukan Layanan Azure DevOps, mode agen di asisten AI Anda, dan Node.js 20.0+. Dokumentasi MCP saat ini tidak menjelaskan tindakan baca atau tulis kebijakan cabang langsung, jadi gunakan portal web Azure DevOps atau Azure DevOps CLI untuk membuat dan memperbarui kebijakan.
| Tugas |
Contoh tanggapan |
| Menampilkan cabang dalam repositori |
List the branches in repo <Contoso.Web> in project <Contoso> |
| Meninjau permintaan pull sebelum memperketat kebijakan |
What pull requests require my review in project <Contoso>? |
| Periksa pull request dan item pekerjaan yang ditautkan |
Get details for pull request <67> and its linked work items in project <Contoso> |
| Periksa status kompilasi sebelum menjadikan validasi kompilasi sebagai persyaratan wajib |
Get the latest build status for pipeline <Contoso-CI> in project <Contoso> |
Note
Jika Anda menggunakan Visual Studio Code, mode agen sangat membantu untuk mengumpulkan konteks proyek yang Anda butuhkan sebelum memperbarui kebijakan cabang.
Konten terkait