Skip to main content

Diese Version von GitHub Enterprise Server wurde eingestellt am 2026-03-17. Es wird keine Patch-Freigabe vorgenommen, auch nicht für kritische Sicherheitsprobleme. Für bessere Leistung, verbesserte Sicherheit und neue Features aktualisiere auf die neueste Version von GitHub Enterprise Server. Wende dich an den GitHub Enterprise-Support, um Hilfe zum Upgrade zu erhalten.

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.

Abhängigkeitsübermittlungs-API ist eine Methode zum Senden von Daten an das Abhängigkeitsdiagramm. Es ermöglicht Ihnen, Abhängigkeiten zu übermitteln, die nicht von statischer Analyse erfasst werden. Weitere Informationen finden Sie unter Wie das Abhängigkeitsdiagramm Abhängigkeiten erkennt.

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

ÖkosystemAktion
GoGo-Abhängigkeitsübermittlung
GradleGradle Dependency Submission
MavenMaven Dependency Tree Dependency Submission
MühleMill Dependency Submission
Mix (Elixir)Mix Dependency Submission
ScalaSbt Dependency Submission
NuGet und andereAktion zur Übermittlung von Abhängigkeiten bei der Komponentenerkennung

Hinweis

Für die Aktion zur Übermittlung von Abhängigkeiten zur Komponentenerkennung werden auch andere Ökosysteme wie Vcpkg, Conan, Conda, Crates und NuGet unterstützt.

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

# 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@v5

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

      - name: Run snapshot action
        uses: actions/go-dependency-submission@v2
        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

Weitere Informationen zu diesen Aktionen findest du unter Von Abhängigkeitsdiagrammen unterstützte Paket-Ökosysteme.

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. Generiere eine Liste von Abhängigkeiten für dein Projekt.
  2. Übersetzen Sie die Liste der Abhängigkeiten in das von der Abhängigkeitsübermittlungs-API akzeptierte Snapshot-Format. Weitere Informationen zum Format findest du in den Textparametern für den API-Endpunkt „Erstellen einer Repository-Momentaufnahme“ unter REST-API-Endpunkte für die Abhängigkeitsübermittlung.
  3. Übermittle die formatierte Liste der Abhängigkeiten an die Abhängigkeitsübermittlungs-API.

verwaltet das Dependency Submission Toolkit, eine TypeScript-Bibliothek, mit der Sie Ihre eigene GitHub Aktion zum Übermitteln von Abhängigkeiten an die Abhängigkeitsübermittlungs-API erstellen können. Weitere Informationen zum Schreiben einer Aktion findest du unter Wiederverwenden von Automatisierungen.

Einreichung von SBOMs als Momentaufnahmen

Wenn du über externe Tools verfügst, die Software Bills of Materials (SBOMs) erstellen oder verwalten, kannst du diese SBOMs ebenso an die Abhängigkeitsübermittlungs-API übermitteln. Das Datenformat der Momentaufnahme ähnelt sehr den standardmäßigen SPDX- und CycloneDX SBOM-Formaten, und es gibt mehrere Tools, mit denen Formate für die Verwendung als Momentaufnahmen generiert oder übersetzt werden können.

Tipp

Die SPDX Dependency Submission Action und die Anchore SBOM Action können verwendet werden, um ein SBOM zu generieren und es an die Abhängigkeitsübermittlungs-API zu senden.

Der folgende SPDX-Workflow für die Abhängigkeitsübermittlungsaktion berechnet beispielsweise die Abhängigkeiten für ein Repository, generiert eine exportierbare SBOM im SPDX 2.2-Format und übermittelt sie an die Abhängigkeitsübermittlungs-API.

# Dieser Workflow verwendet Aktionen, die nicht von GitHub zertifiziert sind.
# Sie werden von einem Drittanbieter bereitgestellt und unterliegen
# separaten Nutzungsbedingungen, Datenschutzbestimmungen und Support
# Onlinedokumentation.
name: SBOM upload

on:
  workflow_dispatch:
  push:
    branches: ["main"]

jobs:
  SBOM-upload:

    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: write

    steps:
    - uses: actions/checkout@v5
    - name: Generate SBOM
      # generation command documentation: https://github.com/microsoft/sbom-tool#sbom-generation
      run: |
        curl -Lo $RUNNER_TEMP/sbom-tool https://github.com/microsoft/sbom-tool/releases/latest/download/sbom-tool-linux-x64
        chmod +x $RUNNER_TEMP/sbom-tool
        $RUNNER_TEMP/sbom-tool generate -b . -bc . -pn $ -pv 1.0.0 -ps OwnerName -nsb https://sbom.mycompany.com -V Verbose
    - uses: actions/upload-artifact@v3
      with:
        name: sbom
        path: _manifest/spdx_2.2
    - name: SBOM upload
      uses: advanced-security/spdx-dependency-submission-action@5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e
      with:
        filePath: "_manifest/spdx_2.2/"