Skip to main content

Personnalisation des demandes de tirage pour les mises à jour de sécurité de Dependabot

Découvrez comment personnaliser les demandes de tirage de Dependabot pour les mises à jour de sécurité afin de s’aligner sur les priorités et les flux de travail de sécurité de votre projet.

Qui peut utiliser cette fonctionnalité ?

Users with write access

Préparation à la personnalisation des demandes de tirage

Si vous n’avez pas encore configuré de fichier dependabot.yml pour votre référentiel et que vous souhaitez personnaliser les demandes de tirage pour les mises à jour de sécurité, vous devez tout d’abord :

  1. Archiver un fichier dependabot.yml dans le répertoire .github de votre référentiel. Pour plus d’informations, consultez « Configuration de mises à jour de version Dependabot ».
  2. Définir toutes les clés requises. Pour plus d’informations, consultez Clés requises.
  3. Si vous souhaitez que la personnalisation d’un écosystème de packages s’applique uniquement aux mises à jour de sécurité (et exclut les mises à jour de version), définissez la clé de open-pull-requests-limit sur 0.

Vous pouvez ensuite déterminer vos besoins et vos priorités en matière de mises à jour de sécurité et appliquer une combinaison des options de personnalisation décrites ci-dessous.

Priorité aux mises à jour significatives

Pour créer un processus de révision plus ciblé qui hiérarchise les mises à jour significatives, utilisez groups pour combiner des mises à jour de sécurité de plusieurs dépendances en une seule demande de tirage.

Pour obtenir des instructions détaillées, consultez Hiérarchisation des mises à jour significatives.

Ajout automatique de personnes responsables

Utilisez assignees pour ajouter automatiquement des personnes ou des équipes en tant que personnes responsables aux demandes de tirage.

Pour des instructions détaillées, consultez Ajout automatique de personnes responsables.

Ajout automatique de réviseurs

Pour vous assurer que les mises à jour de sécurité de votre projet sont traitées rapidement par l'équipe appropriée, vous pouvez ajouter automatiquement des réviseurs aux demandes de tirages Dependabot à l'aide d'un fichier CODEOWNERS. Consultez À propos des propriétaires de code.

Étiquetage des demandes de tirage avec des étiquettes personnalisées

Pour hiérarchiser des demandes de tirage spécifiques ou les intégrer dans des pipelines CI/CD, utilisez labels pour appliquer vos propres étiquettes personnalisées à chaque demande de tirage.

Pour obtenir des instructions détaillées, consultez Étiquetage des demandes de tirage avec des étiquettes personnalisées.

Ajout d’un préfixe pour valider les messages

Pour intégrer à des automatisations qui traitent les titres des messages de validation ou des demandes de tirage (pull), utilisez commit-message pour spécifier le préfixe souhaité pour les messages de validation et les titres des demandes de tirage.

Pour obtenir des instructions détaillées, consultez Ajout d’un préfixe pour valider les messages.

Association de demandes de tirage avec un jalon

Pour suivre la progression vers un objectif ou une mise en production de projet, utilisez milestone pour associer les demandes de tirage de Dependabot avec un jalon.

Pour obtenir des instructions détaillées, consultez Association des demandes de tirage à un jalon.

Modification du séparateur dans le nom de la branche de demande de tirage

Pour vous assurer que vos noms de branche s’alignent avec les conventions existantes de votre équipe, utilisez pull-request-branch-name.separator pour spécifier le séparateur que vous souhaitez que Dependabot utilise pour les noms de branche.

Pour des conseils détaillés, consultez Modification du séparateur dans le nom de la branche de demande de tirage.

Exemple 1 : configuration des mises à jour de sécurité uniquement

Dans cet exemple, le fichier dependabot.yml :

  • Utilise un registre privé pour les mises à jour des dépendances npm.
  • Désactive les mises à jour de version pour les dépendances, afin que toutes les personnalisations s’appliquent uniquement aux mises à jour de sécurité.
  • Est personnalisé de manière à ce que Dependabot applique des étiquettes personnalisées aux demandes de tirage et ajoute automatiquement des destinataires.
  • Regroupe les mises à jour de sécurité pour les dépendances golang dans une seule demande de tirage.
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*"

Exemple 2 : configuration des mises à jour de version et des mises à jour de sécurité

Dans cet exemple, le fichier dependabot.yml :

  • Est personnalisée de manière à ce que Dependabot ajoute des étiquettes personnalisées à la fois pour les mises à jour de version et les mises à jour de sécurité.
  • Utilise l’option de personnalisation groups pour créer deux groupes (« angular » et « production-dependencies ») afin de regrouper plusieurs mises à jour dans des demandes de tirage uniques.
  • Spécifie que la personnalisation groups pour angular s’applique uniquement aux mises à jour de sécurité.
  • Spécifie que la personnalisation groups pour production-dependencies s’applique uniquement aux mises à jour de version.
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"

Lectures complémentaires

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