Was ist Renovate?
Renovate (entwickelt von Mend, früher WhiteSource) ist ein Open-Source-Tool für automatisierte Dependency-Updates. Renovate überwacht deine Projekte auf veraltete Abhängigkeiten und öffnet automatisch Pull Requests, um sie zu aktualisieren. Es unterstützt eine außergewöhnlich breite Palette an Paketmanagern und ist hochgradig konfigurierbar.
Renovate unterstützt unter anderem:
- Node.js: npm, yarn, pnpm
- Python: pip, Poetry, pipenv, pip-compile
- Go: go.mod
- Java: Maven, Gradle
- Docker: Dockerfile, Docker Compose, docker-bake
- Kubernetes: Helm Charts, Flux, ArgoCD
- Terraform: Module und Provider
- GitHub Actions, GitLab CI/CD, CircleCI
- Rust: Cargo.toml
- Und Dutzende weitere Formate
Renovate ist als GitHub App, GitLab App, als selbst-gehosteter Bot oder CLI verfügbar. Die Konfiguration erfolgt via renovate.json im Repository oder renovate.json5.
Was ist Dependabot?
Dependabot ist seit 2019 Teil von GitHub und wurde 2022 mit dem GitHub-internen Dependency-Graph vollständig integriert. Dependabot bietet drei Hauptfunktionen:
- Security Alerts: Benachrichtigungen bei bekannten CVEs in Abhängigkeiten
- Security Updates: Automatische PRs, die Security-relevante Updates einspielen
- Version Updates: Automatische PRs für alle Versions-Updates (wie Renovate)
Dependabot ist direkt in GitHub integriert, kostenlos für alle Repositories und benötigt keine zusätzliche Infrastruktur. Die Konfiguration erfolgt via .github/dependabot.yml.
Unterstützte Paketmanager (Auswahl): npm, yarn, pip, Poetry, Go modules, Maven, Gradle, Cargo, Composer, Docker, GitHub Actions, NuGet, Bundler.
Renovate vs. Dependabot: Der direkte Vergleich
| Kriterium | Renovate | Dependabot |
|---|---|---|
| Plattform-Support | GitHub, GitLab, Gitea, Forgejo, Bitbucket, Azure DevOps, Gitea, selbst-gehostet | GitHub only (Security Alerts auch für andere) |
| Konfigurierbarkeit | Sehr hoch (renovate.json, Presets, Manager-spezifisch) | Moderat (.github/dependabot.yml) |
| Paketmanager-Support | 90+ Paketmanager und Formate | ~30 Paketmanager |
| Grouping / Batching | Vollständig konfigurierbar (Gruppen, Patch/Minor/Major getrennt) | Begrenzt (grouped updates) |
| Auto-Merge | Vollständig konfigurierbar (nach Semver, Test-Status) | Begrenzt (auto-merge nach Merge-Strategie) |
| Security Updates | Möglich, aber Dependabot stärker verankert | Native Integration mit GitHub Advisory Database |
| PR-Erstellung | Verzögerbar, batchbar, schedulebasiert | Schedulebasiert, aber weniger granular |
| Dashboard | Dependency Dashboard Issue (im Repository) | Kein separates Dashboard (Security Tab in GitHub) |
| Self-Hosting | Vollständig (Docker, GitLab Runner, GitHub Actions) | Nicht möglich (GitHub SaaS only) |
| Kosten | Open Source (kostenlos, self-hosted möglich) | Kostenlos für GitHub |
| Helm Chart Updates | Vollständig (helmv3 Manager) | Begrenzt |
| Terraform Module | Vollständig (terraform Manager) | Begrenzt (nur public registry) |
Konfiguration im Vergleich
Eine einfache Dependabot-Konfiguration für ein Node.js-Projekt:
# .github/dependabot.yml
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 10
labels:
- "dependencies"
groups:
dev-dependencies:
patterns:
- "*eslint*"
- "*prettier*"
- "@types/*"
Eine äquivalente Renovate-Konfiguration ist mächtiger, aber auch komplexer:
// renovate.json
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended"],
"schedule": ["every weekend"],
"labels": ["dependencies"],
"packageRules": [
{
"matchPackagePatterns": ["eslint", "prettier", "@types/"],
"groupName": "dev tooling",
"automerge": true,
"automergeType": "pr"
},
{
"matchUpdateTypes": ["patch"],
"automerge": true,
"automergeType": "pr"
},
{
"matchUpdateTypes": ["major"],
"labels": ["dependencies", "breaking-change"],
"assignees": ["@maintainer"]
}
]
}
Renovate's Presets: Schnellstart mit bewährten Konfigurationen
Renovates stärkstes Feature für Einsteiger sind die Presets. config:recommended aktiviert vernünftige Standardwerte, und es gibt Presets für viele Szenarien:
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
"group:monorepos", // Monorepo-Pakete gemeinsam updaten
"group:recommended", // Bekannte Pakete gruppieren
"schedule:weekends", // Nur am Wochenende PRs öffnen
":automergeMinor", // Minor-Updates automatisch mergen
":semanticCommits" // Commits im Conventional-Commit-Format
]
}
Dependabot hat vergleichbare Gruppen-Features (seit 2023), aber Renovate ist hier deutlich ausgereifter.
Self-Hosting Renovate für GitLab, Gitea oder Forgejo
Wer nicht GitHub nutzt, ist mit Renovate deutlich besser bedient. Self-Hosting via Docker:
# docker-compose.yml
services:
renovate:
image: renovate/renovate:latest
volumes:
- /tmp/renovate:/tmp/renovate
environment:
RENOVATE_TOKEN: "${GITLAB_TOKEN}"
RENOVATE_PLATFORM: "gitlab"
RENOVATE_ENDPOINT: "https://gitlab.example.com"
RENOVATE_AUTODISCOVER: "true" # alle zugänglichen Repos scannen
LOG_LEVEL: "info"
Alternativ als GitLab CI/CD Pipeline (täglich geplant):
# .gitlab-ci.yml
renovate:
image: renovate/renovate:latest
variables:
RENOVATE_TOKEN: $CI_JOB_TOKEN
RENOVATE_PLATFORM: gitlab
RENOVATE_ENDPOINT: $CI_SERVER_URL/api/v4
RENOVATE_AUTODISCOVER: "true"
script:
- renovate
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
Wann ist Dependabot die bessere Wahl?
Dependabot ist dann richtig, wenn:
- Du ausschließlich GitHub nutzt
- Dir Security Alerts mit automatischen PRs wichtig sind (native GitHub Advisory Database)
- Du einen minimalen Setup-Aufwand willst (keine eigene Infrastruktur)
- Deine Anforderungen einfach sind (wenige Repos, Standard-Paketmanager)
- Du bereits mit GitHub's Dependency Graph und Security Tab arbeitest
Wann ist Renovate die bessere Wahl?
Renovate ist dann richtig, wenn:
- Du GitLab, Gitea, Forgejo, Bitbucket oder Azure DevOps nutzt
- Du komplexe Konfigurationen brauchst (Auto-Merge, Gruppenregeln, Semver-Filterung)
- Du Docker, Helm, Terraform oder Flux/ArgoCD updates automatisieren willst
- Du mehrere Repositories zentral verwalten willst (Autodiscovery)
- Du Self-Hosting bevorzugst (kein Vendor Lock-in)
- Du spezifische Schedule-Regeln brauchst (z.B. nur Mo-Fr zwischen 09-17 Uhr)
Meine Empfehlung
Für reine GitHub-Projekte mit einfachen Anforderungen ist Dependabot ausreichend – kostenlos, kein Setup, gut integriert. Die Security-Integration ist Dependabots klarer Vorteil.
Sobald du aber GitLab oder Forgejo nutzt, komplexe Konfigurationen brauchst (Auto-Merge nach Semver, Grouping, Helm/Terraform-Updates) oder mehrere Repositories zentral verwalten willst, ist Renovate die deutlich mächtigere und flexiblere Wahl. Wer heute damit anfängt, wird nie zurückwechseln wollen.
Für Homelab-Betreiber mit selbst-gehostetem GitLab oder Forgejo ist Renovate die einzige praktikable Wahl – Dependabot ist an GitHub gebunden.
Weiterführende Artikel
- GitHub Actions vs. GitLab CI/CD: Welche CI/CD-Plattform?
- Forgejo vs. GitLab CE: Self-Hosted Git Hosting im Vergleich
- Woodpecker CI vs. Drone CI: Lightweight CI/CD für Self-Hoster im Vergleich