Renovate

@renovatebot.com

Open Source Automated Dependency Updates by Mend 22k+ ⭐ - GitHub 👉 https://github.com/renovatebot/renovate

We're back after a great week at #OpenSourceSummit, where we've had some great chats with users, registry operators, security researchers and other Open Source projects, and have a tonne of exciting new things we want to work on!

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.

Renovate Bot Nedir, Neden Kullanmalısınız?

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.json` ile 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: 1. github.com/apps/renovate adresinden uygulamayı yükleyin. 2. Erişim vermek istediğiniz repoları seçin. 3. Bot ilk taramadan sonra otomatik olarak bir "Configure Renovate" PR'ı açar; bu PR varsayılan `renovate.json` dosyası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:recommended` ile 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** — `lockFileMaintenance` seç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.

erkandogan.tr

If you're in the preview for GitHub Actions Lockfiles, but are waiting for Dependabot to ship support for updating them, Renovate's had support since Tuesday :) And a few other things GitHub Actions-y too!

As folks may have noticed - Renovate 44 was (accidentally) released yesterday with a non-breaking change. Please treat Renovate 44.0.0 as 43.x, and upgrade as normal!