Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Hizmetleri
Durum denetimleri, testler geçene, güvenlik taramaları temizlenene veya diğer koşullar karşılanana kadar birleştirmeleri engelleyerek kalite standartlarını zorlar. Azure DevOps Hizmetleri ve dış araçları çekme isteği Durum API'sini kullanarak durum denetimleri sonrası.
Dal ilkesi olarak durum denetimi gerektirmek için, Denetlenecek durum bölümünde bir ilke oluşturun ve denetimin Tür ve Ad değerini biçiminde genre/namebelirtin. Ardından çekme isteği, denetim rapor succeedededene kadar birleştirilir.
Durum değerleri ve birleştirme davranışı
Durum denetimi çekme isteğine bir sonuç gönderdiğinde aşağıdaki değerlerden birini bildirir:
| Değer | Gerekli ilkeyle davranış | İsteğe bağlı ilke ile davranış |
|---|---|---|
succeeded |
✓ İlkenin engelini kaldırır | Informational |
failed |
✗ Blok birleştirme | Informational |
error |
✗ Blok birleştirme | Informational |
pending |
⏳ Blok birleştirme (sonuç bekleniyor) | Informational |
notApplicable |
✓ İlke gereksinimini atlar | Informational |
notSet |
⏳ Beklemede olarak ele alındı | Informational |
Note
Gerekli bir ilke varsayılan olarak Uygula olarak ayarlandığında, ilke yapılandırmasını değiştirmeden belirli bir çekme isteğinin ilke gereksinimini kaldırmak için gönderi notApplicable gönderebilirsiniz. Bu, bir denetimin belirli bir değişiklik için geçerli olmadığı durumlarda kullanışlıdır.
Durum denetimi ilkesi eklemeyle ilgili genel yönergeler için bkz. Dış hizmet için dal ilkesi yapılandırma. Yetkili kimlik kısıtlamaları ve ilke uygulanabilirlik ayarları gibi gelişmiş ilke seçenekleri için bkz. Çekme isteği iş akışlarını çekme isteği durumuyla özelleştirme ve genişletme.
Birinci taraf Azure DevOps durum denetimleri
Azure DevOps Hizmetleri tarafından yerel olarak gönderilen tek durum denetimleri aşağıdadır. Her denetim sabit bir Tarz değeri kullandığından, hizmet ilk durumunu göndermeden önce veya sonra dal ilkesini yapılandırabilirsiniz. Diğer tüm durum denetimleri PR Durum API'si aracılığıyla dış hizmetlerden gelir.
Azure DevOps için GitHub Gelişmiş Güvenlik
Bu durum denetimleri, depoda Azure DevOps etkinleştirilmesi için GitHub Gelişmiş Güvenlik gerektirir. Denetimler, kod tarama (CodeQL), bağımlılık taraması ve gizli dizi tarama arasında algılanan güvenlik açıklarını değerlendirir.
| Tarz | İsim | Denetlenecek durum | Description |
|---|---|---|---|
AdvancedSecurity |
AllHighAndCritical |
AdvancedSecurity/AllHighAndCritical |
Depoda herhangi bir tarama türünden (kod, bağımlılık veya gizli dizi) çözümlenmemiş kritik veya yüksek önem derecesine sahip bir güvenlik açığı olduğunda bloklar birleştirilir. Gelişmiş Güvenlik işlem hattı görevlerinin etkinleştirildiği bir derleme doğrulama ilkesi gerektirir. |
AdvancedSecurity |
NewHighAndCritical |
AdvancedSecurity/NewHighAndCritical |
Çekme isteği herhangi bir tarama türünden yeni kritik veya yüksek önem derecesine sahip güvenlik açıkları ortaya çıktığında bloklar birleştirilir. Mevcut depo güvenlik açıkları birleştirmeyi engellemez. Çekme isteği dalını taramak için Gelişmiş Güvenlik işlem hattı görevlerine sahip bir derleme doğrulama ilkesi gerektirir. |
Note
Her iki durum denetimi de AdvancedSecurity , durumların en son tarama sonuçlarını yansıtmasını sağlamak için ile Wait for Processing: true yapılandırılmış bir derleme doğrulama ilkesi ve Gelişmiş Güvenlik tarama görevleri gerektirir. Bağımlılık tarama veya kod tarama (CodeQL) için görevde etkinleştirin Wait for ProcessingAdvancedSecurity-Publish . Kod tarama için görev üzerinde AdvancedSecurity-CodeQL-Analyze de etkinleştirin. Gelişmiş Güvenlik taramasıyla ilk başarılı işlem hattı çalıştırmasının ardından her iki denetim de Durum'da görünür.
Tavsiye
Deponuzda mevcut çözülmemiş uyarılar varsa, tüm çekme isteklerinin hemen engellenmesini önlemek için ile AdvancedSecurity/NewHighAndCritical başlayın. Uyarı kapsamı çözümlendikten sonra'a AdvancedSecurity/AllHighAndCritical geçiş yapın.
Kurulum yönergeleri için bkz. Çekme isteği durum denetimlerini ayarlama.
Önemli
Durum denetimi ilkesini yapılandırırken Gelişmiş Seçenekler'i varsayılan değerlerinde bırakın. Yetkili kimliğin değiştirilmesi veya yineleme kimliğinin gerekli olması durum denetimlerinin doğru şekilde deftere nakledilmesini engeller.
kod kapsamını Azure Pipelines
Azure Pipelines, bir işlem hattı çekme isteği için kod kapsamı sonuçlarını yayımladığında otomatik olarak bir kod kapsamı durum denetimi gönderir. Tür, işlem hattı adıdır, bu nedenle tam genre/name değer işlem hattınızı nasıl adlandırdığınıza bağlıdır.
| Tarz | İsim | Denetlenecek durum | Description |
|---|---|---|---|
{pipeline-name} |
codecoverage |
{pipeline-name}/codecoverage |
Çekme isteğinde değiştirilen satırların fark kapsamı yüzdesini bildirir. Varsayılan olarak danışmanlık; , minimum kapsam eşiğine sahip gerekli bir dal ilkesi olarak yapılandırılmadığı sürece birleştirmeleri engellemez. |
Varsayılan geçiş eşiği 70% fark kapsamıdır. Eşiği ve diğer ayarları ayarlamak için deponuzun köküne bir azurepipelines-coverage.yml dosya ekleyin:
coverage:
status:
comments: on
diff:
target: 80
değerini istediğiniz minimum fark kapsamı yüzdesiyle değiştirin 80 .
Kurulum yönergeleri için bkz. Kod kapsamı ilkesiyle dal korumasını zorunlu kılma.
Tavsiye
Tür, Azure Pipelines işlem hattınızın görünen adından türetilir; ayrı olarak yapılandırılabilir bir değer değildir. Örneğin, CI - Main adlı bir işlem hattı, değeri denetlemek için Durum olarak kullanırCI - Main/codecoverage. Durum denetimleri açılan listede yalnızca hizmet çekme isteğine en az bir durum gönderdikten sonra görünür. Henüz çalışmayan yeni tümleştirmeler için değeri doğrudan alana yazın genre/name .
Özel ve dış durum denetimleri
Çekme İsteği Durumu API'sini kullanan tüm hizmetler, çekme isteklerinize durum denetimi gönderebilir. REST API aracılığıyla bir durum denetimi göndermek için, çağıran kimliğin depoda Çekme isteklerine katkıda bulunma iznine sahip olması gerekir.
Bir hizmet bir durum gönderdiğinizde, genre/name ilke eklediğinizde durumu denetleme açılan listesinde görünür. Henüz gönderilmemiş yeni hizmetler için değeri doğrudan yazın genre/name .
Ortak entegrasyon desenleri
| Tümleştirme türü | Description | Examples |
|---|---|---|
| Sunucuları derleme ve test etme | Çekme isteği dalında testleri çalıştırdıktan sonra başarılı veya başarısız sonuçlar veren dış CI araçları. | Jenkins, GitLab CI, CircleCI, Travis CI |
| Kod kalitesi analizi | Hataları, güvenlik açıklarını ve kod kokularını taraan statik analiz araçları. | SonarQube, SonarCloud |
| Güvenlik tarayıcıları | Çekme isteği değişikliklerini taradıktan sonra sonuçları yayınlayan Microsoft olmayan güvenlik açığı tarayıcıları. AYRıCA SARIF biçim sonuçlarını da destekler. | Snyk, Checkmarx, WhiteSource (Mend), Microsoft Güvenlik DevOps |
| Uyumluluk ve ilke | Lisanslama, kod standartları, mevzuat gereksinimleri veya dağıtıma hazır olma durumunu doğrulayan ilke zorlama araçları. | Özel uyumluluk denetleyicisi, dağıtım geçitleri, lisans tarayıcıları |
| GitHub Actions | GitHub Actions iş akışlarından gelen denetimler, depo GitHub bağlandığında Azure DevOps PR'lerde görünür. Yapılandırma ayrıntıları için Azure DevOps GitHub tümleştirmesine bakın. | Herhangi bir GitHub Actions iş akışı durumu gönderebilir |
| Onaylar ve geçitler | Birleştirmelere izin verilmeden önce el ile veya otomatik onay gerektiren hizmetler. | SERVICENow, REST API aracılığıyla özel onay hizmetleri |
İlke yapılandırma seçenekleri
Durum denetimi ilkesi eklerken şunları yapılandırabilirsiniz:
- İlke gereksinimi: İlkeyi gerektiği gibi ayarlayın (denetim başarılı olmadığı sürece birleştirmeleri engeller) veya isteğe bağlı (yalnızca bilgilendirme).
- Yetkili kimlik: hangi hesapların ilkeyi karşılayan durum değerlerini gönderebileceğini kısıtlayın. Herhangi bir hesaba izin vermek için boş bırakın.
- Sıfırlama koşulları: Yeni bir işleme gönderildiğinde durumun sıfırlanıp sıfırlamayacağını belirtin. Varsayılan olarak, yeni bir işleme gönderme işlemi gerekli durum denetimlerini beklemeye alarak en son kodunuzu değerlendirmeye zorlar. Bir durumun işlemeler arasında kalıcı olmasına izin vermek için , yeni değişiklikler olduğunda Durumu sıfırla'yı devre dışı bırakın.
-
İlke uygulanabilirliği: İlkenin hemen mi (Varsayılan olarak uygula) yoksa yalnızca ilk durum gönderildikten sonra mı (Koşullu) uygulanacağını seçin.
-
Varsayılan olarak uygula: İlke blokları bir durum gönderilene kadar birleştirilir
succeeded. Belirli bir çekme isteğinin gereksinimini atlamak için gönderinotApplicablegönderebilirsiniz. - Koşullu: İlke, yalnızca denetim ilk durumunu gönderdikten sonra etkinleşir.
-
Varsayılan olarak uygula: İlke blokları bir durum gönderilene kadar birleştirilir
- Yol filtresi: İlkeyi, belirli yollardaki dosyaları değiştiren PR'lerle kısıtlayın (isteğe bağlı).
Özel durum denetimi uygulamak için bkz:
- Çekme isteği durumuyla iş akışlarını özelleştirin ve genişletin
- Node.js ile çekme isteği durum sunucusu oluşturma
- Özel dal ilkeleri oluşturmak için Azure İşlevleri kullanma