Sie können Ihre Dependabot Konfiguration an Ihre Anforderungen anpassen, indem Sie Ihrer dependabot.yml Datei Optionen hinzufügen. Sie können beispielsweise sicherstellen, dass Dependabot die richtigen Paketmanifestdateien verwendet und nur die Abhängigkeiten aktualisiert, die Sie beibehalten möchten.
In diesem Artikel werden Anpassungsoptionen zusammengetragen, die für dich möglicherweise hilfreich sind.
Definieren mehrerer Speicherorte für Manifestdateien
Wenn Sie Dependabot version updates für Manifestdateien aktivieren möchten, die an mehreren Speicherorten gespeichert sind, können Sie 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"
-
Um einen Bereich von Verzeichnissen mithilfe eines Musters anzugeben:
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" -
Um Manifeste im aktuellen Verzeichnis und in rekursiven Unterverzeichnissen anzugeben
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 Sie nicht bereit sind, Änderungen aus bestimmten Abhängigkeiten in Ihrem Projekt anzunehmen, können Sie konfigurieren Dependabot , um diese Abhängigkeiten zu ignorieren, wenn es Pullanforderungen für Versionsupdates und Sicherheitsupdates öffnet. Hierfür kannst du eine der folgenden Methoden verwenden:
- Konfiguriere die Option
ignorefü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 unter
ignorein Referenz zu Dependabot-Optionen.
- Weitere Informationen findest du unter
- Verwenden Sie
@dependabot ignoreKommentarbefehle für eine Dependabot Pullanforderung 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 können Sie Patch-Updates ignorieren:
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 kannst du auch @dependabot unignore-Kommentarbefehle verwenden. Mit @dependabot unignore den Kommentarbefehlen können Sie folgendes ausführen, indem Sie eine Dependabot Pullanforderung kommentieren:
- Eine bestimmte Ignorierbedingung aufheben
- Das Ignorieren einer bestimmten Abhängigkeit aufheben
- Alle Ignoriert-Bedingungen für alle Abhängigkeiten in einer Dependabot Pullanforderung aufheben
Weitere Informationen finden Sie unter Verwalten von Pull Requests für Abhängigkeitsupdates.
Zulassen der Aktualisierung bestimmter Abhängigkeiten
Sie können allow verwenden, um Dependabot über die Abhängigkeiten zu informieren, die Sie verwalten möchten.
allow wird in der Regel in Verbindung mit ignore verwendet.
Weitere Informationen findest du unter allow in Referenz zu Dependabot-Optionen.
Standardmäßig erstellt Dependabot Pullanforderungen für Versionsupdates nur für die Abhängigkeiten, die explizit in einem Manifest definiert sind (direct Abhängigkeiten). Diese Konfiguration verwendet allow, um Dependabot mitzuteilen, dass er Typen von Abhängigkeiten all beibehalten soll. Das heißt, sowohl die direct Abhängigkeiten als auch deren Abhängigkeiten (auch bekannt als indirekte Abhängigkeiten, Unterabhängigkeiten oder vorübergehende Abhängigkeiten). Darüber hinaus weist die Konfiguration an Dependabot , alle Abhängigkeiten mit einem Namen zu ignorieren, der dem Muster org.xwiki.* entspricht, da wir einen anderen Prozess zur Aufrechterhaltung dieser Abhängigkeiten haben.
Tipp
Dependabot sucht nach allen **zulässigen** Abhängigkeiten und **filtert dann alle ignorierten** Abhängigkeiten aus. Wenn eine Abhängigkeit von einer **Allow-Anweisung** und einer **Ignore-Anweisung** abgeglichen 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 unter versions in 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 ignorieren Sie einen Bereich von Versionen
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
Sie können eine oder mehrere semantische Versionsverwaltungsebenen (SemVer) angeben, die mit update-types``ignoreignoriert werden sollen.
Weitere Informationen findest du unter update-types in Referenz zu Dependabot-Optionen.
In diesem Beispiel Dependabot werden 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 wird versucht, die Mindestversionsanforderung für Abhängigkeiten zu erhöhen, Dependabot die als Apps identifiziert werden, und erweitert die zulässigen Versionsanforderungen, um sowohl die neuen als auch die alten Versionen für Abhängigkeiten einzuschließen, die als Bibliotheken identifiziert werden.
Du kannst diese Standardstrategie ändern. Weitere Informationen findest du unter versioning-strategy in Referenz zu Dependabot-Optionen.
In diesem Beispiel wird Dependabot die Mindestversionsanforderung erhöht, um mit der neuen Version für sowohl Apps als auch Bibliotheken übereinzustimmen.
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 wird Dependabot erhöht, **** wenn die ursprüngliche Einschränkung die neue Version nicht zulässt.
version: 2
updates:
- package-ecosystem: pip
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 20
rebase-strategy: "disabled"
# Increase the version requirements for pip
# 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 pip
# only when required
versioning-strategy: increase-if-necessary
Aktualisieren anbieterspezifischer Abhängigkeiten
Sie können Dependabot anweisen, anbieterspezifische Abhängigkeiten beim Aktualisieren zu beachten.
Dependabot verwaltet automatisch anbieterseitige Abhängigkeiten für Go-Module, und Sie können Bundler so konfigurieren, dass auch anbieterseitige Abhängigkeiten aktualisiert werden.
Weitere Informationen findest du unter vendor in Referenz zu Dependabot-Optionen.
In diesem Beispiel wird vendor für true 'Bundler' festgelegt, was bedeutet, dass Dependabot auch die Abhängigkeiten für Bundler verwalten wird, die im vendor/cache-Verzeichnis im Repository 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