Vous pouvez personnaliser votre configuration Dependabot en fonction de vos besoins, en ajoutant des options à votre fichier dependabot.yml. Par exemple, vous pouvez vous assurer que Dependabot utilise les fichiers manifestes de package corrects et met à jour uniquement les dépendances que vous souhaitez conserver.
Cet article rassemble les options de personnalisation que vous pouvez trouver utiles.
Définition de plusieurs emplacements pour les fichiers manifestes
Si vous souhaitez activer Dependabot version updates pour les fichiers manifestes stockés dans plusieurs emplacements, vous pouvez utiliser directories à la place de directory. Par exemple, cette configuration définit deux planifications de mise à jour différentes pour les fichiers manifestes stockés dans des répertoires différents.
# Specify the locations of the manifest files to update for each package manager
# using both `directories` and `directory`
version: 2
updates:
- package-ecosystem: "bundler"
# Update manifest files stored in these directories weekly
directories:
- "/frontend"
- "/backend"
- "/admin"
schedule:
interval: "weekly"
- package-ecosystem: "bundler"
# Update manifest files stored in the root directory daily
directory: "/"
schedule:
interval: "daily"
# Specify the locations of the manifest files to update for each package manager
# using both `directories` and `directory`
version: 2
updates:
- package-ecosystem: "bundler"
# Update manifest files stored in these directories weekly
directories:
- "/frontend"
- "/backend"
- "/admin"
schedule:
interval: "weekly"
- package-ecosystem: "bundler"
# Update manifest files stored in the root directory daily
directory: "/"
schedule:
interval: "daily"
-
Pour spécifier une plage de répertoires à l’aide d’un modèle
YAML # Specify the root directory and directories that start with "lib-", # using globbing, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "/" - "/lib-*" schedule: interval: "weekly"# Specify the root directory and directories that start with "lib-", # using globbing, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "/" - "/lib-*" schedule: interval: "weekly" -
Pour spécifier des manifestes dans le répertoire actif et des sous-répertoires récursifs
YAML # Specify all directories from the current layer and below recursively, # using globstar, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "**/*" schedule: interval: "weekly"# Specify all directories from the current layer and below recursively, # using globstar, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "**/*" schedule: interval: "weekly"
Ignorer des dépendances spécifiques
Si vous n’êtes pas prêt à adopter des modifications de certaines dépendances dans votre projet, vous pouvez configurer Dependabot pour ignorer ces dépendances lorsque des demandes de tirage s’ouvrent pour les mises à jour de version et les mises à jour de sécurité. Pour ce faire, vous pouvez utiliser l’une des méthodes suivantes.
- Configurez l’option
ignorede dépendance dans votre fichierdependabot.yml. * Vous pouvez l’utiliser pour ignorer les mises à jour pour des dépendances, des versions et des types de mises à jour spécifiques.- Pour plus d’informations, consultez
ignoredans Référence des options Dependabot.
- Pour plus d’informations, consultez
- Utilisez les commandes
@dependabot ignorede commentaires sur une demande de tirage Dependabot pour les mises à jour de version et les mises à jour de sécurité. * Vous pouvez utiliser des commandes de commentaire pour ignorer les mises à jour des dépendances et versions spécifiques.- Pour plus d’informations, consultez « Gestion des demandes de tirage (pull request) pour les mises à jour des dépendances ».
Voici quelques exemples montrant comment ignore peut être utilisé pour personnaliser les dépendances mises à jour.
-
Pour ignorer les mises à jour au-delà d’une version spécifique
YAML ignore: - dependency-name: "lodash:*" # Ignore versions of Lodash that are equal to or greater than 1.0.0 versions: [ ">=1.0.0" ]ignore: - dependency-name: "lodash:*" # Ignore versions of Lodash that are equal to or greater than 1.0.0 versions: [ ">=1.0.0" ]YAML ignore: - dependency-name: "sphinx" versions: [ "[1.1,)" ]ignore: - dependency-name: "sphinx" versions: [ "[1.1,)" ] -
Pour ignorer les mises à jour correctives
YAML ignore: - dependency-name: "@types/node" # Ignore patch updates for Node update-types: ["version-update:semver-patch"]ignore: - dependency-name: "@types/node" # Ignore patch updates for Node update-types: ["version-update:semver-patch"] -
Pour ignorer des versions ou des plages de versions spécifiques, consultez Ignorer les versions ou plages de versions spécifiques.
Si vous souhaitez annuler l’action d’ignorer ou alors ignorer une condition, vous pouvez supprimer les conditions pour ignorer le fichier dependabot.yml ou rouvrir la demande de tirage.
Pour les demandes de tirage pour les mises à jour groupées, vous pouvez également utiliser @dependabot unignore commandes de commentaire. Les commandes @dependabot unignore de commentaire vous permettent d’effectuer les opérations suivantes en commentant une demande de tirage Dependabot :
- Annuler l’action d’ignorer une condition d'ignorance spécifique
- Annuler l’action d’ignorer une dépendance spécifique
- Annuler l’action d’ignorer toutes les conditions d’ignorance pour toutes les dépendances dans une demande de tirage (pull request) Dependabot
Pour plus d’informations, consultez « Gestion des demandes de tirage (pull request) pour les mises à jour des dépendances ».
Autoriser la mise à jour des dépendances spécifiques
Vous pouvez utiliser allow pour indiquer à Dependabot les dépendances que vous souhaitez conserver.
allow est utilisé conjointement avec ignore.
Pour plus d’informations, consultez allow dans Référence des options Dependabot.
Par défaut, Dependabot crée des demandes de mise à jour de version uniquement pour les dépendances qui sont explicitement définies dans un manifeste (direct dépendances). Cette configuration utilise allow pour indiquer à Dependabot que nous voulons qu’elles conservent all types de dépendances. C’est-à-dire à la fois les dépendances direct et leurs dépendances (également appelées sous-dépendances ou dépendances temporaires). En outre, la configuration indique à Dependabot d’ignorer toutes les dépendances avec un nom correspondant au modèle org.xwiki.*, car nous avons un processus différent pour les maintenir.
Conseil
Dependabot recherche toutes les dépendances autorisées, puis filtre toutes les dépendances ou versions ignorées. Si une dépendance est mise en correspondance par une instruction autoriser et une instruction ignorer, elle est ignorée.
version: 2
registries:
# Helps find updates for non Maven Central dependencies
maven-xwiki-public:
type: maven-repository
url: https://nexus.xwiki.org/nexus/content/groups/public/
username: ""
password: ""
# Required to resolve xwiki-common SNAPSHOT parent pom
maven-xwiki-snapshots:
type: maven-repository
url: https://maven.xwiki.org/snapshots
username: ""
password: ""
updates:
- package-ecosystem: "maven"
directory: "/"
registries:
- maven-xwiki-public
- maven-xwiki-snapshots
schedule:
interval: "weekly"
allow:
# Allow both direct and indirect updates for all packages.
- dependency-type: "all"
ignore:
# Ignore XWiki dependencies. We have a separate process for updating them
- dependency-name: "org.xwiki.*"
open-pull-requests-limit: 15
version: 2
registries:
# Helps find updates for non Maven Central dependencies
maven-xwiki-public:
type: maven-repository
url: https://nexus.xwiki.org/nexus/content/groups/public/
username: ""
password: ""
# Required to resolve xwiki-common SNAPSHOT parent pom
maven-xwiki-snapshots:
type: maven-repository
url: https://maven.xwiki.org/snapshots
username: ""
password: ""
updates:
- package-ecosystem: "maven"
directory: "/"
registries:
- maven-xwiki-public
- maven-xwiki-snapshots
schedule:
interval: "weekly"
allow:
# Allow both direct and indirect updates for all packages.
- dependency-type: "all"
ignore:
# Ignore XWiki dependencies. We have a separate process for updating them
- dependency-name: "org.xwiki.*"
open-pull-requests-limit: 15
Ignorer des versions ou des plages de versions spécifiques
Vous pouvez utiliser versions en conjonction avec ignore pour ignorer des versions spécifiques ou des plages de versions.
Pour plus d’informations, consultez versions dans Référence des options Dependabot.
-
Pour ignorer une version spécifique
YAML ignore: - dependency-name: "django*" # Ignore version 11 versions: [ "11" ]ignore: - dependency-name: "django*" # Ignore version 11 versions: [ "11" ] -
Pour ignorer une plage de versions
YAML ignore: - dependency-name: "@types/node" versions: ["15.x", "14.x", "13.x"] - dependency-name: "xdg-basedir" # 5.0.0 has breaking changes as they switch to named exports # and convert the module to ESM # We can't use it until we switch to ESM across the project versions: ["5.x"] - dependency-name: "limiter" # 2.0.0 has breaking changes # so we want to delay updating. versions: ["2.x"]ignore: - dependency-name: "@types/node" versions: ["15.x", "14.x", "13.x"] - dependency-name: "xdg-basedir" # 5.0.0 has breaking changes as they switch to named exports # and convert the module to ESM # We can't use it until we switch to ESM across the project versions: ["5.x"] - dependency-name: "limiter" # 2.0.0 has breaking changes # so we want to delay updating. versions: ["2.x"]
Spécifier le niveau de version sémantique à ignorer
Vous pouvez spécifier un ou plusieurs niveaux de contrôle de version sémantique (SemVer) à ignorer à l’aide de update-types.
Pour plus d’informations, consultez update-types dans Référence des options Dependabot.
Dans cet exemple, Dependabot ignore les versions des correctifs pour Node.
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
ignore:
- dependency-name: "express"
# For Express, ignore all updates for version 4 and 5
versions: ["4.x", "5.x"]
# For Lodash, ignore all updates
- dependency-name: "lodash"
- dependency-name: "@types/node"
# For Node types, ignore any patch versions
update-types: ["version-update:semver-patch"]
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
ignore:
- dependency-name: "express"
# For Express, ignore all updates for version 4 and 5
versions: ["4.x", "5.x"]
# For Lodash, ignore all updates
- dependency-name: "lodash"
- dependency-name: "@types/node"
# For Node types, ignore any patch versions
update-types: ["version-update:semver-patch"]
Définition d’une stratégie de gestion des versions
Par défaut, Dependabot tente d’augmenter la version minimale requise pour les dépendances qu’elle identifie en tant qu’applications et élargit les exigences de version autorisées pour inclure les nouvelles et les anciennes versions pour les dépendances qu’elle identifie en tant que bibliothèques.
Vous pouvez modifier cette stratégie par défaut. Pour plus d’informations, consultez versioning-strategy dans Référence des options Dependabot.
Dans cet exemple, Dependabot augmentera la version minimale requise pour qu’elle corresponde à la nouvelle version des applications et des bibliothèques.
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
# Increase the minimum version for all npm dependencies
versioning-strategy: increase
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
# Increase the minimum version for all npm dependencies
versioning-strategy: increase
Dans cet exemple, Dependabot augmentera la version minimale requise uniquement si la contrainte d’origine n’autorise pas la nouvelle version.
version: 2
updates:
- package-ecosystem: pip
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 20
rebase-strategy: "disabled"
# Increase the version requirements for pip
# only when required
versioning-strategy: increase-if-necessary
version: 2
updates:
- package-ecosystem: pip
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 20
rebase-strategy: "disabled"
# Increase the version requirements for pip
# only when required
versioning-strategy: increase-if-necessary
Mise à jour des dépendances fournisseur
Vous pouvez demander à Dependabot de mettre à jour les dépendances spécifiques au vendeur.
Dependabot gère automatiquement les dépendances fournisseur pour les modules Go, et vous pouvez configurer Bundler pour mettre également à jour les dépendances fournisseur.
Pour plus d’informations, consultez vendor dans Référence des options Dependabot.
Dans cet exemple, vendor est défini sur true pour Bundler, ce qui signifie que Dependabot conserve également les dépendances pour Bundler stockées dans le répertoire fournisseur/cache du référentiel.
version: 2
updates:
- package-ecosystem: bundler
directory: "/"
# Vendoring Bundler
vendor: true
schedule:
interval: weekly
day: saturday
open-pull-requests-limit: 10
version: 2
updates:
- package-ecosystem: bundler
directory: "/"
# Vendoring Bundler
vendor: true
schedule:
interval: weekly
day: saturday
open-pull-requests-limit: 10