Du kannst deine Dependabot-Konfiguration an deine Anforderungen anpassen, indem du deiner dependabot.yml
-Datei Optionen hinzufügen. Du kannst beispielsweise sicherstellen, dass Dependabot die richtigen Paketmanifestdateien verwendet und nur die Abhängigkeiten aktualisiert, die du verwalten möchtest.
In diesem Artikel werden Anpassungsoptionen zusammengetragen, die für dich möglicherweise hilfreich sind.
Definieren mehrerer Speicherorte für Manifestdateien
Wenn du Dependabot version updates für Manifestdateien aktivieren möchtest, die an mehreren Speicherorten gespeichert sind, kannst du directories
anstelle von directory
verwenden. Diese Konfiguration legt beispielsweise zwei verschiedene Updatezeitpläne für Manifestdateien fest, die in verschiedenen Verzeichnissen gespeichert sind.
# Specify the locations of the manifest files to update for each package manager # using both `directories` and `directory` version: 2 updates: - package-ecosystem: "bundler" # Update manifest files stored in these directories weekly directories: - "/frontend" - "/backend" - "/admin" schedule: interval: "weekly" - package-ecosystem: "bundler" # Update manifest files stored in the root directory daily directory: "/" schedule: interval: "daily"
# Specify the locations of the manifest files to update for each package manager
# using both `directories` and `directory`
version: 2
updates:
- package-ecosystem: "bundler"
# Update manifest files stored in these directories weekly
directories:
- "/frontend"
- "/backend"
- "/admin"
schedule:
interval: "weekly"
- package-ecosystem: "bundler"
# Update manifest files stored in the root directory daily
directory: "/"
schedule:
interval: "daily"
-
So gibst du mithilfe eines Musters einen Verzeichnisbereich an:
YAML # Specify the root directory and directories that start with "lib-", # using globbing, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "/" - "/lib-*" schedule: interval: "weekly"
# Specify the root directory and directories that start with "lib-", # using globbing, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "/" - "/lib-*" schedule: interval: "weekly"
-
So gibst du im aktuellen Verzeichnis und in rekursiven Unterverzeichnissen Manifeste an:
YAML # Specify all directories from the current layer and below recursively, # using globstar, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "**/*" schedule: interval: "weekly"
# Specify all directories from the current layer and below recursively, # using globstar, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "**/*" schedule: interval: "weekly"
Ignorieren bestimmter Abhängigkeiten
Wenn du nicht bereit bist, die Änderungen bestimmter Abhängigkeiten in deinem Projekt anzunehmen, kannst du Dependabot so konfigurieren, dass diese Abhängigkeiten beim Erstellen von Pull Requests für Versionsupdates und Sicherheitsupdates ignoriert werden. Hierfür kannst du eine der folgenden Methoden verwenden:
- Konfiguriere die Option
ignore
für die Abhängigkeit in der Dateidependabot.yml
.- Hiermit kannst du Updates für bestimmte Abhängigkeiten und Versionen sowie bestimmte Arten von Updates ignorieren.
- Weitere Informationen findest du im Abschnitt zu
ignore
unter Referenz zu Dependabot-Optionen.
- Verwenden Sie
@dependabot ignore
Kommentarbefehle für einen Dependabot-Pullrequest für Versionsupdates und Sicherheitsupdates.- Mit Kommentarbefehlen kannst du Updates für bestimmte Abhängigkeiten und Versionen ignorieren.
- Weitere Informationen finden Sie unter Verwalten von Pull Requests für Abhängigkeitsupdates.
In den folgenden Beispielen wird veranschaulicht, wie ignore
verwendet werden kann, um anzupassen, welche Abhängigkeiten aktualisiert werden.
-
So ignorierst du Updates nach einer bestimmten Version:
YAML ignore: - dependency-name: "lodash:*" # Ignore versions of Lodash that are equal to or greater than 1.0.0 versions: [ ">=1.0.0" ]
ignore: - dependency-name: "lodash:*" # Ignore versions of Lodash that are equal to or greater than 1.0.0 versions: [ ">=1.0.0" ]
YAML ignore: - dependency-name: "sphinx" versions: [ "[1.1,)" ]
ignore: - dependency-name: "sphinx" versions: [ "[1.1,)" ]
-
So ignorierst du Patchupdates:
YAML ignore: - dependency-name: "@types/node" # Ignore patch updates for Node update-types: ["version-update:semver-patch"]
ignore: - dependency-name: "@types/node" # Ignore patch updates for Node update-types: ["version-update:semver-patch"]
-
Informationen zum Ignorieren bestimmter Versionen oder Versionsbereiche findest du unter Ignorieren bestimmter Versionen oder Versionsbereiche.
Wenn du eine Abhängigkeit oder eine Bedingung ignorieren möchtest, kannst du die Bedingungen zum Ignorieren aus der dependabot.yml
-Datei löschen oder den Pull Request erneut erstellen.
Für Pull Requests für gruppierte -updates können Sie auch @dependabot unignore
Kommentarbefehle verwenden. Mit den @dependabot unignore
-Kommentarbefehlen kannst du Folgendes ausführen, indem du einen Dependabot Pull Request kommentierst:
- Eine bestimmte Ignorierbedingung aufheben
- Das Ignorieren einer bestimmten Abhängigkeit aufheben
- Alle Ignorierbedingungen für alle Abhängigkeiten in einem Dependabot Pull Request aufheben
Weitere Informationen findest du unter Verwalten von Pull Requests für Abhängigkeitsupdates.
Zulassen der Aktualisierung bestimmter Abhängigkeiten
Du kannst allow
verwenden, um Dependabot die Abhängigkeiten mitzuteilen, die du verwalten möchtest. allow
wird in der Regel in Verbindung mit ignore
verwendet.
Weitere Informationen findest du im Abschnitt zu allow
unter Referenz zu Dependabot-Optionen.
Standardmäßig erstellt Dependabot Pull Requests für Versionsupdates nur für die Abhängigkeiten, die explizit in einem Manifest definiert sind (direct
-Abhängigkeiten). In dieser Konfiguration wird allow
verwendet, um Dependabot mitzuteilen, dass die all
-Abhängigkeitstypen verwaltet werden sollen. Das schließt die direct
-Abhängigkeiten und ihre Abhängigkeiten ein, die auch als indirekte Abhängigkeiten, Unterabhängigkeiten oder vorübergehende Abhängigkeiten bezeichnet. Darüber hinaus weist die Konfiguration Dependabot an, alle Abhängigkeiten mit einem Namen zu ignorieren, der dem Muster org.xwiki.*
entspricht, da ein anderer Prozess zum Verwalten dieser Daten verwendet wird.
Tip
Dependabot sucht nach allen zulässigen Abhängigkeiten und filtert daraufhin alle ignorierten Abhängigkeiten aus. Wenn eine Abhängigkeit durch eine Anweisung zum Zulassen und Ignorieren abgeglichen und eine Übereinstimmung festgestellt wird, wird sie ignoriert.
version: 2 registries: # Helps find updates for non Maven Central dependencies maven-xwiki-public: type: maven-repository url: https://nexus.xwiki.org/nexus/content/groups/public/ username: "" password: "" # Required to resolve xwiki-common SNAPSHOT parent pom maven-xwiki-snapshots: type: maven-repository url: https://maven.xwiki.org/snapshots username: "" password: "" updates: - package-ecosystem: "maven" directory: "/" registries: - maven-xwiki-public - maven-xwiki-snapshots schedule: interval: "weekly" allow: # Allow both direct and indirect updates for all packages. - dependency-type: "all" ignore: # Ignore XWiki dependencies. We have a separate process for updating them - dependency-name: "org.xwiki.*" open-pull-requests-limit: 15
version: 2
registries:
# Helps find updates for non Maven Central dependencies
maven-xwiki-public:
type: maven-repository
url: https://nexus.xwiki.org/nexus/content/groups/public/
username: ""
password: ""
# Required to resolve xwiki-common SNAPSHOT parent pom
maven-xwiki-snapshots:
type: maven-repository
url: https://maven.xwiki.org/snapshots
username: ""
password: ""
updates:
- package-ecosystem: "maven"
directory: "/"
registries:
- maven-xwiki-public
- maven-xwiki-snapshots
schedule:
interval: "weekly"
allow:
# Allow both direct and indirect updates for all packages.
- dependency-type: "all"
ignore:
# Ignore XWiki dependencies. We have a separate process for updating them
- dependency-name: "org.xwiki.*"
open-pull-requests-limit: 15
Ignorieren bestimmter Versionen oder Versionsbereiche
Du kannst versions
in Verbindung mit ignore
verwenden, um bestimmte Versionen oder Versionsbereiche zu ignorieren.
Weitere Informationen findest du im Abschnitt zu versions
unter Referenz zu Dependabot-Optionen.
-
So ignorierst du eine bestimmte Version:
YAML ignore: - dependency-name: "django*" # Ignore version 11 versions: [ "11" ]
ignore: - dependency-name: "django*" # Ignore version 11 versions: [ "11" ]
-
So ignorierst du einen Versionsbereich:
YAML ignore: - dependency-name: "@types/node" versions: ["15.x", "14.x", "13.x"] - dependency-name: "xdg-basedir" # 5.0.0 has breaking changes as they switch to named exports # and convert the module to ESM # We can't use it until we switch to ESM across the project versions: ["5.x"] - dependency-name: "limiter" # 2.0.0 has breaking changes # so we want to delay updating. versions: ["2.x"]
ignore: - dependency-name: "@types/node" versions: ["15.x", "14.x", "13.x"] - dependency-name: "xdg-basedir" # 5.0.0 has breaking changes as they switch to named exports # and convert the module to ESM # We can't use it until we switch to ESM across the project versions: ["5.x"] - dependency-name: "limiter" # 2.0.0 has breaking changes # so we want to delay updating. versions: ["2.x"]
Angeben des zu ignorierenden Grads der semantischen Versionierung
Du kannst mithilfe von update-types
einen oder mehrere zu ignorierende Grade der semantischen Versionierung (SemVer) angeben.
Weitere Informationen findest du im Abschnitt zu update-types
unter Referenz zu Dependabot-Optionen.
In diesem Beispiel werden Dependabot-Patchversionen für Node ignoriert.
version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "daily" ignore: - dependency-name: "express" # For Express, ignore all updates for version 4 and 5 versions: ["4.x", "5.x"] # For Lodash, ignore all updates - dependency-name: "lodash" - dependency-name: "@types/node" # For Node types, ignore any patch versions update-types: ["version-update:semver-patch"]
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
ignore:
- dependency-name: "express"
# For Express, ignore all updates for version 4 and 5
versions: ["4.x", "5.x"]
# For Lodash, ignore all updates
- dependency-name: "lodash"
- dependency-name: "@types/node"
# For Node types, ignore any patch versions
update-types: ["version-update:semver-patch"]
Definieren einer Versionsverwaltungsstrategie
Standardmäßig versucht Dependabot, die Mindestversionsanforderung für Abhängigkeiten zu erhöhen, die als Apps identifiziert werden. Zusätzlich erweitert Dependabot die zulässigen Versionsanforderungen so, dass die neuen und alten Versionen für Abhängigkeiten eingeschlossen werden, die als Bibliotheken identifiziert werden.
Du kannst diese Standardstrategie ändern. Weitere Informationen findest du im Abschnitt zu versioning-strategy
unter Referenz zu Dependabot-Optionen.
In diesem Beispiel erhöht Dependabot die Mindestversionsanforderung so, dass sie der neuen Version für Apps und Bibliotheken entspricht.
version: 2 updates: - package-ecosystem: npm directory: "/" schedule: interval: daily # Increase the minimum version for all npm dependencies versioning-strategy: increase
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
# Increase the minimum version for all npm dependencies
versioning-strategy: increase
In diesem Beispiel erhöht Dependabot die Mindestversionsanforderung nur dann, wenn die neue Version aufgrund der ursprünglichen Einschränkung nicht zulässig ist.
version: 2 updates: - package-ecosystem: pip directory: "/" schedule: interval: daily open-pull-requests-limit: 20 rebase-strategy: "disabled" # Increase the version requirements for npm # only when required versioning-strategy: increase-if-necessary
version: 2
updates:
- package-ecosystem: pip
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 20
rebase-strategy: "disabled"
# Increase the version requirements for npm
# only when required
versioning-strategy: increase-if-necessary
Aktualisieren anbieterspezifischer Abhängigkeiten
Du kannst Dependabot anweisen, anbieterspezifische Abhängigkeiten zu aktualisieren.
Dependabot verwaltet automatisch anbieterspezifische Abhängigkeiten für Go-Module, und du kannst Bundler so konfigurieren, dass anbieterspezifische Abhängigkeiten ebenfalls aktualisiert werden.
Weitere Informationen findest du im Abschnitt zu vendor
unter Referenz zu Dependabot-Optionen.
In diesem Beispiel ist für Bundler vendor
auf true
festgelegt. Dadurch verwaltet Dependabot ebenfalls Abhängigkeiten für Bundler, die im Repository im Verzeichnis vendor/cache gespeichert sind.
version: 2 updates: - package-ecosystem: bundler directory: "/" # Vendoring Bundler vendor: true schedule: interval: weekly day: saturday open-pull-requests-limit: 10
version: 2
updates:
- package-ecosystem: bundler
directory: "/"
# Vendoring Bundler
vendor: true
schedule:
interval: weekly
day: saturday
open-pull-requests-limit: 10