Skip to main content

Von Abhängigkeitsdiagrammen unterstützte Paket-Ökosysteme

Abhängigkeitsdiagramm unterstützt eine Vielzahl von Ökosystemen.

Informationen zum Abhängigkeitsdiagramm

Eine Einführung in das Abhängigkeitsdiagramm finden Sie unter Informationen zum Abhängigkeitsdiagramm.

Erstellen des Abhängigkeitsdiagramms

Wenn das Abhängigkeitsdiagramm aktiviert ist, wird Ihr Repository auf Manifest-Dateien überprüft, die von Ökosystemen für Programmiersprachenpakete verwendet werden. Wenn eine der unterstützten Manifest-Dateien gefunden wird, wird die Datei analysiert und eine Darstellung des Inhalts generiert, einschließlich des Namens und der Version jedes Pakets. Das wird als „statische Analyse“ bezeichnet.

Einige Dateien definieren explizit, welche Versionen für alle direkten und indirekten Abhängigkeiten verwendet werden. Sie sperren die Paketversionen auf diejenigen, die im Build enthalten sind, und ermöglichen es Dependabot, anfällige Versionen sowohl in direkten als auch in indirekten Abhängigkeiten zu finden. Wenn Sie diese Formate verwenden, ist Ihr Abhängigkeitsdiagramm genauer. Deshalb sind sie in der Tabelle „Unterstützte Paketökosysteme“ in der Spalte „Empfohlene Dateien“ aufgeführt. Weiter Informationen unter Unterstützte Paket-Ökosysteme.

Paket-Ökosysteme, die über Abhängigkeits-Übermittlungsaktionen unterstützt werden

Zusätzlich zur statischen Analyse und automatischen Übermittlung des Abhängigkeitsdiagramms können Sie die Abhängigkeitsübermittlungs-API verwenden, um dem Abhängigkeitsdiagramm Build-Zeitabhängigkeiten hinzuzufügen oder Abhängigkeiten von Paket-Managern und Ökosystemen Ihrer Wahl zum Abhängigkeitsdiagramm hinzuzufügen, auch wenn das Ökosystem nicht in der Tabelle „Unterstützte Paketökosysteme“ aufgeführt wird. Abhängigkeits-Informationen von diesen übermittelten Abhängigkeiten fließen wiederum in Dependabot updates und Dependabot alerts.

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 finden Sie unter Verwenden der Abhängigkeitsübermittlungs-API.

Unterstützte Paketökosysteme

Paket-ManagerLanguagesStatische transitive AbhängigkeitenAutomatische AbhängigkeitseinreichungEmpfohlene DateienZusätzliche Dateien
CargoRustCargo.lockCargo.toml
ComposerPHPcomposer.lockcomposer.json
NuGet.NET-Sprachen (C#, F#, VB), C++
          `.csproj`, , `.vbproj``.nuspec`, , `.vcxproj``.fsproj` | `packages.config` |

| GitHub Actions-Workflows | YAML | | | .yml, .yaml | | | Go-Module | Go | | | go.mod| | | Gradle | Java | | | | | | | | Maven | Java, Scala | | | pom.xml | | | npm | JavaScript | | | package-lock.json | package.json| | | | pip | Python | | | requirements.txt, pipfile.lock | pipfile, setup.py | | pnpm | JavaScript | | | pnpm-lock.yaml | package.json | | pub | Dart | | | pubspec.lock | pubspec.yaml | | Poetry | Python | | | poetry.lock | pyproject.toml | | RubyGems | Ruby | | | Gemfile.lock | Gemfile, *.gemspec | | Swift-Paket-Manager | Swift | | | Package.resolved | | | Yarn | JavaScript | | | yarn.lock | package.json |

Hinweis

  • 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 finden Sie unter Workflowsyntax für GitHub Actions.
  • Für GitHub Actions werden Dependabot alerts nur für Aktionen generiert, die semantische Versionierung verwenden, nicht für SHA-Versionierung. Weitere Informationen findest du unter Informationen zu Dependabot-Warnungen und Informationen zu Updates von Dependabot-Versionen.

Deduplizierung von Manifesten

Das Abhängigkeitsdiagramm kann sich auf drei verschiedene Arten über Abhängigkeiten informieren: statische Analyse, automatische Übermittlung und manuelle Übermittlung. Für ein Repository können mehrere Methoden konfiguriert sein, was dazu führt, dass dasselbe Paketmanifest mehrmals gescannt wird, möglicherweise mit unterschiedlichen Ausgaben der einzelnen Überprüfungen. Das Abhängigkeitsdiagramm verwendet Deduplizierungslogik, um die Ausgaben zu analysieren und die genauesten Informationen für jede Manifestdatei zu priorisieren.

Das Abhängigkeitsdiagramm zeigt nur eine Instanz jeder Manifestdatei mithilfe der folgenden Rangfolgeregeln an.

  1. Benutzerübermittlungen haben höchste Priorität, da sie in der Regel während Artefaktbuilds erstellt werden, die vollständige Informationen enthalten.
    • Wenn mehrere manuelle Momentaufnahmen aus verschiedenen Detektoren vorhanden sind, werden sie alphabetisch nach Korrelator und dem ersten verwendeten sortiert.
    • Wenn es zwei Korrelatoren mit demselben Detektor gibt, werden die aufgelösten Abhängigkeiten zusammengeführt. Weitere Informationen zu Korrelatoren und Detektoren findest du unter REST-API-Endpunkte für die Abhängigkeitsübermittlung.
  2. Automatische Übermittlungen haben die zweithöchste Priorität, da sie auch während der Artefaktbuilds erstellt werden, aber nicht von Benutzern übermittelt werden.
  3. Statische Analyseergebnisse werden verwendet, wenn keine anderen Daten verfügbar sind.