Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Verwenden der Abhängigkeitsübermittlungs-API

Mit der Abhängigkeitsübermittlungs-API kannst du Abhängigkeiten für Projekte übermitteln, z. B. die Abhängigkeiten, die gelöst werden, wenn ein Projekt erstellt oder kompiliert wird.

Hinweis: Die Möglichkeit zur Verwendung der REST-API für die Übermittlung von Abhängigkeiten befindet sich derzeit in der öffentlichen Betaversion und kann noch geändert werden.

Informationen zur Abhängigkeitsübermittlungs-API

Du kannst die REST-API verwenden, um Abhängigkeiten für ein Projekt zu übermitteln. Dadurch kannst du Abhängigkeiten wie die, die beim Kompilieren oder Erstellen von Software aufgelöst werden, zum Abhängigkeitsdiagrammfeature von GitHub hinzufügen und ein vollständigeres Bild aller Abhängigkeiten deines Projekts bieten.

Das Abhängigkeitsdiagramm zeigt alle Abhängigkeiten, die du mithilfe der API übermittelst, zusätzlich zu allen Abhängigkeiten, die von Manifest- oder Sperrdateien im Repository aus identifiziert werden (z. B. eine package-lock.json-Datei in einem JavaScript-Projekt). Weitere Informationen zum Anzeigen des Abhängigkeitsdiagramms findest du unter Erkunden der Abhängigkeiten eines Repositorys.

Übermittelte Abhängigkeiten erhalten Dependabot alerts und Dependabot security updates für alle bekannten Sicherheitsrisiken. Du empfängst Dependabot alerts nur für Abhängigkeiten, die von einem der unterstützten Ökosysteme von GitHub Advisory Database stammen. Übermittelte Abhängigkeiten werden nicht in Abhängigkeitsüberprüfungen oder den Abhängigkeitserkenntnissen deiner Organisation angezeigt.

Abhängigkeiten werden in Form einer Momentaufnahme an die Abhängigkeitsübermittlungs-API übermittelt. Eine Momentaufnahme ist eine Reihe von Abhängigkeiten, die einem Commit-SHA und anderen Metadaten zugeordnet sind, die den aktuellen Status deines Repositorys für einen Commit widerspiegeln. Weitere Informationen zur Abhängigkeitsübermittlungs-API findest du in der REST-API-Dokumentation zur Abhängigkeitsübermittlung.

Übermitteln von Abhängigkeiten zur Buildzeit

Du kannst die Abhängigkeitsübermittlungs-API in einem GitHub Actions-Workflow verwenden, um beim Erstellen deines Projekts Abhängigkeiten dafür zu übermitteln.

Verwenden vordefinierter Aktionen

Am einfachsten lässt sich die Abhängigkeitsübermittlungs-API verwenden, indem du deinem Repository eine vordefinierte Aktion hinzuzufügst, die die Liste der Abhängigkeiten erfasst, in das erforderliche Momentaufnahmeformat konvertiert und an die API übermittelt. Aktionen, die diese Schritte für verschiedene Ökosysteme ausführen, sind auf GitHub Marketplace verfügbar, und weitere Aktionen werden im Verlauf der Betaversion und darüber hinaus erstellt. Links zu den derzeit verfügbaren Aktionen findest du in der folgenden Tabelle:

ÖkosystemAktion
GoGo-Abhängigkeitsübermittlung

Der folgende Workflow für die Go-Abhängigkeitsübermittlung berechnet beispielsweise die Abhängigkeiten für ein Go-Buildziel (eine Go-Datei mit einer main-Funktion) und sendet die Liste an die Abhängigkeitsübermittlungs-API.


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

Erstellen einer eigenen Aktion

Alternativ kannst du eine eigene Aktion schreiben, um Abhängigkeiten für dein Projekt zur Buildzeit zu übermitteln. Mit deinem Workflow sollen folgende Aktionen ausgeführt werden:

  1. Generieren einer Liste von Abhängigkeiten für dein Projekt.
  2. Übersetzen der Liste der Abhängigkeiten in das Momentaufnahmeformat, das von der Abhängigkeitsübermittlungs-API akzeptiert wird. Weitere Informationen zum Format findest du in den Textparametern für den API-Vorgang „Erstellen einer Repository-Momentaufnahme“ in der REST-API-Dokumentation zur Abhängigkeitsübermittlung.
  3. Übermitteln der formatierten Liste der Abhängigkeiten an die Abhängigkeitsübermittlungs-API.

GitHub verwaltet das Dependency Submission Toolkit, eine TypeScript-Bibliothek, mit der du eine eigene GitHub-Aktion zum Übermitteln von Abhängigkeiten an die Abhängigkeitsübermittlungs-API erstellen kannst. Weitere Informationen zum Schreiben einer Aktion findest du unter Erstellen von Aktionen.