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üssel | Location | Zweck |
---|---|---|
version | Oberste Ebene | Die zu verwendende Dependabot-Konfigurationssyntax, immer: 2 |
updates | Oberste Ebene | Abschnitt, in dem du die einzelnen zu aktualisierenden package-ecosystem -Elemente definierst |
package-ecosystem | Unter updates | Definiert einen zu aktualisierenden Paket-Manager |
directories oder directory | Unter jedem package-ecosystem -Eintrag | Definiert den Speicherort des Manifests oder anderer Definitionsdateien, die aktualisiert werden sollen |
schedule.interval | Unter jedem package-ecosystem -Eintrag | Definiert, 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.
# 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"
# 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:
-
Es wird überprüft, ob alle Abhängigkeiten explizit zugelassen sind.
-
Dann werden alle ignorierten Abhängigkeiten oder Versionen herausgefiltert.
Wenn eine Abhängigkeit durch eine
allow
- und eineignore
-Anweisung abgeglichen und eine Übereinstimmung festgestellt wird, wird sie ignoriert.
Parameter | Zweck |
---|---|
dependency-name | Verwende diese Option, um Updates für Abhängigkeiten mit übereinstimmenden Namen zuzulassen. Verwende optional * für die Übereinstimmung mit null oder mehr Zeichen. |
dependency-type | Verwende 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-Manager | Erforderliches Format | Beispiel |
---|---|---|
Gradle und Maven | groupId:artifactId | org.kohsuke:github-api |
Docker für Imagetags | Der vollständige Name des Repositorys | Verwende 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ängigkeitstypen | Unterstützt von Paket-Managern | Zulassen von Updates |
---|---|---|
direct | Alle | Alle explizit definierten Abhängigkeiten. |
indirect | bundler , pip , composer , cargo , gomod | Abhängigkeiten von direkten Abhängigkeiten (auch als Unterabhängigkeiten oder vorübergehende Abhängigkeiten bezeichnet). |
all | Alle | Alle explizit definierten Abhängigkeiten. Für bundler , pip , composer , cargo , gomod , sowie die Abhängigkeiten der direkten Abhängigkeiten. |
production | bundler , composer , mix , maven , npm , pip (nicht alle Manager) | Nur für Abhängigkeiten, die vom Paket-Manager als Produktionsabhängigkeiten definiert werden |
development | bundler , 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.
Parameter | Zweck |
---|---|
prefix | Definiert ein Präfix für alle Commitnachrichten und Pull-Request-Titel |
prefix-development | Bei unterstützten Systemen wird ein anderes Präfix definiert, das für Commits verwendet werden soll, die Abhängigkeiten in der Entwicklungsabhängigkeitsgruppe aktualisieren. |
include | Gib 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
oderdeps-dev
.
directories
oder 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 Definieren mehrerer Speicherorte für Manifestdateien.
- Verwende
directory
, um ein einzelnes Manifestverzeichnis zu definieren. - Verwende
directories
, um eine Liste mehrerer Manifestverzeichnisse zu definieren. - Definiere Verzeichnisse 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 dieaction.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.
Note
Der Schlüssel directories
unterstützt die Verwendung von Platzhaltern und das Platzhalterzeichen *
. Diese Features werden vom Schlüssel directory
nicht unterstützt.
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, und für Sicherheitsupdates.
Wenn groups
zum Definieren von Regeln verwendet wird:
- Alle 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.
Parameter | Zweck |
---|---|
IDENTIFIER | Definiere 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. |
applies-to | Gib an, für welchen Updatetyp die Gruppe gilt. Wenn nichts definiert ist, werden standardmäßig Versionsupdates verwendet. Unterstützte Werte: version-updates oder security-updates |
dependency-type | Beschränke die Gruppe auf einen Typ. Unterstützte Werte: development oder production |
patterns | Definiere mindestens ein Muster, um Abhängigkeiten mit übereinstimmenden Namen einzuschließen. |
exclude-patterns | Definiere ein oder mehrere Muster, um Abhängigkeiten aus der Gruppe auszuschließen. |
update-types | Beschrä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:
-
Es wird überprüft, ob alle Abhängigkeiten explizit zugelassen sind.
-
Dann werden alle ignorierten Abhängigkeiten oder Versionen herausgefiltert.
Wenn eine Abhängigkeit durch eine
allow
- und eineignore
-Anweisung abgeglichen und eine Übereinstimmung festgestellt wird, wird sie ignoriert.
Parameter | Zweck |
---|---|
dependency-name | Verwende diese Option, um Updates für Abhängigkeiten mit übereinstimmenden Namen zu ignorieren. Verwende optional * für die Übereinstimmung mit null oder mehr Zeichen. |
versions | Bestimmte Versionen oder Versionsbereiche ignorieren |
update-types | Updates 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-Manager | Erforderliches Format | Beispiel |
---|---|---|
Gradle und Maven | groupId:artifactId | org.kohsuke:github-api |
Docker für Imagetags | Der vollständige Name des Repositorys | Verwende 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 derregistries
-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 undsubmodules
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-Manager | YAML-Wert | Unterstützte Versionen |
---|---|---|
Bundler | bundler | v2 |
Cargo | cargo | v1 |
Composer | composer | v2 |
Entwicklungscontainer | devcontainers | Nicht zutreffend |
Docker | docker | v1 |
.NET SDK | dotnet-sdk | >=.NET Core 3.1 |
Hex | mix | v1 |
elm-package | elm | v0.19 |
Git-Submodul | gitsubmodule | Nicht zutreffend |
GitHub Actions | github-actions | Nicht zutreffend |
Go-Module | gomod | v1 |
Gradle | gradle | Nicht zutreffend |
Maven | maven | Nicht zutreffend |
npm | npm | v6, v7, v8, v9 |
NuGet | nuget | <=6.12.0 |
pip | pip | v21.1.2 |
pip-compile | pip | 6.1.0 |
pipenv | pip | <= 2021-05-29 |
pnpm | npm | v7, v8 v9 (nur Versionsupdates) |
Poetry | pip | v1 |
pub | pub | v2 |
Swift | swift | v5 |
Terraform | terraform | >= 0.13, <= 1.8.x |
yarn | npm | v1, 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, siehetarget-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:
- 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.
- 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.
Parameter | Zweck |
---|---|
interval | Erforderlich. Definiert die Häufigkeit für Dependabot |
day | Gib den Ausführungstag für ein wöchentliches Intervall an. |
time | Gib die Ausführungszeit an. |
timezone | Gib 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:
- Dependabot verwendet den Standardbranch für das Repository. Weitere Informationen findest du unter Informationen zum Standardbranch.
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.
Wert | Verhalten |
---|---|
auto | Standardverhalten. |
increase | Erhö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-necessary | Behalte die Einschränkung bei, wenn die ursprüngliche Einschränkung die neue Version zulässt. Andernfalls solltest du die Einschränkung verwerfen. |
lockfile-only | Erstelle nur Pull Requests zum Aktualisieren von Sperrdateien. Ignoriere alle neuen Versionen, die Paketmanifeständerungen erfordern würden. |
widen | Erweitere, 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.
Versionsverwaltungstags
- Stellen Phasen im Softwarereleaselebenszyklus dar, z. B. Alpha, Beta und stabile Versionen.
- Ermöglichen Herausgebern eine effizientere Verteilung ihrer Pakete.
- Geben die Stabilität einer Version an und informieren Benutzer, was sie in Bezug auf Features und Stabilität erwarten können.
Dependabot erkennt eine Vielzahl von Versionsverwaltungstags für Vorabversionen, stabile Versionen und benutzerdefinierte Tags in verschiedenen Ökosystemen.
Die Datei dependabot.yml
bestimmt nicht, welche Versionsverwaltungstags verwendet werden können. Aber du kannst in Konfigurationsoptionen wie ignore
festlegen, für welche unterstützten Versionsverwaltungstags Aktualisierungen ignoriert werden sollen.
Unterstützte Versionsverwaltungstags
Paket-Manager | YAML-Wert | Unterstützte Tags | Beispiele |
---|---|---|---|
Maven | maven | alpha, a, beta, b, milestone, m, rc, cr, sp, ga, final, release, snapshot | spring-security-web@5.6.0-SNAPSHOT , spring-core@5.2.0.RELEASE |
npm | npm | alpha , beta , canary , dev , experimental , latest , legacy , next , nightly , rc , release , stable | lodash@beta , react@latest , express@next |
pnpm | npm | alpha , beta , canary , dev , experimental , latest , legacy , next , nightly , rc , release , stable | lodash@1.2.0-alpha , react@alpha , vue@next |
yarn | npm | alpha , beta , canary , dev , experimental , latest , legacy , next , nightly , rc , release , stable | lodash@1.2.0-alpha , axios@latest , moment@nightly |
Glossar zu Versionsverwaltungstags
alpha
: Frühe Version, kann instabil sein und unvollständige Features enthaltenbeta
: Stabiler als Alpha, enthält jedoch möglicherweise immer noch Fehlercanary
: Regelmäßig aktualisiertes Vorabrelease zum Testendev
: Stellt Entwicklungsversionen darexperimental
: Versionen mit experimentellen Featureslatest
: Das aktuelle stabile Releaselegacy
: Ältere oder veraltete Versionnext
: Nächstes Releasenightly
: Versionen, die jede Nacht entwickelt werden – enthalten häufig die aktuellen Änderungenrc
: Release Candidate, nahezu stabiler Releaserelease
: Der offizielle Releasestable
: Die zuverlässigste produktionsreife Version
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.
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.
# 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"
# 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
.
Parameter | Zweck |
---|---|
REGISTRY_NAME | Erforderlich: Definiert einen Bezeichner für die Registrierung. |
type | Erforderlich: Identifiziert den Typ der Registrierung. |
Authentifizierungsdetails | Erforderlich: Die Parameter, die für die Bereitstellung von Authentifizierungsdetails unterstützt werden, variieren für Registrierungen unterschiedlicher Typen. |
url | Erforderlich 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-base | Wenn 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 Registrierung | Erforderliche Authentifizierungsparameter |
---|---|
cargo-registry | token |
composer-repository | username und password |
docker-registry | username und password |
git | username und password |
hex-organization | organization und key |
hex-repository | repo und auth-key , optional mit entsprechendem public-key-fingerprint |
maven-repository | username und password |
npm-registry | username und password oder token |
nuget-feed | username und password oder token |
pub-registry | token |
python-index | username und password oder token |
rubygems-server | username und password oder token |
terraform-registry | token |
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.