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:

  1. Security Alerts: Benachrichtigungen bei bekannten CVEs in Abhängigkeiten
  2. Security Updates: Automatische PRs, die Security-relevante Updates einspielen
  3. 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

KriteriumRenovateDependabot
Plattform-SupportGitHub, GitLab, Gitea, Forgejo, Bitbucket, Azure DevOps, Gitea, selbst-gehostetGitHub only (Security Alerts auch für andere)
KonfigurierbarkeitSehr hoch (renovate.json, Presets, Manager-spezifisch)Moderat (.github/dependabot.yml)
Paketmanager-Support90+ Paketmanager und Formate~30 Paketmanager
Grouping / BatchingVollständig konfigurierbar (Gruppen, Patch/Minor/Major getrennt)Begrenzt (grouped updates)
Auto-MergeVollständig konfigurierbar (nach Semver, Test-Status)Begrenzt (auto-merge nach Merge-Strategie)
Security UpdatesMöglich, aber Dependabot stärker verankertNative Integration mit GitHub Advisory Database
PR-ErstellungVerzögerbar, batchbar, schedulebasiertSchedulebasiert, aber weniger granular
DashboardDependency Dashboard Issue (im Repository)Kein separates Dashboard (Security Tab in GitHub)
Self-HostingVollständig (Docker, GitLab Runner, GitHub Actions)Nicht möglich (GitHub SaaS only)
KostenOpen Source (kostenlos, self-hosted möglich)Kostenlos für GitHub
Helm Chart UpdatesVollständig (helmv3 Manager)Begrenzt
Terraform ModuleVollstä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

Verwandte Technologien im Techradar