Skip to main content

Anpassen von Dependabot-Pull-Requests an deine Prozesse

Hier erfährst du, wie du deine Dependabot-Pull-Requests an deine eigenen internen Workflows anpasst.

Wer kann dieses Feature verwenden?

Users with write access

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
YAML
# `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.

YAML
# `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 und pip.
  • include: "scope":
    • Gibt an, dass auf jedes Präfix die Abhängigkeitstypen deps oder deps-dev folgen, die im Commit aktualisiert wurden.

Im folgenden Beispiel werden verschiedene Optionen veranschaulicht, die für jedes Paketökosystem angepasst sind:

YAML
# 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.

YAML
# 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.

YAML
# 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.

YAML
# 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.