Skip to main content

Referenz zu Dependabot-Optionen

Detaillierte Informationen über alle Optionen, mit denen du anpassen kannst, wie Dependabot deine Repositorys wartet.

Wer kann dieses Feature verwenden?

Users with write access

Informationen zu den dependabot.yml-Dateien

Die dependabot.yml-Datei definiert, wie Dependabot Abhängigkeiten mithilfe von Versionsupdates verwaltet. Darüber hinaus ändern alle mit dem Symbol gekennzeichneten Optionen, wie Dependabot Pull Requests für Sicherheitsupdates erstellt – mit Ausnahme von Fällen, in denen target-branch verwendet wird.

In der Dependabot-Konfigurationsdatei dependabot.yml wird die YAML-Syntax verwendet. Wenn du noch nicht mit YAML gearbeitet hast und mehr erfahren möchtest, lies den Artikel zum Erlernen von YAML in fünf Minuten.

Du musst diese Datei im .github-Verzeichnis deines Repositorys in der Standard-Branch speichern. Wenn du die Datei dependabot.yml hinzufügst oder aktualisierst, wird dadurch eine sofortige Überprüfung auf Versionsupdates ausgelöst. Weitere Informationen und ein Beispiel findest du unter Konfigurieren von Versionsupdates von Dependabot.

Note

Dependabot alerts sind auf der Registerkarte „Repository“ oder der Organisationsregisterkarte „Einstellungen“ und nicht in der dependabot.yml-Datei konfiguriert, wie unter Konfigurieren von Dependabot-Warnungen erläutert wird.

Erforderliche Schlüssel

SchlüsselLocationZweck
versionOberste EbeneDie zu verwendende Dependabot-Konfigurationssyntax, immer: 2
updatesOberste EbeneAbschnitt, in dem du die einzelnen zu aktualisierenden package-ecosystem-Elemente definierst
package-ecosystemUnter updatesDefiniert einen zu aktualisierenden Paket-Manager
directoryUnter jedem package-ecosystem-EintragDefiniert den Speicherort des Manifests oder anderer Definitionsdateien, die aktualisiert werden sollen
schedule.intervalUnter jedem package-ecosystem-EintragDefiniert, wo nach Versionsupdates gesucht werden soll: daily, weekly oder monthly

Optional kannst du auch einen registries-Schlüssel auf oberster Ebene einschließen, um Zugriffsdetails für private Registrierungen zu definieren. Weitere Informationen findest du unter registries-Schlüssel der obersten Ebene.

YAML

# 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"

Ein praktisches Beispiel für eine dependabot.yml-Datei findest du in der Konfigurationsdatei von Dependabot.

allow

Verwende diese Option, um genau zu definieren, welche Abhängigkeiten für ein Paketökosystem verwaltet werden sollen. Sie wird häufig mit der Option ignore verwendet. Beispiele findest du unter Steuern der von Dependabot aktualisierten Abhängigkeiten.

Standardverhalten von Dependabot:

  • Alle in einem Manifest explizit definierten Abhängigkeiten werden durch Versionsupdates auf dem neuesten Stand gehalten.
  • Alle Abhängigkeiten, die in Sperrdateien mit anfälligen Abhängigkeiten definiert sind, werden durch Sicherheitsupdates aktualisiert.

Wenn allow angegeben wird, verwendet Dependabot den folgenden Prozess:

  1. Es wird überprüft, ob alle Abhängigkeiten explizit zugelassen sind.

  2. Dann werden alle ignorierten Abhängigkeiten oder Versionen herausgefiltert.

    Wenn eine Abhängigkeit durch eine allow- und eine ignore-Anweisung abgeglichen und eine Übereinstimmung festgestellt wird, wird sie ignoriert.

ParameterZweck
dependency-nameVerwende diese Option, um Updates für Abhängigkeiten mit übereinstimmenden Namen zuzulassen. Verwende optional * für die Übereinstimmung mit null oder mehr Zeichen.
dependency-typeVerwende diese Option, um Updates für Abhängigkeiten bestimmter Typen zuzulassen.

dependency-name (allow)

Für die meisten Paket-Manager solltest du einen Wert definieren, der dem in der Sperr- oder Manifestdatei angegebenen Abhängigkeitsnamen entspricht. Einige Systeme haben komplexere Anforderungen.

Paket-ManagerErforderliches FormatBeispiel
Gradle und MavengroupId:artifactIdorg.kohsuke:github-api
Docker für ImagetagsDer vollständige Name des RepositorysVerwende base/foo/bar/ruby für <account ID>.dkr.ecr.us-west-2.amazonaws.com/base/foo/bar/ruby:3.1.0-focal-jemalloc-Imagetags.

dependency-type (allow)

AbhängigkeitstypenUnterstützt von Paket-ManagernZulassen von Updates
directAlleAlle explizit definierten Abhängigkeiten.
indirectbundler, pip, composer, cargo, gomodAbhängigkeiten von direkten Abhängigkeiten (auch als Unterabhängigkeiten oder vorübergehende Abhängigkeiten bezeichnet).
allAlleAlle explizit definierten Abhängigkeiten. Für bundler, pip, composer, cargo, gomod, sowie die Abhängigkeiten der direkten Abhängigkeiten.
productionbundler, composer, mix, maven, npm, pip (nicht alle Manager)Nur für Abhängigkeiten, die vom Paket-Manager als Produktionsabhängigkeiten definiert werden
developmentbundler, composer, mix, maven, npm, pip (nicht alle Manager)Nur für Abhängigkeiten, die vom Paket-Manager als Entwicklungsabhängigkeiten definiert werden

assignees

Verwende diese Option zum Angeben einzelner zugewiesener Personen für alle Pull Requests, die für ein Paketökosystem ausgelöst wurden. Beispiele findest du unter Anpassen von Dependabot-Pull-Requests an deine Prozesse.

Standardverhalten von Dependabot:

  • Pull Requests werden ohne Zuweisungen erstellt.

Wenn assignees definiert ist:

  • Alle Pull Requests für Versionsupdates werden mit den ausgewählten zugewiesenen Personen erstellt.
  • Alle Pull Requests für Sicherheitsupdates werden mit den ausgewählten zugewiesenen Personen erstellt, es sei denn, target-branch definiert Updates für einen anderen Branch als den Standardbranch.

Zugewiesene Personen müssen Schreibzugriff auf das Repository haben. Für Repositorys im Besitz der Organisation sind auch Organisationsmitglieder mit Lesezugriff gültige zugewiesene Personen.

commit-message

Diese Option definiert das Format für Commitnachrichten. Da die Titel von Pull Requests auf Commitnachrichten basieren, wirkt sich diese Einstellung auch auf die Titel von Pull Requests aus. Beispiele findest du unter Anpassen von Dependabot-Pull-Requests an deine Prozesse.

Standardverhalten von Dependabot:

  • Commitnachrichten folgen ähnlichen Mustern wie die im Repository erkannten.

Wenn commit-message definiert ist:

  • Alle Commitnachrichten folgen dem definierten Muster.
  • Alle Commitnachrichten folgen dem definierten Muster, es sei denn, target-branch definiert Updates für einen anderen Branch als den Standardbranch.
ParameterZweck
prefixDefiniert ein Präfix für alle Commitnachrichten und Pull-Request-Titel
prefix-developmentBei unterstützten Systemen wird ein anderes Präfix definiert, das für Commits verwendet werden soll, die Abhängigkeiten in der Entwicklungsabhängigkeitsgruppe aktualisieren.
includeGib nach dem Commitnachrichtenpräfix zusätzliche Informationen an.

Tip

Wenn Pull Requests für gruppierte Updates ausgelöst werden, werden der Branchname und der Pull-Request-Titel von der Gruppe IDENTIFIER definiert. Weitere Informationen findest du unter groups.

prefix

  • Wird für alle Commitnachrichten verwendet, es sei denn, prefix-development ist ebenfalls definiert.
  • Der Wert kann bis zu 50 Zeichen umfassen.
  • Dependabot fügt einen Doppelpunkt nach dem Präfix ein, bevor die Hauptcommitnachricht hinzugefügt wird, wenn der Wert mit einem Buchstaben, einer Zahl, einer schließenden Klammer oder einer eckigen Klammer rechts endet.
  • Beende den Wert mit einem Leerzeichen, um zu verhindern, dass ein Doppelpunkt hinzugefügt wird.

prefix-development

Unterstützt von: bundler, composer, mix, maven, npm und pip

  • Wird nur für Commitnachrichten verwendet, die Abhängigkeiten in der Entwicklungsabhängigkeitsgruppe aktualisieren
  • Andernfalls verhält sich der Parameter genau wie der prefix-Parameter.

include

  • Unterstützt nur den Wert scope
  • Beim Definieren eines Präfixes folgt der Typ der Abhängigkeiten, die im Commit aktualisiert werden: deps oder deps-dev.

directory

Erforderliche Option: Verwende diese Option, um den Speicherort der Paketmanifeste für jeden Paket-Manager zu definieren (z. B. package.json oder Gemfile). Ohne diese Informationen kann Dependabot keine Pull Requests für Versionsupdates erstellen. Beispiele findest du unter Beispieldatei „dependabot.yml“.

  • Definiere das Verzeichnis relativ zum Stamm des Repositorys für die meisten Paket-Manager.
  • Verwende für GitHub Actions den Wert /. Dependabot durchsucht das /.github/workflows-Verzeichnis sowie die action.yml/action.yaml-Datei aus dem Stammverzeichnis.

Wenn du mehr als einen Block in der Konfigurationsdatei verwenden musst, um Updates für einen einzelnen Zielbranch eines Ökosystems zu definieren, musst du sicherstellen, dass alle Werte eindeutig sind und keine Überlappung in Verzeichnissen definiert ist.

enable-beta-ecosystems

Derzeit nicht verwendet.

groups

Definiere Regeln, um eine oder mehrere Gruppen von Abhängigkeiten zu erstellen, die von einem Paket-Manager verwaltet werden, um Updates in weniger und gezielten Pull Requests zu gruppieren. Beispiele findest du unter Optimieren der Erstellung von Pull Requests für Versionsupdates von Dependabot.

Standardverhalten von Dependabot:

  • Öffne einen einzelnen Pull Request für jede Abhängigkeit, die auf eine neuere Version für Versionsupdates aktualisiert werden muss,.

Wenn groups zum Definieren von Regeln verwendet wird:

  • Alle Versions-Updates für Abhängigkeiten, die mit einer Regel übereinstimmen, werden in einem einzelnen Pull Request kombiniert.
  • Wenn eine Abhängigkeit mit mehr als einer Regel übereinstimmt, ist sie in der ersten Gruppe enthalten, der sie entspricht.
  • Alle veralteten Abhängigkeiten, die keiner Regel entsprechen, werden in einzelnen Pull Requests aktualisiert.
ParameterZweck
IDENTIFIERDefiniere einen Bezeichner für die Gruppe, die in Branchnamen und Pull-Request-Titeln verwendet werden soll. Dieser muss mit einem Buchstaben beginnen und enden und kann Buchstaben, Pipes |, Unterstriche _ oder Bindestriche - enthalten.
dependency-typeBeschränke die Gruppe auf einen Typ. Unterstützte Werte: development oder production
patternsDefiniere mindestens ein Muster, um Abhängigkeiten mit übereinstimmenden Namen einzuschließen.
exclude-patternsDefiniere ein oder mehrere Muster, um Abhängigkeiten aus der Gruppe auszuschließen.
update-typesBeschränke die Gruppe auf eine oder mehrere Ebenen für die semantische Versionierung. Unterstützte Werte: minor, patch und major.

dependency-type (groups)

Unterstützt von: bundler, composer, mix, maven, npm und pip

Standardmäßig enthält eine Gruppe alle Arten von Abhängigkeiten.

  • Verwende development, um nur Abhängigkeiten in die „Entwicklungsabhängigkeitsgruppe“ einzuschließen.
  • Verwende production, um nur Abhängigkeiten in die „Produktionsabhängigkeitsgruppe“ einzuschließen.

patterns und exclude-patterns (groups)

Beide Optionen unterstützen die Verwendung von * als Platzhalter zum Definieren von Übereinstimmungen mit Abhängigkeitsnamen. Wenn eine Abhängigkeit sowohl mit einem Muster als auch mit einem Ausschlussmuster übereinstimmt, wird sie aus der Gruppe ausgeschlossen.

update-types (groups)

Standardmäßig enthält eine Gruppe Updates für alle semantischen Versionen (SemVer). SemVer ist ein akzeptierter Standard zum Definieren von Versionen von Softwarepaketen in der Form x.y.z. Dependabot geht davon aus, dass Versionen immer im Format major.minor.patch vorliegen.

  • Verwende patch, um Patchversionen einzuschließen.
  • Verwende minor, um Nebenversionen einzuschließen.
  • Verwende major, um Hauptversionen einzuschließen.

Beispiele findest du unter Steuern der von Dependabot aktualisierten Abhängigkeiten.

ignore

Verwende diese Option mit der Option allow, um genau zu definieren, welche Abhängigkeiten für ein Paketökosystem verwaltet werden sollen. Dependabot sucht nach allen zulässigen Abhängigkeiten und filtert dann alle ignorierten Abhängigkeiten oder Versionen aus. Daher wird eine Abhängigkeit, die sowohl mit „allow“ als auch mit „ignore“ übereinstimmt, ignoriert. Beispiele findest du unter Steuern der von Dependabot aktualisierten Abhängigkeiten.

Standardverhalten von Dependabot:

  • Alle in einem Manifest explizit definierten Abhängigkeiten werden durch Versionsupdates auf dem neuesten Stand gehalten.
  • Alle Abhängigkeiten, die in Sperrdateien mit anfälligen Abhängigkeiten definiert sind, werden durch Sicherheitsupdates aktualisiert.

Wenn ignore verwendet wird, verwendet Dependabot den folgenden Prozess:

  1. Es wird überprüft, ob alle Abhängigkeiten explizit zugelassen sind.

  2. Dann werden alle ignorierten Abhängigkeiten oder Versionen herausgefiltert.

    Wenn eine Abhängigkeit durch eine allow- und eine ignore-Anweisung abgeglichen und eine Übereinstimmung festgestellt wird, wird sie ignoriert.

ParameterZweck
dependency-nameVerwende diese Option, um Updates für Abhängigkeiten mit übereinstimmenden Namen zu ignorieren. Verwende optional * für die Übereinstimmung mit null oder mehr Zeichen.
versionsBestimmte Versionen oder Versionsbereiche ignorieren
update-typesUpdates auf einer oder mehreren Ebenen der semantischen Versionierung ignorieren Unterstützte Werte: sem-ver:minor, sem-ver:patch und sem-ver:major.

dependency-name (ignore)

Für die meisten Paket-Manager solltest du einen Wert definieren, der dem in der Sperr- oder Manifestdatei angegebenen Abhängigkeitsnamen entspricht. Einige Systeme haben komplexere Anforderungen.

Paket-ManagerErforderliches FormatBeispiel
Gradle und MavengroupId:artifactIdorg.kohsuke:github-api
Docker für ImagetagsDer vollständige Name des RepositorysVerwende base/foo/bar/ruby für <account ID>.dkr.ecr.us-west-2.amazonaws.com/base/foo/bar/ruby:3.1.0-focal-jemalloc-Imagetags.

versions (ignore)

Verwende diese Option, um bestimmte Versionen oder Bereiche von Versionen zu ignorieren. Wenn du einen Bereich definieren möchtest, verwende das Standardmuster für den Paket-Manager. Zum Beispiel:

  • npm: ^1.0.0 verwenden
  • Bundler: ~> 2.0 verwenden
  • Docker: Ruby-Versionssyntax verwenden
  • NuGet: 7.* verwenden

Beispiele findest du unter Steuern der von Dependabot aktualisierten Abhängigkeiten.

update-types (ignore)

Gib an, welche semantischen Versionen (SemVer) ignoriert werden sollen. SemVer ist ein akzeptierter Standard zum Definieren von Versionen von Softwarepaketen in der Form x.y.z. Dependabot geht davon aus, dass Versionen in diesem Formular immer major.minor.patch sind.

  • Verwende patch, um Patchversionen einzuschließen.
  • Verwende minor, um Nebenversionen einzuschließen.
  • Verwende major, um Hauptversionen einzuschließen.

insecure-external-code-execution

Unterstützt von: bundler, mix und pip.

Lasse zu, dass Dependabot während Updates externer Code im Manifest ausführt. Beispiele findest du unter Zulassen der Ausführung externer Code.

Standardverhalten von Dependabot:

  • Wenn du Dependabot Zugriff auf eine oder mehrere Registrierungen gewährst, wird die Ausführung von externem Code automatisch deaktiviert, um deinen Code vor kompromittierten Paketen zu schützen.
  • Versionsupdates schlagen ohne die Möglichkeit zum Ausführen von Code ggf. fehl.

Wenn du insecure-external-code-execution zulässt:

  • Dependabot führt Code im Manifest als Teil des Versionsupdateprozesses aus.
  • Der Code hat Zugriff auf nur die Paket-Manager in den Registrierungsstellen, die dieser updates-Einstellung zugeordnet sind. Es ist kein Zugriff auf die Registrierungen zulässig, die in der registries-Konfiguration der obersten Ebene definiert sind.
  • Dadurch sollte das Update erfolgreich sein, aber einem kompromittierten Paket könnte es möglich sein, Anmeldeinformationen zu stehlen oder Zugriff auf konfigurierte Registrierungen zu erhalten.

Unterstützter Wert: allow

labels

Gib eigene Bezeichnungen für alle Pull Requests an, die für einen Paket-Manager ausgelöst werden. Beispiele findest du unter Anpassen von Dependabot-Pull-Requests an deine Prozesse.

Standardverhalten von Dependabot:

  • Alle Pull Requests weisen eine dependencies-Bezeichnung auf.
  • Wenn du mehrere Paket-Manager definierst, wird jedem Pull Request eine zusätzliche Bezeichnung für das Ökosystem oder die Sprache hinzugefügt. Beispiel: java für Gradle-Updates und submodules für Git-Untermodulupdates.
  • Dependabot erstellt diese Standardbezeichnungen automatisch, sofern in Ihrem Repository erforderlich.

Wenn labels definiert ist:

  • Die angegebenen Bezeichnungen werden anstelle der Standardbezeichnungen verwendet.
  • Wenn eine dieser Bezeichnungen im Repository nicht definiert ist, wird sie ignoriert.
  • Du kannst alle Bezeichnungen, einschließlich der Standardbezeichnungen, mit labels: [ ] deaktivieren.

Das Festlegen dieser Option wirkt sich auch auf Pull Requests für Sicherheitsupdates für die Manifestdateien dieses Paket-Managers aus, es sei denn, du verwendest target-branch, um nach Versionsupdates auf einer nicht standardmäßigen Verzweigung zu suchen.

milestone

Ordne alle Pull Requests, die für einen Paket-Manager ausgelöst wurden, einem Meilenstein zu. Beispiele findest du unter Anpassen von Dependabot-Pull-Requests an deine Prozesse.

Standardverhalten von Dependabot:

  • Es werden keine Meilensteine verwendet.

Wenn milestone definiert ist:

  • Alle Pull Requests für den Paket-Manager werden dem Meilenstein hinzugefügt.

Unterstützter Wert: der numerische Bezeichner eines Meilensteins.

Tip

Wenn du einen Meilenstein anzeigst, ist der letzte Teil der Seiten-URL nach milestone der Bezeichner. Beispiel: https://github.com/<org>/<repo>/milestone/3, siehe Anzeigen des Fortschritts deines Meilensteins.

open-pull-requests-limit

Ändere den Grenzwert für die maximale Anzahl an Pull Requests für Versionsupdates, die geöffnet sein können.

Standardverhalten von Dependabot:

  • Wenn fünf Pull Requests mit Versionsupdates geöffnet sind, werden keine weiteren Pull Requests ausgelöst, bis einige dieser offenen Pull Requests gemergt oder geschlossen werden.
  • Sicherheitsupdates verfügen über einen separaten internen Grenzwert von zehn geöffneten Pull Requests, der nicht geändert werden kann.

Wenn open-pull-requests-limit definiert ist:

  • Dependabot öffnet Pull Requests bis zum definierten ganzzahligen Wert.
  • Du kannst Versionsupdates für einen Paket-Manager vorübergehend deaktivieren, indem du diese Option auf 0 festlegst. Weitere Informationen findest du unter Deaktivieren von Dependabot version updates.

package-ecosystem

Erforderliche Option: Definiere ein package-ecosystem-Element für jeden Paket-Manager, der von Dependabot auf neue Versionen hin überwacht werden soll. Das Repository muss auch ein Abhängigkeitsmanifest oder eine Sperrdatei für jeden Paket-Manager enthalten, siehe Beispieldatei „dependabot.yml.

Paket-ManagerYAML-WertUnterstützte Versionen
Bundlerbundlerv1, v2
Cargocargov1
Composercomposerv1, v2
Dockerdockerv1
Hexmixv1
elm-packageelmv0.19
Git-SubmodulgitsubmoduleNicht zutreffend
GitHub Actionsgithub-actionsNicht zutreffend
Go-Modulegomodv1
GradlegradleNicht zutreffend
MavenmavenNicht zutreffend
npmnpmv6, v7, v8, v9
NuGetnuget<= 4.8
pippipv21.1.2
pip-compilepip6.1.0
pipenvpip<= 2021-05-29
pnpmnpmv7, v8
v9 (nur Versionsupdates)
Poetrypipv1
pubpubv2
Swiftswiftv5
Terraformterraform>= 0.13, <= 1.8.x
yarnnpmv1, v2, v3

pull-request-branch-name.separator

Gib ein Trennzeichen an, das beim Generieren von Branchnamen verwendet werden soll. Beispiele findest du unter Anpassen von Dependabot-Pull-Requests an deine Prozesse.

Standardverhalten von Dependabot:

  • Generiert Branchnamen im folgenden Format: dependabot/PACKAGE_MANAGER/DEPENDENCY

Wenn pull-request-branch-name.separator definiert ist:

  • Verwende anstelle von / das angegebene Zeichen.

Unterstützte Werte: "-", _, /

Tip

Das Bindestrichsymbol muss mit Escapezeichen versehen sein, damit es nicht als Start einer leeren YAML-Liste interpretiert wird.

rebase-strategy

Deaktiviere das automatische Rebasing von Pull Requests, die von Dependabot ausgelöst wurden.

Das Standardverhalten von Dependabot besteht darin, ein Rebase für geöffnete Pull Requests auszuführen, wenn Dependabot Änderungen an einer Version oder einem Pull Request für Sicherheitsupdates erkennt. Dependabot sucht nach Änderungen, wenn:

  • Dein Zeitplan ausgeführt wird, um nach Versionsupdates zu suchen
  • Du einen geschlossenen Dependabot-Pull Request erneut öffnest
  • Du den Wert von target-branch in der Dependabot-Konfigurationsdatei änderst, siehe target-branch
  • Ein Dependabot-Pull Request steht nach einem letzten Push an den Zielbranch in Konflikt.

Wenn rebase-strategy auf disabled festgelegt ist, beendet Dependabot das Rebasing für Pull Requests.

Note

Pull Requests, die geöffnet waren, bevor du Rebasing deaktivierst, werden weiterhin bis zu 30 Tage nach dem Öffnen zurückgesetzt. Dies wirkt sich auf alle Pull Requests aus, die Konflikte mit dem Zielbranch haben, und alle Pull Requests für Versionsupdates.

registries

Konfiguriere den Zugriffs auf private Paketregistrierungen, damit Dependabot einen größeren Bereich von Abhängigkeiten aktualisieren kann. Weitere Informationen findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot und Leitfaden zum Konfigurieren privater Registrierungen für Dependabot.

Es gibt zwei Speicherorte in der dependabot.yml-Datei, an denen du den registries-Schlüssel verwenden kannst:

  1. Informationen zur obersten Ebene, in der du die privaten Register definierst, die du verwenden möchtest, und deren Zugriffsinformationen, findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.
  2. In den updates-Blöcken kannst du angeben, welche privaten Registrierungen für jeden Paket-Manager verwendet werden sollen.

Das Standardverhalten von Dependabot besteht darin, Pull Requests nur zum Aktualisieren von Abhängigkeiten zu erstellen, die in öffentlich zugänglichen Registrierungen gespeichert sind.

Wenn die Dependabot-Konfigurationsdatei über einen registries-Abschnitt auf oberster Ebene verfügt und den Zugriff auf eine oder mehrere private Registrierungen definiert, kannst du jedes package-ecosystem-Element so konfigurieren, dass eine oder mehrere dieser privaten Registrierungen verwendet werden.

Wenn registries für einen Paket-Manager definiert ist:

  • Jede für einen Paket-Manager angegebene private Registrierung wird auf Versions- und Sicherheitsupdates überprüft.
  • Dependabot verwendet die im registries-Abschnitt der obersten Ebene definierten Zugriffsdetails.

Unterstützte Werte: REGISTRY_NAME oder "*"

reviewers

Gib einzelne Reviewer oder Teams von Reviewern für alle Pull Requests an, die für einen Paket-Manager ausgelöst wurden. Beispiele findest du unter Anpassen von Dependabot-Pull-Requests an deine Prozesse.

Standardverhalten von Dependabot:

  • Pull Requests werden ohne zugewiesene Reviewer erstellt.

Wenn reviewers definiert ist:

  • Alle Pull Requests für Versionsupdates werden mit den ausgewählten Reviewern erstellt.
  • Alle Pull Requests für Sicherheitsupdates werden mit den ausgewählten Reviewern erstellt, es sei denn, target-branch definiert Updates für einen anderen Branch als den Standardbranch.

Reviewer müssen mindestens Lesezugriff auf das Repository haben.

schedule

Erforderliche Option: Definiere, wie oft nach neuen Versionen für jeden Paket-Manager gesucht werden soll, den du mit dem Parameter interval konfigurierst. Optional kannst du für tägliche und wöchentliche Intervalle anpassen, wann Dependabot nach Updates sucht. Beispiele findest du unter Optimieren der Erstellung von Pull Requests für Versionsupdates von Dependabot.

ParameterZweck
intervalErforderlich. Definiert die Häufigkeit für Dependabot
dayGib den Ausführungstag für ein wöchentliches Intervall an.
timeGib die Ausführungszeit an.
timezoneGib die Zeitzone des time-Werts an.

interval

Unterstützte Werte: daily, weekly oder monthly

Jeder Paket-Manager muss ein Zeitplanintervall definieren.

  • Verwende daily, damit die Ausführung an jedem Wochentag von Montag bis Freitag erfolgt.
  • Verwende weekly, damit die Ausführung einmal pro Woche erfolgt, standardmäßig am Montag.
  • Verwende monthly, damit die Ausführung am ersten Tag jedes Monats erfolgt.

Standardmäßig wird von Dependabot ein zufälliger Zeitpunkt zugewiesen, zu dem alle Updates in der Konfigurationsdatei angewendet werden. Du kannst die Parameter time und timezone verwenden, um eine bestimmte Laufzeit für alle Intervalle festzulegen.

day

Unterstützte Werte: monday, tuesday, wednesday, thursday, friday, saturday oder sunday

Führe optional wöchentliche Updates für einen Paket-Manager an einem bestimmten Tag der Woche aus.

time

Format: hh:mm

Führe optional alle Updates für einen Paket-Manager zu einem bestimmten Tageszeitpunkt aus. Die Uhrzeiten werden standardmäßig als UTC interpretiert.

timezone

Gib eine Zeitzone für den time-Wert an.

Der Zeitzonenbezeichner muss mit einer Zeitzone in der Datenbank übereinstimmen, die von iana verwaltet wird. Weitere Informationen findest du unter Liste der tz-Datenbankzeitzonen.

target-branch

Definiere einen bestimmten Branch, um nach Versionsupdates zu suchen und Pull Requests für Versionsupdates zu erstellen. Beispiele findest du unter Anpassen von Dependabot-Pull-Requests an deine Prozesse.

Standardverhalten von Dependabot:

Wenn target-branch definiert ist:

  • Nur Manifestdateien im Zielbranch werden auf Versionsupdates überprüft.
  • Alle Pull Requests für Versionsupdates werden geöffnet, die auf den angegebenen Branch abzielen.
  • Für dieses package-ecosystem definierte Optionen gelten nicht mehr für Sicherheitsupdates, da Sicherheitsupdates immer den Standardbranch für das Repository verwenden.

vendor

Unterstützt von: nur bundler und gomod

Weise Dependabot an, deine anbieterbezogenen Abhängigkeiten sowie die von Manifestdateien definierten Abhängigkeiten beizubehalten. Eine Abhängigkeit wird beim Speichern des Codes in deinem Repository als „vendored“ oder „cached“ beschrieben. Weitere Informationen findest du in der bundle cache-Dokumentation und go mod vendor-Dokumentation.

Beispiele findest du unter Steuern der von Dependabot aktualisierten Abhängigkeiten.

Standardverhalten von Dependabot:

  • Verwalte nur Abhängigkeiten, die im Manifest erfasst wurden, und sperre Dateien, die für Bundler identifiziert wurden.
  • Erstelle Pull Requests für Sicherheits- und Versionsupdates, die die im Manifest aufgezeichneten Versionsnummern aktualisieren und Dateien sperren.
  • Bei Go-Modulen werden alle anbieterbezogenen Abhängigkeiten automatisch so identifiziert und verwaltet, als ob vendor aktiviert wurde.

Wenn vendor aktiviert ist:

  • Dependabot verwaltet auch Abhängigkeiten für Bundler, die im _vendor/cache_-Verzeichnis im Repository gespeichert sind.
  • Pull Requests enthalten manchmal Updates für eine Abhängigkeit, die im Repository gespeichert ist.

Unterstützte Werte: true oder false

versioning-strategy

Unterstützt von: bundler, cargo, composer, mix, npm, pip, pub

Definiere, wie Dependabot Manifestdateien bearbeiten soll. Beispiele findest du unter Steuern der von Dependabot aktualisierten Abhängigkeiten.

Standardverhalten von Dependabot:

  • Versuche, zwischen App- und Bibliotheksabhängigkeiten zu unterscheiden.
  • Erhöhe für Apps immer die Mindestversionsanforderung, damit diese der neuen Version entspricht. Die increase-Strategie.
  • Erweitere für Bibliotheken, wenn möglich, die Versionsanforderungen so, dass sowohl die neue als auch die alte Version einbezogen wird. Die widen-Strategie.

Wenn versioning-strategy definiert ist, verwendet Dependabot die angegebene Strategie.

WertVerhalten
autoStandardverhalten.
increaseErhöhe die Mindestversionsanforderung immer so, dass sie der neuen Version entspricht. Wenn bereits ein Bereich vorhanden ist, erhöht dies in der Regel nur die Untergrenze.
increase-if-necessaryBehalte die Einschränkung bei, wenn die ursprüngliche Einschränkung die neue Version zulässt. Andernfalls solltest du die Einschränkung verwerfen.
lockfile-onlyErstelle nur Pull Requests zum Aktualisieren von Sperrdateien. Ignoriere alle neuen Versionen, die Paketmanifeständerungen erfordern würden.
widenErweitere, wenn möglich, die Versionsanforderungen so, dass sowohl die neue als auch die alte Version einbezogen wird. In der Regel erhöht sich dadurch nur die Anforderung für die maximal zulässige Version.

Wenn die aktuelle Version beispielsweise 1.0.0 und die aktuelle Einschränkung ^1.0.0 ist, würden die verschiedenen Strategien die folgenden Updates auslösen:

Neue Version: 1.2.0

  • increase: neue Einschränkung ^1.2.0
  • increase-if-necessary: neue Einschränkung ^1.0.0
  • widen: neue Einschränkung ^1.0.0

Neue Version: 2.0.0

  • increase: neue Einschränkung ^2.0.0
  • increase-if-necessary: neue Einschränkung ^2.0.0
  • widen: neue Einschränkung >=1.0.0 <3.0.0

Note

Wenn der verwendete Paket-Manager die Konfiguration des versioning-strategy-Parameters noch nicht unterstützt oder einen benötigten Wert nicht unterstützt. Der Strategiecode ist als Open Source-Code verfügbar. Wenn ein bestimmtes Ökosystem also eine neue Strategie unterstützen soll, kannst du jederzeit einen Pull Request in https://github.com/dependabot/dependabot-core/ übermitteln.

registries-Schlüssel der obersten Ebene

Gib Authentifizierungsdetails an, die Dependabot verwenden kann, um auf private Paketregistrierungen zuzugreifen, einschließlich Registrierungen, die von GitLab oder Bitbucket gehostet werden.

Note

Private Registrierungen hinter Firewalls in privaten Netzwerken werden für die folgenden Ökosysteme unterstützt:

  • Bundler
  • Docker
  • Gradle
  • Maven
  • Npm
  • NuGet
  • Python
  • Yarn

Der Wert des registries-Schlüssels ist ein assoziatives Array. Jedes Element dieses Arrays besteht aus einem Schlüssel, der eine bestimmte Registrierung und einen Wert identifiziert, der ein assoziatives Array darstellt, das die Einstellungen angibt, die für den Zugriff auf diese Registrierung erforderlich sind. Durch die folgende dependabot.yml-Datei wird eine Registrierung konfiguriert, die im Abschnitt registries der Datei als dockerhub identifiziert wird. Anschließend wird im Abschnitt updates der Datei darauf verwiesen.

YAML
# Minimal settings to update dependencies stored in one private registry

version: 2
registries:
  dockerhub: # Define access for a private registry
    type: docker-registry
    url: registry.hub.docker.com
    username: octocat
    password: ${{secrets.DOCKERHUB_PASSWORD}}
updates:
  - package-ecosystem: "docker"
    directory: "/docker-registry/dockerhub"
    registries:
      - dockerhub # Allow version updates for dependencies in this registry
    schedule:
      interval: "monthly"

Du verwendest die folgenden Optionen, um Zugriffseinstellungen anzugeben. Registrierungseinstellungen müssen einen type und eine url enthalten, sowie in der Regel eine Kombination aus username und password oder ein token.

ParameterZweck
REGISTRY_NAMEErforderlich: Definiert einen Bezeichner für die Registrierung.
typeErforderlich: Identifiziert den Typ der Registrierung.
AuthentifizierungsdetailsErforderlich: Die Parameter, die für die Bereitstellung von Authentifizierungsdetails unterstützt werden, variieren für Registrierungen unterschiedlicher Typen.
urlErforderlich Die URL, die für den Zugriff auf die Abhängigkeiten in dieser Registrierung verwendet werden soll. Das Protokoll ist optional. Falls nicht angegeben, https:// wird angenommen. Nachstehende Schrägstriche werden von Dependabot nach Bedarf hinzugefügt oder ignoriert.
replaces-baseWenn der boolesche Wert true lautet, löst Dependabot Abhängigkeiten mithilfe der angegebenen url anstelle der Basis-URL dieses Ökosystems auf.

Ausführliche Informationen zu verfügbaren Optionen sowie Empfehlungen und Ratschläge beim Konfigurieren privater Registrierungen sind unter Leitfaden zum Konfigurieren privater Registrierungen für Dependabot zu finden.

type und Authentifizierungsdetails

Die Parameter, die zum Bereitstellen von Authentifizierungsdetails für den Zugriff auf eine private Registrierung verwendet werden, variieren je nach type der Registrierung.

type der RegistrierungErforderliche Authentifizierungsparameter
composer-repositoryusername und password
docker-registryusername und password
gitusername und password
hex-organizationorganization und key
hex-repositoryrepo und auth-key, optional mit entsprechendem public-key-fingerprint
maven-repositoryusername und password
npm-registryusername und password
oder token
nuget-feedusername und password
oder token
pub-registrytoken
python-indexusername und password
oder token
rubygems-serverusername und password
oder token
terraform-registrytoken

Alle vertraulichen Daten, die für die Authentifizierung verwendet werden, sollten sicher gespeichert und als Verweise von diesem sicheren Speicherort verwendet werden. Weitere Informationen findest du unter Konfigurieren des Zugriffs auf private Registrierungen für Dependabot.

Tip

Wenn das Konto ein GitHub-Konto ist, kannst du anstelle des Kennworts ein GitHub personal access token verwenden.

url und replaces-base

Der Parameter url definiert, wo auf eine Registrierung zugegriffen werden soll. Wenn der optionale replaces-base-Parameter aktiviert ist (true), werden Abhängigkeiten von Dependabot mithilfe des Werts url und nicht mit der Basis-URL des jeweiligen Ökosystems aufgelöst.