Skip to main content

Cette version de GitHub Enterprise Server n'est plus disponible depuis le 2024-09-25. 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.

Écosystèmes de packages pris en charge pour le graphe des dépendances

Le graphe des dépendances prend en charge un large éventail d’écosystèmes.

À propos du graphe des dépendances

Le graphe des dépendances est un résumé des fichiers manifest et des fichiers de verrouillage dans un dépôt. Il contient également toutes les dépendances soumises pour le dépôt à l'aide de l'interface API de soumission de dépendances. Pour chaque dépôt, il affiche les dépendances, c’est-à-dire les écosystèmes et les packages dont il dépend.

GitHub Enterprise Server ne récupère pas les informations de licence pour les dépendances, et ne calcule pas les informations sur les dépendants, les dépôts et les packages qui dépendent d’un dépôt. Pour plus d’informations, consultez « À propos du graphe de dépendances ».

Dans cet article, vous pouvez voir ce que sont les écosystèmes pris en charge.

É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.

Package managerLanguagesRecommended formatsAll supported formats
CargoRustCargo.lockCargo.toml, Cargo.lock
ComposerPHPcomposer.lockcomposer.json, composer.lock
NuGet.NET languages (C#, F#, VB), C++.csproj, .vbproj, .nuspec, .vcxproj, .fsproj.csproj, .vbproj, .nuspec, .vcxproj, .fsproj, packages.config
GitHub Actions workflowsYAML.yml, .yaml.yml, .yaml
Go modulesGogo.modgo.mod
MavenJava, Scalapom.xmlpom.xml
npmJavaScriptpackage-lock.jsonpackage-lock.json, package.json
pipPythonrequirements.txt, pipfile.lockrequirements.txt, pipfile, pipfile.lock, setup.py
pubDartpubspec.lockpubspec.yaml, pubspec.lock
Python PoetryPythonpoetry.lockpoetry.lock, pyproject.toml
RubyGemsRubyGemfile.lockGemfile.lock, Gemfile, *.gemspec
Swift Package ManagerSwiftPackage.resolvedPackage.resolved
YarnJavaScriptyarn.lockpackage.json, yarn.lock

Notes:

  • If you list your Python dependencies within a setup.py file, we may not be able to parse and list every dependency in your project.

  • GitHub Actions workflows must be located in the .github/workflows/ directory of a repository to be recognized as manifests. Any actions or workflows referenced using the syntax jobs[*].steps[*].uses or jobs.<job_id>.uses will be parsed as dependencies. For more information, see "Workflow syntax for GitHub Actions."

  • Dependabot ne créera Dependabot alerts que pour les GitHub Actions vulnérables qui utilisent le contrôle de version sémantique. Vous ne recevrez pas d'alertes pour une action vulnérable qui utilise le contrôle de version SHA. Si vous utilisez GitHub Actions avec le contrôle de version SHA, nous vous recommandons d'activer Dependabot version updates pour votre référentiel ou votre organisation afin que les actions que vous utilisez soient mises à jour avec les dernières versions. For more information, see "À propos des alertes Dependabot" and "À propos des mises à jour de version Dependabot."

Écosystèmes de package pris en charge via les actions de soumission de dépendances

Vous pouvez utiliser API de soumission de dépendances pour ajouter des dépendances au moment du build à votre graphe des dépendances, ou ajouter des 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. Les informations de dépendance de ces dépendances envoyées circulent à leur tour dans des Dependabot updates et Dependabot alerts.

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 des fichiers manifeste ou de verrouillage. Pour plus d'informations sur les API de soumission de dépendances, consultez « Utilisation de l’API de soumission de dépendances. »

Vous utilisez généralement l’API API de soumission de dépendances dans un workflow GitHub Actions pour soumettre des dépendances pour votre projet lorsque celui-ci est généré. La façon la plus simple d’utiliser l’API API de soumission de dépendances consiste à ajouter une action prédéfinie à votre référentiel pour collecter et convertir la liste des dépendances au format d’instantané requis, puis soumettre la liste à l’API. Vous trouverez des liens vers les actions actuellement disponibles dans le tableau ci-dessous.

ÉcosystèmeAction
GoSoumission de dépendance Go
GradleSoumission de dépendances Gradle
MavenSoumission de dépendances Maven Dependency Tree
FraiseuseSoumission de dépendances Mill
ScalaSoumission de dépendances Sbt
NuGet et autresAction de soumission de dépendances pour la détection de composant

Remarque : Pour l’action de soumission de dépendance pour la détection de composants, les autres écosystèmes pris en charge incluent Vcpkg, Conan, Conda, Crates, ainsi que NuGet.

Par exemple, le workflow Soumission de dépendance Go suivant calcule les dépendances d’une cible de génération Go (fichier Go avec une fonction main) et soumet la liste à l’API API de soumission de dépendances.

name: Go Dependency Submission
on:
  push:
    branches:
      - main

# The API requires write permission on the repository to submit dependencies
permissions:
  contents: write

# Environment variables to configure Go and Go modules. Customize as necessary
env:
  GOPROXY: '' # A Go Proxy server to be used
  GOPRIVATE: '' # A list of modules are considered private and not requested from GOPROXY
jobs:
  go-action-detection:
    runs-on: ubuntu-latest
    steps:
      - name: 'Checkout Repository'
        uses: actions/checkout@v4

      - uses: actions/setup-go@v5
        with:
          go-version: ">=1.18.0"

      - name: Run snapshot action
        uses: actions/go-dependency-submission@v1
        with:
            # Required: Define the repo path to the go.mod file used by the
            # build target
            go-mod-path: go-example/go.mod
            #
            # Optional. Define the repo path of a build target,
            # a file with a `main()` function.
            # If undefined, this action will collect all dependencies
            # used by all build targets for the module. This may
            # include Go dependencies used by tests and tooling.
            go-build-target: go-example/cmd/octocat.go

Vous pouvez également créer votre propre action. Pour plus d’informations, consultez « Utilisation de l’API de soumission de dépendances ».