EMZETT.
Login

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