À propos du graphe de dépendances
Le graphe des dépendances est un résumé des manifestes et fichiers de verrouillage stockés dans un référentiel et de toutes les dépendances soumises pour le référentiel à l’aide de l’API de soumission de dépendances (bêta). Pour chaque dépôt, il affiche :
- Dépendances, les écosystèmes et les packages dont il dépend
- Dépendants, les dépôts et les packages qui en dépendent
Quand vous poussez (push) vers GitHub Enterprise Cloud un commit qui change un manifeste ou un fichier de verrouillage pris en charge ou l’ajoute à la branche par défaut, le graphe de dépendances est automatiquement mis à jour. En outre, le graphe est mis à jour quand une personne pousse une modification vers le dépôt de l’une de vos dépendances. Pour plus d’informations sur les fichiers manifestes et les écosystèmes pris en charge, consultez « Écosystèmes de packages pris en charge » ci-dessous.
En outre, vous pouvez utiliser l’API Soumission des dépendances (bêta) pour envoyer des dépendances à partir du gestionnaire de package ou de l’écosystème de votre choix, même si l’écosystème n’est pas pris en charge par le graphe des dépendances pour l’analyse du manifeste ou du verrouillage des fichiers. Le graphe des dépendances affiche les dépendances envoyées regroupées par écosystème, mais séparément des dépendances analysées à partir du manifeste ou des fichiers de verrouillage. Pour plus d’informations sur l’API d’envoi de dépendances, consultez « Utilisation de l’API de soumission de dépendances ».
Quand vous créez une demande de tirage (pull request) contenant des modifications apportées aux dépendances qui cible la branche par défaut, GitHub utilise le graphe de dépendances pour ajouter des révisions de dépendance à la demande de tirage. Celles-ci indiquent si les dépendances contiennent des vulnérabilités et, si c’est le cas, la version de la dépendance dans laquelle la vulnérabilité a été corrigée. Pour plus d’informations, consultez « À propos de la vérification des dépendances ».
Disponibilité du graphe de dépendances
Le graphe des dépendances est généré automatiquement pour tous les dépôts publics. Vous pouvez choisir de l’activer pour les duplications (forks) et pour les dépôts privés. Pour plus d’informations, consultez « Gestion des paramètres de sécurité et d’analyse pour votre dépôt ».
Les administrateurs de dépôts peuvent également configurer le graphe de dépendances pour les référentiels privés. Pour plus d’informations, consultez « Configuration du graphe de dépendances ».
Vous ne pourrez peut-être pas activer ou désactiver le graphe des dépendances 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 ».
Dépendances incluses
Le graphe des dépendances comprend toutes les dépendances d’un référentiel qui sont détaillées dans les manifestes et fichiers de verrouillage, ou leur équivalent, pour les écosystèmes pris en charge, ainsi que toutes les dépendances soumises à l’aide de l’API de soumission de dépendances (bêta). notamment :
- Dépendances directes, qui sont explicitement définies dans un manifeste ou un fichier de verrouillage ou qui ont été soumises à l’aide de l’API de soumission de dépendances (bêta)
- Les dépendances indirectes de ces dépendances directes, également appelées dépendances transitives ou sous-dépendances
Le graphe de dépendances identifie les dépendances indirectes explicitement à partir d’un fichier de verrouillage ou en vérifiant les dépendances de vos dépendances directes. Pour que le graphe soit le plus fiable possible, 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 êtes en train d’utiliser. Si vous utilisez des fichiers de verrouillage, vous vous assurez également que tous les contributeurs au dépôt utilisent les mêmes versions, ce qui facilite le test et le débogage du code.
Pour plus d’informations sur la façon dont GitHub Enterprise Cloud vous aide à comprendre les dépendances au sein de votre environnement, consultez « À propos de la sécurité de la chaîne d’approvisionnement ».
Éléments dépendants inclus
Dans le cas d’un dépôt public, seuls sont signalés les dépôts publics qui en dépendent ou qui dépendent des packages qu’il publie. Ces informations ne sont pas signalées pour les dépôts privés.
Utilisation du graphe de dépendances
Vous pouvez utiliser le graphe de dépendances pour :
- Explorer les dépôts dont votre code dépend et ceux qui en dépendent. Pour plus d’informations, consultez « Exploration des dépendances d’un dépôt ».
- Affichez un récapitulatif des dépendances utilisées dans les dépôts de votre organisation dans un tableau de bord unique. Pour plus d’informations, consultez « Affichage d’insights pour votre organisation ».
- Affichez et mettez à jour les dépendances vulnérables pour votre dépôt. Pour plus d’informations, consultez « À propos des alertes Dependabot ».
- Consultez des informations sur les dépendances vulnérables dans les demandes de tirage. Pour plus d’informations, consultez « Révision des changements de dépendances dans une demande de tirage ».
Écosystèmes de packages pris en charge
Les formats recommandés définissent explicitement les versions utilisées pour toutes les dépendances directes et indirectes. Si vous utilisez ces formats, votre graphe des dépendances est plus précis. Cela reflète également la configuration actuelle de la build et permet au graphe de dépendances de signaler les vulnérabilités dans les dépendances directes et indirectes. Les dépendances indirectes déduites d’un fichier manifeste (ou équivalent) sont exclues des recherches de dépendances non sécurisées.
| Gestionnaire de package | Langages | Formats recommandés | Tous les formats pris en charge |
| --- | --- | --- | ---| | Cargo | Rust | Cargo.lock
| Cargo.toml
, Cargo.lock
| | Composer | PHP | composer.lock
| composer.json
, composer.lock
| | NuGet | Langages .NET (C#, F#, VB), C++ | .csproj
, .vbproj
, .nuspec
, .vcxproj
, .fsproj
| .csproj
, .vbproj
, .nuspec
, .vcxproj
, .fsproj
, packages.config
| | GitHub Actions workflows [1] | YAML | .yml
, .yaml
| .yml
, .yaml
| | Go modules | Go | go.mod
| go.mod
| | Maven | Java, Scala | pom.xml
| pom.xml
| | npm | JavaScript | package-lock.json
| package-lock.json
, package.json
| | pip | Python | requirements.txt
, pipfile.lock
| requirements.txt
, pipfile
, pipfile.lock
, setup.py
[2] | | pub | Dart | pubspec.lock
| pubspec.yaml
, pubspec.lock
| | Python Poetry | Python | poetry.lock
| poetry.lock
, pyproject.toml
| | RubyGems | Ruby | Gemfile.lock
| Gemfile.lock
, Gemfile
, *.gemspec
| | Yarn | JavaScript | yarn.lock
| package.json
, yarn.lock
|
[1] Les workflows GitHub Actions doivent se trouver dans le répertoire .github/workflows/
d’un dépôt pour être identifiés comme des manifestes. Toutes les actions ou workflows référencés avec la syntaxe jobs[*].steps[*].uses
ou jobs.<job_id>.uses
sont analysés en tant que dépendances. Pour plus d’informations, consultez « Workflow syntax for GitHub Actions ».
[2] Si vous listez vos dépendances Python dans un fichier setup.py
, il est possible que nous ne soyons pas en mesure d’analyser et de lister chaque dépendance dans votre projet.
Remarque : Les dépendances de workflow GitHub Actions sont affichées dans le graphe de dépendances à des fins d’information. Les alertes Dependabot ne sont pas prises en charge pour les workflows GitHub Actions.
Vous pouvez utiliser l’API de soumission de dépendances (bêta) pour ajouter les dépendances du gestionnaire de package ou de l’écosystème de votre choix au graphe des dépendances, même si l’écosystème ne figure pas dans la liste des écosystèmes pris en charge ci-dessus. Le graphe des dépendances affiche les dépendances soumises regroupées par écosystème, mais séparément des dépendances analysées à partir du manifeste ou des fichiers de verrouillage. Vous ne recevrez des Dependabot alerts que pour les dépendances provenant de l’un des écosystèmes pris en charge par la GitHub Advisory Database. Pour plus d’informations sur l’API d’envoi de dépendances, consultez « Utilisation de l’API de soumission de dépendances ».