Cet article fournit des informations de dépannage pour vous aider à résoudre les problèmes lorsque Dependabot ne fonctionne pas comme prévu. Si vous rencontrez des erreurs lorsque Dependabot tente de mettre à jour vos dépendances, vous pouvez utiliser ces conseils pour diagnostiquer et résoudre les problèmes courants.
Examen des erreurs liées aux Dependabot security updates
Quand Dependabot n’est pas en mesure de créer une demande de tirage pour corriger une alerte Dependabot, il publie le message d’erreur sur l’alerte. L’affichage des Dependabot alerts montre la liste des alertes qui n’ont pas encore été résolues. Pour accéder à l’affichage des alertes, cliquez sur Dependabot alerts sous l’onglet Sécurité du dépôt. Si une demande de tirage destinée à corriger la dépendance vulnérable a été générée, l’alerte inclut un lien vers cette demande de tirage.

Il existe plusieurs raisons pour lesquelles une alerte peut ne pas avoir de lien vers une demande de tirage :
- Les Dependabot security updates ne sont pas activées pour le dépôt.
- L’alerte concerne une dépendance indirecte ou transitive qui n’est pas explicitement définie dans un fichier de verrouillage.
- Une erreur a empêché Dependabot de créer une demande de tirage.
Si une erreur a empêché Dependabot de créer une demande de tirage, vous pouvez afficher les détails de l’erreur en cliquant sur l’alerte.
Examen des erreurs liées aux Dependabot version updates
Lorsque Dependabot ne peut pas créer une demande de tirage afin de mettre à jour une dépendance dans un écosystème donné, XXX, vous pouvez consulter la liste des journaux d’activité afin d’identifier l’erreur.
La liste des journaux des projets est accessible à partir du graphique de dépendance d'un référentiel. Dans le graphique de dépendance, cliquez sur l’onglet Dependabot, puis à droite du fichier manifeste concerné, cliquez sur Projets de mise à jour récents.
Pour afficher les journaux d’activité complets d’une tâche spécifique, cliquez sur Afficher les journaux d’activité à droite de** l’entrée de journal **concernée.

Pour plus d’informations, consultez « Affichage des journaux de travaux Dependabot ».
Présentation des erreurs Dependabot
Les demandes de tirage pour les mises à jour de sécurité visent à mettre à niveau une dépendance vulnérable vers la version minimale qui inclut un correctif pour la vulnérabilité. En revanche, les demandes de tirage pour les mises à jour de version visent à mettre à niveau une dépendance vers la dernière version autorisée par le manifeste du package et les fichiers de configuration Dependabot. Ainsi, certaines erreurs sont propres à un type de mise à jour.
Dependabot ne peut pas mettre à jour la dépendance vers une version non vulnérable
**Mises à jour de sécurité uniquement.** Dependabot ne peut pas créer une demande de tirage pour mettre à jour la dépendance vulnérable vers une version sécurisée sans rompre d’autres dépendances dans le graphe de dépendances de ce dépôt.
Chaque application qui a des dépendances a un graphe de dépendances, autrement dit un graphe orienté acyclique de chaque version de package dont l’application dépend directement ou indirectement. Chaque fois qu’une dépendance est mise à jour, ce graphe doit être résolu, sinon l’application n’est pas générée. Quand un écosystème a un graphe de dépendances profond et complexe, par exemple, npm et RubyGems, il est souvent impossible de mettre à niveau une seule dépendance sans mettre à niveau l’ensemble de l’écosystème.
La meilleure façon d’éviter ce problème est de rester à jour avec les dernières versions publiées, par exemple, en activant les mises à jour de version. Cela augmente la probabilité qu’une vulnérabilité dans une dépendance puisse être résolue par une simple mise à niveau qui ne rompt pas le graphe de dépendances. Pour plus d’informations, consultez « Configuration de mises à jour de version Dependabot ».
Dependabot tente de mettre à jour les dépendances sans alerte
**Mises à jour de sécurité uniquement.** Dependabot met à jour les dépendances transitives définies explicitement qui sont vulnérables pour tous les écosystèmes. Pour npm, Dependabot déclenche une demande de tirage qui met également à jour la dépendance parente s’il s’agit de la seule façon de corriger la dépendance transitive.
Par exemple, un projet avec une dépendance envers la version A de ~2.0.0 qui a une dépendance transitive envers la version B de ~1.0.0 qui a été résolue en 1.0.1.
my project
|
--> A (2.0.0) [~2.0.0]
|
--> B (1.0.1) [~1.0.0]
Lorsqu’une vulnérabilité de sécurité est publiée pour les versions B``<2.0.0 et qu’un correctif est disponible à l’adresse 2.0.0, Dependabot tente de mettre à jour B, mais constate que l’opération est impossible en raison de la restriction définie par A, qui n’autorise que des versions moins vulnérables. Pour corriger la vulnérabilité, Dependabot recherche les mises à jour de la dépendance A qui autorisent l’utilisation de la version corrigée de B.
Dependabot crée automatiquement une demande de tirage qui met à niveau simultanément les dépendances transitives parentes et enfants verrouillées.
Dependabot peut ne pas parvenir à fermer une demande de tirage ouverte pour une mise à jour déjà appliquée sur la branche par défaut.
Dependabot ferme les demandes de tirage relatives aux mises à jour de dépendances dès qu’il détecte que ces mises à jour ont été validées sur la branche par défaut. Cependant, dans de rares situations, la demande de tirage peut demeurer ouverte. Si vous constatez que vous avez validé manuellement une mise à jour de dépendance et que la demande de tirage correspondante est toujours ouverte, vous pouvez utiliser l’une des commandes suivantes dans un commentaire de la demande de tirage :
*
@dependabot recreate ou
*
@dependabot rebase.
Chacun de ces commentaires déclenchera Dependabot afin qu’il vérifie si la dépendance n’est plus mise à niveau ou considérée comme vulnérable. Si Dependabot détermine que la demande de tirage n’est plus requise, il la fermera dans ce cas précis.
Pour plus d’informations sur les commandes de commentaire Dependabot, consultez AUTOTITLE.
Dependabot ne peut pas effectuer une mise à jour vers la version requise, car il existe déjà une demande de tirage ouverte pour la dernière version
**Mises à jour de sécurité uniquement.** Dependabot ne crée pas de demande de tirage pour mettre à jour la dépendance vulnérable vers une version sécurisée, car il existe déjà une demande de tirage ouverte pour mettre à jour cette dépendance. Cette erreur s’affiche quand une vulnérabilité est détectée dans une seule dépendance et qu’il existe déjà une demande de tirage ouverte pour mettre à jour la dépendance vers la dernière version.
Il existe deux options : vous pouvez passer en revue la demande de tirage ouverte et la fusionner dès que vous êtes sûr que la modification est sécurisée ou fermer cette demande de tirage et déclencher une nouvelle demande de tirage de mise à jour de sécurité. Pour plus d’informations, consultez Déclencher manuellement une demande de tirage Dependabot.
Aucune mise à jour de sécurité n’est requise, car DEPENDENCY n’est plus vulnérable.
**Mises à jour de sécurité uniquement.** Dependabot ne peut pas fermer une demande de tirage visant à mettre à jour une dépendance qui n’est pas ou n’est plus vulnérable. Cette erreur peut se produire lorsque les données du graphe de dépendances sont obsolètes ou lorsque le graphe de dépendances et Dependabot ne s’accordent pas sur la vulnérabilité d’une version donnée d’une dépendance.
Pour résoudre ce problème, il est recommandé d’examiner en premier lieu le graphe de dépendances de votre référentiel, de vérifier la version détectée pour la dépendance et de confirmer qu’elle correspond bien à celle utilisée dans votre référentiel.
Si vous estimez que les données de votre graphe de dépendances sont obsolètes, il peut être nécessaire de mettre à jour manuellement le graphe de dépendances de votre référentiel ou d’analyser plus en détail vos informations de dépendances. Pour plus d’informations, consultez « Résolution des problèmes liés au graphe de dépendances ».
Si vous êtes en mesure de confirmer que la version de la dépendance n’est plus vulnérable, vous pouvez fermer la demande de tirage Dependabot
Dependabot a expiré pendant sa mise à jour
Dependabot a pris plus de temps que le temps maximal autorisé pour évaluer la mise à jour requise et préparer une demande de tirage. Cette erreur n’est généralement observée que pour les grands dépôts avec de nombreux fichiers manifestes, par exemple, les projets monodépôts npm ou yarn avec des centaines de fichiers package.json. L’évaluation des mises à jour apportées à l’écosystème Composer peut également prendre plus de temps, avec le risque que les mises à jour expirent.
Cette erreur est difficile à résoudre. Si une mise à jour de version expire, vous pouvez spécifier les dépendances les plus importantes à mettre à jour en utilisant le paramètre allow ou, sinon, utiliser le paramètre ignore pour exclure certaines dépendances des mises à jour. La mise à jour de votre configuration peut autoriser Dependabot à passer en revue la mise à jour de version et à générer la demande de tirage dans le temps disponible.
Si une mise à jour de sécurité expire, vous pouvez réduire les risques que cela se reproduise en maintenant les dépendances à jour, par exemple en activant les mises à jour de version. Pour plus d’informations, consultez « Configuration de mises à jour de version Dependabot ».
Dependabot ne peut pas ouvrir plus de demandes de tirage
Le nombre de demandes de tirage ouvertes générées par Dependabot est limité. Quand cette limite est atteinte, aucune nouvelle demande de tirage n’est ouverte et cette erreur est signalée. La meilleure façon de résoudre cette erreur consiste à passer en revue et à fusionner certaines des demandes de tirage ouvertes.
Il existe des limites distinctes pour les demandes de tirage de mise à jour de sécurité et de mise à jour de version, afin que les demandes de tirage de mise à jour de version ouvertes ne puissent pas empêcher la création d’une demande de tirage de mise à jour de sécurité. La limite pour les demandes de tirage de mise à jour de sécurité est 10. Par défaut, la limite des mises à jour de version est 5, mais vous pouvez la changer avec le paramètre open-pull-requests-limit dans le fichier de configuration. Pour plus d’informations, consultez « Référence des options Dependabot ».
La meilleure façon de résoudre cette erreur consiste à fusionner ou fermer certaines des demandes de tirage existantes et à déclencher une nouvelle demande de tirage manuellement. Pour plus d’informations, consultez Déclencher manuellement une demande de tirage Dependabot.
Dependabot ne peut pas résoudre vos dépendances ou y accéder
Si Dependabot tente de vérifier si des références de dépendance doivent être mises à jour dans un dépôt, mais qu’il ne peut pas accéder à un ou plusieurs des fichiers référencés, l’opération échoue avec le message d’erreur indiquant que Dependabot ne peut pas résoudre vos fichiers de dépendance dans le langage concerné. Le type d’erreur de l’API est git_dependencies_not_reachable.
De même, si Dependabot ne peut pas accéder à un registre de package privé dans lequel se trouve une dépendance, l’une des erreurs suivantes est générée :
- « Dependabot ne peut pas atteindre une dépendance dans un registre de package privé »
(Type d’erreur de l’API :private_source_not_reachable) - « Dependabot ne peut pas s’authentifier auprès d’un registre de package privé »
(Type d’erreur de l’API :private_source_authentication_failure) - « Dependabot a expiré en attendant un registre de package privé »
(Type d’erreur de l’API :private_source_timed_out) - « Dependabot n’a pas pu valider le certificat pour un registre de package privé »
(Type d’erreur de l’API :private_source_certificate_failure)
Pour autoriser Dependabot à mettre à jour les références de dépendances correctement, assurez-vous que toutes les dépendances référencées sont hébergées à des emplacements accessibles.
**Mises à jour de version uniquement**. 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 « [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization#allowing-dependabot-to-access-private-or-internal-dependencies) ». 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 « [AUTOTITLE](/code-security/dependabot/working-with-dependabot/configuring-access-to-private-registries-for-dependabot) ».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 « [AUTOTITLE](/code-security/dependabot/ecosystems-supported-by-dependabot/supported-ecosystems-and-repositories) ».
Dependabot n’arrive pas à regrouper plusieurs dépendances au sein d’une unique demande de tirage pour Dependabot version updates.
Les paramètres de configuration groups définis dans le fichier dependabot.yml peuvent s’appliquer aussi bien aux mises à jour de version qu’aux mises à jour de sécurité. Utilisez la clé applies-to afin de préciser à quel type de mises à jour, version ou sécurité, s’applique un ensemble donné de règles de regroupement.
Vous ne pouvez pas appliquer un seul ensemble de règles de regroupement aux mises à jour de version et aux correctifs de sécurité. Au lieu de cela, si vous souhaitez regrouper à la fois les mises à jour de version et les correctifs de sécurité à l’aide des mêmes critères, vous devez définir deux ensembles de règles, nommés séparément, groupant des ensembles de règles.
Lors de la configuration des mises à jour de version regroupées, les groupes doivent être définis par écosystème de paquets. Afin d’analyser le problème, il est recommandé de consulter les journaux d’activité. Pour plus de détails sur l’accès aux journaux d’activité d’un manifeste, consultez la section Investigation des erreurs avec Dependabot version updates ci-dessus.
Il est possible que des groupes vides aient été créés involontairement. Ce cas peut se produire, par exemple, lorsque vous définissez un dependency-type dans la clé allow pour l’ensemble du travail.
allow:
dependency-type: production
# this restricts the entire job to production dependencies
groups:
development-dependencies:
dependency-type: "development"
# this group will always be empty
allow:
dependency-type: production
# this restricts the entire job to production dependencies
groups:
development-dependencies:
dependency-type: "development"
# this group will always be empty
Dans cet exemple, Dependabot va :
- Examiner la liste de vos dépendances et restreindre le travail aux dépendances utilisées uniquement dans
production. - Tenter de créer un groupe nommé
development-dependenciescorrespondant à un sous-ensemble de cette liste restreinte. - Constater que le groupe
development-dependenciesest vide, car toutes les dépendancesdevelopmentont été exclues à l’étape 1. -
**Mettez à jour individuellement **toutes les dépendances qui ne font pas partie du groupe. Étant donné que le groupe de dépendances en production est vide, Dependabot ignorera ce groupe et générera une demande de tirage distincte pour chaque dépendance.
Vous devez vérifier que les paramètres de configuration ne se neutralisent pas mutuellement et les ajuster de manière appropriée dans votre fichier de configuration.
Pour plus d’informations sur comment configurer des groupes Dependabot version updates, consultez Référence des options Dependabot.
Dependabot ne parvient pas à regrouper plusieurs dépendances dans une seule demande de tirage pour Dependabot security updates.
Les paramètres de configuration groups définis dans le fichier dependabot.yml peuvent s’appliquer aussi bien aux mises à jour de version qu’aux mises à jour de sécurité. Utilisez la clé applies-to afin de préciser à quel type de mises à jour, version ou sécurité, s’applique un ensemble donné de règles de regroupement. Assurez-vous que le regroupement est bien configuré pour s’appliquer aux mises à jour de sécurité. Lorsque la clé applies-to est absente d’un ensemble de règles de regroupement dans votre configuration, toutes les règles de regroupement s’appliquent par défaut uniquement aux mises à jour de version.
Vous ne pouvez pas appliquer un seul ensemble de règles de regroupement aux mises à jour de version et aux correctifs de sécurité. Au lieu de cela, si vous souhaitez regrouper à la fois les mises à jour de version et les correctifs de sécurité à l’aide des mêmes critères, vous devez définir deux ensembles de règles, nommés séparément, groupant des ensembles de règles.
Pour les mises à jour de sécurité regroupées, Dependabot applique les règles suivantes pour créer des demandes de tirage groupées.
- Dependabot regroupe les dépendances issues d’un même écosystème de paquets et situées dans différents répertoires lorsque des règles de regroupement sont définies pour des configurations utilisant la clé
directories. - Dependabot applique aux demandes de tirage de mises à jour de sécurité groupées les autres options de personnalisation pertinentes définies dans le fichier
dependabot.yml. Les règles de groupe configurées dans un fichierdependabot.ymlremplacent les paramètres d’interface utilisateur pour activer ou désactiver les correctifs de sécurité groupés au niveau de l’organisation ou du référentiel. - Dependabot ne regroupe pas les dépendances provenant d’écosystèmes de paquets différents.
- Dependabot ne regroupe pas les mises à jour de sécurité avec les mises à jour de version.
Pour plus d’informations, consultez « À propos des mises à jour de sécurité Dependabot » et « Personnalisation des demandes de tirage pour les mises à jour de sécurité de Dependabot ».
Dependabot échoue à mettre à jour l’une des dépendances au sein d’une demande de tirage groupée.
Plusieurs méthodes de dépannage peuvent être utilisées lorsque des mises à jour de version ou de sécurité échouent.
Gestion des échecs lors des mises à jour de version groupées
**Mises à jour de version uniquement**. Dependabot indique la mise à jour ayant échoué dans les journaux d’activité ainsi que dans le récapitulatif des tâches affiché à la fin de ces journaux. Il est recommandé d’utiliser le commentaire `@dependabot recreate` sur la demande de tirage afin de reconstruire le groupe. Pour plus d’informations, consultez « [AUTOTITLE](/code-security/dependabot/working-with-dependabot/managing-pull-requests-for-dependency-updates#managing-dependabot-pull-requests-with-comment-commands) ».
Si la dépendance échoue encore à se mettre à jour, il est conseillé d’utiliser la configuration exclude-patterns afin d’exclure cette dépendance du groupe. Dependabot créera alors une demande de tirage distincte pour effectuer la mise à jour de la dépendance.
Si la dépendance ne peut toujours pas être mise à jour, le problème peut provenir de la dépendance elle-même ou de Dependabot pour cet écosystème spécifique.
Si vous souhaitez ignorer les mises à jour pour la dépendance, vous devez effectuer l’une des opérations suivantes.
- Configurez une
ignorerègle pour la dépendance dans le fichierdependabot.yml. Pour plus d’informations, consultez « Référence des options Dependabot ». - Utilisez la commande de commentaire
@dependabot ignorepour la dépendance dans la demande de tirage (pull request) pour les mises à jour groupées. Pour plus d’informations, consultez « Gestion des demandes de tirage (pull request) pour les mises à jour des dépendances ».
Gestion des échecs lors des mises à jour de sécurité groupée
**Mises à jour de sécurité uniquement.** Lorsqu’une demande de tirage groupée dédiée aux mises à jour de sécurité échoue ou ne peut pas être fusionnée, il est recommandé de créer manuellement des demandes de tirage afin de mettre à jour les versions des changements incompatibles. Quand vous mettez à jour manuellement un package inclus dans une demande de tirage groupée, Dependabot rebase automatiquement la demande de tirage afin d’en retirer le package mis à jour manuellement.
Si vous souhaitez ignorer les mises à jour pour la dépendance, vous devez effectuer l’une des opérations suivantes.
- Configurez une
ignorerègle pour la dépendance dans le fichierdependabot.yml. Pour plus d’informations, consultez « Référence des options Dependabot ». - Utilisez la commande de commentaire
@dependabot ignorepour la dépendance dans la demande de tirage (pull request) pour les mises à jour groupées. Pour plus d’informations, consultez « Gestion des demandes de tirage (pull request) pour les mises à jour des dépendances ».
L’intégration continue (CI) échoue sur une demande de tirage groupée
**Mises à jour de version uniquement**. Lorsque l’échec provient d’une dépendance unique, vous devez utiliser la configuration `exclude-patterns` pour exclure cette dépendance du groupe. Dependabot créera alors une demande de tirage distincte pour effectuer la mise à jour de la dépendance.
Si vous souhaitez ignorer les mises à jour pour la dépendance, vous devez effectuer l’une des opérations suivantes.
- Configurez une
ignorerègle pour la dépendance dans le fichierdependabot.yml. Pour plus d’informations, consultez « Référence des options Dependabot ». - Utilisez la commande de commentaire
@dependabot ignorepour la dépendance dans la demande de tirage (pull request) pour les mises à jour groupées. Pour plus d’informations, consultez « Gestion des demandes de tirage (pull request) pour les mises à jour des dépendances ».
Si les échecs de l’intégration continue persistent, vous devez supprimer la configuration du groupe afin que Dependabot recommence à créer des demandes de tirage distinctes pour chaque dépendance. Vous devez ensuite vérifier et valider que la mise à jour fonctionne correctement pour chaque demande de tirage individuelle.
Déclenchement manuel d’une demande de tirage Dependabot
Si vous débloquez Dependabot, vous pouvez déclencher manuellement une nouvelle tentative de création d’une demande de tirage.
-
**Mises à jour de sécurité :** affichez l’alerte Dependabot qui indique l’erreur que vous avez corrigée, puis cliquez sur **Créer une mise à jour de sécurité Dependabot**. -
**Mises à jour de version **: dans l’onglet **Aperçu** du référentiel, cliquez sur **Graphique des dépendances**, puis sur l’onglet **Dependabot**. Cliquez sur **Dernière vérification il y a TIME__** pour afficher le fichier journal généré par Dependabot lors de la dernière vérification des mises à jour de version. Cliquez sur **Rechercher les mises à jour**.
Lectures complémentaires
-
[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/troubleshooting-the-dependency-graph) -
[AUTOTITLE](/code-security/dependabot/troubleshooting-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies)