Skip to main content

Cette version de GitHub Enterprise Server n'est plus disponible depuis le 2024-03-26. Aucune publication de correctifs n’est effectuée, même pour les problèmes de sécurité critiques. Pour de meilleures performances, une sécurité améliorée et de nouvelles fonctionnalités, effectuez une mise à niveau vers la dernière version de GitHub Enterprise. Pour obtenir de l’aide sur la mise à niveau, contactez le support GitHub Enterprise.

Résolution des erreurs Dependabot

Parfois, Dependabot n’est pas en mesure de lancer une demande de mise à jour de vos dépendances. Vous pouvez examiner l’erreur et débloquer Dependabot.

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 des erreurs Dependabot

Dependabot déclenche des demandes de tirage pour mettre à jour les dépendances. Selon la configuration de votre dépôt, Dependabot peut déclencher des demandes de tirage pour des mises à jour de version et/ou des mises à jour de sécurité. Vous gérez ces demandes de tirage comme toute demande de tirage, mais des commandes supplémentaires sont disponibles. Pour plus d’informations sur l’activation des mises à jour de dépendances Dependabot, consultez « Configuration des mises à jour de sécurité Dependabot » et « Configuration de mises à jour de version Dependabot ».

Si quelque chose empêche Dependabot de déclencher une demande de tirage (pull request), cela est signalé comme une erreur.

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.

Capture d’écran de la vue des Dependabot alerts montrant deux alertes. À droite d’une alerte, un lien vers une demande de tirage, intitulé « #353 », est mis en évidence avec un encadré orange.

Il existe plusieurs raisons pour lesquelles une alerte peut ne pas avoir de lien vers une demande de tirage :

  1. Les Dependabot security updates ne sont pas activées pour le dépôt.
  2. L’alerte concerne une dépendance indirecte ou transitive qui n’est pas explicitement définie dans un fichier de verrouillage.
  3. 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 est bloqué pour créer une demande de tirage pour mettre à jour une dépendance dans un écosystème, il publie l’icône d’erreur sur le fichier manifeste.

Les fichiers manifestes gérés par Dependabot sont listés sous l’onglet Dependabot. Pour accéder à cet onglet, sous l’onglet Insights du dépôt, cliquez sur Graphe de dépendances, puis sur l’onglet Dependabot .

Capture d’écran de la vue Dependabot. Une icône d’alerte et un lien intitulé « Dernière vérification il y a 10 heures », sont mis en évidence avec un encadré orange.

Pour voir les journaux de n’importe quel fichier manifeste, cliquez sur le lien Dernière vérification il y a TEMPS, puis cliquez sur Afficher les journaux.

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 ~2.0.0 de A qui a une dépendance transitive envers la version ~1.0.0 de B 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]

Si une vulnérabilité de sécurité est publiée pour les versions <2.0.0 de B et qu’un correctif est disponible pour 2.0.0, Dependabot tente de mettre à jour B mais détecte que c’est impossible en raison de la restriction en mise place par A, qui autorise uniquement les versions vulnérables inférieures. 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 génère automatiquement une demande de tirage qui met à niveau les dépendances transitives parentes et enfants verrouillées.

Dependabot ne parvient pas à fermer une demande de tirage ouverte pour une mise à jour qui a déjà été appliquée sur la branche par défaut

Dependabot ferme les demandes de tirage pour les mises à jour des dépendances, une fois qu’il détecte que ces mises à jour ont été validées sur la branche par défaut. Toutefois, dans de rares cas, la demande de tirage peut rester ouverte. Si vous remarquez que vous avez validé manuellement une mise à jour vers une dépendance et que la demande de tirage pour cette même mise à jour est toujours ouverte, vous pouvez utiliser l’une des commandes suivantes dans un commentaire sur la demande de tirage :

  • @dependabot recreate ou
  • @dependabot rebase.

Les commentaires déclenchent Dependabot pour vérifier si la dépendance ne peut plus être mise à jour ou si elle n’est plus vulnérable. Si Dependabot détecte que la demande de tirage n’est plus nécessaire, il ferme la demande de tirage dans ce cas particulier.

Pour plus d’informations sur les commandes de commentaire Dependabot, consultez « Gestion des demandes de tirage (pull request) pour les mises à jour des dépendances ».

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éclenchement manuel d’une demande de tirage Dependabot ».

Aucune mise à jour de sécurité n’est nécessaire, car la DÉPENDANCE n’est plus vulnérable

Correctifs de sécurité uniquement. Dependabot ne peut pas fermer une demande de tirage pour mettre à jour une dépendance qui n’est pas, ou n’est plus, vulnérable. Cette erreur peut s’afficher lorsque graphe des dépendances données sont obsolètes ou lorsque les données graphe des dépendances et Dependabot ne sont pas d’accord si une version particulière d’une dépendance est vulnérable.

Pour déboguer le problème, nous vous recommandons d’examiner d’abord les graphe des dépendances de votre référentiel, de passer en revue la version détectée pour la dépendance et de case activée si la version identifiée correspond à ce qui est utilisé dans votre référentiel.

Si vous pensez que vos données graphe des dépendances sont obsolètes, vous devrez peut-être mettre à jour manuellement les graphe des dépendances de votre référentiel ou examiner vos informations de dépendance plus loin. 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 dépendance n’est plus vulnérable, vous pouvez fermer les Dependabot demande de tirage.

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 « Options de configuration pour le fichier dependabot.yml ».

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éclenchement manuel d’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 « 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 ».

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 montre l’erreur que vous avez corrigée et cliquez sur Créer une mise à jour de sécurité Dependabot .
  • Mises à jour de version : sous l’onglet Insights du dépôt, cliquez sur Graphe de dépendances, puis cliquez sur l’onglet Dependabot. Cliquez sur Dernière vérification il y a TEMPS pour afficher le fichier journal que Dependabot a généré lors de la dernière vérification des mises à jour de version. Cliquez sur Rechercher les mises à jour.

Pour aller plus loin