Skip to main content

Konfigurieren von Versionsupdates von Dependabot

Du kannst dein Repository so konfigurieren, dass Dependabot automatisch die von dir verwendeten Pakete aktualisiert.

Wer kann dieses Feature verwenden?

Users with write access

Hinweis: Dein Websiteadministrator muss Dependabot updates für Ihre GitHub Enterprise Server-Instance einrichten, damit du dieses Feature verwenden kannst. Weitere Informationen findest du unter Aktivieren von Dependabot für dein Unternehmen.

Möglicherweise kannst du Dependabot updates nicht aktivieren oder deaktivieren, wenn eine Unternehmensbesitzerin eine Richtlinie auf Unternehmensebene festgelegt hat. Weitere Informationen findest du unter Erzwingen von Richtlinien für die Codesicherheit und -analyse für Unternehmen.

Informationen zu Versionsupdates für Abhängigkeiten

Du aktivierst Dependabot version updates, indem du eine dependabot.yml-Konfigurationsdatei in das Verzeichnis .github deines Repositorys eincheckst. Dann werden von Dependabot Pull Requests ausgelöst, damit die von Ihnen konfigurierten Abhängigkeiten auf dem neuesten Stand gehalten werden. Für die Abhängigkeiten jedes Paket-Managers, die du aktualisieren möchtest, musst du den Speicherort der Paketmanifestdateien angeben und festlegen, wie oft auf Aktualisierungen der in diesen Dateien aufgeführten Abhängigkeiten geprüft werden soll. Informationen zum Aktivieren von Sicherheitsupdates findest du unter Konfigurieren von Dependabot-Sicherheitsupdates.

Beim ersten Aktivieren der Versionsaktualisierung sind möglicherweise viele Abhängigkeiten veraltet, und einige hinken der aktuellen Version um mehrere Versionen hinterher. Dependabot führt sofort nach der Aktivierung eine Überprüfung auf veraltete Abhängigkeiten durch. Abhängig davon, für wie viele Manifestdateien du Updates konfigurierst, werden dir möglicherweise schon wenige Minuten nach dem Hinzufügen der Konfigurationsdatei neue Pull Requests für Versionsaktualisierungen angezeigt. Dependabot führt auch bei späteren Änderungen an der Konfigurationsdatei eine Aktualisierung durch.

Dependabot kann auch Pull Requests erstellen, wenn du eine Manifestdatei änderst, nachdem ein Update fehlgeschlagen ist. Dies liegt daran, dass Änderungen an einem Manifest – beispielsweise das Entfernen einer Abhängigkeit, durch die ein Update fehlschlägt – dazu führen können, dass die neu ausgelöste Aktualisierung erfolgreich ist.

Damit die Pull Requests überschaubar bleiben und leicht überprüft werden können, löst Dependabot maximal fünf Pull Requests aus, um die Abhängigkeiten an die neueste Version anzupassen. Wenn einige der ersten Pull Requests vor der nächsten geplanten Aktualisierung gemergt werden, werden die verbleibenden Pull Requests beim nächsten Update geöffnet, bis zu diesem Höchstwert. Du kannst die maximale Anzahl offener Pull Requests ändern, indem du die open-pull-requests-limit-Konfigurationsoption festlegst.

Um die Anzahl von Pull Requests weiter zu verringern, kannst du mithilfe der Konfigurationsoption groups Abhängigkeiten (pro Paketökosystem) in Gruppen zusammenfassen. Dependabot löst dann einen einzigen Pull Request aus, um möglichst viele Abhängigkeiten in der Gruppe gleichzeitig auf die neuesten Versionen zu aktualisieren. Weitere Informationen findest du unter Anpassen von Abhängigkeitsupdates.

Aufgrund einer Fehlkonfiguration oder einer inkompatiblen Version kann es vorkommen, dass eine Ausführung von Dependabot fehlschlägt. Nach 30 fehlerhaften Ausführungen überspringt Dependabot version updates nachfolgende geplante Ausführungen, bis Sie manuell eine Überprüfung auf Updates aus dem Abhängigkeitsdiagramm auslösen oder die Manifestdatei aktualisiersen. Dependabot security updates wird weiterhin wie gewohnt ausgeführt.

Standardmäßig werden nur direkte Abhängigkeiten von Dependabot version updates auf dem neuesten Stand gehalten, die explizit in einem Manifest definiert sind. Du kannst auswählen, Updates für indirekte Abhängigkeiten zu empfangen, die in Sperrdateien definiert sind. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml.

Bei der Durchführung von Sicherheits- oder Versionsupdates müssen einige Ökosysteme in der Lage sein, alle Abhängigkeiten von der jeweiligen Quelle aufzulösen, um zu überprüfen, ob die Updates erfolgreich waren. Wenn deine Manifest- oder Sperrdateien private Abhängigkeiten enthalten, muss Dependabot auf den Speicherort zugreifen können, an dem diese Abhängigkeiten gehostet werden. Organisationsbesitzer können Dependabot Zugriff auf private Repositorys gewähren, die Abhängigkeiten für ein Projekt innerhalb derselben Organisation enthalten. Weitere Informationen findest du unter Verwalten von Sicherheits- und Analyseeinstellungen für deine Organisation. Du kannst den Zugriff auf private Registrierungen in der Konfigurationsdatei dependabot.yml eines Repositorys konfigurieren. Weitere Informationen findest du unter Konfigurationsoptionen für die Datei dependabot.yml. Darüber hinaus bietet Dependabot keine Unterstützung für private GitHub-Abhängigkeiten für alle Paket-Manager. Weitere Informationen finden Sie unter Von Dependabot unterstützte Ökosysteme und Repositorys und unter GitHub-Sprachunterstützung.

Aktivieren von Dependabot version updates

Du aktivierst Dependabot version updates, indem du die Konfigurationsdatei dependabot.yml in deinem Repository committest.

  1. Erstelle die Konfigurationsdatei dependabot.yml im Verzeichnis .github deines Repositorys. Sie können den folgenden Codeausschnitt als Ausgangspunkt verwenden. For information about the options you can use to customize how Dependabot maintains your repositories, see "Konfigurationsoptionen für die Datei dependabot.yml."

    YAML
    # To get started with Dependabot version updates, you'll need to specify which
    # package ecosystems to update and where the package manifests are located.
    
    version: 2
    updates:
    - package-ecosystem: "" # See documentation for possible values
      directory: "/" # Location of package manifests
      schedule:
        interval: "weekly"
    
  2. Füge eine version hinzu. Dieser Schlüssel ist obligatorisch. Die Datei muss mit version: 2 beginnen.

  3. Wenn du über Abhängigkeiten in einer privaten Registrierung verfügst, kannst du optional einen registries-Abschnitt mit Authentifizierungsdetails hinzufügen. Weitere Informationen findest du unter registries in „Konfigurationsoptionen für die Datei dependabot.yml“.

  4. Füge einen updates-Abschnitt mit einem Eintrag für jeden Paket-Manager hinzu, der von Dependabot überwacht werden soll. Dieser Schlüssel ist obligatorisch. Du verwendest ihn, um zu konfigurieren, wie die Versionen oder die Abhängigkeiten deines Projekts von Dependabot aktualisiert werden. Von jedem Eintrag werden die Updateeinstellungen für einen bestimmten Paket-Manager konfiguriert.

  5. Verwende für jeden Paket-Manager:

    • package-ecosystem, um den Paket-Manager anzugeben. Weitere Informationen zu den unterstützten Paketmanagern finden Sie unter package-ecosystem „Konfigurationsoptionen für die dependabot.yml-Datei“.
    • directory, um den Speicherort des Manifests oder anderer Definitionsdateien anzugeben. Weitere Informationen findest du unter directory in „Konfigurationsoptionen für die Datei dependabot.yml“. .
    • schedule.interval, um anzugeben, wie oft nach neuen Versionen gesucht werden soll. Weitere Informationen findest du unter schedule.interval in „Konfigurationsoptionen für die Datei dependabot.yml“.
  6. Überprüfe die Konfigurationsdatei dependabot.yml im .github-Verzeichnis des Repositorys.

Beispieldatei für dependabot.yml

Im folgenden Beispiel für die Datei dependabot.yml werden Versionsupdates für zwei Paket-Manager konfiguriert: npm und Docker. Wenn diese Datei eingecheckt ist, werden die Manifestdateien im Standardbranch von Dependabot auf veraltete Abhängigkeiten geprüft. Wenn veraltete Abhängigkeiten gefunden werden, werden Pull Requests für den Standardbranch ausgelöst, damit die Abhängigkeiten aktualisiert werden.

# Basic `dependabot.yml` file with
# minimum configuration for two package managers

version: 2
updates:
  # Enable version updates for npm
  - package-ecosystem: "npm"
    # Look for `package.json` and `lock` files in the `root` directory
    directory: "/"
    # Check the npm registry for updates every day (weekdays)
    schedule:
      interval: "daily"

  # Enable version updates for Docker
  - package-ecosystem: "docker"
    # Look for a `Dockerfile` in the `root` directory
    directory: "/"
    # Check for updates once a week
    schedule:
      interval: "weekly"

Wenn die Docker-Abhängigkeiten im obigen Beispiel sehr veraltet waren, empfiehlt es sich, mit einem Zeitplan vom Typ daily zu beginnen, bis die Abhängigkeiten aktuell sind, und dann wieder auf einen wöchentlichen Zeitplan überzugehen.

Aktivieren von Versionsupdates für Forks

Wenn du Versionsupdates für Forks aktivieren möchtest, gibt es einen zusätzlichen Schritt. Versionsupdates werden nicht automatisch für Forks aktiviert, wenn eine dependabot.yml-Konfigurationsdatei vorhanden ist. Dadurch wird sichergestellt, dass Forkbesitzer nicht versehentlich Versionsupdates aktivieren, wenn sie Änderungen, einschließlich einer dependabot.yml-Konfigurationsdatei, aus dem ursprünglichen Repository abrufen.

Für einen Fork musst du Dependabot zudem explizit aktivieren.

  1. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.

  2. Wähle unter dem Namen deines Repositorys die Option Einstellungen aus. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Einstellungen“ ist dunkelorange umrandet.

  3. Klicke im Abschnitt „Sicherheit“ auf der Randleiste auf Codesicherheit und -analyse.

  4. Klicke unter „Codesicherheit und -analyse“ rechts neben Dependabot version updates auf Aktivieren, damit Dependabot Versionsupdates initiieren kann.

Überprüfen des Status von Versionsupdates

Nachdem du Versionsupdates aktiviert hast, ist im Abhängigkeitsdiagramm für das Repository die Registerkarte Dependabot ausgefüllt. Diese Registerkarte zeigt, für die Überwachung welcher Paket-Manager Dependabot konfiguriert ist und wann von Dependabot zum letzten Mal eine Prüfung auf neue Versionen durchgeführt wurde.

Screenshot: Seite „Abhängigkeitsdiagramm“. Die Registerkarte „Dependabot“ ist orange umrandet.

Informationen findest du unter Auflisten von für Versions-Updates konfigurierten Abhängigkeiten.

Deaktivieren von Dependabot version updates

Du kannst Versionsupdates vollständig deaktivieren, indem du die Datei dependabot.yml aus deinem Repository löschst. In der Regel möchtest du Updates vorübergehend für eine oder mehrere Abhängigkeiten oder Paket-Manager deaktivieren.

  • Paket-Manager: Deaktiviere Updates durch Festlegen von open-pull-requests-limit: 0 oder durch Auskommentieren vom relevanten package-ecosystem in der Konfigurationsdatei.
  • Bestimmte Abhängigkeiten: Deaktiviere Updates durch Hinzufügen von ignore-Attributen für Pakete oder Anwendungen, die du aus Updates ausschließen möchtest.

Wenn du Abhängigkeiten deaktivierst, kannst du Platzhalter verwenden, um Übereinstimmungen mit verwandten Bibliotheken zu erzielen. Du kannst auch angeben, welche Versionen ausgeschlossen werden sollen. Dies ist besonders nützlich, wenn du Updates für eine Bibliothek blockieren musst – bei ausstehender Arbeit zum Unterstützen eines Breaking Change an der API –, aber alle Sicherheitskorrekturen für die von dir verwendete Version abrufen möchtest.

Beispiel für das Deaktivieren von Versionsupdates für einige Abhängigkeiten

Das nachstehende Beispiel für die Datei dependabot.yml enthält Beispiele für die verschiedenen Möglichkeiten zum Deaktivieren von Updates für einige Abhängigkeiten, während andere Updates fortgesetzt werden können.

# `dependabot.yml` file with updates
# disabled for Docker and limited for npm

version: 2
updates:
  # Configuration for Dockerfile
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
      # Disable all pull requests for Docker dependencies
    open-pull-requests-limit: 0

  # Configuration for npm
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    ignore:
      # Ignore updates to packages that start with 'aws'
      # Wildcards match zero or more arbitrary characters
      - dependency-name: "aws*"
      # Ignore some updates to the 'express' package
      - dependency-name: "express"
        # Ignore only new versions for 4.x and 5.x
        versions: ["4.x", "5.x"]
      # For all packages, ignore all patch updates
      - dependency-name: "*"
        update-types: ["version-update:semver-patch"]

Weitere Informationen zum Überprüfen auf vorhandene Einstellungen vom Typ „Ignorieren“ findest du unter Konfigurationsoptionen für die Datei dependabot.yml.