Skip to main content

Informationen zu Updates von Dependabot-Versionen

Du kannst mithilfe von Dependabot deine verwendeten Pakete immer auf die neuesten Version zu aktualisieren.

Dependabot version updates sind kostenlos für Repositorys (im Benutzer- oder Organisationsbesitz) auf GitHub Enterprise Server, vorausgesetzt, Unternehmensadministratoren aktivieren das Feature für dein Unternehmen.

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

Informationen zu Dependabot version updates

Mit Dependabot ist das Verwalten von Abhängigkeiten so leicht wie noch nie. Mit dem Programm kannst du sicherstellen, dass dein Repository automatisch auf die neuesten Releases der Pakete und Anwendungen aktualisiert wird, von denen es abhängig ist.

Du aktivierst Dependabot version updates, indem du eine dependabot.yml-Konfigurationsdatei in das Verzeichnis deines Repositorys einchecken. Die Konfigurationsdatei gibt den Speicherort des Manifests oder anderer Paketdefinitionsdateien an, die im Repository gespeichert sind. Dependabot verwendet diese Informationen, um nach veralteten Paketen und Anwendungen zu suchen. Dependabot bestimmt, ob eine neue Version einer Abhängigkeit vorhanden ist, indem du dir die semantische Versionierung (SemVer) der Abhängigkeit ansiehst, um zu entscheiden, ob sie auf diese Version aktualisiert werden soll. Für bestimmte Paketmanager unterstützt Dependabot version updates auch die Anbietererstellung. Gelieferte (oder zwischengespeicherte) Abhängigkeiten sind Abhängigkeiten, die in ein bestimmtes Verzeichnis in einem Repository eingecheckt werden, statt dass auf sie in einem Manifest verwiesen wird. Gelieferte Abhängigkeiten sind zur Build-Zeit verfügbar, auch wenn Paketserver nicht verfügbar sind. Dependabot version updates können so konfiguriert werden, dass gelieferte Abhängigkeiten für neue Versionen überprüft und bei Bedarf aktualisiert werden.

Wenn Dependabot eine veraltete Abhängigkeit identifiziert, löst sie eine Pull Request aus, um das Manifest auf die neueste Version der Abhängigkeit zu aktualisieren. Bei gelieferten Abhängigkeiten löst Dependabot eine Pull Request aus, um die veraltete Abhängigkeit direkt durch die neue Version zu ersetzen. du überprüfst, ob deine Tests übergeben werden, überprüfe die Änderungsprotokoll- und Release-Notizen, die in der Pull-Request-Zusammenfassung enthalten sind, und führe sie dann zusammen. Weitere Informationen findest du unter Konfigurieren von Dependabot-Versionsupdates.

Wenn du Sicherheits-Updates aktivierst, löst Dependabot auch Pull Requests aus, um anfällige Abhängigkeiten zu aktualisieren. Weitere Informationen findest du unter Informationen zu Dependabot security updates.

Wenn Dependabot Pull Requests auslöst, können diese Pull Requests für Sicherheits- oder Versionsupdates gelten:

  • Dependabot security updates sind automatisierte Pull Requests, mit denen Du Abhängigkeiten mit bekannten Sicherheitsrisiken aktualisieren kannst.
  • Dependabot version updates sind automatisierte Pull Requests, mit denen Deine Abhängigkeiten auf dem aktuellen Stand gehalten werden, auch wenn sie keine Sicherheitsrisiken aufweisen. Um den Status von Versionsupdates zu überprüfen, navigiere zur Registerkarte „Erkenntnisse“ Deines Repositorys, dann zum Abhängigkeitsdiagramm und Dependabot.

GitHub Actions ist erforderlich, um Dependabot version updates und Dependabot security updates in GitHub Enterprise Server auszuführen. Bevor du Dependabot updates aktivierst, musst du your GitHub Enterprise Server instance konfigurieren, um GitHub Actions mit selbstgehosteten Runnern zu verwenden. Weitere Informationen findest du unter Aktivieren von Dependabot für dein Unternehmen.

Häufigkeit von Dependabot-Pull Requests

Du gibst an, wie oft jedes Ökosystem auf neue Versionen in der Konfigurationsdatei überprüft werden soll: täglich, wöchentlich oder monatlich.

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.

Wenn du Sicherheits-Updates aktiviert hast, werden manchmal zusätzliche Pull Requests für Sicherheits-Updates angezeigt. Diese werden durch eine Dependabot-Warnung zu einer Abhängigkeit von deinem Standardbranch ausgelöst. Dependabot löst automatisch eine Pull Request aus, um die anfällige Abhängigkeit zu aktualisieren.

Unterstützte Repositorys und Ökosysteme

Du kannst Versionsupdates für Repositorys konfigurieren, die ein Abhängigkeitsmanifest oder eine Sperrdatei für einen der unterstützten Paketmanager enthalten. Für einige Paketmanager kannst du auch Vendoring für Abhängigkeiten konfigurieren. 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“.

Dependabot unterstützt keine privaten GitHub-Abhängigkeiten für alle Paketmanager. Weitere Informationen findest du in der folgenden Tabelle.

Die folgende Tabelle zeigt für jeden Paket-Manager:

  • Den YAML-Wert, der in der Datei dependabot.yml verwendet werden soll
  • Die unterstützten Versionen des Paket-Managers
  • Ob Abhängigkeiten in privaten Repositorys oder Registrierungen von GitHub unterstützt werden
  • Ob anbieterseitige Abhängigkeiten unterstützt werden
Paket-ManagerYAML-WertUnterstützte VersionenPrivate RepositorysPrivate RegistrierungenVendoring
Bundlerbundlerv1, v2
Cargocargov1
Composercomposerv1, v2
Dockerdockerv1
Hexmixv1
elm-packageelmv0.19
Git-SubmodulgitsubmoduleKeine Angabe (Keine Version)
GitHub Actions [2]github-actionsKeine Angabe (Keine Version)
Go-Modulegomodv1
Gradle [3]gradleKeine Angabe (Keine Version)
Maven [4]mavenKeine Angabe (Keine Version)
npmnpmv6, v7, v8
NuGetnuget<= 4.8[5]
pippipv21.1.2
pipenvpip<= 2021-05-29
pip-compilepip6.1.0
Poetrypipv1
pub [7]pubV2
Terraformterraform>= 0.13, <= 1.2.x
yarnnpmv1

Tipp: Für Paket-Manager wie pipenv und poetry musst du den YAML-Wert pip verwenden. Wenn du deine Python-Abhängigkeiten z. B. mit poetry verwaltest und mit Dependabot deine Abhängigkeitsmanifestdatei für neue Versionen überwachen möchtest, nutze package-ecosystem: "pip" in deiner dependabot.yml-Datei.

[2] Dependabot unterstützt nur Updates für GitHub Actions über die GitHub-Repositorysyntax, zum Beispiel durch actions/checkout@v3. Docker Hub und GitHub Packages Container registry-URLs werden derzeit nicht unterstützt.

[3] Dependabot führt Gradle nicht aus, unterstützt jedoch Updates an den folgenden Dateien: build.gradle, build.gradle.kts (für Kotlin-Projekte) sowie den über die apply-Deklaration eingeschlossenen Dateien, die dependencies im Dateinamen enthalten. Beachte, dass apply weder apply to, Rekursion noch erweiterte Syntax – z. B. apply mit mapOf bei Kotlin oder durch Eigenschaften definierte Dateinamen – unterstützt.

[4] Dependabot führt Maven nicht aus, unterstützt jedoch Updates an pom.xml-Dateien.

[5] Dependabot führt die NuGet-CLI nicht aus, unterstützt jedoch die meisten Features bis Version 4.8.

[7] Die pub-Unterstützung befindet sich derzeit in der Betaversion. Bei allen bekannten Einschränkungen sind Änderungen vorbehalten. Beachte, dass Dependabot:

  • das Aktualisieren von Git-Abhängigkeiten für pub nicht unterstützt.

  • kein Update ausführt, wenn die Version, auf die aktualisiert werden soll, ignoriert wird, auch wenn eine frühere Version verfügbar ist.

    Informationen zum Konfigurieren deiner dependabot.yml-Datei für pub findest du unter Aktivieren der Unterstützung für Ökosysteme auf Betaebene.

Wenn dein Repository bereits eine Integration für die Abhängigkeitsverwaltung verwendet, musst du dies deaktivieren, bevor du Dependabot aktivierst.

Informationen zum Konfigurieren von Dependabot-Sicherheits-Updates

Du kannst deine Benachrichtigungen nach GitHub filtern, um Benachrichtigungen für Pull Requests anzuzeigen, die mit Dependabot erstellt wurden. Weitere Informationen findest du unter Verwalten von Benachrichtigungen aus deinem Posteingang.