Skip to main content

Anpassen von Pull Requests für Dependabot-Sicherheitsupdates

Hier erfahren Sie, wie Sie Pull Requests von Dependabot an Sicherheitsupdates anpasst, um diese auf die Sicherheitsprioritäten und Workflows Ihres Projekts auszurichten.

Wer kann dieses Feature verwenden?

Users with write access

Informationen zur Anpassung von Pull Requests für Sicherheitsupdates

Sie können anpassen, wie Dependabot Pull-Anfragen für Sicherheitsupdates generiert, sodass diese optimal zu den Sicherheitsprioritäten und -prozessen Ihres Projekts passen. Beispiel:

  •           **Optimiere Dependabot-Pull-Requests, um wichtige Updates** zu priorisieren, indem Sie mehrere Updates in einem einzelnen Pull Request gruppieren.
    
  • Anwenden benutzerdefinierter Labels, um Dependabot-Pull-Requests in Ihre bestehenden Workflows zu integrieren.

Ähnlich wie bei Versionsupdates werden Anpassungsoptionen für Sicherheitsupdates in der dependabot.yml-Datei definiert. Wenn Sie die dependabot.yml für Versionsaktualisierungen bereits angepasst haben, dann könnten viele der von Ihnen definierten Konfigurationsoptionen auch automatisch auf Sicherheitsaktualisierungen angewendet werden. Es gibt jedoch ein paar wichtige Punkte zu beachten:

  • Dependabot security updates werden immer durch eine Sicherheitsempfehlung ausgelöst, nicht dem schedule entsprechend, die Sie in dependabot.yml für Versionsupdates festgelegt haben.
  • Dependabot löst Pull Requests für Sicherheitsupdates nur für den Standardbranch aus. Wenn deine Konfiguration einen Wert für target-branch festlegt, gilt die Anpassung für dieses Paketökosystem standardmäßig nur für Versionsupdates.

Wenn Sie noch keine dependabot.yml-Datei für Ihr Repository konfiguriert haben und Pull Requests für Sicherheitsupdates anpassen möchten, müssen Sie zunächst Folgendes tun:

  • Checken Sie eine dependabot.yml-Datei in das .github-Verzeichnis Ihres Repositorys ein. Weitere Informationen finden Sie unter Konfigurieren von Dependabot-Versionsupdates.
  • Legen Sie alle erforderlichen Schlüssel fest. Weitere Informationen finden Sie unter Erforderliche Schlüssel.
  • Wenn die Anpassung für ein Paketökosystem nur für Sicherheitsupdates gelten soll (und Versionsupdates ausgeschlossen werden sollen), legen Sie den open-pull-requests-limit-Schlüssel auf 0 fest.

Überlege, was deine Anforderungen und Prioritäten für Sicherheitsupdates sind, und wende eine Kombination der unten beschriebenen Anpassungsoptionen an.

Priorisieren wichtiger Updates

Um einen ** gezielteren Reviewprozess** zu erstellen, der wichtige Updates priorisiert, verwenden Sie groups, um Sicherheitsupdates für mehrere Abhängigkeiten in einem einzigen Pull Request zu kombinieren.

Ausführliche Anleitungen findest du unter Priorisieren wichtiger Updates.

Automatisches Hinzufügen zugewiesener Personen

Verwende assignees, um Pull Requests automatisch Personen oder Teams als Empfänger hinzuzufügen.

Ausführliche Anleitungen findest du unter Automatisches Hinzufügen zugewiesener Personen.

Automatisches Hinzufügen von Prüfenden

Um sicherzustellen, dass die Sicherheitsupdates deines Projekts umgehend vom entsprechenden Team adressiert werden, kannst du mithilfe einer CODEOWNERS-Datei automatisch Prüfende für Pull Requests in Dependabot hinzuzufügen. Weitere Informationen findest du unter Informationen zu Codeinhabern.

Bezeichnen von Pull Requests mit benutzerdefinierten Bezeichnungen

Um bestimmte Pull Requests zu priorisieren oder sie in CI/CD-Pipelines zu integrieren, verwenden Sie labels, um Ihre eigenen benutzerdefinierten Bezeichnungen auf jeden Pull Request anzuwenden.

Ausführliche Anleitungen finden Sie unter Bezeichnen von Pull Requests mit benutzerdefinierten Bezeichnungen.

Hinzufügen eines Präfixes zu Commitnachrichten

Für die Integration mit Automatisierungen, die Commitnachrichten verarbeiten oder Titel von Pull Requests abrufen, verwenden Sie commit-message, um das Präfix anzugeben, das Sie für Commitnachrichten und Pull-Request-Titel festlegen möchten.

Ausführliche Anleitungen finden Sie unter Hinzufügen eines Präfixes zu Commitnachrichten.

Zuordnen von Pull Requests zu einem Meilenstein

Um den Fortschritt bis zu einem Projektziel oder -release nachzuverfolgen, verwenden Sie milestone, um Dependabot-Pull-Requests einem Meilenstein zuzuordnen.

Ausführliche Anleitungen finden Sie unter Zuordnen von Pull Requests zu einem Meilenstein.

Ändern des Trennzeichens im Branchnamen des Pull Requests

Um sicherzustellen, dass deine Branchnamen den bestehenden Konventionen deines Teams entsprechen, verwenden Sie pull-request-branch-name.separator, um das Trennzeichen anzugeben, das Dependabot für Branchnamen verwenden soll.

Ausführliche Anleitungen finden Sie unter Ändern des Trennzeichens im Branchnamen des Pull Requests.

Beispiel 1: Konfiguration nur für Sicherheitsupdates

In diesem Beispiel hat die Datei dependabot.yml folgende Funktion:

  • Verwendet eine private Registrierung für Updates von npm-Abhängigkeiten
  • Deaktiviert Versionsupdates für Abhängigkeiten, sodass alle Anpassungen nur für Sicherheitsupdates gelten
  • Wird angepasst, sodass Dependabot benutzerdefinierte Bezeichnungen auf die Pull Requests anwendet und zugewiesene Personen automatisch hinzufügt.
  • Gruppiert Sicherheitsupdates für Golang-Abhängigkeiten in einem einzelnen Pull Request.
YAML
# Example configuration file that:
#  - Uses a private registry for npm updates
#  - Ignores lodash dependency
#  - Disables version-updates
#  - Applies custom labels
#  - Adds assignees
#  - Group security updates for golang dependencies into a single pull request

version: 2
registries:
  # Define a private npm registry with the name `example`
  example:
    type: npm-registry
    url: https://example.com
    token: ${{secrets.NPM_TOKEN}}
updates:
  - package-ecosystem: "npm"
    directory: "/src/npm-project"
    schedule:
      interval: "daily"
    # For Lodash, ignore all updates
    ignore:
      - dependency-name: "lodash"
    # Disable version updates for npm dependencies
    open-pull-requests-limit: 0
    registries:
      # Ask Dependabot to use the private registry for npm
      - example
    # Raise all npm pull requests for security updates with custom labels
    labels:
      - "npm dependencies"
      - "triage-board"
    # Raise all npm pull requests for security updates with assignees
    assignees:
      - "user-name"
  - package-ecosystem: "gomod"
    groups:
      # Group security updates for golang dependencies
      # into a single pull request
      golang:
        applies-to: security-updates
        patterns:
          - "golang.org*"

Beispiel 2: Konfiguration für Versionsupdates und Sicherheitsupdates

In diesem Beispiel hat die Datei dependabot.yml folgende Funktion:

  • Wird so angepasst, dass Dependabot Versions- und Sicherheitsupdates benutzerdefinierte Bezeichnungen hinzufügt.
  • Verwendet die Anpassungsoption groups, um zwei Gruppen (angular und production-dependencies) zu erstellen, um mehrere Updates in einzelnen Pull Requests zu gruppieren
  • Gibt an, dass die groups-Anpassung für angular nur für Sicherheitsupdates gilt
  • Gibt an, dass die groups-Anpassung für production-dependencies nur für Versionsupdates gilt.
YAML
version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
# Raise all npm pull requests for security and version updates with custom labels
    labels:
      - "npm dependencies"
      - "triage-board"
    groups:
      angular:
        # Group security updates for Angular dependencies into a single pull request
        applies-to: security-updates
        patterns:
          - "@angular*"
      production-dependencies:
        # Group version updates for dependencies of type "production" into a single pull request
        applies-to: version-updates
        dependency-type: "production"

Weiterführende Lektüre

  •         [AUTOTITLE](/code-security/dependabot/working-with-dependabot/dependabot-options-reference)
    
  •         [AUTOTITLE](/code-security/dependabot/working-with-dependabot/configuring-access-to-private-registries-for-dependabot)