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 ».
Vous ne pourrez peut-être pas activer ou désactiver les Dependabot updates si un propriétaire d’entreprise a défini une stratégie au niveau de l’entreprise. Pour plus d’informations, consultez « Application de stratégies de sécurité et d’analyse du code pour votre entreprise ».
À propos des mises à jour de version pour les dépendances
Vous activez les Dependabot version updates en vérifiant un fichier de configuration dependabot.yml
dans le répertoire .github
de votre référentiel. Dependabot déclenche ensuite des demandes de tirage (pull request) pour maintenir à jour les dépendances que vous configurez. Pour les dépendances de chaque gestionnaire de package que vous souhaitez mettre à jour, vous devez spécifier l’emplacement des fichiers manifeste de package et la fréquence à laquelle rechercher les mises à jour des dépendances listées dans ces fichiers. Pour plus d’informations sur l’activation des mises à jour de sécurité, consultez « Configuration des mises à jour de sécurité Dependabot ».
Lorsque vous activez les mises à jour de version pour la première fois, vous pouvez avoir de nombreuses dépendances obsolètes et certaines peuvent remonter à de nombreuses versions avant la dernière version. Dependabot recherche les dépendances obsolètes dès qu’il est activé. Vous pouvez voir de nouvelles demandes de tirage pour les mises à jour de version dans les minutes qui suivent l’ajout du fichier de configuration, en fonction du nombre de fichiers manifeste pour lesquels vous configurez les mises à jour. Dependabot exécute également une mise à jour sur les modifications suivantes apportées au fichier de configuration.
Dependabot peut également créer des demandes de tirage lorsque vous modifiez un fichier manifeste une fois qu’une mise à jour a échoué. Cela est dû au fait que les modifications apportées à un manifeste, telles que la suppression de la dépendance qui a provoqué l’échec de la mise à jour, peuvent entraîner la réussite de la mise à jour nouvellement déclenchée.
Pour que les demandes de tirage restent faciles à gérer et à réviser, Dependabot déclenche un maximum de cinq demandes de tirage pour commencer à mettre les dépendances à niveau vers la version la plus récente. Si vous fusionnez certaines de ces premières demandes de tirage avant la prochaine mise à jour planifiée, les demandes de tirage restantes seront ouvertes au cours de la prochaine mise à jour, jusqu’à ce maximum. Vous pouvez modifier le nombre maximal de demandes de tirage ouvertes en définissant l’option de configuration open-pull-requests-limit
.
Pour réduire davantage le nombre de demandes de tirage que vous pouvez voir, vous pouvez utiliser l’option de configuration groups
pour grouper des ensembles de dépendances (par écosystème de packages). Dependabot déclenche ensuite une demande de tirage unique pour mettre à jour le plus de dépendances possible dans le groupe vers les versions les plus récentes en même temps. Pour plus d’informations, consultez « Personnalisation des mises à jour des dépendances ».
Parfois, en raison d'une mauvaise configuration ou d'une version incompatible, vous pouvez voir qu'une Dependabot a échoué. Après 30 des exécutions infructueuses, sauteront les exécutions programmées suivantes jusqu'à ce que vous déclenchiez manuellement une vérification des mises à jour du graphe des éléments dépendants, ou que vous mettiez à jour le fichier manifeste. Dependabot security updates va néanmoins toujours s’exécuter comme d’habitude.
Par défaut, seules les dépendances directes explicitement définies dans un manifeste sont tenues à jour par les Dependabot version updates. Vous pouvez choisir de recevoir des mises à jour pour les dépendances indirectes définies dans les fichiers de verrouillage. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».
Lors de l’exécution de mises à jour de sécurité ou de version, certains écosystèmes doivent être capables de résoudre toutes les dépendances de leur source pour vérifier que les mises à jour ont réussi. Si vos fichiers manifeste ou de verrouillage contiennent des dépendances privées, Dependabot doit être capable d’accéder à l’emplacement auquel ces dépendances sont hébergées. Les propriétaires de l’organisation peuvent octroyer à Dependabot un accès aux dépôts privés contenant des dépendances pour un projet au sein de cette même organisation. Pour plus d’informations, consultez « Gestion des paramètres de sécurité et d'analyse pour votre organisation ». Vous pouvez configurer un accès aux registres privés dans le fichier de configuration dependabot.yml
d’un dépôt. Pour plus d’informations, consultez « Options de configuration pour le fichier dependabot.yml ».En outre, Dependabot ne prend pas en charge les dépendances GitHub privées pour tous les gestionnaires de package. Pour plus d’informations, consultez « À propos des mises à jour de version Dependabot » et « Prise en charge GitHub des langages ».
Activation des Dependabot version updates
Vous activez Dependabot version updates en validant un fichier de configuration dependabot.yml
dans votre référentiel.
-
Créez un fichier de configuration
dependabot.yml
dans le répertoire.github
de votre référentiel. Vous pouvez utiliser l'extrait de code ci-dessous comme point de départ. For information about the options you can use to customize how Dependabot maintains your repositories, see "Options de configuration pour le fichier dependabot.yml."YAML # To get started with Dependabot version updates, you'll need to specify which # package ecosystems to update and where the package manifests are located. version: 2 updates: - package-ecosystem: "" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "weekly"
# To get started with Dependabot version updates, you'll need to specify which # package ecosystems to update and where the package manifests are located. version: 2 updates: - package-ecosystem: "" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "weekly"
-
Ajoutez une
version
. Cette clé est obligatoire. Le fichier doit commencer parversion: 2
. -
Si vous avez des dépendances dans un registre privé, vous pouvez ajouter une section
registries
contenant les détails de l’authentification. Pour plus d'informations, consultezregistries
dans les « Options de configuration du fichierdependabot.yml
». -
Ajoutez une section
updates
, avec une entrée pour chaque gestionnaire de package à faire superviser par Dependabot. Cette clé 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. -
Pour chaque gestionnaire de package, utilisez :
-
package-ecosystem
pour spécifier le gestionnaire de package. Pour plus d'informations sur les gestionnaires de package pris en charge, consultezpackage-ecosystem
dans les « Options de configuration du fichierdependabot.yml
». -
directory
pour spécifier l’emplacement du manifeste ou d’autres fichiers de définition. Pour plus d'informations, consultezdirectory
dans les « Options de configuration du fichierdependabot.yml
». -
schedule.interval
pour spécifier la fréquence à laquelle rechercher les nouvelles versions. Pour plus d'informations, consultezschedule.interval
dans les « Options de configuration du fichierdependabot.yml
».
-
-
Vérifiez le fichier de configuration dependabot.yml dans le répertoire
.github
du référentiel.
Exemple de fichier dependabot.yml
L’exemple de fichier dependabot.yml
ci-dessous configure les mises à jour de version pour deux gestionnaires de package : npm et Docker. Quand ce fichier est archivé, Dependabot vérifie si les fichiers manifestes sur la branche par défaut contiennent des dépendances obsolètes. S’il trouve des dépendances obsolètes, il déclenche des demandes de tirage par rapport à la branche par défaut pour mettre à jour les dépendances.
# Basic `dependabot.yml` file with
# minimum configuration for two package managers
version: 2
updates:
# Enable version updates for npm
- package-ecosystem: "npm"
# Look for `package.json` and `lock` files in the `root` directory
directory: "/"
# Check the npm registry for updates every day (weekdays)
schedule:
interval: "daily"
# Enable version updates for Docker
- package-ecosystem: "docker"
# Look for a `Dockerfile` in the `root` directory
directory: "/"
# Check for updates once a week
schedule:
interval: "weekly"
Dans l’exemple ci-dessus, si les dépendances Docker étaient très obsolètes, vous pourriez commencer par une planification daily
jusqu’à ce que les dépendances soient à jour, puis revenir à une planification hebdomadaire.
Activation des mises à jour de version sur les duplications (forks)
Si vous souhaitez activer les mises à jour de version sur les duplications, il existe une étape supplémentaire. Les mises à jour de version ne sont pas automatiquement activées sur les duplications quand un fichier de configuration dependabot.yml
est présent. Cela garantit que les propriétaires de duplications n’activent pas involontairement les mises à jour de version quand ils tirent (pull) des modifications incluant un fichier de configuration dependabot.yml
à partir du référentiel d’origine.
Sur une duplication, vous devez également activer explicitement Dependabot.
-
Dans votre instance GitHub Enterprise Server, accédez à la page principale du dépôt.
-
Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.
-
Dans la section « Sécurité » de la barre latérale, cliquez sur Sécurité et analyse du code.
-
Sous « Sécurité et analyse du code », à droite de « Dependabot version updates », cliquez sur Activer pour permettre à Dependabot de démarrer les mises à jour de version.
Vérification de l’état des mises à jour de version
Une fois que vous avez activé les mises à jour de version, l’onglet Dependabot dans le graphe de dépendances du dépôt est rempli. Cet onglet indique quels sont les gestionnaires de packages que Dependabot doit superviser et quand Dependabot a recherché les nouvelles versions pour la dernière fois.
Pour plus d’informations, consultez « Liste des dépendances configurées pour les mises à jour de version ».
Désactivation des Dependabot version updates
Vous pouvez désactiver entièrement les mises à jour de version en supprimant le fichier dependabot.yml
de votre référentiel. Plus généralement, vous souhaitez désactiver temporairement les mises à jour pour une ou plusieurs dépendances ou gestionnaires de packages.
- Gestionnaires de packages : effectuez la désactivation en définissant
open-pull-requests-limit: 0
ou en commentant l’élémentpackage-ecosystem
approprié dans le fichier de configuration. - Dépendances spécifiques : effectuez la désactivation en ajoutant des attributs
ignore
pour les packages ou les applications que vous souhaitez exclure des mises à jour.
Quand vous désactivez les dépendances, vous pouvez utiliser des caractères génériques pour désigner un ensemble de bibliothèques associées. Vous pouvez également spécifier les versions à exclure. Cela est particulièrement utile si vous devez bloquer les mises à jour d’une bibliothèque, en attente d’un travail permettant de prendre en charge un changement cassant de son API, mais que vous souhaitez obtenir des correctifs de sécurité pour la version que vous utilisez.
Exemple de désactivation des mises à jour de version pour certaines dépendances
L’exemple de fichier dependabot.yml
ci-dessous inclut des exemples des différentes façons de désactiver les mises à jour de certaines dépendances, tout en permettant la poursuite des autres mises à jour.
# `dependabot.yml` file with updates
# disabled for Docker and limited for npm
version: 2
updates:
# Configuration for Dockerfile
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
# Disable all pull requests for Docker dependencies
open-pull-requests-limit: 0
# Configuration for npm
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
ignore:
# Ignore updates to packages that start with 'aws'
# Wildcards match zero or more arbitrary characters
- dependency-name: "aws*"
# Ignore some updates to the 'express' package
- dependency-name: "express"
# Ignore only new versions for 4.x and 5.x
versions: ["4.x", "5.x"]
# For all packages, ignore all patch updates
- dependency-name: "*"
update-types: ["version-update:semver-patch"]
Pour savoir si des préférences « ignore » sont appliquées, consultez « Options de configuration pour le fichier dependabot.yml ».