Il existe différentes façons de personnaliser vos demandes de tirage Dependabot afin qu’elles correspondent mieux à vos propres processus internes.
Par exemple, pour intégrer les demande de tirages de Dependabot dans vos pipelines CI/CD, vous pouvez appliquer des étiquettes personnalisées aux demandes de tirage, que vous pouvez ensuite utiliser pour déclencher des workflows d'action.
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 réviseurs et d’affectations
Important
La propriété reviewers est en cours de suppression et sera retirée dans une prochaine version de GitHub Enterprise Server.
Vous pouvez également ajouter automatiquement des réviseurs et des bénéficiaires à l’aide d’un fichier CODEOWNERS. Consultez À propos des propriétaires de code.
Par défaut, Dependabot déclenche des demandes de tirage sans réviseurs ni destinataires.
Toutefois, vous souhaiterez peut-être que les demandes de tirage soient systématiquement examinées ou traitées par une personne ou une équipe spécifique qui possède une expertise dans cet écosystème de packages, ou qu’elles soient automatiquement affectées à une équipe de sécurité désignée. Dans ce cas, vous pouvez utiliser reviewers et 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 :
- Une équipe («
my-org/team-name») et un individu («octocat») ajoutés automatiquement en tant que réviseurs aux demandes de tirage. - Un individu («
user-name») automatiquement affecté aux demandes de tirage.
# `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"
# `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"
Étiquetage des demandes de tirage avec des étiquettes personnalisées
Par défaut, Dependabot déclenche des requêtes de fusion avec l'étiquette dependencies.
Dependabot applique également une étiquette d’écosystème, telle que java, npm ou github-actions, aux pull requests. Dependabot ajoute à la fois le label dependencies et celui de l'écosystème à toutes les pull requests, y compris les mises à jour d'un seul écosystème, pour améliorer le filtrage et le triage.
Dependabot crée les étiquettes par défaut qu’elle applique aux demandes de tirage s’ils 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 les applique également automatiquement pour indiquer le type de mise à jour de version (major, minorou 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 commit et d’utiliser des modèles similaires. En outre, Dependabot remplit les titres des demandes de tirage en fonction des messages de commit.
Vous pouvez spécifier votre propre préfixe pour les messages de commit (et les titres des demandes de tirage) générés par Dependabot pour un écosystème de packages spécifique. 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 des demandes de tirage de mises à jour de dépendances avec 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 demande de tirage. 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 déclenche des demandes de tirage pour les mises à jour sur cette même branche.
En règle générale, il est judicieux 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 vous obligent à commencer par tester et valider les mises à jour sur une branche hors production, vous pouvez utiliser target-branch pour spécifier une autre branche sur laquelle Dependabot déclenchera les demandes de tirage.
Remarque
Dependabot déclenche des demandes de tirage pour les mises à jour de sécurité sur la branche par défaut uniquement. 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.