EMZETT.
Giriş yap

Otomatik bağımlılık güncellemeleri: Dependabot ve Renovate

Kısaca: Dependabot ve Renovate, kütüphanelerin yeni sürümleri veya güvenlik yamaları olup olmadığını düzenli olarak denetler ve güncellemeyle otomatik olarak çekme istekleri (pull request) açar.

Biraz daha ayrıntılı: Modern projeler yüzlerce pakete bağlıdır. Eskirlerse güvenlik açıkları ve maliyetli sıçramalar birikir. Elle denetim unutulur; botlar bunu düzenli ve küçük adımlarla üstlenir.

Ayrıntılı

Nasıl çalışır

Bot package.json/kilit dosyalarını, requirements.txt, pom.xml, Dockerfile ve GitHub Actions dosyalarını okur ve en son sürümlerle karşılaştırır. Bir güncelleme varsa değişiklik listesi, sürüm notlarına bağlantı içeren bir çekme isteği oluşturur ve CI testlerinizi çalıştırır. Siz inceler ve birleştirirsiniz. Güvenlik açıkları (CVE) için Dependabot güvenlik uyarıları bildirir ve acil PR’lar oluşturur.

Dependabot ve Renovate

  • Dependabot (GitHub): basit, yapılandırma .github/dependabot.yml; GitHub güvenlik özelliklerine entegre.
version: 2
updates:
  - package-ecosystem: npm
    directory: "/"
    schedule: { interval: weekly }
    groups:
      dev-tools: { dependency-type: development }
  • Renovate (açık kaynak, GitLab ve Gitea ile de, kendi sunucunuzda barındırılabilir): çok yapılandırılabilir (gruplama, yamalar için otomatik birleştirme, paket başına kurallar, zaman pencereleri), birçok biçimi destekler.

İkisi de iyi bir test paketiyle en iyi çalışır.

İyi uygulama

  • PR seline boğulmamak için gruplayın (örneğin tüm geliştirme araçları tek PR’da).
  • Testler yeşilken yama ve küçük sürüm güncellemelerini otomatik birleştirin, büyük sürüm güncellemelerini elle denetleyin.
  • Derlemeler yeniden üretilebilir olsun diye kilit dosyalarını sürümleyin.
  • Özellikle büyük sürümlerde ve uyumsuz değişikliklerde sürüm notlarını okuyun.
  • Kritik bağımlılıkları sabitleyin (sürüm aralıklarını, ~/^, bilinçli seçin).
  • Günlük huzursuzluk yerine zamanlama (haftalık).
  • Tedarik zincirine dikkat edin: güncellemeler de kötü amaçlı olabilir (ele geçirilmiş paketler); yeni sürümleri kısa bir bekleme süresiyle (örneğin 3 gün) devreye alın.

Yarar

Daha az güvenlik riski, daha küçük güncellemeler (2 yıllık bir sıçramadan daha kolay hata ayıklanır), güncel araçlar ve daha az “güncelleme borcu”. Küçük projeler için bir bot çabası fazla görünüyorsa npm outdated/npm audit/pip list --outdated ile aylık bir denetim yeterlidir.

Ayrıca bak: Bağımlılıklar ve güvenlik açıkları (CVE), npm audit, Yazılım tedarik zinciri