Tools

Dependabot zaehmen - Updates gruppieren, Rhythmus drosseln, Sicherheit schnell halten

dependabot github devops security supply-chain

Montagmorgens, du oeffnest deine Notifications - und da sind sie: fuenf, zehn, manchmal ein Dutzend Dependabot Pull Requests, jeder fuer eine einzelne Abhaengigkeit. Individuell hilfreich, kollektiv Laerm. Und Laerm ist, wie wichtige Updates ignoriert werden.

Ein Blick auf Microsofts GCToolkit-Repo zeigte: 92 von 578 Commits waren Dependabot-Bumps. Das ist jeder sechste Commit. Das muss nicht so sein.

Die Loesung: Drei Aenderungen

1. Alles in einen Pull Request gruppieren

Ein groups-Block mit Wildcard-Pattern (patterns: ["*"]) buendelt alle Updates pro Oekosystem in einem einzigen PR. Statt 10 Pull Requests bekommst du einen Titel wie “Bump the monthly-batch group with 10 updates”. Ein Branch, ein CI-Lauf, eine Review.

2. Kadenz von daily auf monthly

schedule.interval: "monthly" aendert den Rhythmus von “immer wenn sich etwas aendert” zu “einmal pro Monat, planbar”. Kombiniert mit Gruppierung ist das die echte Laermreduktion: ein gebuendelter PR pro Oekosystem pro Monat.

3. Alle Oekosysteme abdecken

Viele Configs uberwachen nur github-actions, vergessen aber maven, npm, pip etc. Jedes Oekosystem bekommt seinen eigenen Schedule und seine eigene Gruppe.

Sicherheit bleibt sofort

Der Schluessel: Gruppen und Schedule betreffen nur Version-Updates, nicht Security-Fixes. Dependabot Security Updates werden weiterhin sofort bei Bekanntwerden einer Schwachstelle ausgeloest, unabhaengig vom Schedule. Monatliche Routine-Bumps verzoegern also keinen kritischen Patch.

Zusaetzlich gibt es seit kurzem einen Default-Cooldown: Dependabot wartet drei Tage, bevor ein Version-Update-PR eroeffnet wird - als Schutz vor Supply-Chain-Angriffen ueber frisch veroeffentlichte Releases.

Praxis-Tipps

  • Starte breit mit einem Wildcard-Gruppe, splitte spaeter bei Bedarf
  • Nutze directories mit Globs fuer Monorepos (/apps/*)
  • group-by: dependency-name fasst gleiche Libraries ueber mehrere Verzeichnisse zusammen
  • Cooldown-Laenge ist konfigurierbar (cooldown.default-days: 7)

Mit etwa einem Dutzend Zeilen YAML wird aus einem Daily-PR-Strom ein sauberer monatlicher Batch. Weniger PRs, weniger CI-Laeufe, und die Updates, die wirklich zaehlen, gehen nicht im Rauschen unter.

Quelle: GitHub Blog