
Dependabot PR’larını gruplayın: Güvenlik güncellemeleri kuyruğa dönüşmesin

Dependabot güvenlik güncellemelerini açmak için GitHub deposunda Settings → Advanced Security bölümüne gidin; Dependency graph, Dependabot alerts ve Dependabot security updates özelliklerinin etkin olduğundan emin olun. GitHub’ın güvenlik güncellemeleri yönergesi, bu özellikleri gruplanmış güvenlik PR’larının önkoşulları olarak sıralıyor. Uygun bir yama bulunduğunda Dependabot güncelleme PR’ı açabilir; değişiklikleri inceleme ve birleştirme kararı depodaki ekibe aittir.
PR sayısını azaltmak için aynı bölümde Grouped security updates seçeneğini etkinleştirin. Belirli paketleri birlikte güncellemek istiyorsanız .github/dependabot.yml dosyasında güvenlik grubu tanımlayın ve olağan sürüm güncellemeleri için ayrı bir kural kullanın. Böylece tek bir geniş gruba bağlı kalmadan, birlikte incelenmesi anlamlı olan yamaları seçebilirsiniz.
Bağımlılık görünürlüğünü ve güvenlik ayarlarını açın
- Deponun Settings sekmesini açın. Yan menüde Security and quality altındaki Advanced Security bölümüne geçin. Ayarı değiştiremiyorsanız gerekli depo yetkisine sahip birinden yardım isteyin.
- Dependency graph özelliğinin etkin olduğunu kontrol edin. Deponun bağımlılık manifestleri ve kilit dosyaları, izlenmesini beklediğiniz paketleri gerçekten içermelidir; eksik bir manifesti gruplama kuralı telafi edemez.
- Dependabot alerts özelliğini etkinleştirin. Açık uyarıları, etkilenen paketin adını ve hangi manifestte bulunduğunu görmek için kullanın.
- Dependabot security updates seçeneğini açın. Ardından güvenlik PR’larını topluca gruplamak istiyorsanız Grouped security updates seçeneğini de etkinleştirin.
Bu ayarlar ayrı görevler görür: bağımlılık grafiği paketleri görünür kılar, uyarılar bilinen açıklıkları gösterir, güvenlik güncellemeleri ise uygun yamalar için PR akışını başlatır. Bu yüzden yalnızca gruplama düğmesini açıp sonuç beklemek yeterli değildir. İlk kurulumda önce grafikte ilgili paketin bulunup bulunmadığına, sonra uyarıya ve açılan PR’a bakın.
Arayüzdeki geniş gruplama ile dosya kuralı arasında seçim yapın
Depo ayarındaki Grouped security updates, mevcut güvenlik güncellemelerini aynı paket ekosistemi içinde, farklı dizinlerden de olsa mümkün olduğunca bir araya getirir. Birden fazla dizinde npm manifesti olan bir depoda bu yaklaşım PR sayısını düşürebilir. Ancak birlikte değişmesi sakıncalı paketleri ayırmak veya yalnızca belirli adları eşleştirmek istiyorsanız dosyadaki grup kuralları daha uygun bir sınır sağlar.
İki yöntem birlikte kullanılabilir. Yapılandırma dosyasında güvenlik grubu tanımlandığında o kurallar ilgili güncellemelere uygulanır; depo veya kuruluş düzeyindeki geniş ayar, dosyada yapılandırılmamış dizinlerde gruplama için de kullanılabilir. Geniş ayarı ilk kez açtığınızda eski PR’ların kapanıp yerlerine gruplanmış PR’ların açıldığını görebilirsiniz. Bu değişimde hangi paketlerin yeni PR’a taşındığını incelemek, bekleyen yamayı gözden kaçırmamanıza yardımcı olur.
Güvenlik ve sürüm PR’larını ayrı kurallarla tanımlayın
Manifesti depo kökünde bulunan varsayımsal bir npm projesi için aşağıdaki yapılandırma, Angular paketlerinin güvenlik yamalarını bir grupta; üretim bağımlılıklarının olağan sürüm güncellemelerini başka bir grupta toplar. GitHub’ın örnek Dependabot yapılandırması da bu iki akışı ayrı applies-to değerleriyle tanımlar ve yalnızca güvenlik PR’ları istendiğinde sürüm PR’larını open-pull-requests-limit: 0 ile durdurma seçeneğini gösterir.
Bu örnek, YAML’ın tek satırlık akış biçimindedir; .github/dependabot.yml dosyasına yazılabilir. Kendi deponuzda manifest başka bir dizindeyse directory değerini, birlikte güncellemek istediğiniz paketler farklıysa patterns değerini değiştirin.
{version: 2, updates: [{package-ecosystem: npm, directory: '/', schedule: {interval: weekly}, groups: {angular-security: {applies-to: security-updates, patterns: ['@angular*']}, production-version: {applies-to: version-updates, dependency-type: production}}}]}
Burada angular-security, adı @angular ile başlayan paketlerin güvenlik güncellemelerini eşleştirir. production-version yalnızca üretim bağımlılıklarının olağan sürüm güncellemelerini gruplar. weekly değeri sürüm güncellemelerinin tarama aralığıdır; güvenlik güncellemeleri bu haftalık taramayı beklemek üzere planlanmaz. Grup adları ekibinizin PR listesinde kolayca ayırt edeceği adlarla değiştirilebilir.
Yalnızca güvenlik güncellemeleri gerekiyorsa ilgili updates girdisine open-pull-requests-limit: 0 ekleyin ve örnekteki production-version grubunu kaldırın. Bu ayar olağan sürüm güncellemesi PR’larını durdururken güvenlik güncellemelerinin yapılandırılmasına olanak verir. Her iki PR türünü istiyorsanız sınırı sıfırlamayın; güvenlik ve sürüm kurallarını ayrı tutun.
Grubun sınırlarını manifestlere göre kontrol edin
Güvenlik grupları paket ekosistemi içinde çalışır: npm ve başka bir paket yöneticisinin güvenlik yamaları aynı kural altında birleşmez. Bir paket birden fazla grupla eşleşirse dosyadaki ilk eşleşen grup kullanılır. Bu nedenle dar paket desenlerini geniş desenlerden önce yazın; aksi hâlde geniş kural, daha özel bir grup için düşündüğünüz paketi alabilir.
directory değeri, güvenlik güncellemesinin uygulanacağı manifest dosyasının yolunu göstermelidir. Birden çok manifest konumu için directories kullanıyorsanız verdiğiniz yolların veya desenlerin bu konumları kapsadığını kontrol edin. Güvenlik PR’larının varsayılan dala açılması gerektiğinden ilgili ekosistem girdisine target-branch eklemek, güvenlik grubu için beklediğiniz özelleştirmeyi devre dışı bırakabilir.
Bir güvenlik güncellemesi gruba girmiyorsa paket adını patterns ile, manifest yolunu directory ile ve kuralın applies-to değerini PR türüyle karşılaştırın. Eşleşmeyen güncellemeler ayrı PR’larda görünebilir; bu, her yamayı tek geniş gruba almak gerektiği anlamına gelmez. Birlikte değiştirilen paketlerin test yükü artıyorsa grubu, aynı değişiklik kapsamında doğrulayabildiğiniz bağımlılıklarla sınırlamak daha anlaşılır bir inceleme sağlar.
Özel kayıt erişimini ve açılan PR’ları denetleyin
Paketler özel bir kayıt sunucusundan geliyorsa doğru gruplama kuralı tek başına yeterli değildir: Dependabot’un paketi indirebilmesi gerekir. dependabot.yml dosyasının üst düzey registries alanında kayıt türünü ve adresini tanımlayın; kimlik bilgisi için depoya yazılmış bir belirteç yerine Dependabot secret başvurusu kullanın. İlgili updates girdisindeki registries alanına da bu kaydın adını ekleyin.
Kurulumdan sonra uyarıdaki paket ve manifesti açılan PR’ın içerdiği değişikliklerle karşılaştırın. PR yoksa önce uygun bir yama ve eşleşen uyarı bulunup bulunmadığını, ardından manifest yolunu, grup desenini ve özel kayıt erişimini kontrol edin. PR açılmışsa paketin yeni sürümünü, kilit dosyasındaki değişiklikleri ve otomatik testlerin sonucunu inceleyin; gruplama inceleme işini ortadan kaldırmaz.
Bağımlılık görünürlüğünü ayrıca taramak isteyen ekipler için OWASP Dependency-Check, proje bağımlılıklarında bilinen ve kamuya açıklanmış açıkları arayan bir yazılım bileşimi analizi araç takımıdır. Bulgularını Dependabot uyarılarıyla karşılaştırabilirsiniz. Bu ayrı tarama, GitHub’da otomatik PR açılacağını veya önerilen yamanın testlerden geçeceğini tek başına garanti etmez.
Ayrıca okuyun:
İlgili makaleler


GitHub Push Protection’ı açın: Sızan anahtarı sonra silmek yetmez

Self-hosted runner’ı şimdi denetleyin; sabit 2.329.0 sürümü yetmiyor

GitHub CLI anahtarı değişti; eski Linux kurulumlarında güncelleme kesilebilir

Playwright mı Cypress mı? Beş senaryoda hız üstünlüğü tek başına yetmiyor

GitHub, sızan sırlar çözülmeden pull request birleştirmeyi durduruyor
Bültenimize abone olun
En son Web3, yapay zekâ ve kripto haberleri doğrudan gelen kutunuza gelsin.