Skip to main content

Diese Version von GitHub Enterprise Server wurde eingestellt am 2024-03-26. 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.

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.

Die Ergebnisse der von GitHub Enterprise Server 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 schließt automatisch Informationen zu Abhängigkeiten ein, die in deiner Umgebung explizit 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.

Du kannst jedoch die Abhängigkeitsübermittlungs-API (Beta) verwenden, um Abhängigkeiten zu einem Abhängigkeitsdiagramm eines Projekts 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 werden. Das Abhängigkeitsdiagramm zeigt die übermittelten Abhängigkeiten nach Ökosystemen gruppiert an, jedoch getrennt von den aus Manifest- oder Sperrdateien geparsten Abhängigkeiten. Weitere Informationen zur Abhängigkeitsübermittlungs-API findest du unter „Verwenden der Abhängigkeitsübermittlungs-API.“

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

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

Das Abhängigkeitsdiagramm analysiert Manifeste, während sie an GitHub gepusht 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 du in einem Manifest Variablen verwendest, um den Namen oder die Version einer Abhängigkeit anzugeben, wird diese Abhängigkeit nicht automatisch in das Abhängigkeitsdiagramm einbezogen.

Du kannst jedoch die Abhängigkeitsübermittlungs-API (Beta) verwenden, um Abhängigkeiten zu einem Abhängigkeitsdiagramm eines Projekts hinzuzufügen, auch wenn die Abhängigkeiten nur beim Erstellen eines Projekts aufgelöst werden. Weitere Informationen zur Abhängigkeitsübermittlungs-API findest du 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 weist zwei Kategorien mit Grenzwerten auf:

  1. Datenverarbeitungslimits

    Diese wirken sich auf das Abhängigkeitsdiagramm aus, das in GitHub angezeigt wird, und verhindern außerdem die Erstellung von Dependabot alerts.

    Manifeste mit einer Größe von mehr als 0,5 MB werden nur für Unternehmenskonten verarbeitet. Bei anderen Konten werden Manifeste über 0,5 MB ignoriert und erzeugen keine Dependabot alerts.

    Standardmäßig verarbeitet GitHub nicht mehr als 600 Manifeste pro Repository. Für Manifeste, die diesen Grenzwert überschreiten, werden keine Dependabot alerts erstellt. Wenn Sie das Limit erhöhen müssen, Können Sie den Ihrer Websiteadministratoren kontaktieren.

    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
  2. Visualisierungslimits

    Diese beeinflussen, was im Abhängigkeitsdiagramm in GitHub angezeigt wird. Sie wirken sich jedoch nicht auf die erstellten Dependabot alerts aus.

    In der Ansicht „Abhängigkeiten“ des Abhängigkeitsdiagramms für ein Repository werden nur 100 Manifeste angezeigt. Dieser Wert ist in der Regel ausreichend, da er deutlich über dem oben beschriebenen Verarbeitungsgrenzwert liegt. In Situationen, in denen das Verarbeitungslimit über 100 liegt, werden dennoch Dependabot alerts für alle Manifeste erstellt, die nicht in GitHub angezeigt werden.

Überprüfung: Befindet sich die fehlende Abhängigkeit in einer Manifestdatei mit einer Größe von mehr als 0,5 MB oder in einem Repository mit einer großen Anzahl von Manifesten?

Weiterführende Themen