À propos de la personnalisation des demandes de tirage pour les mises à jour de sécurité
Vous pouvez personnaliser la façon dont Dependabot déclenche des demandes de tirage pour les mises à jour de sécurité, afin qu’elles correspondent le mieux aux priorités et processus de sécurité de votre projet. Par exemple :
- Optimiser les demandes de tirage Dependabot pour hiérarchiser les mises à jour significatives en regroupant plusieurs mises à jour dans une requête de tirage unique.
- L’application d’étiquettes personnalisées pour **intégrer les demandes de tirage de Dependabot ** dans vos flux de travail existants.
Comme pour les mises à jour de version, les options de personnalisation des mises à jour de sécurité sont définies dans le fichier dependabot.yml
. Si vous avez déjà personnalisé le dependabot.yml
pour les mises à jour de version, la plupart des options de configuration que vous avez définies peuvent également s’appliquer automatiquement aux mises à jour de sécurité. Toutefois, il existe quelques points importants à noter :
- Dependabot security updates sont toujours déclenchées par un conseil de sécurité, plutôt que d’exécuter en fonction du
schedule
que vous avez défini dans ledependabot.yml
pour les mises à jour de version. - Dependabot déclenche des demandes de tirage pour les mises à jour de sécurité par rapport à la branche par défaut uniquement. Si votre configuration définit une valeur pour
target-branch
, la personnalisation de cet écosystème de packages s’applique uniquement aux mises à jour de version par défaut.
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 :
- 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 ». - Définir toutes les clés requises. Pour plus d’informations, consultez Clés requises.
- Si vous souhaitez que la personnalisation d’un écosystème de packages s’applique uniquement aux mises à jour de sécurité (et exclue les mises à jour de version), définissez la clé de
open-pull-requests-limit
sur0
.
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.
Hiérarchiser les 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 réviseurs et d’affectations
Pour vous assurer que les mises à jour de sécurité de votre projet sont traitées rapidement par l’équipe appropriée, utilisez reviewers
et assignees
pour ajouter automatiquement des personnes ou des équipes en tant que réviseurs ou destinataires des demandes de tirage (pull).
Pour plus d’informations, consultez Ajout automatique de réviseurs et d’affectations.
É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é afin que Dependabot applique des étiquettes personnalisées aux demandes de tirage et ajoute automatiquement des réviseurs et des destinataires.
- Regroupe les mises à jour de sécurité pour les dépendances golang dans une seule demande de tirage.
# Example configuration file that: # - Uses a private registry for npm updates # - Ignores lodash dependency # - Disables version-updates # - Applies custom labels # - Adds reviewers and 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 reviewers reviewers: - "my-org/team-name" - "octocat" # 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*"
# Example configuration file that:
# - Uses a private registry for npm updates
# - Ignores lodash dependency
# - Disables version-updates
# - Applies custom labels
# - Adds reviewers and 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 reviewers
reviewers:
- "my-org/team-name"
- "octocat"
# 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é afin que Dependabot ajoute des évaluateurs et des étiquettes personnalisées aux mises à jour de version et 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
pourangular
s’applique uniquement aux mises à jour de sécurité. - Spécifie que la personnalisation
groups
pourproduction-dependencies
s’applique uniquement aux mises à jour de sécurité.
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" # Raise all npm pull requests for security and version updates with reviewers reviewers: - "my-org/team-name" - "octocat" 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"
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"
# Raise all npm pull requests for security and version updates with reviewers
reviewers:
- "my-org/team-name"
- "octocat"
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"