Skip to main content

Fehler beim Abhängigkeitsdiagramm beheben

Wenn die Abhängigkeitsinformationen, die vom Abhängigkeitsdiagramm gemeldet werden, nicht deinen Erwartungen entsprechen, kannst du einige Punkte in Betracht ziehen und verschiedene Aspekte überprüfen.

Wer kann dieses Feature verwenden?

Das Abhängigkeitsdiagramm ist für die folgenden Repositorytypen verfügbar:

  • Öffentliche Repositorys (standardmäßig aktiviert)
  • Private Repositorys
  • Forks

Die Ergebnisse der von GitHub gemeldeten Abhängigkeitserkennung unterscheiden sich möglicherweise von den Ergebnissen, die von anderen Tools zurückgegeben werden. Hierfür gibt es gute Gründe, und es ist hilfreich zu verstehen, wie GitHub Abhängigkeiten für dein Projekt bestimmt.

Ermittelt das Abhängigkeitsdiagramm nur Abhängigkeiten in Manifesten und Sperrdateien?

Das Abhängigkeitsdiagramm enthält automatisch Informationen zu Abhängigkeiten, die explizit in der Umgebung deklariert sind. Das heißt, Abhängigkeiten, die in einem Manifest oder einer Sperrdatei angegeben sind. Das Abhängigkeitsdiagramm enthält im Allgemeinen auch transitive Abhängigkeiten – selbst wenn sie nicht in einer Sperrdatei angegeben sind –, indem die Abhängigkeiten der Abhängigkeiten in einer Manifestdatei untersucht werden.

Das Abhängigkeitsdiagramm enthält nicht automatisch „lose“ Abhängigkeiten. Als „lose“ Abhängigkeiten werden einzelne Dateien bezeichnet, die aus einer anderen Quelle kopiert und direkt oder in ein Repository (z. B. eine ZIP- oder JAR-Datei) eingecheckt werden, anstatt in einem Manifest oder einer Sperrdatei des Paket-Managers referenziert zu werden.

Sie können jedoch das Abhängigkeitsübermittlungs-API Abhängigkeitsdiagramm eines Projekts verwenden, um Abhängigkeiten hinzuzufügen, auch wenn die Abhängigkeiten nicht in einer Manifest- oder Sperrdatei deklariert sind, z. B. Abhängigkeiten, die beim Erstellen eines Projekts aufgelöst wurden. 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 zum Abhängigkeitsübermittlungs-APIThema finden Sie unter Verwenden der Abhängigkeitsübermittlungs-API.

          **Überprüfung:** Handelt es sich um eine fehlende Abhängigkeit für eine Komponente, die nicht in der Manifest- oder der Sperrdatei des Repositorys angegeben ist?

Erkennt das Abhängigkeitsdiagramm Abhängigkeiten, die mithilfe von Variablen angegeben wurden?

Das Abhängigkeitsdiagramm analysiert Manifeste, sobald sie zu GitHub übertragen werden. Das Abhängigkeitsdiagramm hat also keinen Zugriff auf die Buildumgebung des Projekts und kann daher die in den Manifesten verwendeten Variablen nicht auflösen. Wenn Sie in einem Manifest Variablen verwenden, um den Namen oder die Version einer Abhängigkeit anzugeben, wird diese Abhängigkeit nicht automatisch in das Abhängigkeitsdiagramm einbezogen.

Sie können jedoch das Abhängigkeitsübermittlungs-API Abhängigkeitsdiagramm eines Projekts verwenden, um Abhängigkeiten hinzuzufügen, auch wenn die Abhängigkeiten nur aufgelöst werden, wenn ein Projekt erstellt wird. Weitere Informationen zu Abhängigkeitsübermittlungs-API finden Sie unter Verwenden der Abhängigkeitsübermittlungs-API.

          **Überprüfung:** Ist die fehlende Abhängigkeit im Manifest deklariert, indem eine Variable für ihren Namen oder ihre Version verwendet wird?

Gibt es Grenzwerte, die die Daten des Abhängigkeitsdiagramms beeinflussen?

Ja, das Abhängigkeitsdiagramm hat Beschränkungen für die Größe, die Anzahl und den Speicherort der Manifestdateien, die verarbeitet werden.

Die Verarbeitungsgrenzwerte wirken sich auf das in GitHub angezeigte Abhängigkeitsdiagramm aus und verhindern die Erstellung von Dependabot alerts.

Manifeste mit mehr als 10 MB Größe werden ignoriert und Dependabot alerts nicht erzeugt.

          GitHub Standardmäßig werden nicht mehr als 150 Manifeste pro Repository verarbeitet. 
          Dependabot generiert Dependabot alerts nicht für Manifeste, die über diesen Grenzwert hinausgehen, und Dependabot alerts verhält sich möglicherweise unvorhersehbar, wenn dieser Grenzwert überschritten wird.

Manifestdateien, die in Verzeichnissen mit Namen gespeichert sind, die normalerweise für anbieterbezogene Abhängigkeiten verwendet werden, werden nicht verarbeitet. Ein Verzeichnis, dessen Name mit den folgenden regulären Ausdrücken übereinstimmt, wird als Verzeichnis mit anbieterbezogenen Abhängigkeiten betrachtet:

  • (3rd|[Tt]hird)[-_]?[Pp]arty/
  • (^|/)vendors?/
  • (^|/)[Ee]xtern(als?)?/
  • (^|/)[Vv]+endor/

Beispiele

  • third-party/dependencies/dependency1
  • vendors/dependency1
  • /externals/vendor1/dependency1

Meine Abhängigkeiten sehen nicht richtig aus, was kann ich tun?

Wenn die Tabelle der Abhängigkeiten für dein Projekt die Manifeste deines Repositorys nicht korrekt darstellt, kannst du eine Neuerstellung des Abhängigkeitsdiagramms auslösen.

Klicken Sie auf die Registerkarte des Dependabot Repositorys und dann auf oben in der Warnungsliste. Wählen Sie im Dropdownmenü "Aktualisieren" Dependabot alerts aus. Dadurch wird eine Hintergrundaufgabe zum Verarbeiten der Manifeste des Repositorys, zum Erkennen neuer oder geänderter Abhängigkeiten und zum Aktualisieren der Warnungen in die Warteschlange eingereiht.

Hinweis

Du benötigst die Berechtigung zum Verwalten von Sicherheitswarnungen, um das Abhängigkeitsdiagramm eines Repositorys zu aktualisieren. Informationen zum Konfigurieren dieses Zugriffs finden Sie unter Verwalten von Sicherheits- und Analyseeinstellungen für dein Repository. Um das Missbrauchspotenzial weiter zu reduzieren, kann die Option "Aktualisieren" Dependabot alerts nur einmal pro Stunde pro Repository ausgelöst werden.

Wenn Sie auf "Aktualisieren" Dependabot alerts klicken, werden nur Manifestdateien überprüft. Wenn Ihr Abhängigkeitsdiagramm auch Informationen zu Abhängigkeiten zur Buildzeit enthält, die mit der Abhängigkeitsübermittlungs-API Aktion oder einem externen Prozess übermittelt werden, dann wird durch das erneute Ausführen dieser Aktion oder dieses Prozesses, der die Abhängigkeitsinformationen generiert und übermittelt, auch eine Neuerstellung des Abhängigkeitsdiagramms des Repositorys ausgelöst. Weitere Informationen zum Abhängigkeitsübermittlungs-API findest du unter Verwenden der Abhängigkeitsübermittlungs-API.

Wenn Sie die automatische Abhängigkeitsübermittlung verwenden, löst das Pushen eines Commits, der die Manifestdatei des Repositorys aktualisiert, die Ausführung der automatischen Übermittlungsaktion aus.

Der Zeitstempel oben in der Liste der Warnungen gibt immer an, wie lange das Abhängigkeitsdiagramm zuletzt erstellt wurde.

Weiterführende Lektüre

  •         [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph)
    
  •         [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository)
    
  •         [AUTOTITLE](/code-security/dependabot/troubleshooting-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies)
    
  •         [AUTOTITLE](/code-security/dependabot/troubleshooting-dependabot/troubleshooting-dependabot-errors)