Modül 3 · Supply Chain Security · ⏱ 12 dakika

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ı

AlanAçıklamaSınav notu
package-ecosystemnpm, pip, maven, cargo vb.Ekosistemi doğru belirtmek şart
directorymanifest dosyasının konumuMonorepo’larda /packages/app gibi
schedule.intervaldaily / weekly / monthlyWeekly en yaygın
open-pull-requests-limitAçık tutulacak max PRDefault 5; 0 devre dışı bırakır
ignoreBelirli bağımlılıkları veya versiyonları atlaSemVer pattern destekler
groupsBirden fazla güncellemeyi tek PR’da toplaPR 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ı:

  1. open-pull-requests-limit değerini azalt
  2. schedule.interval: "weekly" ile sıklığı düşür
  3. groups kullanarak ilgili paketleri tek PR’a topla
  4. ignore ile 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.