Сведения о графе зависимостей
Общие сведения о граф зависимостей см. в разделе Сведения о графе зависимостей.
Создание граф зависимостей
Если граф зависимостей включена, он сканирует репозиторий для файлов манифестов, используемых экосистемами языковых пакетов программирования. Когда он находит один из поддерживаемых файлов манифеста, он анализирует файл и создает представление его содержимого, включая имя и версию каждого пакета. Это называется статическим анализом.
Некоторые файлы явно определяют, какие версии используются для всех прямых и всех косвенных зависимостей. Они блокируют версии пакетов для тех, кто входит в сборку, и позволяют Dependabot находить уязвимые версии как в прямых, так и косвенных зависимостях. Если вы используете эти форматы, граф зависимостей более точны, поэтому они перечислены в столбце "Рекомендуемые файлы" в таблице "Поддерживаемые экосистемы пакетов". См. раздел "Поддерживаемые экосистемы пакетов". Непрямые зависимости, полученные из файла манифеста (или эквивалентные), исключаются из Dependabotпроверки небезопасных зависимостей.
Для экосистем, разрешающих транзитивные зависимости во время сборки, статический анализ не предоставляет комплексное представление дерева зависимостей. Для этих экосистем существует два подхода, которые используют GitHub Actions: автоматическую и ручную отправку зависимостей. В обоих случаях внешнее действие создаст полное дерево зависимостей и отправит его в API отправки зависимостей. Вы можете включить автоматическую отправку для поддерживаемых экосистем на странице параметров репозитория. Дополнительные сведения см. в разделе Настройка автоматической отправки зависимостей для репозитория.
Экосистемы пакетов, поддерживаемые с помощью действий отправки зависимостей
Помимо статического анализа и автоматической отправки граф зависимостей можно использовать API отправки зависимостей для добавления зависимостей во время сборки в граф зависимостей или добавления зависимостей от диспетчеров пакетов и экосистем вашего выбора в граф зависимостей, даже если экосистема не находится в таблице "Поддерживаемые экосистемы пакетов". Сведения о зависимости от этих отправленных зависимостей в свою очередь будут передаваться в Dependabot updates и Dependabot alerts.
Зависимости, отправленные в проект с помощью API отправки зависимостей показывают, какой детектор использовался для их отправки и когда они были отправлены. Дополнительные сведения о API отправки зависимостейсм. в разделе Использование API отправки зависимостей.
Поддерживаемые экосистемы пакетов
Диспетчер пакетов | Языки | Статические транзитивные зависимости | Автоматическая отправка зависимостей | Рекомендуемые файлы | Дополнительные файлы |
---|---|---|---|---|---|
Груз | Rust | Cargo.lock | Cargo.toml | ||
Composer | PHP | composer.lock | composer.json | ||
NuGet | Языки .NET (C#, F#, VB), C++ | .csproj , , .vbproj``.nuspec , .vcxproj``.fsproj | packages.config | ||
Рабочие процессы GitHub Actions | YAML | .yml , .yaml | |||
Модули Go | 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 | ||
паб | Dart | pubspec.lock | pubspec.yaml | ||
Poetry | Python | poetry.lock | pyproject.toml | ||
RubyGems | Ruby | Gemfile.lock | Gemfile , *.gemspec | ||
Swift диспетчер пакетов | Swift | Package.resolved | |||
Yarn | JavaScript | yarn.lock | package.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).