Es gibt verschiedene Möglichkeiten zum Anpassen deiner Dependabot-Pull-Requests, damit sie deinen eigenen internen Prozessen besser entsprechen.
Zum Beispiel:
- Um die Effizienz zu maximieren, kann Dependabot Pull Requests bestimmte Personen oder Teams automatisch als Prüfer für ein bestimmtes Paketökosystem hinzufügen.
- Um Dependabot-Pull-Requests in deine CI/CD-Pipelines zu integrieren, kann Dependabot benutzerdefinierte Bezeichnungen auf Pull Requests anwenden, die du dann zum Auslösen von Aktionsworkflows verwenden kannst.
Es gibt verschiedene Anpassungsoptionen, die alle in Kombination verwendet und pro Paketökosystem angepasst werden können.
Automatisches Hinzufügen von Prüfern und zuweisenden Personen
Standardmäßig löst Dependabot Pull Requests ohne Prüfer oder zugewiesene Personen aus.
Pull Requests sollten jedoch konsistent überprüft oder von einer bestimmten Person oder einem bestimmten Team bearbeitet werden, das über Fachwissen in diesem Paketökosystem verfügt, oder sie sollten einem bestimmten Sicherheitsteam automatisch zugewiesen werden. In diesem Fall kannst du reviewers
und assignees
verwenden, um diese Werte pro Paketökosystem festzulegen.
In der folgenden dependabot.yml
-Beispieldatei wird die npm-Konfiguration so geändert, dass alle mit Versions- und Sicherheitsupdates für npm erstellten Pull Requests Folgendes aufweisen:
- Ein Team (
my-org/team-name
) und eine Person (octocat
), die den Pull Requests automatisch als Prüfer hinzugefügt werden - Eine Person (
user-name
), die den Pull Requests automatisch zugewiesen wird
# `dependabot.yml` file with # reviews and an assignee for all npm pull requests version: 2 updates: # Keep npm dependencies up to date - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" # Raise all npm pull requests with reviewers reviewers: - "my-org/team-name" - "octocat" # Raise all npm pull requests with assignees assignees: - "user-name"
# `dependabot.yml` file with
# reviews and an assignee for all npm pull requests
version: 2
updates:
# Keep npm dependencies up to date
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Raise all npm pull requests with reviewers
reviewers:
- "my-org/team-name"
- "octocat"
# Raise all npm pull requests with assignees
assignees:
- "user-name"
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.
Siehe auch assignees
und reviewers
.
Bezeichnen von Pull Requests mit benutzerdefinierten Bezeichnungen
Standardmäßig löst Dependabot alle Pull Requests mit der Bezeichnung dependencies
aus.
Wenn mehr als ein Paket-Manager definiert ist, enthält Dependabot eine zusätzliche Bezeichnung für jeden Pull Request, die angibt, welche Sprache oder welches Ökosystem der Pull Request aktualisiert. Beispiel: Hinzufügen von java
für Gradle-Updates oder submodules
für Git-Untermodul-Updates.
Dependabot erstellt die Standardbezeichnungen, die für Pull Requests angewendet werden, wenn sie noch nicht im Repository vorhanden sind. Wenn du benutzerdefinierte Bezeichnungen verwenden möchtest, musst du diese selbst erstellen. Weitere Informationen findest du unter Verwalten von Bezeichnungen.
Du kannst labels
verwenden, um die Standardbezeichnungen zu überschreiben und deine eigenen benutzerdefinierten Bezeichnungen pro Paketökosystem anzugeben. Das ist im folgenden Beispiel hilfreich:
- Verwenden von Bezeichnungen, um bestimmten Pull Requests eine Priorität zuzuweisen
- Verwenden von Bezeichnungen, um einen anderen Workflow wie das automatische Hinzufügen des Pull Requests zu einem Projektboard auszulösen
In der folgenden dependabot.yml
-Beispieldatei wird die npm-Konfiguration so geändert, dass alle mit Versions- und Sicherheitsupdates für npm erstellten Pull Requests benutzerdefinierte Bezeichnungen aufweisen.
# `dependabot.yml` file with # customized npm configuration version: 2 updates: # Keep npm dependencies up to date - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" # Raise all npm pull requests with custom labels labels: - "npm dependencies" - "triage-board"
# `dependabot.yml` file with
# customized npm configuration
version: 2
updates:
# Keep npm dependencies up to date
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Raise all npm pull requests with custom labels
labels:
- "npm dependencies"
- "triage-board"
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.
Siehe auch labels
.
Hinzufügen eines Präfixes zu Commitnachrichten
Standardmäßig wird von Dependabot versucht, deine Commitnachrichteneinstellungen zu erkennen und ähnliche Muster zu verwenden. Darüber hinaus befüllt Dependabot die Titel der Pull Requests basierend auf den Commitnachrichten.
Du kannst für Dependabot-Commitnachrichten und Pull-Request-Titel für ein bestimmtes Paketökosystem deine eigenes Präfix angeben. Das kann beispielsweise beim Ausführen von Automatisierungen hilfreich sein, die Commitnachrichten verarbeiten oder die Titel von Pull Requests abrufen.
Um deine Einstellungen explizit anzugeben, verwende commit-message
zusammen mit den folgenden unterstützten Optionen:
prefix
:- Gibt ein Präfix für alle Commitnachrichten an.
- Das Präfix wird zudem am Anfang des Pull-Request-Titels hinzugefügt.
prefix-development
:- Gibt ein separates Präfix für alle Nachrichten zu Commits wie vom Paket-Manager oder Ökosystem definiert an, die Entwicklungsabhängigkeiten aktualisieren.
- Unterstützt werden
bundler
,composer
,mix
,maven
,npm
undpip
.
include: "scope"
:- Gibt an, dass auf jedes Präfix die Abhängigkeitstypen
deps
oderdeps-dev
folgen, die im Commit aktualisiert wurden.
- Gibt an, dass auf jedes Präfix die Abhängigkeitstypen
Im folgenden Beispiel werden verschiedene Optionen veranschaulicht, die für jedes Paketökosystem angepasst sind:
# Customize commit messages version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" commit-message: # Prefix all commit messages with "npm: " prefix: "npm" - package-ecosystem: "docker" directory: "/" schedule: interval: "weekly" commit-message: # Prefix all commit messages with [docker] " (no colon, but a trailing whitespace) prefix: [docker] " - package-ecosystem: "composer" directory: "/" schedule: interval: "weekly" # Prefix all commit messages with "Composer" plus its scope, that is, a # list of updated dependencies commit-message: prefix: "Composer" include: "scope" - package-ecosystem: "pip" directory: "/" schedule: interval: "weekly" # Include a list of updated dependencies # with a prefix determined by the dependency group commit-message: prefix: "pip prod" prefix-development: "pip dev"
# Customize commit messages
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
commit-message:
# Prefix all commit messages with "npm: "
prefix: "npm"
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
commit-message:
# Prefix all commit messages with [docker] " (no colon, but a trailing whitespace)
prefix: [docker] "
- package-ecosystem: "composer"
directory: "/"
schedule:
interval: "weekly"
# Prefix all commit messages with "Composer" plus its scope, that is, a
# list of updated dependencies
commit-message:
prefix: "Composer"
include: "scope"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
# Include a list of updated dependencies
# with a prefix determined by the dependency group
commit-message:
prefix: "pip prod"
prefix-development: "pip dev"
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.
Siehe auch commit-message
.
Zuordnen von Pull Requests zu einem Meilenstein
Meilensteine helfen dir, den Fortschritt von Gruppen von Pull Requests oder Issues zu einem Projektziel oder einem Release nachzuverfolgen. Mit Dependabot kannst du die Option milestone
verwenden, um Pull Requests für Abhängigkeitsupdates einem bestimmten Meilenstein zuzuordnen.
Du musst den numerischen Bezeichner des Meilensteins und nicht seine Bezeichnung angeben. Den numerischen Bezeichner kannst du im letzten Teil der Seiten-URL nach milestone
finden. Beispiel: Der numerische Bezeichner des Meilensteins für https://github.com/<org>/<repo>/milestone/3
lautet 3
.
# Specify a milestone for pull requests version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" # Associate pull requests with milestone "4" milestone: 4
# Specify a milestone for pull requests
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Associate pull requests with milestone "4"
milestone: 4
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.
Weitere Informationen findest du außerdem unter milestones
und Informationen zu Meilensteinen.
Ändern des Trennzeichens im Branchnamen des Pull Requests
Von Dependabot wird ein Branch für jeden Pull Request generiert. Jeder Branchname enthält dependabot
sowie den Namen des Paket-Managers und die zu aktualisierenden Abhängigkeit. Standardmäßig werden diese Teile des Branchnamens durch ein /
-Symbol wie im folgenden Beispiel getrennt:
dependabot/npm_and_yarn/next_js/acorn-6.4.1
Um die Unterstützbarkeit oder Konsistenz mit deinen vorhandenen Prozessen zu verwalten, solltest du sicherstellen, dass deine Branchnamen den vorhandenen Konventionen deines Teams entsprechen. In diesem Fall kannst du pull-request-branch-name.separator
verwenden, um ein anderes Trennzeichen wie _
, /
oder "-"
anzugeben.
Im folgenden Beispiel ändert die npm-Konfiguration das Standardtrennzeichen von /
in "-"
, damit es folgendermaßen angezeigt wird:
- Standard (
/
):dependabot/npm_and_yarn/next_js/acorn-6.4.1
- Angepasst (
"-"
):dependabot-npm_and_yarn-next_js-acorn-6.4.1
Beachte, dass das Bindestrichsymbol ("-"
) von Anführungszeichen umgeben sein muss, damit es nicht als Start einer leeren YAML-Liste interpretiert wird.
# Specify a different separator for branch names version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" pull-request-branch-name: # Change the default separator (/) to a hyphen (-) separator: "-"
# Specify a different separator for branch names
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
pull-request-branch-name:
# Change the default separator (/) to a hyphen (-)
separator: "-"
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.
Siehe auch pull-request-branch-name.separator
.
Ausrichten von Pull Requests auf einen Nicht-Standardbranch
Standardmäßig wird von Dependabot eine Überprüfung auf Manifestdateien im Standardbranch durchgeführt. Zudem werden Pull Requests für Updates für diesen Standardbranch ausgelöst.
Im Allgemeinen ist es am sinnvollsten, die Überprüfungen und Updates von Dependabot im Standardbranch beizubehalten. In manchen Fällen solltest du jedoch einen anderen Zielbranch angeben. Beispiel: Wenn es in den Prozessen deines Teams erforderlich ist, zunächst Updates für einen Nicht-Produktionsbranch zu testen und zu überprüfen, kannst du target-branch
verwenden, um einen anderen Branch anzugeben, den Dependabot zum Erstellen von Pull Requests verwenden soll.
Note
Dependabot löst Pull Requests für Sicherheitsupdates nur für den Standardbranch aus. Wenn du target-branch
verwendest, werden alle Konfigurationseinstellungen für diesen Paket-Manager nur auf Versionsupdates und nicht auf Sicherheitsupdates angewendet.
# Specify a non-default branch for pull requests for pip version: 2 updates: - package-ecosystem: "pip" directory: "/" schedule: interval: "weekly" # Raise pull requests for version updates # to pip against the `develop` branch target-branch: "develop" # Labels on pull requests for version updates only labels: - "pip dependencies" - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" # Check for npm updates on Sundays day: "sunday" # Labels on pull requests for security and version updates labels: - "npm dependencies"
# Specify a non-default branch for pull requests for pip
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
# Raise pull requests for version updates
# to pip against the `develop` branch
target-branch: "develop"
# Labels on pull requests for version updates only
labels:
- "pip dependencies"
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Check for npm updates on Sundays
day: "sunday"
# Labels on pull requests for security and version updates
labels:
- "npm dependencies"
Siehe auch target-branch
.