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.

Wer kann dieses Feature verwenden?

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 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 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 Versionsupdates von Dependabot.

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-Sicherheitsupdates.

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.

Dependabot signiert standardmäßig seine eigenen Commits, auch wenn die Commit-Signierung keine Voraussetzung für das Repository ist. Weitere Informationen zu bestätigten Commits findest du unter „Informationen zur Verifizierung einer Commit-Signatur“.

Bevor du Dependabot updates aktivierst, musst du Ihre GitHub Enterprise Server-Instance konfigurieren, um GitHub Actions mit selbstgehosteten Runnern zu verwenden. GitHub Actions sind erforderlich, damit Dependabot version updates und Dependabot security updates für GitHub Enterprise Server ausgeführt werden. 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.

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.

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.

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.

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 finden Sie unter vendor. Dependabot unterstützt auch Abhängigkeiten in privaten Registrierungen. Weitere Informationen finden Sie unter registries.

Hinweis: Um sicherzustellen, dass GitHub Enterprise Server Dependabot updates für die neuesten unterstützten Ökosystemversionen unterstützt, muss deine Unternehmensbesitzerin die neueste Version der Dependabot-Aktion herunterladen. Weitere Informationen zur Aktion und Anweisungen zum Herunterladen der aktuellen Version findest du unter Verwenden der neuesten Version der offiziellen gebündelten Aktionen.

Hinweis: 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 (Git only)
Composercomposerv1, v2
Dockerdockerv1Nicht verfügbar
Hexmixv1
elm-packageelmv0.19
Git-SubmodulgitsubmoduleNicht verfügbarNicht verfügbar
GitHub Actionsgithub-actionsNicht verfügbarNicht verfügbar
Go-Modulegomodv1
GradlegradleNicht verfügbar
MavenmavenNicht verfügbar
npmnpmv6, v7, v8, v9
NuGetnuget<= 4.8
pippipv21.1.2
pipenvpip<= 2021-05-29
pip-compilepip6.1.0
pnpmnpmv7, v8
poetrypipv1
pubpubv2
Swiftswiftv5 (Nur Git)
Terraformterraform>= 0.13, <= 1.8.xNicht verfügbar
yarnnpmv1, v2, v3

Tipp: Für Paket-Manager wie pipenv und poetry müssen Sie den YAML-Wert pip verwenden. Wenn Sie Ihre Python-Abhängigkeiten z. B. mit poetry verwalten und Ihre Abhängigkeitsmanifestdatei mit Dependabot für neue Versionen überwachen möchten, nutzen Sie package-ecosystem: "pip" in Ihrer dependabot.yml-Datei.

Cargo

Die Unterstützung für die private Registrierung gilt für Git-Registrierungen, sie gilt nicht für Cargo-Registrierungen.

Docker

Dependabot kann Pull Requests für Versionsupdates Metadaten aus Docker-Images hinzufügen. Die Metadaten enthalten Versionshinweise, Änderungsprotokolle und den Commitverlauf. Repositoryadministratoren können die Metadaten verwenden, um das Stabilitätsrisiko des Abhängigkeitsupdates schnell auszuwerten.

Damit Dependabot Docker-Metadaten abrufen kann, müssen Verwalter von Docker-Images die org.opencontainers.image.source-Bezeichnung ihrer Dockerfile-Datei hinzufügen und die URL des Quellrepositorys einschließen. Darüber hinaus müssen Verwalter das Repository mit den gleichen Tags versehen wie die veröffentlichten Docker-Images. Ein Beispiel dafür finden Sie im dependabot-fixtures/docker-with-source-Repository. Weitere Informationen zu Docker-Bezeichnungen finden Sie unter Erweiterungsimagebezeichnungen und BUILDX_GIT_LABELS in der Docker-Dokumentation.

Dependabot kann Docker-Imagetags in Kubernetes-Manifesten aktualisieren. Fügen Sie dem Docker-Element package-ecosystem Ihrer Datei vom Typ dependabot.yml für jedes Verzeichnis, das ein Kubernetes-Manifest enthält, das auf Docker-Imagetags verweist, einen Eintrag hinzu. Kubernetes-Manifeste können YAML-Dateien oder Helm-Diagramme für die Kubernetes-Bereitstellung sein. Informationen zum Konfigurieren Ihrer dependabot.yml-Datei für docker finden Sie unter package-ecosystem in „Konfigurationsoptionen für die Datei dependabot.yml.“

Dependabot unterstützt sowohl öffentliche als auch private Docker-Registrierungen. Eine Liste der unterstützten Registrierungen finden Sie unter docker-registry in „Konfigurationsoptionen für die Datei dependabot.yml“.

Dependabot untersucht Docker-Imagetags auf die semantische Versionierung (SemVer). Wenn Dependabot ein Tag mit einer Vorabversion erkennt, schlägt es nur ein Update auf die aktuelle Version mit einer übereinstimmenden Vorabversion vor und keine neuere Version mit einer anderen Vorabversion. Weitere Informationen finden Sie in der dependabot-docker-README.md-Datei im dependabot/dependabot-core-Repository.

GitHub Actions

Dependabot unterstützt Versionsupdates für GitHub Actions mit den folgenden Einschränkungen.

  • Dependabot unterstützt nur Updates für GitHub Actions über die GitHub-Repository-Syntax, z. B. actions/checkout@v4. Dependabot ignoriert Aktionen oder wiederverwendbare Workflows, auf die lokal verwiesen wird (z. B. ./.github/actions/foo.yml. ).
  • Docker Hub und GitHub Packages Container registry-URLs werden derzeit nicht unterstützt. Beispielsweise werden Verweise auf Docker-Containeraktionen mit docker://-Syntax nicht unterstützt.
  • Dependabot unterstützt sowohl öffentliche als auch private Repositorys für GitHub Actions. Informationen zu Konfigurationsoptionen für private Registrierungen findest Du unter "git" in "Konfigurationsoptionen für die Datei dependabot.yml".

Weitere Informationen zur Verwendung von Dependabot version updates mit GitHub Actions finden Sie unter „Verwenden der Sicherheitsfeatures von GitHub zum Sichern Ihrer Verwendung von GitHub-Aktionen“.

Gradle

Dependabot führt Gradle nicht aus, unterstützt jedoch Updates folgender Dateien:

  • build.gradle, build.gradle.kts (für Kotlin-Projekte)
  • gradle/libs.versions.toml (für Projekte, die einen Gradle-Standardversionskatalog verwenden)
  • Dateien, die über die apply-Deklaration eingefügt wurden, die dependencies im Dateinamen enthalten. Beachten Sie, dass apply weder apply to, Rekursion noch erweiterte Syntax – z. B. apply mit mapOf bei Kotlin oder durch Eigenschaften definierte Dateinamen – unterstützt.

Für Dependabot security updates ist Gradle-Unterstützung auf manuelle Uploads der Abhängigkeitsdiagrammdaten mit der Abhängigkeitsübermittlungs-API beschränkt. Weitere Informationen zu Abhängigkeitsübermittlungs-API finden Sie unter „Verwenden der Abhängigkeitsübermittlungs-API.“

Hinweise:

  • Wenn Sie Gradle-Abhängigkeiten mithilfe der Abhängigkeitsübermittlungs-API in das Abhängigkeitsdiagramm hochladen, werden alle Projektabhängigkeiten hochgeladen, auch transitive Abhängigkeiten, die in keiner Abhängigkeitsdatei explizit erwähnt werden. Wenn eine Warnung in einer transitiven Abhängigkeit erkannt wird, können Dependabot die anfällige Abhängigkeit im Repository nicht finden und daher kein Sicherheitsupdate für diese Warnung erstellen.
  • Dependabot version updates erstellt jedoch Pull Requests, wenn die übergeordnete Abhängigkeit in der Manifestdatei des Projekts explizit als direkte Abhängigkeit deklariert ist.

Maven

Dependabot führt Maven nicht aus, unterstützt jedoch Updates von pom.xml-Dateien.

NuGet-CLI

Dependabot führt die NuGet-CLI nicht aus, unterstützt aber die meisten Features bis Version 4.8.

pip und pip-compile

Zusätzlich zur Unterstützung von Updates von requirements.txt-Dateien unterstützt Dependabot Updates von pyproject.toml-Dateien, wenn sie dem PEP 621-Standard entsprechen.

pnpm

pnpm wird für Dependabot version updates und Dependabot security updates unterstützt.

pub

Dependabot führt kein Update für pub aus, wenn die Version, für die ein Update durchgeführt werden soll, ignoriert wird. Dies gilt auch dann, wenn eine frühere Version verfügbar ist.

Swift

Die Unterstützung für private Registrierungen gilt nur für Git-Registrierungen. Swift-Registrierungen werden nicht unterstützt. Nicht deklarative Manifeste werden nicht unterstützt. Weitere Informationen zu nicht deklarativen Manifesten finden Sie in der Swift Evolution-Dokumentation unter Bearbeiten nicht deklarativer Manifeste.

Terraform

Terraform-Unterstützung umfasst:

  • Module, die auf Terraform Registry oder einem öffentlich zugänglichen Git-Repository gehostet werden.
  • Terraform-Anbieter
  • Privates Terraform-Registry Sie können den Zugriff für private Git-Repositorys konfigurieren, indem Sie eine Git-Registrierung in Ihrer dependabot.yml-Datei voraussetzen. Weitere Informationen finden Sie unter git.

yarn

Dependabot unterstützt Anbieterabhängigkeiten ab Version 2.

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

Informationen zur automatischen Deaktivierung von Dependabot updates

Wenn die Maintainer*innen eines Repositorys nicht mehr mit Pull Requests von Dependabot interagieren, hält Dependabot die Updates vorübergehend an und informiert dich. Durch diese automatische Deaktivierung werden unerwünschte Aktivitäten reduziert, da Dependabot keine Pull Requests für Versions- und Sicherheitsupdates erstellt und kein Rebase für Pull Requests von Dependabot für inaktive Repositorys ausführt.

Die automatische Deaktivierung von Dependabot-Updates gilt nur für Repositorys, in denen Dependabot Pull Requests geöffnet hat, mit denen keine Interaktion verzeichnet wurde. Wenn Dependabot keine Pull Requests geöffnet hat, wird Dependabot auch nicht angehalten.

Ein Repository gilt als aktiv, wenn eine Benutzerin (nicht Dependabot) innerhalb der letzten 90 Tage eine der folgenden Aktionen in diesem ausgeführt hat:

  • Mergen oder Schließen eines Pull Requests von Dependabot im Repository
  • Bearbeiten der Datei dependabot.yml des Repositorys
  • Manuelles Auslösen eines Sicherheitsupdates oder Versionsupdates
  • Aktivieren von Dependabot security updates für das Repository
  • Verwenden des @dependabot-Befehls in Pull Requests

Ein Repository gilt als inaktiv, wenn mindestens ein Pull Request von Dependabot für mindestens 90 Tage geöffnet ist, die ganze Zeit lang aktiv war und keine der oben aufgeführten Benutzeraktionen erfolgt ist.

Wenn Dependabot angehalten werden, fügt GitHub einen Bannerhinweis hinzu:

  • An alle offenen Dependabot-Pull Requests
  • Zur Benutzeroberfläche des Tabs Einstellungen des Repositorys (unter Codesicherheit und Analyse, dann Dependabot).
  • Zur Liste der Dependabot alerts (if Dependabot security updates sind betroffen).

Darüber hinaus können Sie sehen, ob Dependabot auf Organisationsebene in der Sicherheitsübersicht angehalten werden. Der paused-Status kann auch über die API eingesehen werden. Weitere Informationen finden Sie unter REST-API-Endpunkte für Repositorys.

Sobald eine Maintainerin erneut mit einem Pull Request von Dependabot interagiert, wird Dependabot von selbst fortgesetzt:

  • Sicherheitsupdates werden für Dependabot alerts automatisch fortgesetzt.
  • Versionsupdates werden automatisch nach dem Zeitplan fortgesetzt, der in der Datei dependabot.yml angegeben ist.

Dependabot beendet auch die Rebase-Ausführung von Pull Requests für Versions- und Sicherheitsupdates nach 30 Tagen und reduziert Benachrichtigungen für inaktive Dependabot-Pull Requests.

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 Benachrichtigungen über deinen Posteingang verwalten.