Skip to main content

Utilisation de l’API de soumission de dépendances

Vous pouvez utiliser l’API de soumission de dépendances pour envoyer des dépendances pour des projets, telles que celles résolues lorsqu’un projet est généré ou compilé.

Remarque : La possibilité d’utiliser l’API REST pour la soumission de dépendances est actuellement en version bêta publique et est susceptible d’être modifiée.

À propos de l’API de soumission de dépendances

Vous pouvez utiliser l’API REST pour envoyer des dépendances pour un projet. Cela vous permet d’ajouter des dépendances, comme celles résolues quand le logiciel est compilé ou généré, au graphique de dépendance GitHub, pour une vue d’ensemble plus complète de l’ensemble des dépendances de votre projet.

Le graphique de dépendances affiche les dépendances que vous envoyez à l’aide de l’API, en plus des dépendances identifiées à partir de fichiers manifeste ou de verrouillage dans le référentiel (par exemple un fichier package-lock.json dans un projet JavaScript). Pour plus d’informations sur l’affichage du graphique de dépendance, consultez « Exploration des dépendances d’un référentiel ».

Les dépendances envoyées reçoivent des Dependabot alerts et Dependabot security updates pour toutes les vulnérabilités connues. Vous recevez uniquement des Dependabot alerts pour les dépendances provenant de l’un des écosystèmes pris en charge par GitHub Advisory Database. Les dépendances envoyées ne sont pas exposées dans la révision des dépendances ou dans les insights de dépendance de votre organisation.

Les dépendances sont envoyées à l’API de soumission de dépendances sous la forme d’une capture instantanée. Une capture instantanée est un ensemble de dépendances associées à un SHA de commit et à d’autres métadonnées, qui reflète l’état actuel de votre dépôt pour un commit. Pour plus d’informations sur l’API de soumission de dépendances, consultez la documentation de l’API REST de soumission de dépendances.

Envoi de dépendances au moment de la génération

Vous pouvez utiliser l’API de soumission de dépendances dans un workflow GitHub Actions pour envoyer des dépendances pour votre projet lorsqu’il est généré.

Utilisation d’actions prédéfinies

La façon la plus simple d’utiliser l’API de soumission de dépendances consiste à ajouter une action prédéfinie à votre dépôt qui collecte et convertit la liste des dépendances au format de capture instantanée requis et envoie la liste à l’API. Les actions qui effectuent ces étapes pour différents écosystèmes sont disponibles sur GitHub Marketplace et d’autres actions seront créées au cours de la version bêta et au-delà. Vous trouverez des liens vers les actions actuellement disponibles dans le tableau ci-dessous :

ÉcosystèmeAction
GoSoumission de dépendance Go

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 envoie la liste à l’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

# Envionment 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@v3
        
      - uses: actions/setup-go@v3
        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

Création de votre propre action

Vous pouvez également écrire votre propre action pour envoyer des dépendances pour votre projet au moment de la génération. Votre workflow doit :

  1. Générer une liste de dépendances pour votre projet.
  2. Convertir la liste des dépendances au format de capture instantanée accepté par l’API de soumission de dépendances. Pour plus d’informations sur le format, consultez les paramètres de corps de l’opération d’API « Créer une capture instantanée de dépôt » dans la documentation de l’API REST de soumission de dépendances.
  3. Envoyer la liste mise en forme des dépendances à l’API de soumission de dépendances.

GitHub gère le Kit de ressources de soumission de dépendances, une bibliothèque TypeScript pour vous aider à créer votre propre action GitHub pour envoyer des dépendances à l’API de soumission de dépendances. Pour plus d’informations sur l’écriture d’une action, consultez « Création d’actions ».