Dal ilkeleri ve ayarları

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Tavsiye

Azure DevOps görevlerine yardımcı olması için yapay zekayı kullanabilirsiniz. Başlamak için bkz. Azure DevOps MCP Sunucusu ile yapay zeka yardımlarını etkinleştirme .

Dal ilkeleri, ekiplerin önemli geliştirme dallarını korumalarına yardımcı olur. İlkeler, ekibinizin kod kalitesini zorlar ve yönetim standartlarını değiştirir. Bu makalede, dal ilkelerinin nasıl ayarlanacağı ve yönetileceğini açıklanmaktadır. Tüm depo ve dal ilkelerine ve ayarlarına genel bakış için bkz . Git deposu ayarları ve ilkeleri.

Gerekli ilkelerin yapılandırıldığı bir dal silinemez ve tüm değişikliklerin çekme istekleri (PR) üzerinden yapılması gerekir.

Önkoşullar

  • Dal ilkelerini ayarlamak için, Proje Yöneticileri güvenlik grubunun üyesi olun veya depo düzeyinde ilkeleri düzenle izinlerine sahip olun. Daha fazla bilgi için bkz . Git deposu izinlerini ayarlama.

Şube politikalarını yapılandırın

Dal politikalarını yönetmek için Depolar>Dallar öğesini seçerek web portalında Dallar sayfasını açın.

Dallar menü öğesini gösteren ekran görüntüsü.

Ayrıca, Proje Ayarları>Depo>İlkeler>Dal İlkeleri><Dal Adı> ile dal ilkesi ayarlarına da ulaşabilirsiniz.

İlkeleri olan dallarda bir ilke simgesi görüntülenir. Doğrudan dalın ilke ayarlarına gitmek için simgeyi seçebilirsiniz.

Dal ilkelerini ayarlamak için yönetmek istediğiniz dalı bulun. Sağ üstteki Dal adı ara kutusunda listeye göz atabilir veya dalınızı arayabilirsiniz.

Dalın yanındaki Diğer seçenekler simgesini ve ardından bağlam menüsünden Dal ilkeleri'ni seçin.

Bağlam menüsünden dal ilkelerini açmanın gösterildiği ekran görüntüsü.

Dalın ayarlar sayfasında ilkeleri yapılandırın. Her ilke türü için açıklamalar ve yönergeler için aşağıdaki bölümlere bakın.

En az sayıda gözden geçiren gerektir

Kod incelemeleri, yazılım geliştirme projeleri için önemlidir. Takımların PR'leri gözden geçirmesini ve onaylamasını sağlamak için, en az bir sayıda gözden geçirenin onayını gerektirebilirsiniz. Temel ilke, belirtilen sayıda gözden geçirenin kodu reddetme olmadan onaylamasını gerektirir.

İlkeyi ayarlamak için Dal İlkeleri altında En az sayıda gözden geçiren gerektir seçeneğini Açık olarak ayarlayın. Gerekli gözden geçiren sayısını girin ve aşağıdaki seçeneklerden birini belirleyin:

Kod gözden geçirmesi gerektir ilkesinin etkinleştirildiğini gösteren ekran görüntüsü.

  • İstek sahiplerinin kendi değişikliklerini onaylamasına izin ver seçeneğini seçerek, PR'yi oluşturan kişinin onayın onayına oy verebilmesini sağlarsınız. Aksi takdirde, oluşturan kişi PR'de Onayla oyu kullanabilir, ancak bu oy minimum gözden geçiren sayısına katkıda bulunmaz.

  • Görevlerin ayrıştırılmasını zorunlu kılmak için en son göndericinin kendi değişikliklerini onaylamasını engellemeyi seçin. Varsayılan olarak, kaynak dalda kaydetme izni olan herkes hem commit ekleyebilir hem de çekme isteği onayında oy kullanabilir. Bu seçeneğin seçilmesi, normalde kendi değişikliklerini onaylasa bile en son göndericinin oylarının sayılmaması anlamına gelir.

  • Bazı gözden geçirenler beklemeye veya reddetmeye oy verse bile, tamamlamaya izin vermek için 'Tamamlamaya izin ver'i seçin. En az sayıda gözden geçirenin yine de onaylaması gerekir.

  • Yeni değişiklikler gönderildiğinde altında:
    • Son kaynak dal değişikliği için en az bir onay oyu gerektirmek üzere Her yinelemede en az bir onay iste'yi seçin. Kullanıcının onayı, bu kullanıcı tarafından gönderilen önceki onaylanmamış yinelemelere göre sayılmaz. Sonuç olarak, başka bir kullanıcı tarafından son yinelemede başka bir onay yapılması gerekir. Azure DevOps Server 2022.1 ve sonraki sürümlerde kullanılabilen her yineleme için en az bir onay iste.
    • Son kaynak dal değişikliği için en az bir onay oyu gerektirmek amacıyla, Son yinelemede en az bir onay gerektir seçeneğini seçin.
    • Onay oylarının tümünü sıfırla seçeneğini, kaynak dal değiştiğinde onay oylarını kaldırmak fakat reddetmek veya beklemek için oyları korumak için seçin.
    • Kaynak dal değiştiğinde tüm gözden geçiren oylarını kaldırmak için Tüm kod gözden geçiren oylarını sıfırla'yı seçin; buna onay, reddetme veya bekleme oyları da dahildir.

Diğer tüm ilkeler geçerse, gerekli sayıda gözden geçiren onayladığında oluşturucu çekme isteğini tamamlayabilir.

Bağlı iş öğelerini denetleme

İş öğesi yönetimi izlemesi için PR'ler ve iş öğeleri arasında ilişkilendirmeler gerektirebilirsiniz. İş öğelerini bağlamak, değişiklikler için daha fazla bağlam sağlar ve güncelleştirmelerin iş öğesi izleme sürecinizden geçmesine olanak sağlar.

İlkeyi ayarlamak için Dal İlkeleri altında Bağlı iş öğelerini denetleyi Açık olarak ayarlayın. Bu ayar, bir çekme isteğinin birleştirilmesi için iş öğelerinin bir çekme isteğine bağlanmasını zorunlu kılar. Bağlı iş öğesi bulunmadığında uyarmak, ancak çekme isteğinin tamamlanmasına izin vermek için ayarı İsteğe bağlı yapın.

Pull isteklerinde bağlı iş öğelerinin gerekliliği ekran görüntüsü.

Yorum çözümlemesini kontrol etme

Çekme isteği (PR) açıklama çözümlenmesini kontrol etme ilkesi, tüm yorumların çözümlenip çözümlenmediğini denetler.

Dalınız için bir yorum çözümleme ilkesi yapılandırmak üzere, Yorum çözümlemesi denetle seçeneğini Açık olarak ayarlayın. Ardından ilkenin Gerekli mi yoksa İsteğe bağlıyapılıp yapılmayacağını seçin.

Yorum çözünürlüğünü denetlemenin ekran görüntüsü.

Çekme isteği yorumlarıyla çalışma hakkında daha fazla bilgi için Bkz. Çekme isteklerini gözden geçirme.

Birleştirme türlerini sınırla

Azure Repos'un çeşitli birleştirme stratejileri vardır ve varsayılan olarak tümüne izin verilir. PR tamamlama için birleştirme stratejisinin uygulanmasını zorunlu kılarak tutarlı bir dal geçmişini koruyabilirsiniz.

Deponuzda hangi birleştirme türlerine izin verebileceğinizi sınırlamak için Birleştirme türlerini sınırla seçeneğini Açık olarak ayarlayın.

Birleştirme türlerini sınırla'nın ekran görüntüsü.

  • Temel birleştirme (hızlı iletme olmadan), üst öğeleri hedef ve kaynak dalları olan hedefte bir birleştirme işlemesi oluşturur.
  • Squash birleştirme, kaynak daldaki değişiklikleri tek bir işlemle hedef dalda doğrusal bir geçmiş oluşturur. Squash birleştirme hakkında daha fazla bilgi edinin ve dal geçmişi üzerindeki etkilerini anlayın.
  • Yeniden temel alma ve ileri sarma , kaynak işlemeleri birleştirme işlemesi olmadan hedef dalda yeniden yürüterek doğrusal bir geçmiş oluşturur.
  • Birleştirme işlemesi ile rebase, kaynak işlemleri hedefe yeniden uygular ve ayrıca bir birleştirme işlemi oluşturur.

Derleme doğrulaması

Çekme isteği (PR) tamamlanmadan önce PR değişikliklerinin başarıyla derlenmesini gerektiren bir ilke ayarlayabilirsiniz. Politika oluşturma, kesintileri azaltır ve test sonuçlarınızın geçmesini sağlar. İnşa etme politikaları, geliştirme dallarınızda sürekli tümleştirme (CI) kullanıyor olsanız bile sorunları erken yakalamanıza yardımcı olur.

Yapı doğrulama ilkesi, yeni bir çekme isteği oluşturulduğunda veya dalı hedefleyen mevcut bir çekme isteğine değişiklikler gönderildiğinde yeni bir yapıyı kuyruğa alır. Yapı politikası, PR'nin tamamlanıp tamamlanamayacağını belirlemek için yapı sonuçlarını değerlendirir.

Önemli

Derleme doğrulama ilkesi belirtmeden önce bir derleme işlem hattına sahip olun. İşlem hattınız yoksa Derleme işlem hattı oluşturma bölümüne bakınız. Proje türünüzle eşleşen derleme türünü seçin.

Bir derleme doğrulama politikası eklemek için

  1. + tuşuna, Build doğrulama yanındaki düğme üzerinden basın.

    Derleme doğrulamanın yanındaki Ekle düğmesini gösteren ekran görüntüsü.

  2. Build politikası ayarla formunu doldurun.

    Yapı ilkesi ayarlarının ekran görüntüsü.

    • Derleme işlem hattını seçin.

    • İsteğe bağlı olarak bir Yol filtresi ayarlayın. Dal ilkelerindeki yol filtreleri hakkında daha fazla bilgi edinin.

    • Tetikleyici'nin altında Otomatik (kaynak dal her güncelleştirildiğinde) veya El ile'yi seçin.

    • İlke gereksinimi'nin altında Gerekli veya İsteğe Bağlı'yı seçin. Gerekli'yi seçerseniz, PR'lerin tamamlanması için derlemelerin başarıyla tamamlanması gerekir. Derleme hatasıyla ilgili bir bildirim sağlamak ancak pull request'lerin tamamlanmasına izin vermek için İsteğe Bağlı'yı seçin.

    • Korumalı dalınızın güncelleştirmelerinin açık PR'ler için değişiklikleri bozmadığından emin olmak için bir derleme süre sonu ayarlayın.

      • < hemen: Bu seçenek, dal güncelleştirildiğinde >PR derleme ilkesi durumunu başarısız olarak ayarlar ve derlemeyi yeniden sorgular. Bu ayar, korumalı dal değişse bile PR değişikliklerinin başarılı bir şekilde derlenmesini sağlar.

        Bu seçenek, önemli dallarında birkaç değişiklik bulunan ekipler için en iyisidir. Yoğun geliştirme dallarında çalışan ekipler, dal her güncelleştiğinde bir derleme beklemenin işe kesinti olarak etki etmesini rahatsız edici bulabilir.

      • <n> saat sonra, eğer <dal adı> güncellendiyse: Korumalı dal güncellendiğinde geçiş derlemesi girdiğiniz eşikten daha eskiyse, bu seçenek mevcut ilke durumunun süresinin dolmasına neden olur. Bu seçenek, korumalı dal güncellendiğinde her zaman veya hiçbir zaman derleme gerektirmemek arasında bir uzlaşmadır. Korumalı dalınızın sık sık güncellenmesi durumunda bu seçenek, yapı sayısını azaltır.

      • Hiçbir zaman: Korumalı dal güncelleştirmeleri ilke durumunu değiştirmez. Bu değer derleme sayısını azaltır, ancak yakın zamanda güncellenmemiş PR'leri tamamlarken sorunlara neden olabilir.

    • Bu derleme ilkesi için isteğe bağlı bir Görünen ad girin. Dal politikaları sayfasında bu isim, politikayı tanımlar. Görünen ad belirtmezseniz, ilke derleme boru hattı adını kullanır.

  3. Kaydet'i seçin.

Çekme isteği sahibi başarıyla derlenebilen değişiklikleri gönderdiğinde ilke durumu güncelleştirilir.

Eğer bir Hemen <dal adı> güncelleştirilirse veya <n> saat sonra <dal adı> güncelleştirilirse derleme politikanız varsa, önceki derleme artık geçerli değilse, korumalı dal güncellendiğinde ilke durumu güncelleştirilir.

Durum denetimleri

Dış hizmetler PR Durum API'sini kullanarak pr'lerinize ayrıntılı durum gönderebilir. Ek hizmetler için şube politikası, bu dış hizmetlerin PR iş akışına katılmasına olanak tanır ve politika gerekliliklerini belirlemesini sağlar.

Dış hizmetlerin onaylamasını gerektir seçeneğinin ekran görüntüsü.

Bu ilkeyi yapılandırma yönergeleri için bkz Dış hizmet için dal ilkesi yapılandırma.

Kod gözden geçirenleri otomatik olarak ekle

Belirli dizinlerdeki ve dosyalardaki dosyaları değiştiren çekme isteklerine veya bir depodaki tüm çekme isteklerine otomatik olarak gözden geçirenler ekleyebilirsiniz.

  1. +'in yanındaki düğmesini seçin.

    Gerekli gözden geçirenleri ekle'yi gösteren ekran görüntüsü.

  2. Yeni gözden geçirme politikası ekle ekranını doldurun.

    Yeni gözden geçiren ilkesi ekle ekranını gösteren ekran görüntüsü.

    • Gözden Geçirenler'e kişi ve grup ekleyin.

    • Eğer gözden geçirenleri otomatik olarak eklemek, ancak çekme isteğini tamamlamak için onaylarını gerektirmemek istiyorsanız, İsteğe bağlı'yı seçin.

      Veya Gerekli seçeneğini, çekme istekleri belirli bir zamana kadar tamamlanamayacaksa seçin:

      • Gözden geçiren olarak eklenen her birey değişiklikleri onaylar.
      • Gözden geçiren olarak eklenen her gruptaki en az bir kişi değişiklikleri onaylar.
      • Yalnızca bir grup gerekiyorsa, belirttiğiniz en az üye sayısı değişiklikleri onaylar.
    • Otomatik olarak eklenen gözden geçirenleri gerektiren dosya ve klasörleri belirtin. Daldaki tüm çekme istekleri için gözden geçirenlerin gerekliliğini sağlamak adına bu alanı boş bırakın.

    • Çekme isteği sahipleri, kendi çekme isteklerini onaylamak için oy kullanabiliyorlarsa, istek sahiplerinin kendi değişikliklerini onaylamasına izin ver seçeneğini belirleyin ve bu politikayı uygulayın.

    • Çekme isteğinde görünen bir Etkinlik akışı iletisi belirtebilirsiniz.

  3. Kaydet'i seçin.

Dal politikalarını atla

Bazı durumlarda ilke gereksinimlerini atlamanız gerekebilir. Atlama izinleri, değişiklikleri doğrudan bir dala iletmenize veya dal politikalarını karşılamayan çekme isteklerini tamamlamanıza olanak sağlar. Bir kullanıcıya veya gruba atlama izinleri verebilirsiniz. Atlama izinlerini projenin tamamına, bir depoya veya tek bir dala göre ayarlayabilirsiniz.

İki izin, kullanıcıların dal ilkesini farklı şekillerde atlamasına olanak tanır:

  • Çekme isteklerini tamamlarken ilkeleri atlama yalnızca çekme isteği tamamlandığında geçerlidir. Bu izne sahip kullanıcılar, ilkeleri karşılamasa bile çekme isteklerini tamamlayabilir.

  • Push işlemi sırasında ilkeleri atlama yerel depolardan yapılan push'lar ve web'de yapılan düzenlemeler için geçerlidir. Bu izne sahip kullanıcılar, ilke gereksinimlerini karşılamadan değişiklikleri doğrudan korumalı dallara gönderebilir.

İlke zorlama izinlerini atlama işlemini gösteren ekran görüntüsü.

Bu izinleri yönetme hakkında daha fazla bilgi için Git izinleri bölümüne bakın.

Önemli

Özellikle depo ve proje düzeylerinde ilkeleri atlama yeteneği verirken dikkatli olun. İlkeler, güvenli ve uyumlu kaynak kodu yönetiminin temel taşlarıdır.

Yol filtreleri

Bazı dallanma ilkeleri yol filtreleri sunar. Yol filtresi ayarlanırsa, ilke yalnızca yol filtresiyle eşleşen dosyalara uygulanır. Bu alanı boş bırakmak, ilkenin daldaki tüm dosyalar için geçerli olduğu anlamına gelir.

Mutlak yollar (yol, ya / ile ya da bir joker karakter ile başlamalıdır) ve joker karakterler belirtebilirsiniz. Örnekler:

  • /WebApp/Models/Data.cs
  • /WebApp/*
  • */Models/Data.cs
  • *.cs

Ayırıcı olarak kullanarak ; birden çok yol belirtebilirsiniz. Örnek:

  • /WebApp/Models/Data.cs;/ClientApp/Models/Data.cs

Ön eki ! olan yollar, aksi durumda dahil olsalar bile hariç tutulur. Örnek:

  • /WebApp/*;!/WebApp/Tests/* içindeki /WebApp dosyalar dışındaki tüm dosyaları içerir /WebApp/Tests
  • !/WebApp/Tests/* önce hiçbir şey dahil edilmediğinden, hiçbir dosyayı belirtmez

Filtrelerin sırası önemlidir. Filtreler soldan sağa uygulanır.

Sorular ve Yanıtlar

Değişiklikleri doğrudan dal ilkeleri olan dallara gönderebilir miyim?

Zorunlu dal ilkelerine sahip dallara, dal ilkelerini atlama izniniz olmadığı sürece, doğrudan değişiklik gönderemezsiniz. Bu dallarda yapılan değişiklikler yalnızca çekme istekleri aracılığıyla yapılabilir. İsteğe bağlı dal ilkelerine sahip ve gerekli dal ilkeleri olmayan dallara değişiklikleri doğrudan gönderebilirsiniz.

Otomatik tamamlama nedir?

Dal politikaları yapılandırılmış dallara yapılan çekme isteklerinde Otomatik tamamlama ayarla düğmesi bulunur. Tüm ilkeleri yerine getirildiğinde otomatik olarak tamamlamak için bu seçeneği belirleyin. Otomatik tamamlama, değişikliklerinizle ilgili herhangi bir sorun beklemediğinizde kullanışlıdır.

Dal ilkesi koşulları ne zaman kontrol ediliyor?

Çekme talebi sahipleri değişiklikleri gönderdiğinde ve gözden geçirenler oy kullandığında dal politikaları sunucuda yeniden değerlendirilir. İlke bir derlemeyi tetiklerse, derleme durumu derleme tamamlanana kadar beklemeye ayarlır.

Dal ilke kurallarında XAML derleme tanımlarını kullanabilir miyim?

Hayır, dal ilkelerinde XAML derleme tanımlarını kullanamazsınız.

Gerekli kod gözden geçirenler için hangi joker karakterleri kullanabilirim?

Tek yıldız * işaretleri, eğik çizgiler / ve ters eğik çizgiler \ dahil olmak üzere, herhangi bir sayıda karakterle eşleşir. Soru işareti ? herhangi bir tek karakterle eşleşir.

Örnekler:

  • *.sqltüm dosyaları .sql uzantısıyla eşleştirir.
  • /ConsoleApplication/* ConsoleApplication adlı klasörün altındaki tüm dosyaları eşleştirir.
  • /.gitattributes deponun kökündeki.gitattributes* dosyasıyla eşleşir.
  • */.gitignore depodaki herhangi bir .gitignore dosyasıyla eşleşir.

Gerekli kod gözden geçirme yolları büyük/küçük harfe duyarlı mı?

Hayır, dal ilkeleri harf büyüklüğüne duyarlı değildir.

Birden çok kullanıcıyı gerekli gözden geçirenler olarak nasıl yapılandırabilirim, ancak yalnızca birinin onaylamasını gerekli kılabilir miyim?

Kullanıcıları bir gruba ekleyebilir ve ardından grubu gözden geçiren olarak ekleyebilirsiniz. Daha sonra grubun herhangi bir üyesi ilke gereksinimini karşılamak için onaylayabilir.

İlkeyi atlama izinlerine sahibim. Çekme isteği durumunda neden hala ilke hataları görüyorum?

Yapılandırılan ilkeler her zaman çekme isteği (pull request) değişiklikleri için değerlendirilir. Kullanıcıların ilkeyi atlama izinleri varsa, bildirilen ilke durumu yalnızca tavsiye niteliğindedir. Atlama izinlerine sahip kullanıcı onaylarsa, hata durumu çekme isteğinin tamamlanmasını engellemez.

"İstek sahiplerinin kendi değişikliklerini onaylamasına izin ver" ayarı ayarlandığında neden kendi çekme isteklerimi tamamlamıyorum?

Hem En az sayıda gözden geçiren gerektirme politikası hem de Otomatik olarak eklenen gözden geçirenler politikası istekte bulunanların kendi değişikliklerini onaylamasına izin verme seçenekleri sunar. Her ilkede, ayar yalnızca bu ilke için geçerlidir. Ayar diğer ilkeyi etkilemez.

Örneğin, çekme isteğinizde aşağıdaki ilkeler belirlenmiş:

  • En az bir gözden geçiren gerektir en az bir gözden geçiren gerektiğini belirtir.
  • Otomatik olarak eklenen gözden geçirenler için sizin veya içinde olduğunuz bir ekibin gözden geçiren olarak bulunması gerekir.
  • Otomatik olarak eklenen gözden geçirenler , istek sahiplerinin kendi değişikliklerini onaylamasına izin ver seçeneğini etkinleştirmiştir.
  • En az sayıda gözden geçiren gerektir seçeneğinde, istekte bulunanların kendi değişikliklerini onaylamasına izin ver etkin değil.

Bu durumda, onayınız Otomatik olarak eklenen gözden geçirenleri karşılar, ancak Minimum sayıda gözden geçiren gereksinimi karşılamaz, bu nedenle çekme isteğini tamamlayamazsınız.

İstekte bulunanların kendi değişikliklerini onaylamasına izin ver ayarı ayarlanmış olsa bile, "en son göndericinin kendi değişikliklerini onaylamasını yasakla" gibi kendi değişikliklerinizi onaylamanızı engelleyen başka ilkeler de olabilir.

Yol filtrelerindeki yol / ile veya bir joker karakterle başlamadığında ne olur?

Yol filtrelerinde / ile veya bir joker karakterle başlamayan yolun hiçbir etkisi yoktur ve yol filtresi, bu yol belirtilmemiş gibi değerlendirilir. Böyle bir yol, mutlak dosya yolunun / başlangıcıyla eşleşemez.