Il existe différentes façons de personnaliser vos Dependabot pull requests pour mieux les adapter à vos processus internes.
Par exemple, pour intégrer les demandes de fusion de Dependabot dans vos pipelines CI/CD, elle peut appliquer des étiquettes personnalisées aux demandes de fusion, que vous pouvez ensuite utiliser pour déclencher des workflows d’actions.
Il existe plusieurs options de personnalisation différentes qui peuvent toutes être utilisées en combinaison et adaptées par écosystème de packages.
Ajout automatique de personnes responsables
Par défaut, Dependabot crée des demandes de tirage sans personne assignée.
Pour attribuer automatiquement des demandes de tirage à une équipe de sécurité désignée, vous pouvez utiliser assignees pour définir ces valeurs par écosystème de packages.
L’exemple de fichier dependabot.yml ci-dessous change la configuration npm afin que toutes les demandes de tirage ouvertes avec des mises à jour de version et de sécurité pour npm contiennent :
- Un individu («
user-name») automatiquement affecté aux demandes de tirage.
# `dependabot.yml` file with
# 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 assignees
assignees:
- "user-name"
# `dependabot.yml` file with
# 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 assignees
assignees:
- "user-name"
Ajout automatique de réviseurs
Par défaut, Dependabot crée des pull requests sans aucun réviseur.
Pour que les mises à jour de sécurité de votre projet soient traitées rapidement par l’équipe concernée, vous pouvez ajouter automatiquement des relecteurs aux Dependabot pull requests à l’aide d’un fichier CODEOWNERS. Consultez À propos des propriétaires de code.
Étiquetage des demandes de tirage avec des étiquettes personnalisées
Par défaut, Dependabot crée des pull requests avec l’étiquette dependencies.
Dependabot applique également une étiquette d’écosystème, telle que java, npm ou github-actions, aux pull requests.
Dependabot ajoute à toutes les pull requests l’étiquette dependencies ainsi que l’étiquette de l’écosystème, y compris pour les mises à jour portant sur un seul écosystème, afin d’améliorer le filtrage et la priorisation.
Dependabot crée les étiquettes par défaut qu’il applique aux pull requests si elles n’existent pas déjà dans le référentiel. Si vous souhaitez utiliser des étiquettes personnalisées au lieu des valeurs par défaut, vous pouvez définir l’option labels dans votre dependabot.yml fichier par écosystème de package ; cela remplace les valeurs par défaut. Pour plus d’informations, consultez « Gestion des étiquettes » et labels.
Si les étiquettes de version sémantique (SemVer) sont présentes dans le référentiel, Dependabot elles s’appliquent également automatiquement pour indiquer le type de mise à jour de version (majorou minor``patch). Ces étiquettes sont appliquées en plus des étiquettes personnalisées que vous définissez.
Vous pouvez utiliser labels pour remplacer les étiquettes par défaut et spécifier vos propres étiquettes personnalisées par écosystème de packages. Cela est utile si, par exemple, vous souhaitez :
- Utiliser des étiquettes pour attribuer une priorité à certaines demandes de tirage.
- Utiliser des étiquettes pour déclencher un autre workflow, par exemple ajouter automatiquement la demande de tirage à un tableau de projet.
L’exemple de fichier dependabot.yml ci-dessous change la configuration npm afin que toutes les demandes de tirage ouvertes avec des mises à jour de version et de sécurité pour npm aient des étiquettes personnalisées.
# `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"
La définition de cette option affecte aussi les demandes de tirage pour des mises à jour de sécurité des fichiers manifeste de ce gestionnaire de packages, sauf si vous utilisez target-branch pour rechercher les mises à jour de version sur une branche autre que celle par défaut.
Voir aussi labels.
Ajout d’un préfixe aux messages de commit
Par défaut, Dependabot tente de détecter vos préférences de message de validation et d’utiliser des modèles similaires. En outre, Dependabot renseigne les titres des pull requests en fonction des messages de commit.
Vous pouvez spécifier votre propre préfixe pour les messages de commit de Dependabot (et les titres des pull requests) pour un écosystème de paquets donné. Cela peut être utile si, par exemple, vous exécutez des automatisations traitant les messages de commit ou les titres des demandes de tirage.
Pour spécifier explicitement vos préférences, utilisez commit-message avec les options prises en charge suivantes :
prefix:- Spécifie un préfixe pour tous les messages de commit.
- Le préfixe est également ajouté au début du titre de la demande de tirage.
prefix-development:- Spécifie un préfixe distinct pour tous les messages de commit qui mettent à jour les dépendances de développement, comme défini par le gestionnaire de packages ou l’écosystème.
- Pris en charge pour
bundler,composer,mix,maven,npmetpip.
include: "scope":- Spécifie que tout préfixe est suivi des types de dépendances (
depsoudeps-dev) mis à jour dans le commit.
- Spécifie que tout préfixe est suivi des types de dépendances (
L’exemple ci-dessous montre plusieurs options différentes, adaptées par écosystème de packages :
# 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"
La définition de cette option affecte aussi les demandes de tirage pour des mises à jour de sécurité des fichiers manifeste de ce gestionnaire de packages, sauf si vous utilisez target-branch pour rechercher les mises à jour de version sur une branche autre que celle par défaut.
Voir aussi commit-message.
Association des demandes de tirage avec un jalon
Les jalons vous aident à suivre la progression des groupes de demandes de tirage (ou problèmes) vers un objectif de projet ou une version. Avec Dependabot, vous pouvez utiliser l’option milestone pour associer les pull requests liées aux mises à jour de dépendances à un jalon spécifique.
Vous devez spécifier l’identificateur numérique du jalon et non son étiquette. Pour rechercher l’identificateur numérique, vérifiez la dernière partie de l’URL de la page, après milestone. Par exemple, pour https://github.com/<org>/<repo>/milestone/3, « 3 » est l’identificateur numérique du jalon.
# 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
La définition de cette option affecte aussi les demandes de tirage pour des mises à jour de sécurité des fichiers manifeste de ce gestionnaire de packages, sauf si vous utilisez target-branch pour rechercher les mises à jour de version sur une branche autre que celle par défaut.
Consultez également milestone et À propos des jalons.
Modification du séparateur dans le nom de la branche de demande de tirage
Dependabot génère une branche pour chaque pull request. Chaque nom de branche inclut dependabot ainsi que le nom du gestionnaire de packages et la dépendance à mettre à jour. Par défaut, ces parties du nom de la branche sont séparées par un symbole /, par exemple :
dependabot/npm_and_yarn/next_js/acorn-6.4.1
Pour maintenir la prise en charge ou la cohérence avec vos processus existants, vous devrez peut-être vous assurer que les noms de vos branches respectent les conventions existantes mises en place par votre équipe. Dans ce cas, vous pouvez utiliser pull-request-branch-name.separator pour spécifier un séparateur différent, en choisissant _, / ou "-".
Dans l’exemple ci-dessous, la configuration npm modifie le séparateur par défaut de / en "-", afin qu’il apparaisse ainsi :
- Par défaut (
/) :dependabot/npm_and_yarn/next_js/acorn-6.4.1 - Personnalisé (
"-") :dependabot-npm_and_yarn-next_js-acorn-6.4.1
Notez que le symbole de trait d’union ("-") doit être entouré de guillemets afin qu’il ne soit pas interprété comme le début d’une liste YAML vide.
# 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: "-"
La définition de cette option affecte aussi les demandes de tirage pour des mises à jour de sécurité des fichiers manifeste de ce gestionnaire de packages, sauf si vous utilisez target-branch pour rechercher les mises à jour de version sur une branche autre que celle par défaut.
Voir aussi pull-request-branch-name.separator.
Ciblage des demandes de tirage vers une branche autre que celle par défaut
Par défaut, Dependabot recherche les fichiers manifeste sur la branche par défaut et ouvre des demandes de tirage pour les mises à jour visant la branche par défaut.
En règle générale, il est généralement plus logique de conserver les vérifications et les mises à jour de Dependabot sur la branche par défaut. Toutefois, dans certains cas, il peut être nécessaire de spécifier une branche cible différente. Si, par exemple, les processus de votre équipe exigent que vous testiez et validiez d’abord les mises à jour sur une branche non destinée à la production, vous pouvez utiliser target-branch pour spécifier une autre branche sur laquelle Dependabot doit ouvrir des demandes de fusion.
Remarque
Dependabot crée des pull requests pour les mises à jour de sécurité uniquement vers la branche par défaut. Si vous utilisez target-branch, alors tous les paramètres de configuration de ce gestionnaire de packages s’appliqueront uniquement aux mises à jour de version et non aux mises à jour de sécurité.
# 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"
Voir aussi target-branch.