Skip to main content

Поддерживаемые экосистемы пакетов графа зависимостей

Граф зависимостей поддерживает различные экосистемы.

Сведения о графе зависимостей

Общие сведения о граф зависимостей см. в разделе Сведения о графе зависимостей.

Создание граф зависимостей

Если граф зависимостей включена, он сканирует репозиторий для файлов манифестов, используемых экосистемами языковых пакетов программирования. Когда он находит один из поддерживаемых файлов манифеста, он анализирует файл и создает представление его содержимого, включая имя и версию каждого пакета. Это называется статическим анализом.

Некоторые файлы явно определяют, какие версии используются для всех прямых и всех косвенных зависимостей. Они блокируют версии пакетов для тех, кто входит в сборку, и позволяют Dependabot находить уязвимые версии как в прямых, так и косвенных зависимостях. Если вы используете эти форматы, граф зависимостей более точны, поэтому они перечислены в столбце "Рекомендуемые файлы" в таблице "Поддерживаемые экосистемы пакетов". См. раздел "Поддерживаемые экосистемы пакетов". Непрямые зависимости, полученные из файла манифеста (или эквивалентные), исключаются из Dependabotпроверки небезопасных зависимостей.

Для экосистем, разрешающих транзитивные зависимости во время сборки, статический анализ не предоставляет комплексное представление дерева зависимостей. Для этих экосистем существует два подхода, которые используют GitHub Actions: автоматическую и ручную отправку зависимостей. В обоих случаях внешнее действие создаст полное дерево зависимостей и отправит его в API отправки зависимостей. Вы можете включить автоматическую отправку для поддерживаемых экосистем на странице параметров репозитория. Дополнительные сведения см. в разделе Настройка автоматической отправки зависимостей для репозитория.

Экосистемы пакетов, поддерживаемые с помощью действий отправки зависимостей

Помимо статического анализа и автоматической отправки граф зависимостей можно использовать API отправки зависимостей для добавления зависимостей во время сборки в граф зависимостей или добавления зависимостей от диспетчеров пакетов и экосистем вашего выбора в граф зависимостей, даже если экосистема не находится в таблице "Поддерживаемые экосистемы пакетов". Сведения о зависимости от этих отправленных зависимостей в свою очередь будут передаваться в Dependabot updates и Dependabot alerts.

Зависимости, отправленные в проект с помощью API отправки зависимостей показывают, какой детектор использовался для их отправки и когда они были отправлены. Дополнительные сведения о API отправки зависимостейсм. в разделе Использование API отправки зависимостей.

Поддерживаемые экосистемы пакетов

Диспетчер пакетовЯзыкиСтатические транзитивные зависимостиАвтоматическая отправка зависимостейРекомендуемые файлыДополнительные файлы
ГрузRustCargo.lockCargo.toml
ComposerPHPcomposer.lockcomposer.json
NuGetЯзыки .NET (C#, F#, VB), C++.csproj, , .vbproj``.nuspec, .vcxproj``.fsprojpackages.config
Рабочие процессы GitHub ActionsYAML.yml, .yaml
Модули GoGogo.mod
GradleJava
MavenJava, Scalapom.xml
npmJavaScriptpackage-lock.jsonpackage.json
pipPythonrequirements.txt, pipfile.lockpipfile, setup.py
pnpmJavaScriptpnpm-lock.yamlpackage.json
пабDartpubspec.lockpubspec.yaml
PoetryPythonpoetry.lockpyproject.toml
RubyGemsRubyGemfile.lockGemfile, *.gemspec
Swift диспетчер пакетовSwiftPackage.resolved
YarnJavaScriptyarn.lockpackage.json

Примечание.

  • Столбец статических транзитивных зависимостей указывает, будет ли статический анализ добавлять direct и transitive метки для зависимых пакетов в этой экосистеме. Действия отправки зависимостей (автоматические или вручную настроенные) могут добавлять транзитивные сведения для экосистем, где статический анализ не может.
  • Если вы перечисляете зависимости Python в setup.py файле, мы не можем анализировать и перечислять все зависимости в проекте.
  • Рабочие процессы GitHub Actions должны находиться в .github/workflows/ каталоге репозитория для распознавания как манифестов. Любые действия или рабочие процессы, для ссылок на которые используется синтаксис jobs[*].steps[*].uses или jobs.<job_id>.uses, будут анализироваться как зависимости. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
  • Dependabot создает только Dependabot alerts для уязвимых данных GitHub Actions, использующих семантическое управление версиями. Вы не получите оповещения для уязвимого действия, использующего управление версиями SHA. Если вы используете GitHub Actions с управление версиями SHA, рекомендуется включить Dependabot version updates для репозитория или организации, чтобы сохранить действия, которые вы использовали до последних версий. Дополнительные сведения см. в разделе [AUTOTITLE и Сведения об оповещениях Dependabot](/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates).

Дедупликация манифестов