Skip to main content
Wir veröffentlichen regelmäßig Aktualisierungen unserer Dokumentation, und die Übersetzung dieser Seite ist möglicherweise noch nicht abgeschlossen. Aktuelle Informationen findest du in der englischsprachigen Dokumentation.

Informationen zum Abhängigkeitsdiagramm

Du kannst das Abhängigkeitsdiagramm verwenden, um alle Abhängigkeiten deines Projekts zu identifizieren. Das Abhängigkeitsdiagramm unterstützt eine Reihe beliebter Paketökosysteme.

Informationen zum Abhängigkeitsdiagramm

Das Abhängigkeitsdiagramm ist eine Zusammenfassung von Manifest- und Sperrdateien, die in einem Repository gespeichert sind, und aller mithilfe der Abhängigkeitsübermittlungs-API (Beta) für das Repository übermittelten Abhängigkeiten. Für jedes Repository wird Folgendes angezeigt:

  • Abhängigkeiten (die Ökosysteme und Pakete, von denen es abhängig ist)

  • Abhängige Elemente (die Repositorys und Pakete, die von ihm abhängig sind)

    Für jede Abhängigkeit werden die Lizenzinformationen und Sicherheitsrisikoschweregrade angezeigt. Du kannst auch über die Suchleiste nach einer bestimmten Abhängigkeit suchen. Abhängigkeiten werden automatisch nach dem Sicherheitsrisikoschweregrad sortiert.

Wenn du ein Commit mit Push an GitHub überträgst, das eine unterstützte Manifest- oder Sperrdatei ändert oder dem Standardbranch hinzufügt, wird das Abhängigkeitsdiagramm automatisch aktualisiert. Darüber hinaus wird das Diagramm aktualisiert, wenn jemand eine Änderung mithilfe von Push an das Repository einer deiner Abhängigkeiten überträgt. Informationen zu den unterstützten Ökosystemen und Manifestdateien findest du unter Unterstützte Paketökosysteme weiter unten.

Darüber hinaus kannst du die Abhängigkeitsübermittlungs-API (Beta) verwenden, um Abhängigkeiten vom Paket-Manager oder Ökosystem deiner Wahl zu übermitteln, auch wenn das Ökosystem vom Abhängigkeitsdiagramm für die Manifest- oder Sperrdateianalyse nicht unterstützt wird. Abhängigkeiten, die mithilfe der Abhängigkeitsübermittlungs-API (Beta) an ein Projekt übermittelt wurden, zeigen an, welcher Detektor für die Übermittlung verwendet wurde und wann sie übermittelt wurden. Weitere Informationen zur Abhängigkeitsübermittlungs-API findest du unter Verwenden der Abhängigkeitsübermittlungs-API.

Beim Erstellen eines Pull Requests, der Änderungen an Abhängigkeiten enthält und auf den Standardbranch abzielt, verwendet GitHub das Abhängigkeitsdiagramm, um Abhängigkeitsüberprüfungen zum Pull Request hinzuzufügen. Diese geben an, ob die Abhängigkeiten Sicherheitsrisiken enthalten und zeigen ggf. die Version der Abhängigkeit an, in der die Sicherheitsanfälligkeit behoben wurde. Weitere Informationen findest du unter Informationen zur Abhängigkeitsüberprüfung.

If you have at least read access to the repository, you can export the dependency graph for the repository as an SPDX-compatible, Software Bill of Materials (SBOM). For more information, see "Exportieren einer Software-Stückliste (Software Bill of Materials, SBOM) für dein Repository."

Verfügbarkeit von Abhängigkeitsdiagrammen

Das Abhängigkeitsdiagramm wird automatisch für alle öffentlichen Repositorys generiert. Du kannst es für Forks und für private Repositorys aktivieren. Weitere Informationen findest du unter Verwalten von Sicherheits- und Analyseeinstellungen für dein Repository.

Repositoryadministrator*innen können das Abhängigkeitsdiagramm außerdem für private Repositorys einrichten. Weitere Informationen findest du unter Konfigurieren des Abhängigkeitsdiagramms.

Abhängigkeiten enthalten

Das Abhängigkeitsdiagramm enthält alle Abhängigkeiten eines Repositorys, die im Manifest und in den Sperrdateien oder deren Entsprechung für unterstützte Ökosysteme beschreiben werden, sowie alle Abhängigkeiten, die mit der Abhängigkeitsübermittlungs-API (Beta) übermittelt werden. Dies schließt Folgendes ein:

  • Direkte Abhängigkeiten, die explizit in einer Manifest- oder Sperrdatei definiert sind, oder mithilfe der Abhängigkeitsübermittlungs-API (Beta) übermittelt wurden
  • Indirekte Abhängigkeiten dieser direkten Abhängigkeiten, auch bekannt als transitive Abhängigkeiten oder Unterabhängigkeiten bezeichnet

Das Abhängigkeitsdiagramm identifiziert indirekte Abhängigkeiten entweder explizit aus einer Sperrdatei oder durch Überprüfen der Abhängigkeiten deiner direkten Abhängigkeiten. Für eine optimale Zuverlässigkeit des Diagramms solltest du Sperrdateien (oder deren Entsprechungen) verwenden, da sie genau definieren, welche Versionen der direkten und indirekten Abhängigkeiten derzeit verwendet werden. Wenn du Sperrdateien verwendest, stelle auch sicher, dass alle Mitwirkenden des Repositorys dieselben Versionen verwenden, wodurch es dir erleichtert wird, Code.

Weitere Informationen dazu, wie GitHub dabei hilft, die Abhängigkeiten in deiner Umgebung zu verstehen, findest du unter Informationen zur Lieferkettensicherheit.

Abhängige Objekte enthalten

Bei öffentlichen Repositorys werden nur öffentliche Repositorys im Bericht angezeigt, die von ihnen oder den von ihnen veröffentlichten Paketen abhängig sind. Für private Repositorys werden diese Informationen nicht im Bericht angezeigt.

Verwenden des Abhängigkeitsdiagramms

Du kannst das Abhängigkeitsdiagramm verwenden, um folgende Aktionen auszuführen:

Unterstützte Paket-Ökosysteme

Die empfohlenen Formate definieren explizit, welche Versionen für alle direkten und indirekten Abhängigkeiten verwendet werden. Wenn du diese Formate verwendest, ist dein Abhängigkeitsdiagramm genauer. Außerdem wird der aktuelle Build eingerichtet und ermöglicht es dem Abhängigkeitsdiagramm, Sicherheitsrisiken sowohl in direkten als auch indirekten Abhängigkeiten zu melden. Aus einer Manifestdatei (oder deren Entsprechung) abgeleitete indirekte Abhängigkeiten werden aus den Prüfungen auf unsichere Abhängigkeiten ausgeschlossen.

| Paket-Manager | Languages | Empfohlene Formate | Alle unterstützten Formate | | --- | --- | --- | ---| | Cargo | Rust | Cargo.lock | Cargo.toml, Cargo.lock | | Composer | PHP | composer.lock | composer.json, composer.lock | | NuGet | .NET languages (C#, F#, VB), C++ | .csproj, .vbproj, .nuspec, .vcxproj, .fsproj | .csproj, .vbproj, .nuspec, .vcxproj, .fsproj, packages.config | | GitHub Actions workflows | 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 | | 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 |

Hinweise:

  • Wenn du deine Python-Abhängigkeiten in einer setup.py-Datei auflistest, können möglicherweise nicht alle Abhängigkeiten in deinem Projekt analysiert und aufgelistet werden.

  • GitHub Actions-Workflows müssen sich im .github/workflows/-Verzeichnis eines Repositorys befinden, um als Manifeste erkannt zu werden. Alle Aktionen oder Workflows, auf die mithilfe der Syntax jobs[*].steps[*].uses oder jobs.<job_id>.uses verwiesen wird, werden als Abhängigkeiten analysiert. Weitere Informationen findest du unter Workflowsyntax für GitHub Actions.

  • GitHub Actions-Workflowabhängigkeiten werden zu Informationszwecken im Abhängigkeitsdiagramm angezeigt. Dependabot-Warnungen werden für GitHub Actions-Workflows derzeit nicht unterstützt.

Du kannst die Abhängigkeitsübermittlungs-API (Beta) verwenden, um Abhängigkeiten aus dem Paket-Manager oder dem Ökosystem deiner Wahl zum Abhängigkeitsdiagramm hinzuzufügen, selbst dann, wenn sich das Ökosystem nicht in der Liste der unterstützen Ökosysteme (oben) befindet. Abhängigkeiten, die mit der Abhängigkeitsübermittlungs-API (Beta) an ein Projekt übermittelt wurden, zeigen an, welche Erkennung für die Übermittlung verwendet wurde und wann die Übermittlung erfolgt ist.

Du erhältst Dependabot alerts nur für Abhängigkeiten, die von einem der unterstützten Ökosysteme von GitHub Advisory Database stammen. Weitere Informationen zur Abhängigkeitsübermittlungs-API findest du unter Verwenden der Abhängigkeitsübermittlungs-API.

Weiterführende Themen