Remarque : Votre administrateur de site doit configurer les Dependabot updates pour votre instance GitHub Enterprise Server afin que vous puissiez utiliser cette fonctionnalité. Pour plus d’informations, consultez « Activation de Dependabot pour votre entreprise ».
À propos du fichier dependabot.yml
Le fichier de configuration Dependabot, dependabot.yml
, utilise la syntaxe YAML. Si vous débutez avec YAML et que vous souhaitez en savoir plus, consultez « Découvrir YAML en cinq minutes ».
Vous devez stocker ce fichier dans le répertoire .github
de votre dépôt. Quand vous ajoutez ou mettez à jour le fichier dependabot.yml
, une recherche immédiate des mises à jour de version est déclenchée. Pour plus d’informations et obtenir un exemple, consultez « Configuration de mises à jour de version Dependabot ».
Toutes les options qui affectent également les mises à jour de sécurité sont utilisées la prochaine fois qu’une alerte de sécurité déclenche une demande de tirage (pull request) pour une mise à jour de sécurité. Pour plus d’informations, consultez « Configuration des mises à jour de sécurité Dependabot ».
Remarque : vous ne pouvez pas configurer Dependabot alerts en utilisant le fichier dependabot.yml
.
Le fichier dependabot.yml
a deux clés de niveau supérieur obligatoires : version
et updates
. Vous pouvez éventuellement inclure une clé registries
de niveau supérieur. Le fichier doit commencer par version: 2
.
Options de configuration du fichier dependabot.yml
.
La clé updates
de niveau supérieur est obligatoire. Vous l’utilisez pour configurer la façon dont Dependabot met à jour les versions ou les dépendances de votre projet. Chaque entrée configure les paramètres de mise à jour pour un gestionnaire de package particulier. Vous pouvez utiliser les options suivantes.
Option | Obligatoire | Mises à jour de sécurité | Mises à jour de version | Description |
---|---|---|---|---|
package-ecosystem | Gestionnaire de package à utiliser | |||
directory | Emplacement des manifestes de package | |||
schedule.interval | Fréquence de la recherche des mises à jour | |||
allow | Personnaliser les mises à jour à autoriser | |||
assignees | Destinataires à définir sur les demandes de tirage | |||
commit-message | Préférences des messages de commit | |||
enable-beta-ecosystems | Activer les écosystèmes qui ont une prise en charge au niveau bêta | |||
ignore | Consultez ignore | Consultez ignore | Ignorer certaines dépendances ou versions | |
insecure-external-code-execution | Autoriser ou refuser l’exécution du code dans les fichiers manifeste | |||
labels | Étiquettes à définir sur les demandes de tirage | |||
milestone | Jalon à définir sur les demandes de tirage | |||
open-pull-requests-limit | Limiter le nombre de demandes de tirage ouvertes pour les mises à jour de version | |||
pull-request-branch-name.separator | Changer le séparateur des noms de branche de demande de tirage | |||
rebase-strategy | Désactiver le rebasage automatique | |||
registries | ||||
Registres privés auxquels Dependabot peut accéder | ||||
reviewers | Réviseurs à définir sur les demandes de tirage | |||
schedule.day | Jour de la semaine auquel rechercher les mises à jour | |||
schedule.time | Heure de la journée à laquelle rechercher les mises à jour (hh:mm) | |||
schedule.timezone | Fuseau horaire pour l’heure de la journée (identificateur de fuseau) | |||
target-branch | Branche par rapport à laquelle créer les demandes de tirage | |||
vendor | Mettre à jour les dépendances placées dans le répertoire vendor ou mises en cache | |||
versioning-strategy | Mode de mise à jour des exigences de la version du manifeste |
La plupart de ces options entrent dans l’une des catégories suivantes.
- Options de configuration essentielles que vous devez inclure dans toutes les configurations :
package-ecosystem
,directory
,schedule.interval
. - Options permettant de personnaliser la planification des mises à jour :
schedule.time
,schedule.timezone
,schedule.day
. - Options permettant de contrôler les dépendances à mettre à jour :
allow
,ignore
,vendor
. - Options permettant d’ajouter des métadonnées aux demandes de tirage :
reviewers
,assignees
,labels
,milestone
. - Options permettant de changer le comportement des demandes de tirage :
target-branch
,versioning-strategy
,commit-message
,rebase-strategy
,pull-request-branch-name.separator
.
En outre, l’option open-pull-requests-limit
change le nombre maximal de demandes de tirage pour les mises à jour de version que Dependabot peut ouvrir.
Remarque : Certaines de ces options de configuration peuvent également affecter les demandes de tirage déclenchées pour les mises à jour de sécurité des manifestes de package vulnérables.
Les mises à jour de sécurité ne sont déclenchées pour les manifestes de package vulnérables que sur la branche par défaut. Quand des options de configuration sont définies pour la même branche (ce qui est le cas sauf si vous utilisez target-branch
) et spécifient un package-ecosystem
et un directory
pour le manifeste vulnérable, les demandes de tirage pour les mises à jour de sécurité utilisent des options appropriées.
En général, les mises à jour de sécurité utilisent toutes les options de configuration qui affectent les demandes de tirage, par exemple, l’ajout de métadonnées ou la modification de leur comportement. Pour plus d’informations sur les mises à jour de sécurité, consultez « Configuration des mises à jour de sécurité Dependabot ».
package-ecosystem
Requis. Vous ajoutez un élément package-ecosystem
pour chaque gestionnaire de package pour lequel vous souhaitez que Dependabot surveille l’existence de nouvelles versions. Le dépôt doit également contenir un fichier de verrouillage ou manifeste de dépendance pour chacun de ces gestionnaires de packages. Si vous souhaitez activer le placement dans le répertoire vendor pour un gestionnaire de package qui le prend en charge, les dépendances placées dans le répertoire vendor doivent se trouver dans le répertoire requis. Pour plus d’informations, consultez vendor
ci-dessous.
Remarque : Les propriétaires d’entreprise peuvent télécharger la version la plus récente de l’action Dependabot pour obtenir la meilleure couverture de l’écosystème. Pour plus d’informations sur l’action et pour obtenir des instructions sur le téléchargement de la version la plus récente, consultez « Utilisation de la dernière version des actions groupées officielles ».
Pour chaque gestionnaire de package, le tableau suivant montre ce qui suit :
- Valeur YAML à utiliser dans le fichier
dependabot.yml
- Versions prises en charge du gestionnaire de package
- Indique si les dépendances des référentiels et registres privés GitHub sont pris en charge
- Indique si les dépendances fournisseur sont prises en charge
Gestionnaire de package | Valeur YAML | Versions prises en charge | Référentiels privés | Registres privés | Vendoring |
---|---|---|---|---|---|
Bundler | bundler | v1, v2 | |||
Cargo | cargo | v1 | (git uniquement) | ||
Composer | composer | v1, v2 | |||
Docker | docker | v1 | Non applicable | ||
Hex | mix | v1 | |||
elm-package | elm | v0.19 | |||
sous-module git | gitsubmodule | Non applicable | Non applicable | ||
GitHub Actions | github-actions | Non applicable | Non applicable | ||
Modules Go | gomod | v1 | |||
Gradle | gradle | Non applicable | |||
Maven | maven | Non applicable | |||
npm | npm | v6, v7, v8, v9 | |||
NuGet | nuget | <= 4.8 | |||
pip | pip | v21.1.2 | |||
pipenv | pip | <= 2021-05-29 | |||
pip-compile | pip | 6.1.0 | |||
poetry | pip | v1 | |||
bistrot | pub | v2 | |||
Terraform | terraform | >= 0.13, <= 1.5.x | Non applicable | ||
yarn | npm | v1 |
Conseil : pour les gestionnaires de package tels que pipenv
et poetry
, vous devez utiliser la valeur YAML pip
. Par exemple, si vous utilisez poetry
pour gérer vos dépendances Python et que vous souhaitez que Dependabot surveille votre fichier manifeste de dépendance pour les nouvelles versions, utilisez package-ecosystem: "pip"
dans votre fichier dependabot.yml
.
Cargo
La prise en charge des registres privés s’applique aux registres git et n’inclut pas les registres cargo.
GitHub Actions
Dependabot prend uniquement en charge les mises à jour pour GitHub Actions avec la syntaxe du dépôt GitHub, comme actions/checkout@v4. Les URL Docker Hub et GitHub Packages Container registry ne sont actuellement pas prises en charge.
Dependabot prend en charge les référentiels publics et privés pour GitHub Actions. Pour connaître les options de configuration du registre privé, consultez « git
» dans « Options de configuration pour le fichier dependabot.yml ».
Gradle
Gradle est pris en charge uniquement pour Dependabot version updates.
Dependabot n’exécute pas Gradle, mais prend en charge les mises à jour vers les fichiers suivants :
build.gradle
,build.gradle.kts
(pour les projets Kotlin)- Les fichiers inclus via la déclaration
apply
qui ontdependencies
dans le nom de fichier. Notez queapply
ne prend pas en chargeapply to
, la récursivité ou les syntaxes avancées (par exemple, les noms de fichierapply
avecmapOf
Kotlin définis par propriété).
Maven
Dependabot n’exécute pas Maven, mais prend en charge les mises à jour des fichiers pom.xml
.
Interface de ligne de commande NuGet
Dependabot n’exécute pas l’interface CLI NuGet, mais prend en charge la plupart des fonctionnalités jusqu’à la version 4.8.
pnpm
pnpm est pris en charge uniquement pour Dependabot version updates. Les Dependabot security updates ne sont pas prises en charge actuellement.
bistrot
Dependabot n’effectue pas de mise à jour pour pub
quand la version vers laquelle il tente d’opérer la mise à jour est ignorée, même si une version antérieure est disponible.
Exemple d’installation de base pour trois gestionnaires de package
# Basic set up for three package managers
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
# Maintain dependencies for npm
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Maintain dependencies for Composer
- package-ecosystem: "composer"
directory: "/"
schedule:
interval: "weekly"
directory
Requis. Vous devez définir l’emplacement des manifestes de package pour chaque gestionnaire de package (par exemple, package.json ou Gemfile). Vous définissez le répertoire par rapport à la racine du dépôt pour tous les écosystèmes, sauf GitHub Actions. Pour GitHub Actions, définissez le répertoire sur /
pour rechercher les fichiers de workflow dans .github/workflows
.
# Specify location of manifest files for each package manager
version: 2
updates:
- package-ecosystem: "composer"
# Files stored in repository root
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "npm"
# Files stored in `app` directory
directory: "/app"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
# Workflow files stored in the
# default location of `.github/workflows`
directory: "/"
schedule:
interval: "weekly"
schedule.interval
Requis. Vous devez définir la fréquence à laquelle rechercher de nouvelles versions pour chaque gestionnaire de package. Par défaut, Dependabot attribue de façon aléatoire une heure pour appliquer toutes les mises à jour dans le fichier de configuration. Pour définir une heure spécifique, vous pouvez utiliser schedule.time
et schedule.timezone
.
Remarque : L’option schedule.time
est la meilleure possible, mais cela peut prendre un certain temps avant que Dependabot ouvre les demandes de tirage pour la mise à jour vers des versions de dépendance plus récentes.
Types d’intervalle | Fréquence |
---|---|
daily | L’exécution a lieu tous les jours de la semaine, du lundi au vendredi. |
weekly | L’exécution a lieu une fois par semaine. Par défaut, il s’agit du lundi. Pour modifier cela, utilisez schedule.day . |
monthly | L’exécution a lieu une fois par mois. Elle se produit le premier jour du mois. |
# Set update schedule for each package manager
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every weekday
interval: "daily"
- package-ecosystem: "composer"
directory: "/"
schedule:
# Check for updates managed by Composer once a week
interval: "weekly"
Remarque : schedule
définit quand Dependabot tente une nouvelle mise à jour. Toutefois, ce n’est pas la seule fois que vous pouvez recevoir des demandes de tirage. Les mises à jour peuvent être déclenchées en fonction des modifications apportées à votre fichier dependabot.yml
, des modifications apportées à vos fichiers manifestes après l’échec d’une mise à jour ou des Dependabot security updates. Pour plus d’informations, consultez « À propos des mises à jour de version Dependabot » et « À propos des mises à jour de sécurité Dependabot ».
allow
Par défaut, toutes les dépendances explicitement définies dans un manifeste sont tenues à jour par les mises à jour de version de Dependabot. De plus, les mises à jour de sécurité de Dependabot mettent également à jour les dépendances vulnérables qui sont définies dans les fichiers de verrouillage. Vous pouvez utiliser allow
et ignore
pour personnaliser les dépendances à conserver. Dependabot recherche toutes les dépendances autorisées, puis filtre toutes les dépendances ou versions ignorées. Dès lors, une dépendance mise en correspondance par allow
et ignore
est ignorée.
Utilisez l’option allow
pour personnaliser les dépendances à mettre à jour. Cela s’applique aux mises à jour de version et de sécurité. Vous pouvez utiliser les options suivantes :
-
dependency-name
: permet d’autoriser les mises à jour des dépendances dont le nom correspond à une chaîne donnée. Vous pouvez utiliser*
pour indiquer zéro ou plusieurs caractères.- Pour les dépendances Java, le format de l’attribut
dependency-name
est :groupId:artifactId
; par exemple :org.kohsuke:github-api
. - Pour les étiquettes d’image Docker, le format est le nom complet du dépôt ; par exemple, pour une étiquette d’image de
<account ID>.dkr.ecr.us-west-2.amazonaws.com/base/foo/bar/ruby:3.1.0-focal-jemalloc
, utilisezbase/foo/bar/ruby
.
- Pour les dépendances Java, le format de l’attribut
-
dependency-type
: permet d’autoriser les mises à jour pour les dépendances de types spécifiques.Types de dépendances Pris en charge par les gestionnaires de packages Autoriser les mises à jour direct
Tous Toutes les dépendances définies explicitement. indirect
bundler
,pip
,composer
,cargo
Dépendances de dépendances directes (également appelées sous-dépendances ou dépendances temporaires). all
Tous Toutes les dépendances définies explicitement. Pour bundler
,pip
,composer
,cargo
, également les dépendances des dépendances directes.production
bundler
,composer
,mix
,maven
,npm
,pip
Uniquement les dépendances du groupe de dépendances de production. development
bundler
,composer
,mix
,maven
,npm
,pip
Uniquement les dépendances du groupe de dépendances de développement.
# Use `allow` to specify which dependencies to maintain
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
allow:
# Allow updates for Lodash
- dependency-name: "lodash"
# Allow updates for React and any packages starting "react"
- dependency-name: "react*"
- package-ecosystem: "composer"
directory: "/"
schedule:
interval: "weekly"
allow:
# Allow both direct and indirect updates for all packages
- dependency-type: "all"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
allow:
# Allow only direct updates for
# Django and any packages starting "django"
- dependency-name: "django*"
dependency-type: "direct"
# Allow only production updates for Sphinx
- dependency-name: "sphinx"
dependency-type: "production"
assignees
Utilisez assignees
pour spécifier des destinataires individuels pour toutes les demandes de tirage déclenchées pour un gestionnaire de package.
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.
# Specify assignees for pull requests
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Add assignees
assignees:
- "octocat"
commit-message
Par défaut, Dependabot tente de détecter vos préférences de message de commit et d’utiliser des modèles similaires. Utilisez l’option commit-message
pour spécifier explicitement vos préférences.
Options prises en charge
Remarque : Les options prefix
et prefix-development
sont limitées à 15 caractères.
-
prefix
spécifie un préfixe pour tous les messages de commit. Lorsque vous spécifiez un préfixe pour les messages de commit, GitHub ajoute automatiquement un signe deux-points entre le préfixe défini et le message de commit, à condition que le préfixe défini se termine par une lettre, un nombre, une parenthèse fermante ou un crochet fermant. Cela signifie que, par exemple, si vous terminez le préfixe par un espace, aucun signe deux-points n’est ajouté entre le préfixe et le message de commit. L’extrait de code ci-dessous fournit des exemples des deux dans le même fichier de configuration. -
prefix-development
spécifie un préfixe distinct pour tous les messages de commit qui mettent à jour les dépendances du groupe de dépendances de développement. Quand vous spécifiez une valeur pour cette option, leprefix
est utilisé uniquement pour les mises à jour des dépendances du groupe de dépendances production. Cela est pris en charge par :bundler
,composer
,mix
,maven
,npm
etpip
. -
include: "scope"
spécifie que tout préfixe est suivi d’une liste des dépendances mises à jour dans le commit.
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.
# 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"
include: "scope"
Si vous utilisez la même configuration que dans l’exemple ci-dessus, le déplacement de la bibliothèque requests
dans le groupe de dépendances de développement pip
génère un message de validation :
pip dev: bump requests from 1.0.0 to 1.0.1
ignore
Par défaut, toutes les dépendances explicitement définies dans un manifeste sont tenues à jour par les mises à jour de version de Dependabot. De plus, les mises à jour de sécurité de Dependabot mettent également à jour les dépendances vulnérables qui sont définies dans les fichiers de verrouillage. Vous pouvez utiliser allow
et ignore
pour personnaliser les dépendances à conserver. Dependabot recherche toutes les dépendances autorisées, puis filtre toutes les dépendances ou versions ignorées. Dès lors, une dépendance mise en correspondance par allow
et ignore
est ignorée.
Vous pouvez ignorer les dépendances en les ajoutant à ignore
ou en utilisant la commande @dependabot ignore
sur une demande de tirage ouverte par Dependabot.
Création de conditions ignore
à partir de @dependabot ignore
Les dépendances ignorées avec la commande @dependabot ignore
sont stockées de manière centralisée pour chaque gestionnaire de package. Si vous commencez à ignorer les dépendances dans le fichier dependabot.yml
, ces préférences existantes sont prises en compte en même temps que les dépendances ignore
dans la configuration.
Vous pouvez vérifier si un référentiel a des préférences ignore
stockées en y recherchant "@dependabot ignore" in:comments
ou en utilisant la commande de commentaire @dependabot show DEPENDENCY_NAME ignore conditions
. Si vous souhaitez ne plus débloquer les mises à jour pour une dépendance ignorée de cette façon, rouvrez la demande de tirage (pull request). Cela efface les conditions ignore
qui ont été définies lorsque la demande de tirage a été fermée et reprend ces mises à jour de version Dependabot pour la dépendance. Pour mettre à jour la dépendance vers une version plus récente, fusionnez la demande de tirage (pull request).
Pour plus d’informations sur les commandes @dependabot ignore
, consultez « Gestion des demandes de tirage (pull request) pour les mises à jour des dépendances ».
Spécification des dépendances et des versions à ignorer
Vous pouvez utiliser l’option ignore
pour personnaliser les dépendances à mettre à jour. L’option ignore
prend en charge les options suivantes :
Option | Description |
---|---|
dependency-name | Permet d’ignorer les mises à jour des dépendances dont le nom correspond à une chaîne donnée. Vous pouvez utiliser * pour indiquer zéro ou plusieurs caractères.Pour les dépendances Java, le format de l’attribut dependency-name est : groupId:artifactId (par exemple : org.kohsuke:github-api ).Pour empêcher Dependabot de mettre à jour automatiquement les définitions du type TypeScript à partir de DefinitelyTyped, utilisez @types/* . |
versions | Permet d’ignorer des versions ou des plages de versions spécifiques. Si vous souhaitez définir une plage, utilisez le modèle standard du gestionnaire de package. Par exemple, pour npm, utilisez ^1.0.0 ; pour Bundler, utilisez ~> 2.0 ; pour Docker, utilisez la syntaxe de version Ruby ; pour NuGet, utilisez 7.* . |
update-types | Permet d’ignorer des types de mises à jour, telles que les mises à jour major , minor ou patch SemVer sur les mises à jour de version (par exemple : version-update:semver-patch ignore les mises à jour correctives). Vous pouvez combiner cela avec dependency-name: "*" pour ignorer des update-types particuliers pour toutes les dépendances.version-update:semver-major , version-update:semver-minor et version-update:semver-patch sont les seules options prises en charge. |
Quand elle est utilisée seule, la clé ignore.versions
affecte les deux mises à jour Dependabot, mais la clé ignore.update-types
affecte uniquement Dependabot version updates.
Toutefois, si versions
et update-types
sont utilisés conjointement dans la même règle ignore
, les deux mises à jour Dependabot sont affectées, sauf si la configuration utilise target-branch
pour vérifier les mises à jour de version sur une branche autre que celle par défaut.
# Use `ignore` to specify dependencies that should not be updated
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
ignore:
- dependency-name: "express"
# For Express, ignore all Dependabot updates for version 4 and 5
versions: ["4.x", "5.x"]
# For Lodash, ignore all updates
- dependency-name: "lodash"
# For AWS SDK, ignore all patch updates for version updates only
- dependency-name: "aws-sdk"
update-types: ["version-update:semver-patch"]
Remarque : Dependabot ne peut exécuter des mises à jour de version sur les fichiers manifeste ou de verrouillage que s’il peut accéder à toutes les dépendances dans le fichier, même si vous ajoutez des dépendances inaccessibles à l’option ignore
de votre fichier de configuration. Pour plus d’informations, consultez « Gestion des paramètres de sécurité et d’analyse pour votre organisation » et « Résolution des erreurs Dependabot ».
Remarque : Pour l’écosystème pub
, Dependabot n’effectue pas de mise à jour quand la version vers laquelle il tente d’opérer la mise à jour est ignorée, même si une version antérieure est disponible.
insecure-external-code-execution
Les gestionnaires de package avec les valeurs package-ecosystem
bundler
, mix
et pip
peuvent exécuter du code externe dans le manifeste dans le cadre du processus de mise à jour de version. Cela peut permettre à un package compromis de voler des informations d’identification ou d’accéder aux registres configurés. Quand vous ajoutez un paramètre registries
dans une configuration updates
, Dependabot empêche automatiquement l’exécution de code externe, ce qui peut entraîner l’échec de la mise à jour de version. Vous pouvez choisir de remplacer ce comportement et d’autoriser l’exécution de code externe pour les gestionnaires de packages bundler
, mix
et pip
en définissant insecure-external-code-execution
sur allow
.
# Allow external code execution when updating dependencies from private registries
version: 2
registries:
ruby-github:
type: rubygems-server
url: https://rubygems.pkg.github.com/octocat/github_api
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
updates:
- package-ecosystem: "bundler"
directory: "/rubygems-server"
insecure-external-code-execution: allow
registries: "*"
schedule:
interval: "monthly"
Si vous définissez un paramètre registries
pour autoriser Dependabot à accéder à un registre de packages privé et que vous définissez insecure-external-code-execution
avec la valeur allow
dans la même configuration updates
, l’exécution de code externe qui se produit n’a accès qu’aux gestionnaires de package dans les registres associés à ce paramètre updates
. Aucun accès aux registres définis dans la configuration registries
de niveau supérieur n’est autorisé.
Dans cet exemple, le fichier de configuration permet à Dependabot d’accéder au registre de packages privé ruby-github
. Dans le même paramètre updates
, insecure-external-code-execution
est défini avec la valeur allow
, ce qui signifie que le code exécuté par les dépendances accède uniquement au registre ruby-github
, et non au registre dockerhub
.
# Using `registries` in conjunction with `insecure-external-code-execution:allow`
# in the same `updates` setting
version: 2
registries:
ruby-github:
type: rubygems-server
url: https://rubygems.pkg.github.com/octocat/github_api
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
dockerhub:
type: docker-registry
url: registry.hub.docker.com
username: octocat
password: ${{secrets.DOCKERHUB_PASSWORD}}
updates:
- package-ecosystem: "bundler"
directory: "/rubygems-server"
insecure-external-code-execution: allow
registries:
- ruby-github # only access to registries associated with this ecosystem/directory
schedule:
interval: "monthly"
Vous pouvez refuser explicitement l’exécution de code externe, qu’il existe ou non un paramètre registries
pour cette configuration de mise à jour, en définissant insecure-external-code-execution
avec la valeur deny
.
labels
Par défaut, Dependabot déclenche toutes les demandes de tirage avec l’étiquette dependencies
. Si plusieurs gestionnaires de package sont définis, Dependabot inclut une étiquette supplémentaire sur chaque demande de tirage. Cela indique le langage ou l’écosystème que la demande de tirage va mettre à jour, par exemple : java
pour les mises à jour de Gradle, et submodules
pour les mises à jour de sous-module Git. Dependabot crée automatiquement ces étiquettes par défaut si nécessaire dans votre dépôt.
Utilisez labels
afin de remplacer les étiquettes par défaut et de spécifier d’autres étiquettes pour toutes les demandes de tirage déclenchées pour un gestionnaire de package. Si l’une de ces étiquettes n’est pas définie dans le dépôt, elle est ignorée.
Pour désactiver toutes les étiquettes, y compris les étiquettes par défaut, utilisez labels: [ ]
.
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.
# Specify labels for pull requests
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Specify labels for npm pull requests
labels:
- "npm"
- "dependencies"
milestone
Utilisez milestone
pour associer toutes les demandes de tirage déclenchées pour un gestionnaire de package à un jalon. Vous devez spécifier l’identificateur numérique du jalon et non son étiquette. Si vous affichez un jalon, la dernière partie de l’URL de la page, après milestone
, est l’identificateur. Par exemple : https://github.com/<org>/<repo>/milestone/3
.
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.
# Specify a milestone for pull requests
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Associate pull requests with milestone "4"
milestone: 4
open-pull-requests-limit
Par défaut, Dependabot ouvre un maximum de cinq demandes de tirage pour les mises à jour de version. Une fois qu’il y a cinq demandes de tirage (pull requests) ouvertes provenant de Dependabot, Dependabot n’ouvre aucune nouvelle demande tant que certaines de ces demandes ouvertes ne sont pas fusionnées ou fermées. Utilisez open-pull-requests-limit
pour changer cette limite. Cela permet également de désactiver temporairement les mises à jour de version pour un gestionnaire de package.
Cette option n’a aucun impact sur les mises à jour de sécurité, qui ont une limite interne distincte de dix demandes de tirage ouvertes.
# Specify the number of open pull requests allowed
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Disable version updates for npm dependencies
open-pull-requests-limit: 0
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
# Allow up to 10 open pull requests for pip dependencies
open-pull-requests-limit: 10
pull-request-branch-name.separator
Dependabot génère une branche pour chaque demande de tirage. Chaque nom de branche inclut dependabot
ainsi que le gestionnaire de package et la dépendance qui sont mis à jour. Par défaut, ces parties sont séparées par un symbole /
, par exemple : dependabot/npm_and_yarn/next_js/acorn-6.4.1
.
Utilisez pull-request-branch-name.separator
pour spécifier un séparateur différent. Ce peut être "-"
, _
ou /
. Le symbole de trait d’union doit être placé entre guillemets, afin qu’il ne soit pas interprété comme démarrant une liste YAML vide.
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.
# Specify a different separator for branch names
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
pull-request-branch-name:
# Separate sections of the branch name with a hyphen
# for example, `dependabot-npm_and_yarn-next_js-acorn-6.4.1`
separator: "-"
rebase-strategy
Par défaut, Dependabot rebase automatiquement les demandes de tirage ouvertes quand il détecte des modifications apportées à la demande de tirage. Utilisez rebase-strategy
pour désactiver ce comportement.
Stratégies de rebasage disponibles
auto
pour utiliser le comportement par défaut et rebaser les demandes de tirage ouvertes quand des modifications sont détectées.disabled
pour désactiver le rebasage automatique.
Lorsque rebase-strategy
est défini sur auto
, Dependabot tente de rebaser les demandes de tirage dans les cas suivants.
- Lorsque vous utilisez les Dependabot version updates, pour toute demande de tirage Dependabot ouverte lors de l’exécution de votre planification.
- Lorsque vous rouvrez une demande de tirage Dependabot fermée.
- Lorsque vous changez la valeur de
target-branch
dans le fichier de configuration Dependabot. Pour plus d’informations sur ce champ, consultez «target-branch
». - Lorsque Dependabot détecte qu’une demande de tirage Dependabot est en conflit après une poussée récente vers la branche cible.
Remarque : Dependabot continue de rebaser une demande de tirage indéfiniment jusqu’à ce que la demande de tirage soit fermée, fusionnée ou que vous désactiviez les Dependabot updates.
Lorsque rebase-strategy
est défini sur disabled
, Dependabot arrête de rebaser les demandes de tirage.
Remarque : Ce comportement s’applique uniquement aux demandes de tirage qui entrent en conflit avec la branche cible. Dependabot continue de procéder au rebasage des demandes de tirage ouvertes avant la modification du paramètre rebase-strategy
, ainsi que des demandes de tirage qui font partie d’une exécution planifiée.
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.
# Disable automatic rebasing
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Disable rebasing for npm pull requests
rebase-strategy: "disabled"
registries
Pour permettre à Dependabotd’accéder à un registre de packages privé lors de l’exécution d’une mise à jour de version, vous devez inclure un paramètre registries
dans la configuration updates
appropriée. Vous pouvez autoriser l’utilisation de tous les registres définis en définissant registries
sur "*"
. Vous pouvez également lister les registres que la mise à jour peut utiliser. Pour ce faire, utilisez le nom du registre tel que défini dans la section registries
de niveau supérieur du fichier dependabot.yml
. Pour plus d’informations, consultez « Options de configuration pour les registres privés » plus bas.
Pour des informations détaillées sur les options disponibles, ainsi que des recommandations et des conseils sur la configuration des registres privés, consultez « Aide pour la configuration des registres privés pour Dependabot ».
Pour permettre à Dependabot d’utiliser les gestionnaires de packages bundler
, mix
et pip
afin de mettre à jour les dépendances dans les registres privés, vous pouvez choisir d’autoriser l’exécution de code externe. Pour plus d’informations, consultez insecure-external-code-execution
plus haut.
# Allow Dependabot to use one of the two defined private registries
# when updating dependency versions for this ecosystem
version: 2
registries:
maven-github:
type: maven-repository
url: https://maven.pkg.github.com/octocat
username: octocat
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
npm-npmjs:
type: npm-registry
url: https://registry.npmjs.org
username: octocat
password: ${{secrets.MY_NPM_PASSWORD}}
updates:
- package-ecosystem: "gitsubmodule"
directory: "/"
registries:
- maven-github
schedule:
interval: "monthly"
reviewers
Utilisez reviewers
pour spécifier des réviseurs individuels ou des équipes de réviseurs pour toutes les demandes de tirage déclenchées pour un gestionnaire de package. Vous devez utiliser le nom complet de l’équipe, y compris l’organisation, comme si vous mentionniez (@mentioning) l’équipe.
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.
# Specify reviewers for pull requests
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
# Add reviewers
reviewers:
- "octocat"
- "my-username"
- "my-org/python-team"
schedule.day
Quand vous définissez une planification de mise à jour weekly
, par défaut, Dependabot recherche les nouvelles versions le lundi à une heure définie aléatoire pour le dépôt. Utilisez schedule.day
afin de spécifier un autre jour pour rechercher les mises à jour.
Valeurs prises en charge
monday
tuesday
wednesday
thursday
friday
saturday
sunday
# Specify the day for weekly checks
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Check for npm updates on Sundays
day: "sunday"
schedule.time
Par défaut, Dependabot recherche les nouvelles versions à une heure définie aléatoire pour le dépôt. Utilisez schedule.time
afin de spécifier une autre heure de la journée pour rechercher les mises à jour (format : hh:mm
).
# Set a time for checks
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Check for npm updates at 9am UTC
time: "09:00"
schedule.timezone
Par défaut, Dependabot recherche les nouvelles versions à une heure définie aléatoire pour le dépôt. Utilisez schedule.timezone
pour spécifier un autre fuseau horaire. L’identificateur de fuseau horaire doit provenir de la base de données de fuseaux horaires gérée par iana. Pour plus d’informations, consultez Liste des fuseaux horaires de la base de données tz.
# Specify the timezone for checks
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
time: "09:00"
# Use Japan Standard Time (UTC +09:00)
timezone: "Asia/Tokyo"
target-branch
Par défaut, Dependabot recherche les fichiers manifestes sur la branche par défaut et déclenche des demandes de tirage pour les mises à jour de version sur cette branche. Utilisez target-branch
pour spécifier une branche différente pour les fichiers manifestes et pour les demandes de tirage. Quand vous utilisez cette option, les paramètres de ce gestionnaire de package n’affectent plus les demandes de tirage déclenchées pour les 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"
vendor
Utilisez l’option vendor
pour indiquer à Dependabot de placer les dépendances dans le répertoire vendor lors de leur mise à jour. N’utilisez pas cette option si vous utilisez gomod
, car Dependabot détecte automatiquement le placement dans le répertoire vendor pour cet outil.
# Configure version updates for both dependencies defined in manifests and vendored dependencies
version: 2
updates:
- package-ecosystem: "bundler"
# Raise pull requests to update vendored dependencies that are checked in to the repository
vendor: true
directory: "/"
schedule:
interval: "weekly"
Dependabot met uniquement à jour les dépendances placées dans le répertoire vendor situées dans des répertoires spécifiques au sein d’un dépôt.
Gestionnaire de package | Chemin de fichier requis pour les dépendances placées dans le répertoire vendor | Plus d’informations |
---|---|---|
bundler | Les dépendances doivent se trouver dans le répertoire vendor/cache. Les autres chemins de fichier ne sont pas pris en charge. | Documentation bundle cache |
gomod | Aucune exigence de chemin (les dépendances se trouvent généralement dans le répertoire vendor) | Documentation go mod vendor |
versioning-strategy
Quand Dependabot modifie un fichier manifeste pour mettre à jour une version, il existe plusieurs stratégies de versioning potentielles :
Option | Action |
---|---|
auto | Essayez de différencier les applications et les bibliothèques. Utilisez increase pour les applications et widen pour les bibliothèques. |
increase | Augmentez toujours la version minimale requise pour qu’elle corresponde à la nouvelle version. Si une plage existe déjà, ceci va en général seulement augmenter la limite inférieure. |
increase-if-necessary | Laissez la contrainte si la contrainte d’origine autorise la nouvelle version ; sinon, supprimez la contrainte. |
lockfile-only | Créer uniquement des demandes de tirage pour mettre à jour les fichiers de verrouillage. Ignorer toutes les nouvelles versions qui nécessitent des modifications du manifeste de package. |
widen | Élargissez les exigences en matière de versions autorisées pour inclure à la fois les nouvelles et les anciennes versions, quand c’est possible. En règle générale, Ceci augmente seulement la version maximale requise. |
N/A | Certains gestionnaires de package ne prennent pas encore en charge la configuration du paramètre versioning-strategy . |
Le tableau suivant montre un exemple d’utilisation de versioning-strategy
.
Contrainte actuelle | Version actuelle | Nouvelle version | Stratégie | New (contrainte) |
---|---|---|---|---|
^1.0.0 | 1.0.0 | 1.2.0 | widen | ^1.0.0 |
^1.0.0 | 1.0.0 | 1.2.0 | increase | ^1.2.0 |
^1.0.0 | 1.0.0 | 1.2.0 | increase-if-necessary | ^1.0.0 |
^1.0.0 | 1.0.0 | 2.0.0 | widen | >=1.0.0 <3.0.0 |
^1.0.0 | 1.0.0 | 2.0.0 | increase | ^2.0.0 |
^1.0.0 | 1.0.0 | 2.0.0 | increase-if-necessary | ^2.0.0 |
Utilisez l’option versioning-strategy
afin de changer ce comportement pour les gestionnaires de packages pris en charge.
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.
Stratégies de mise à jour disponibles :
Écosystème | Stratégies de versioning prises en charge | Stratégie par défaut |
---|---|---|
bundler | auto , increase , increase-if-necessary , lockfile-only | auto |
cargo | auto , lockfile-only | auto |
composer | auto , increase , increase-if-necessary , lockfile-only , widen | auto |
docker | N/A | N/A |
github-actions | N/A | N/A |
gitsubmodule | N/A | N/A |
gomod | N/A | N/A |
gradle | N/A | N/A |
maven | N/A | N/A |
mix | auto , lockfile-only | auto |
npm | auto , increase , increase-if-necessary , lockfile-only , widen | auto |
nuget | N/A | N/A |
pip | auto , increase , increase-if-necessary , lockfile-only | auto |
pub | auto , increase , increase-if-necessary , widen | auto |
terraform | N/A | N/A |
Remarque : N/A
indique que le gestionnaire de package ne prend pas encore en charge la configuration du paramètre versioning-strategy
. Le code des stratégies étant open source, si vous souhaitez qu’un écosystème particulier puisse prendre en charge une nouvelle stratégie, vous pouvez toujours envoyer une demande de tirage dans https://github.com/dependabot/dependabot-core/.
# Example configuration for customizing the manifest version strategy
version: 2
updates:
- package-ecosystem: "composer"
directory: "/"
schedule:
interval: "weekly"
# Increase the version requirements for Composer only when required
versioning-strategy: increase-if-necessary
Options de configuration pour les registres privés
La clé registries
de niveau supérieur est facultative. Elle vous permet de spécifier les détails d’authentification que Dependabot peut utiliser pour accéder aux registres de packages privés.
Remarque : Les registres privés derrière les pare-feu sur les réseaux privés ne sont pas pris en charge.
La valeur de la clé registries
est un tableau associatif, dont chaque élément se compose d’une clé qui identifie un registre particulier et d’une valeur qui est un tableau associatif spécifiant les paramètres requis pour accéder à ce registre. Dans le fichier dependabot.yml
suivant, un registre identifié comme dockerhub
est configuré dans la section registries
, puis référencé dans la section updates
.
# Minimal settings to update dependencies in one private registry
version: 2
registries:
dockerhub: # Define access for a private registry
type: docker-registry
url: registry.hub.docker.com
username: octocat
password: ${{secrets.DOCKERHUB_PASSWORD}}
updates:
- package-ecosystem: "docker"
directory: "/docker-registry/dockerhub"
registries:
- dockerhub # Allow version updates for dependencies in this registry
schedule:
interval: "monthly"
Vous utilisez les options suivantes pour spécifier les paramètres d’accès. Les paramètres de registre doivent contenir un type
et une url
et généralement soit une combinaison d’un username
et d’un password
, soit un token
.
Option | Description |
---|---|
type | Identifie le type de registre. Consultez la liste complète des types ci-après. |
url | URL à utiliser pour accéder aux dépendances dans ce registre. Le protocole est facultatif. S’il n’est pas renseigné, la valeur https:// est supposée. Dependabot ajoute ou ignore les barres obliques de fin selon les besoins. |
username | Nom d’utilisateur utilisé par Dependabot pour accéder au registre.username correspond au nom d’utilisateur ou à l’adresse e-mail du compte. |
password | Référence à un secret Dependabot contenant le mot de passe de l’utilisateur spécifié. Pour plus d’informations, consultez « Configuration de l’accès aux registres privés pour Dependabot ».password correspond au mot de passe du compte spécifié par le nom d’utilisateur. Si le compte est celui GitHub, vous pouvez utiliser un GitHub personal access token à la place du mot de passe. |
key | Référence à un secret Dependabot contenant une clé d’accès pour le registre. Pour plus d’informations, consultez « Configuration de l’accès aux registres privés pour Dependabot ». |
token | Référence à un secret Dependabot contenant un jeton d’accès pour le registre. Pour plus d’informations, consultez « Configuration de l’accès aux registres privés pour Dependabot ».token est utilisé pour fournir un jeton d’accès pour un système externe et ne doit pas être utilisé pour fournir un GitHub personal access token. Si vous voulez utiliser un GitHub personal access token, vous devez le fournir en tant que mot de passe. |
replaces-base | Pour les registres avec type: python-index , si la valeur booléenne est true , pip résout les dépendances en utilisant l’URL spécifiée plutôt que de l’URL de base de l’index de package Python (par défaut https://pypi.org/simple ). |
Vous devez fournir les paramètres obligatoires pour chaque configuration type
que vous spécifiez. Certains types permettent plusieurs façons de se connecter. Les sections suivantes fournissent des détails sur les paramètres que vous devez utiliser pour chaque type
.
Pour des informations détaillées sur les options disponibles, ainsi que des recommandations et des conseils sur la configuration des registres privés, consultez « Aide pour la configuration des registres privés pour Dependabot ».
composer-repository
Le type composer-repository
prend en charge le nom d’utilisateur et le mot de passe. Si le compte est celui GitHub, vous pouvez utiliser un GitHub personal access token à la place du mot de passe.
Ce type de registre correspond au préfixe du chemin d’accès fourni dans l’option url
. Cela signifie que vous pouvez fournir plusieurs informations d’identification au même hôte, qui peuvent être utilisées pour accéder à des chemins d’accès distincts. Toutefois, si vous ne possédez pas plusieurs registres sur le même hôte, nous vous recommandons d’omettre le chemin d’accès du url
, afin que tous les chemins d’accès au registre reçoivent des informations d’identification.
registries:
composer:
type: composer-repository
url: https://repo.packagist.com/example-company/
username: octocat
password: ${{secrets.MY_PACKAGIST_PASSWORD}}
docker-registry
Dependabot fonctionne avec tous les registres de conteneurs qui implémentent les spécifications du registre de conteneurs OCI. Pour plus d’informations, consultez https://github.com/opencontainers/distribution-spec/blob/main/spec.md. Dependabot prend en charge l’authentification auprès des registres privés via un service de jeton central ou l’authentification de base HTTP. Pour plus d’informations, consultez Spécification de l’authentification par jeton dans la documentation Docker et Authentification d’accès de base sur Wikipédia.
Le type docker-registry
prend en charge le nom d’utilisateur et le mot de passe. Si le compte est celui GitHub, vous pouvez utiliser un GitHub personal access token à la place du mot de passe.
Ce type de registre correspond au préfixe du chemin d’accès fourni dans l’option url
. Cela signifie que vous pouvez fournir plusieurs informations d’identification au même hôte, qui peuvent être utilisées pour accéder à des chemins d’accès distincts. Toutefois, si vous ne possédez pas plusieurs registres sur le même hôte, nous vous recommandons d’omettre le chemin d’accès du url
, afin que tous les chemins d’accès au registre reçoivent des informations d’identification.
registries:
dockerhub:
type: docker-registry
url: https://registry.hub.docker.com
username: octocat
password: ${{secrets.MY_DOCKERHUB_PASSWORD}}
Le type docker-registry
peut également être utilisé pour effectuer un tirage à partir d’un registre ECR Amazon privé en utilisant des informations d’identification AWS statiques.
registries:
ecr-docker:
type: docker-registry
url: https://1234567890.dkr.ecr.us-east-1.amazonaws.com
username: ${{secrets.ECR_AWS_ACCESS_KEY_ID}}
password: ${{secrets.ECR_AWS_SECRET_ACCESS_KEY}}
git
Le type git
prend en charge le nom d’utilisateur et le mot de passe. Si le compte est celui GitHub, vous pouvez utiliser un GitHub personal access token à la place du mot de passe.
registries:
github-octocat:
type: git
url: https://github.com
username: x-access-token
password: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
hex-organization
Le type hex-organization
prend en charge l’organisation et la clé.
Ce type de registre correspond au préfixe du chemin d’accès fourni dans l’option url
. Cela signifie que vous pouvez fournir plusieurs informations d’identification au même hôte, qui peuvent être utilisées pour accéder à des chemins d’accès distincts. Toutefois, si vous ne possédez pas plusieurs registres sur le même hôte, nous vous recommandons d’omettre le chemin d’accès du url
, afin que tous les chemins d’accès au registre reçoivent des informations d’identification.
registries:
github-hex-org:
type: hex-organization
organization: github
key: ${{secrets.MY_HEX_ORGANIZATION_KEY}}
maven-repository
Le type maven-repository
prend en charge le nom d’utilisateur et le mot de passe. Si le compte est celui GitHub, vous pouvez utiliser un GitHub personal access token à la place du mot de passe.
Ce type de registre correspond au préfixe du chemin d’accès fourni dans l’option url
. Cela signifie que vous pouvez fournir plusieurs informations d’identification au même hôte, qui peuvent être utilisées pour accéder à des chemins d’accès distincts. Toutefois, si vous ne possédez pas plusieurs registres sur le même hôte, nous vous recommandons d’omettre le chemin d’accès du url
, afin que tous les chemins d’accès au registre reçoivent des informations d’identification.
registries:
maven-artifactory:
type: maven-repository
url: https://acme.jfrog.io/artifactory/my-maven-registry
username: octocat
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
npm-registry
Le type npm-registry
prend en charge le nom d’utilisateur et le mot de passe ou le jeton. Si le compte est celui GitHub, vous pouvez utiliser un GitHub personal access token à la place du mot de passe.
Quand vous utilisez le nom d’utilisateur et le mot de passe, votre jeton d’authentification de .npmrc
peut contenir un _password
codé base64
; toutefois, le mot de passe référencé dans votre fichier config Dependabot doit être le mot de passe d’origine (non codé).
Remarque : si vous utilisez npm.pkg.github.com
, n’incluez pas de chemin. Utilisez plutôt l’URL https://npm.pkg.github.com
sans chemin.
registries:
npm-npmjs:
type: npm-registry
url: https://registry.npmjs.org
username: octocat
password: ${{secrets.MY_NPM_PASSWORD}} # Must be an unencoded password
registries:
npm-github:
type: npm-registry
url: https://npm.pkg.github.com
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
nuget-feed
Le type nuget-feed
prend en charge le nom d’utilisateur et le mot de passe ou le jeton. Si le compte est celui GitHub, vous pouvez utiliser un GitHub personal access token à la place du mot de passe.
registries:
nuget-example:
type: nuget-feed
url: https://nuget.example.com/v3/index.json
username: octocat@example.com
password: ${{secrets.MY_NUGET_PASSWORD}}
registries:
nuget-azure-devops:
type: nuget-feed
url: https://pkgs.dev.azure.com/.../_packaging/My_Feed/nuget/v3/index.json
username: octocat@example.com
password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}
python-index
Le type python-index
prend en charge le nom d’utilisateur et le mot de passe ou le jeton. Si le compte est celui GitHub, vous pouvez utiliser un GitHub personal access token à la place du mot de passe.
Ce type de registre correspond au préfixe du chemin d’accès fourni dans l’option url
. Cela signifie que vous pouvez fournir plusieurs informations d’identification au même hôte, qui peuvent être utilisées pour accéder à des chemins d’accès distincts. Toutefois, si vous ne possédez pas plusieurs registres sur le même hôte, nous vous recommandons d’omettre le chemin d’accès du url
, afin que tous les chemins d’accès au registre reçoivent des informations d’identification.
registries:
python-example:
type: python-index
url: https://example.com/_packaging/my-feed/pypi/example
username: octocat
password: ${{secrets.MY_BASIC_AUTH_PASSWORD}}
replaces-base: true
registries:
python-azure:
type: python-index
url: https://pkgs.dev.azure.com/octocat/_packaging/my-feed/pypi/example
username: octocat@example.com
password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}
replaces-base: true
rubygems-server
Le type rubygems-server
prend en charge le nom d’utilisateur et le mot de passe ou le jeton. Si le compte est celui GitHub, vous pouvez utiliser un GitHub personal access token à la place du mot de passe.
Ce type de registre correspond au préfixe du chemin d’accès fourni dans l’option url
. Cela signifie que vous pouvez fournir plusieurs informations d’identification au même hôte, qui peuvent être utilisées pour accéder à des chemins d’accès distincts. Toutefois, si vous ne possédez pas plusieurs registres sur le même hôte, nous vous recommandons d’omettre le chemin d’accès du url
, afin que tous les chemins d’accès au registre reçoivent des informations d’identification.
registries:
ruby-example:
type: rubygems-server
url: https://rubygems.example.com
username: octocat@example.com
password: ${{secrets.MY_RUBYGEMS_PASSWORD}}
registries:
ruby-github:
type: rubygems-server
url: https://rubygems.pkg.github.com/octocat/github_api
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
terraform-registry
Le type terraform-registry
prend en charge un jeton.
registries:
terraform-example:
type: terraform-registry
url: https://terraform.example.com
token: ${{secrets.MY_TERRAFORM_API_TOKEN}}
Activation de la prise en charge des écosystèmes au niveau bêta
enable-beta-ecosystems
Par défaut, Dependabot met à jour les manifestes de dépendance et les fichiers de verrouillage uniquement pour les écosystèmes entièrement pris en charge. Utilisez l’indicateur enable-beta-ecosystems
pour choisir les mises à jour des écosystèmes qui ne sont pas encore en disponibilité générale.
Il n’existe actuellement aucun écosystème dans la version bêta.
# Configure beta ecosystem
version: 2
enable-beta-ecosystems: true
updates:
- package-ecosystem: "beta-ecosystem"
directory: "/"
schedule:
interval: "weekly"