Automatische Abhängigkeits-Updates: Dependabot und Renovate
Kurz: Dependabot und Renovate prüfen regelmäßig, ob Bibliotheken neue Versionen oder Sicherheitspatches haben, und öffnen automatisch Pull Requests mit dem Update.
Genauer: Moderne Projekte hängen von Hunderten Paketen ab. Veralten sie, häufen sich Sicherheitslücken und aufwendige Sprünge. Manuelles Nachsehen wird vergessen; Bots übernehmen das regelmäßig und in kleinen Schritten.
Im Detail
Wie es funktioniert
Der Bot liest package.json/Lockfiles, requirements.txt, pom.xml, Dockerfile, GitHub-Actions-Dateien und vergleicht mit den neuesten Versionen. Gibt es ein Update, erstellt er einen Pull Request mit Änderungsliste, Link zu Release Notes und läuft durch deine CI-Tests. Du prüfst und mergst. Für Sicherheitslücken (CVE) meldet Dependabot Security Alerts und erstellt dringende PRs.
Dependabot und Renovate
- Dependabot (GitHub): einfach, Konfiguration
.github/dependabot.yml; integriert in GitHub-Sicherheitsfunktionen.
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule: { interval: weekly }
groups:
dev-tools: { dependency-type: development }- Renovate (Open Source, auch GitLab, Gitea, selbst betreibbar): sehr konfigurierbar (Gruppierung, Automerge für Patches, Regeln je Paket, Zeitfenster), unterstützt viele Formate. Beide arbeiten am besten mit gutem Testbestand.
Gute Praxis
- Gruppieren (zum Beispiel alle Dev-Tools in einem PR), um PR-Flut zu vermeiden.
- Patch- und Minor-Updates mit grünen Tests automatisch mergen, Major-Updates manuell prüfen.
- Lockfiles versionieren, damit Builds reproduzierbar sind.
- Release Notes lesen, besonders bei Major-Versionen und Breaking Changes.
- Kritische Abhängigkeiten festnageln (Versionsbereiche,
~/^bewusst wählen). - Zeitplan (wöchentlich) statt täglicher Unruhe.
- Lieferkette beachten: Auch Updates können bösartig sein (kompromittierte Pakete); neue Versionen mit kurzer Karenzzeit (zum Beispiel 3 Tage) einführen.
Nutzen
Weniger Sicherheitsrisiko, kleinere Updates (leichter zu debuggen als ein Sprung über 2 Jahre), aktuelle Werkzeuge und weniger „Update-Schuld“. Für kleine Projekte reicht eine monatliche Prüfung mit npm outdated/npm audit/pip list --outdated, wenn der Aufwand für einen Bot zu hoch scheint.
Siehe auch: Abhängigkeiten und Sicherheitslücken (CVE), npm audit, Software-Lieferkette