Obsługiwane ekosystemy pakietów

Skanowanie zależności obsługuje zarówno bezpośrednie, jak i przechodnie zależności dla wszystkich obsługiwanych ekosystemów pakietów. Skanowanie zależności nie może wykryć zależności od dostawcy w repozytorium.

Ze względu na sposób uruchamiania wykrywania na potrzeby skanowania zależności upewnij się, że masz krok przywracania pakietu w potoku kompilacji, aby określić poprawną wersję pakietu, w przeciwnym razie wyniki mogą być brakujące lub niekompletne.

Ekosystemy i wersje

Menedżer pakietów Języki Obsługiwane formaty Etykietowanie zależności programistycznych Obsługiwane wersje
Ładunek Rust Cargo.toml, Cargo.lock Niewspierane v1
CocoaPods Swift Podfile.lock Niewspierane nie dotyczy
Moduły języka Go Go go.mod, go.sum Niewspierane nie dotyczy
Gradle Java *.lockfile Supported nie dotyczy
Maven Java pom.xml Supported nie dotyczy
npm JavaScript package-lock.json, , package.json, , npm-shrinkwrap.jsonlerna.json Supported v6, v7 i lockfile <= v3
NuGet C# *.packages.config, , *.project.assets*.csproj Niewspierane nie dotyczy
Python setup.py, requirements.txt Niewspierane nie dotyczy
pnpm JavaScript package.json Supported wersja 7, wersja 8
RubyGems Ruby Gemfile.lock Niewspierane nie dotyczy
Przędza JavaScript package.json Supported Wersja 1, wersja 2

Ładunek

Jeśli Cargo interfejs wiersza polecenia jest zainstalowany z wersją 1.77 lub nowszą, cargo metadata jest używany, co jest bardziej dokładne.

Moduły języka Go

Jeśli używasz języka Go w wersji 1.17 lub nowszej, go.mod jest używany bezpośrednio wraz z elementem go cli , jeśli jest obecny na agencie. go.sum W przeciwnym razie plik jest skanowany.

Maven

Wykrywanie wymaga zainstalowania interfejsu maven wiersza polecenia na agencie.

Zależności programistyczne są identyfikowane podczas korzystania z test zakresu zależności.

npm

Skanowanie zależności wykrywa wszystkie pliki główne package.json , ale nie rozwiązuje problemów z określonymi wersjami pakietów bez przywracania pakietu w czasie kompilacji, nawet jeśli zależności w elemencie package.json nie są semantycznie wersjonowane.

Zależności programistyczne są identyfikowane przez devDependencies właściwość w package.json pliku i flagę w package-lock.jsonelemencie dev .

NuGet

Bez przywracania pakietu skanowanie zależności nie rozwiązuje żadnych określonych wersji pakietów, nawet jeśli zależności w elemencie *.csproj nie są semantycznie wersjonowane.

pip

Użyj pip v22.2.0 polecenia lub nowszego, aby umożliwić korzystanie ze pip report skanowania, co zapewnia dokładniejsze wykrywanie.

Zmienna środowiskowa PIP_INDEX_URL służy do określania kanału informacyjnego pakietu, którego należy użyć dla elementu pip install --report detection. Wartość domyślna używa indeksu PyPi, chyba że ustawienia domyślne są konfigurowane globalnie.

pnpm

Zależności programistyczne są identyfikowane przez flagę packages/{package}/dev w pliku lockfile pnpm.

Przędza

Zależności programistyczne są identyfikowane przez właściwość w elemencie devDependenciespackage.json.