Renovate Bot Nedir, Neden Kullanmalısınız?
Renovate, repolarınızdaki bağımlılıkları otomatik tarayıp güncel sürümler için pull request açan açık kaynak bir bot. Dependabot'tan farkları, kurulumu, örnek renovate.json yapılandırması ve self-hosted CI'da kullanımı bu yazıda.
Bağımlılık güncellemeleri, çoğu geliştiricinin ihmal ettiği ama teknik borcun en hızlı biriktiği alanlardan biri. package.json, requirements.txt, Dockerfile, GitHub Actions workflow'ları... hepsi zamanla eskir ve bir gün kritik bir güvenlik açığıyla karşınıza çıkar. Renovate tam olarak bu sorunu çözmek için var.
Renovate Nedir?
Renovate, repolarınızdaki bağımlılıkları otomatik olarak tarayan, güncel sürümleri tespit eden ve her güncelleme için ayrı bir pull request açan açık kaynak bir bottur. Mend (eski adıyla WhiteSource) tarafından geliştirilir ve GitHub, GitLab, Bitbucket, Azure DevOps gibi platformlarda çalışır.
Dependabot'a benzese de Renovate çok daha esnek bir yapılandırma sistemine sahiptir. npm, pip, Docker, Terraform, GitHub Actions, Cargo, Go modules dahil onlarca ekosistemi tek bir araçla yönetebilirsiniz.
Neden Dependabot Değil de Renovate?
- Tek yapılandırma dosyası —
renovate.jsonile tüm repo genelinde tutarlı kurallar tanımlanır. - Gruplama desteği — İlgili paketleri (örneğin tüm
eslint-*paketlerini) tek bir PR'da toplayabilirsiniz, PR kalabalığı azalır. - Zamanlama kontrolü — Güncellemelerin sadece belirli saatlerde/günlerde açılmasını sağlayabilirsiniz (mesai dışı gece build'lerini tetiklememek gibi).
- Otomatik merge — Minor/patch seviyesindeki düşük riskli güncellemeler için testler geçerse otomatik merge tanımlanabilir.
- Daha geniş ekosistem desteği — Docker base image'ları, Helm chart'ları, Terraform provider'ları gibi Dependabot'ın zayıf kaldığı alanlarda daha güçlü.
Kurulum
GitHub üzerinde en pratik yol Renovate GitHub App'i kurmak:
- github.com/apps/renovate adresinden uygulamayı yükleyin.
- Erişim vermek istediğiniz repoları seçin.
- Bot ilk taramadan sonra otomatik olarak bir "Configure Renovate" PR'ı açar; bu PR varsayılan
renovate.jsondosyasını içerir.
Kendi altyapınızda (self-hosted GitLab, Gitea vb.) çalıştırmak isterseniz renovate npm paketini CLI olarak veya resmi Docker image'ı üzerinden CI pipeline'ında da çalıştırabilirsiniz.
Örnek Yapılandırma
json
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended"],
"timezone": "Europe/Istanbul",
"schedule": ["after 22:00 every weekday", "every weekend"],
"packageRules": [
{
"matchUpdateTypes": ["minor", "patch"],
"automerge": true
},
{
"matchPackagePatterns": ["^eslint"],
"groupName": "eslint packages"
}
],
"vulnerabilityAlerts": {
"enabled": true,
"labels": ["security"]
}
}Bu örnekte:
- Güncellemeler yalnızca mesai dışı saatlerde açılıyor.
- Minor ve patch seviyesindeki güncellemeler testler geçerse otomatik birleşiyor.
- ESLint ile ilgili paketler tek PR'da gruplanıyor.
- Güvenlik açığı bulunan paketler için ayrı, etiketlenmiş uyarılar oluşturuluyor.
Self-Hosted Ortamlarda Kullanım
Proxmox/Docker tabanlı bir altyapıda çalışan projeler için Renovate'i bir cron job veya GitHub Actions scheduled workflow olarak tetiklemek yaygın bir pattern. Örneğin:
yaml
name: Renovate
on:
schedule:
- cron: '0 3 * * *'
workflow_dispatch:
jobs:
renovate:
runs-on: ubuntu-latest
steps:
- uses: renovatebot/github-action@v40
with:
configurationFile: renovate.json
token: ${{ secrets.RENOVATE_TOKEN }}Bu, harici bir servise bağımlı olmadan kendi CI altyapınız üzerinden tam kontrol sağlar.
Pratik İpuçları
config:recommendedile başlayın — Sıfırdan kural yazmak yerine önerilen preset üzerine küçük özelleştirmeler eklemek daha sürdürülebilir.- Dashboard PR'ını kapatmayın — Renovate, tüm bekleyen güncellemeleri listeleyen bir "Dependency Dashboard" issue'su açar; bu genel görünüm için değerlidir.
- Lock file maintenance'ı aktif edin —
lockFileMaintenanceseçeneği, doğrudan versiyon değişikliği olmasa bile lock dosyasını düzenli tazeler. - Major güncellemeleri ayrı tutun — Major sürüm atlamaları genelde breaking change içerir; bunları otomerge dışında bırakıp manuel gözden geçirin.
Sonuç
Renovate, "bağımlılıkları güncel tutma" işini insan hafızasından çıkarıp sürece dönüştürüyor. İlk kurulumu birkaç dakika sürse de, uzun vadede güvenlik açıklarını erken yakalamak ve teknik borcu biriktirmemek açısından kazandırdığı zaman katbekat fazla. Küçük bir yapılandırma dosyasıyla başlayıp ihtiyaca göre kuralları genişletmek en sağlıklı yaklaşım.