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.

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)

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 mit der Abhängigkeitsübermittlungs-API (Beta) auch dann Abhängigkeiten vom Paket-Manager oder Ökosystem deiner Wahl übermitteln, wenn das Ökosystem nicht vom Abhängigkeitsdiagramm für Manifest- oder Sperrdateianalyse unterstützt wird. Das Abhängigkeitsdiagramm zeigt die übermittelten Abhängigkeiten nach Ökosystemen gruppiert an, jedoch getrennt von den aus Manifest- oder Sperrdateien analysierten Abhängigkeiten. 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ängigkeitsprüfung.

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 Sicherheit der Lieferkette.

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-Sprachen (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-Module | Go | go.sum | go.mod, go.sum | | 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 |

[†] 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.

[‡] Wenn du deine Python-Abhängigkeiten in einer setup.py-Datei auflistest, können wir möglicherweise nicht alle Abhängigkeiten in deinem Projekt analysieren und auflisten.

Hinweis: GitHub Actions Workflowabhängigkeiten werden im Abhängigkeitsdiagramm zu Informationszwecken 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. Das Abhängigkeitsdiagramm zeigt die übermittelten Abhängigkeiten nach Ökosystemen gruppiert an, jedoch getrennt von den aus Manifest- oder Sperrdateien geparsten Abhängigkeiten. Du empfängst 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