Informationen zum Abhängigkeitsdiagramm
Das Abhängigkeitsdiagramm ist eine Zusammenfassung von Manifest- und gesperrten Dateien, die in einem Repository gespeichert sind, und aller mithilfe der Abhängigkeitsübermittlungs-API 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 kannst du die Version, die Lizenzinformationen, die Manifestdatei, die diese enthielt, und die Antwort auf die Frage anzeigen, ob es bekannte Sicherheitsrisiken gibt. Für Paketökosysteme, die transitive Abhängigkeiten unterstützen, wird der Beziehungsstatus angezeigt, und du kannst auf „“ und dann auf „Show paths“ klicken, um den transitiven Pfad anzuzeigen, der die Abhängigkeit eingeführt hat.
Du kannst auch über die Suchleiste nach einer bestimmten Abhängigkeit suchen. Abhängigkeiten werden automatisch so sortiert, dass Sicherheitsrisiken oben stehen.
Wenn Sie einen Pushvorgang für ein Commit an GitHub ausführen, das eine unterstützte Manifest- oder Sperrdatei ändert oder der Standardverzweigung hinzufügt, wird das Abhängigkeitsdiagramm automatisch aktualisiert. Darüber hinaus wird das Diagramm aktualisiert, wenn eine Person einen Pushvorgang mit einer Änderung an das Repository einer Ihrer Abhängigkeiten ausführt.
Weitere Informationen zu den unterstützten Ökosystemen und Manifestdateien finden Sie unter Von Abhängigkeitsdiagrammen unterstützte Paket-Ökosysteme.
Darüber hinaus können Sie mit der Abhängigkeitsübermittlungs-API auch dann Abhängigkeiten aus dem Paket-Manager oder Ökosystem Ihrer Wahl übermitteln, wenn das Ökosystem vom Abhängigkeitsdiagramm für die Analyse von Manifest- oder gesperrten Dateien nicht unterstützt wird. Abhängigkeiten, die mit der Abhängigkeitsübermittlungs-API an ein Projekt übermittelt wurden, zeigen an, welche Erkennung für die Übermittlung verwendet wurde und wann die Übermittlung erfolgt ist. Weitere Informationen zur Abhängigkeitsübermittlungs-API findest du unter Verwenden der Abhängigkeitsübermittlungs-API.
Beim Erstellen einer Pullanforderung, die Änderungen an Abhängigkeiten enthält und auf den Standardbranch abzielt, verwendet GitHub das Abhängigkeitsdiagramm, um Abhängigkeitsüberprüfungen zur Pullanforderung 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 finden Sie unter Informationen zur Abhängigkeitsüberprüfung.
Wenn du mindestens Lesezugriff auf das Repository hast, kannst du das Abhängigkeitsdiagramm für das Repository als SPDX-kompatible Softwarestückliste (Bill of Materials, SBOM) über die GitHub-Benutzeroberfläche oder die GitHub-REST-API exportieren. Weitere Informationen finden Sie unter Exportieren einer Software-Stückliste (Software Bill of Materials, SBOM) für dein Repository.
Verfügbarkeit von Abhängigkeitsdiagrammen
Repositoryadmins können das Abhängigkeitsdiagramm für Repositorys aktivieren oder deaktivieren. Weitere Informationen findest du unter Verwalten von Sicherheits- und Analyseeinstellungen für dein Repository.
Repositoryadmins können das Abhängigkeitsdiagramm für Repositorys aktivieren oder deaktivieren. 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 Entsprechungen für unterstützte Ökosysteme beschrieben werden, sowie alle Abhängigkeiten, die mittels Abhängigkeitsübermittlungs-API übermittelt werden. Dazu gehören:
- Direkte Abhängigkeiten, die explizit in einer Manifest- oder Sperrdatei definiert sind oder mittels Abhängigkeitsübermittlungs-API übermittelt wurden
- Indirekte Abhängigkeiten dieser direkten Abhängigkeiten, auch bekannt als transitive Abhängigkeiten oder Unterabhängigkeiten bezeichnet
Im Abhängigkeitsdiagramm werden indirekte Abhängigkeiten nur angegeben, wenn sie in einer Sperrdatei definiert sind oder mittels Abhängigkeitsübermittlungs-API übermittelt wurden. 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. Wenn es in Ihrem Ökosystem keine Sperrdateien gibt, können Sie vordefinierte Aktionen verwenden, die transitive Abhängigkeiten für zahlreiche Ökosysteme auflösen. Weitere Informationen finden Sie unter Verwenden der Abhängigkeitsübermittlungs-API.
Weitere Informationen dazu, wie GitHub Sie beim Verstehen der Abhängigkeiten in Ihrer Umgebung unterstützt, finden Sie unter Informationen zur Lieferkettensicherheit.
Was Sie mit dem Abhängigkeitsdiagramm tun können
Du kannst das Abhängigkeitsdiagramm verwenden, um folgende Aktionen auszuführen:
- Erkunden der Repositorys, von denen dein Code abhängig ist,, und denen, die von ihm abhängig sind. Weitere Informationen finden Sie unter Untersuchen der Abhängigkeiten eines Repositorys.
- Anzeigen und Aktualisieren von sicherheitsanfälligen Abhängigkeiten für dein Repository. Weitere Informationen finden Sie unter Informationen zu Dependabot-Warnungen.
- Informationen zu sicherheitsanfälligen Abhängigkeiten in Pullanforderungen. Weitere Informationen finden Sie unter Überprüfen von Abhängigkeitsänderungen in einem Pull Request.
Weiterführende Lektüre
-
[Abhängigkeitsdiagramm](https://en.wikipedia.org/wiki/Dependency_graph) auf Wikipedia -
[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository) -
[AUTOTITLE](/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts) -
[AUTOTITLE](/code-security/dependabot/troubleshooting-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies)