Skip to main content

Comment le graphique de dépendances reconnaît les dépendances

Le graphique de dépendance analyse automatiquement les fichiers manifestes. Vous pouvez envoyer des données pour les dépendances qui ne peuvent pas être détectées automatiquement.

Qui peut utiliser cette fonctionnalité ?

Le graphe des dépendances est disponible pour les types de référentiels suivants :

  • Référentiels publics (activés par défaut)
  • Référentiels privés
  • Fourches

Le graphique de dépendances peut identifier les dépendances de votre projet à l’aide des méthodes suivantes.

MéthodeFonctionnement
          **Analyse statique** | Analyse le manifeste et verrouille les fichiers dans votre référentiel |

| | | Dependabot tâches de graphe | Utilise un flux de travail Dependabot GitHub Actions pour générer des instantanés des dépendances | | | | | | Soumission automatique | Exécute un workflow GitHub Actions intégré afin de résoudre les dépendances de compilation. | | | API de soumission de dépendances | Accepte les données de dépendance que vous soumettez par programmation |

Une fois que les dépendances se trouvent dans le graphique, vous pouvez recevoir Dependabot alerts et Dependabot security updates pour toutes les vulnérabilités connues.

Analyse statique

Lorsque vous activez le graphique de dépendances, GitHub analyse votre référentiel pour rechercher les fichiers manifeste pris en charge et analyse le nom et la version de chaque package. Le graphique est mis à jour lorsque vous modifiez un manifeste ou un fichier de verrouillage pris en charge sur votre branche par défaut, ou lorsqu’une dépendance change dans son propre référentiel.

L’analyse statique peut identifier :

  •         **Dépendances directes** explicitement définies dans un manifeste ou un fichier de verrouillage
    
  •         **Dépendances indirectes : dépendances** de ces dépendances directes, également appelées « dépendances transitives », mais uniquement si elles sont définies dans un manifeste ou un fichier de verrouillage, et non si elles sont résolues au moment de la génération
    

Pour le graphique le plus fiable, vous devez utiliser des fichiers de verrouillage (ou leur équivalent), car ils définissent exactement les versions des dépendances directes et indirectes que vous utilisez actuellement. Les fichiers de verrouillage garantissent également que tous les contributeurs au référentiel utilisent les mêmes versions, ce qui facilite le test et le débogage du code. En outre, les dépendances indirectes déduites des fichiers manifestes (au lieu de verrouiller les fichiers) sont exclues des vérifications des vulnérabilités.

Envoi automatique des dépendances

Certains écosystèmes résolvent les dépendances indirectes au moment de la génération, de sorte que l’analyse statique ne peut pas voir l’arborescence complète des dépendances. Lorsque vous activez l’envoi automatique de dépendances pour un référentiel, GitHub identifie automatiquement les dépendances transitives dans le référentiel pour les écosystèmes pris en charge. Consultez « Écosystèmes de packages pris en charge par le graphe des dépendances ».

En arrière-plan, la soumission automatique des dépendances déclenche un workflow GitHub Actions qui génère l’arborescence complète et la transmet à l’aide de API de soumission de dépendances. Par défaut, la soumission automatique des dépendances s’exécute sur des runners hébergés par GitHub et est décomptée de vos minutes GitHub Actions. Vous pouvez également décider de l’exécuter sur des runners auto-hébergés ou sur exécuteurs plus grands.

Pour activer la soumission automatique de dépendances, consultez Configuration de l’envoi automatique des dépendances pour votre dépôt.

Dependabot tâches graphiques

Cette approche utilise un type spécifique de tâche Dependabot qui crée un instantané des dépendances puis le transmet à l’API de soumission des dépendances. Cela n’est actuellement pris en charge que pour les dépendances Go .

Cette approche est similaire à la soumission automatique de dépendances, mais n’entraîne pas de frais pour GitHub Actions minutes. Elle peut également accéder aux configurations définies à l’échelle de l’organisation pour les registres privés que vous avez configurés pour Dependabot.

La API de soumission de dépendances

Vous pouvez invoquer API de soumission de dépendances depuis votre propre script ou workflow. Cela est utile si :

  • Vous devez envoyer des dépendances transitives qui ne peuvent pas être détectées à partir de fichiers de verrouillage.
  • Vous devez créer une logique personnalisée ou utiliser un système CI/CD externe.

Les dépendances sont soumises à l’API API de soumission de dépendances sous la forme d’un instantané. Il s’agit d’une liste de dépendances associées à un SHA de commit ainsi qu’à d’autres métadonnées, reflétant l’état actuel de votre référentiel.

Si vous appelez l’API dans un flux de travail GitHub Actions , vous pouvez utiliser une action prédéfinie pour votre écosystème qui collecte automatiquement les dépendances et les envoie à l’API. Sinon, vous pouvez écrire votre propre action ou appeler l’API à partir d’un système externe.

Les dépendances soumises seront affichées dans la revue des dépendances, mais ne sont pas disponibles dans les insights de dépendance de votre organisation.

Pour plus d’informations, consultez « Utilisation de l’API de soumission de dépendances ».

Hiérarchisation