Dependabot version updates ve dependabot.yml
Dependabot version updates and dependabot.yml
Bu derste neler öğreneceksin
- dependabot.yml yapılandırma dosyasının sözdizimini öğrenmek
- Version updates için schedule, ignore ve allow seçeneklerini kavramak
- PR sayısını kontrol altında tutmak için limit mekanizmalarını anlamak
- Gruplandırılmış güncelleme (grouped updates) özelliğini bilmek
Version updates nedir?
Dependabot version updates, bağımlılıkları güvenlik açıklarından bağımsız olarak güncel tutar. Yeni sürüm yayınlandığında PR açar.
Security updates CVE’ye odaklanırken, version updates semver güncelliğini hedefler.
dependabot.yml yapılandırması
Version updates, .github/dependabot.yml dosyasıyla yapılandırılır:
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:00"
timezone: "Europe/Istanbul"
open-pull-requests-limit: 5
labels:
- "dependencies"
- "automerge"
ignore:
- dependency-name: "lodash"
versions: ["4.x"]
groups:
dev-dependencies:
patterns:
- "*"
exclude-patterns:
- "aws-sdk*"
Kritik yapılandırma alanları
| Alan | Açıklama | Sınav notu |
|---|---|---|
package-ecosystem | npm, pip, maven, cargo vb. | Ekosistemi doğru belirtmek şart |
directory | manifest dosyasının konumu | Monorepo’larda /packages/app gibi |
schedule.interval | daily / weekly / monthly | Weekly en yaygın |
open-pull-requests-limit | Açık tutulacak max PR | Default 5; 0 devre dışı bırakır |
ignore | Belirli bağımlılıkları veya versiyonları atla | SemVer pattern destekler |
groups | Birden fazla güncellemeyi tek PR’da topla | PR sayısını azaltır |
Grouped updates (2024+)
Çok sayıda PR açılmaması için ilgili bağımlılıkları grupla:
groups:
aws-sdk:
patterns:
- "aws-sdk*"
- "@aws-sdk/*"
Bu yapılandırmayla tüm AWS SDK paketleri tek PR olarak gelir.
ignore vs allow
# Belirli versiyonları yoksay
ignore:
- dependency-name: "express"
versions: ["5.x"] # express 5.x yok say
update-types: ["version-update:semver-major"] # major güncellemeleri yoksay
# Sadece belirli bağımlılıkları güncelle
allow:
- dependency-name: "react*"
- dependency-type: "direct" # sadece direkt bağımlılıklar
allow ve ignore birlikte kullanılabilir; allow önce filtreleme yapar.
Sınavda dependabot.yml soruları
Senaryo: “Takımımız her sabah çok fazla Dependabot PR’ı ile karşılaşıyor, çalışma akışı kesintiye uğruyor. Nasıl düzeltirim?”
Cevap unsurları:
open-pull-requests-limitdeğerini azaltschedule.interval: "weekly"ile sıklığı düşürgroupskullanarak ilgili paketleri tek PR’a toplaignoreile major yükseltmeleri hariç tut
Sırada ne var?
Dependency review — PR açılırken yeni bağımlılıkların güvenliğini kontrol etmek.