Skip to main content

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

Dependabot поддерживает различные экосистемы и репозитории

О Dependabot

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

Dependabot состоит из трех различных функций, которые помогают управлять зависимостями:

  • Dependabot alerts— сообщите об уязвимостях в зависимости, которые вы используете в репозитории.
  • Dependabot security updates— автоматически вызывают запросы на вытягивание для обновления зависимостей, которые используются с известными уязвимостями безопасности.
  • Dependabot version updates— автоматически вызывают запросы на вытягивание, чтобы обеспечить актуальность зависимостей.

Дополнительные сведения о Dependabotсм. в разделе "Краткое руководство по зависимостям".

В этой статье показано, какие экосистемы и репозитории поддерживаются.

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

Обновления можно настроить для репозиториев, содержащих манифест зависимостей или файл блокировки для одного из поддерживаемых диспетчеров пакетов. Для некоторых диспетчеров пакетов можно также настроить поставщиков для зависимостей. Дополнительные сведения см. в разделе vendor. Dependabot также поддерживает зависимости в частных реестрах. Дополнительные сведения см. в разделе registries.

Note

Чтобы гарантировать, что GitHub Enterprise Server поддерживает Dependabot updates для последних поддерживаемых версий экосистем, владелец предприятия должен скачать последнюю версию действия Dependabot .

Note

  • При обновлении системы безопасности или версий некоторые экосистемы должны иметь возможность разрешить все зависимости от источника, чтобы убедиться, что обновления успешно выполнены. Если файлы манифеста или блокировки содержат какие-либо частные зависимости, Dependabot должен иметь доступ к расположению, в котором размещаются эти зависимости. Владельцы организации могут предоставлять Dependabot доступ к частным репозиториям, содержащим зависимости для проекта, в той же организации. Дополнительные сведения см. в разделе Управление параметрами безопасности и анализа для организации. Вы можете настроить доступ к частным реестрам в файле конфигурации репозитория dependabot.yml . Дополнительные сведения см. в разделе Параметры конфигурации для файла dependabot.yml.
  • Dependabot не поддерживает частные зависимости GitHub для всех менеджеров пакетов. Подробные сведения см. в таблице ниже.

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

Диспетчер пакетовЗначение YAMLПоддерживаемые версииОбновления версийОбновления для системы безопасностиЧастные репозиторииЧастные реестрыВендоринг
Средство увязки программ в пакетыbundlerверсия 1, версия 2
ГрузcargoВерсия 1 (только Git)
Composercomposerверсия 1, версия 2
Контейнеры разработкиdevcontainersНет данных
[DockerdockerВерсия 1Нет данных
HexmixВерсия 1
Пакет ELMelmВерсия 0.19
Субмодуль GitgitsubmoduleНет данныхНет данных
GitHub Actionsgithub-actionsНет данныхНет данных
Модули GogomodВерсия 1
GradlegradleНет данных
MavenmavenНет данных
npmnpmv6, v7, v8, v9
NuGetnuget<=6.8.0
pippipверсия 21.1.2
pipenvpip<= 2021-05-29
pip-compilepip6.1.0
pnpmnpmv7, v8, v9
poetrypipВерсия 1
pubpubВерсия 2
Swiftswiftv5 (только git)
Terraformterraform>= 0,13, <= 1.8.xНет данных
пряжаnpmv1, v2, v3

Совет. Для диспетчеров пакетов, таких как pipenv и poetry, необходимо использовать значение YAML pip. Например, если вы используете poetry для управления зависимостями Python и хотите, чтобы Dependabot отслеживал файл манифеста зависимостей для новых версий, используйте package-ecosystem: "pip" в файле dependabot.yml .

Дополнительные сведения о поддержке экосистемы для Dependabot security updatesсм. также в разделе "Сведения о графе зависимостей".

Груз

Поддержка частного реестра применяется к реестрам Git и не включает в себя реестры грузов.

Контейнеры разработки

Вы можете использовать devcontainers в качестве package-ecosystem файла для dependabot.yml обновления компонентов в devcontainer.json файлах конфигурации. Дополнительные сведения об этой поддержке и примерах файлов конфигурации см. в документации по контейнерам разработки для интеграции Dependabot в документации по контейнерам разработки.

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

Этот средство обновления гарантирует, что компоненты закреплены до последней major версии в связанном devcontainer.json файле. Если контейнер разработки имеет файл блокировки, этот файл также будет обновлен. Дополнительные сведения о спецификациях lockfile см. в разделе Lockfiles в репозитории devcontainers/spec .

Функции в любом допустимом расположении контейнера разработки будут обновлены в одном запросе на вытягивание. Дополнительные сведения о спецификации контейнера разработки см. в документации по контейнерам разработки.

Docker

Dependabot может добавлять метаданные из образов Docker для извлечения запросов на обновление версий. Метаданные включают заметки о выпуске, журналы изменений и журнал фиксации. Администраторы репозитория могут использовать метаданные для быстрой оценки риска стабильности обновления зависимостей.

Чтобы Dependabot для получения метаданных Docker, поддерживающие образы Docker должны добавить org.opencontainers.image.source метку в файл Docker и включить URL-адрес исходного репозитория. Кроме того, поддержку должны пометить репозиторий с теми же тегами, что и опубликованные образы Docker. Пример см. в репозитории dependabot-fixtures/docker-with-source . Дополнительные сведения о метках Docker см. в разделе "Метки образов расширения" и BUILDX_GIT_LABELS в документации По Docker.

Dependabot может обновлять теги изображений Docker в манифестах Kubernetes. Добавьте запись в элемент Docker файла dependabot.yml для каждого каталога, содержащего манифест Kubernetes, который ссылается на теги изображений Dockerpackage-ecosystem. Манифесты Kubernetes могут быть файлами YAML развертывания Kubernetes или диаграммами Helm. Сведения о настройке dependabot.yml файла dockerсм. в разделе "package-ecosystemAutoTITLE".

Dependabot поддерживает как общедоступные, так и частные реестры Docker. Список поддерживаемых реестров см. в разделе "docker-registryПараметры конфигурации для файла dependabot.yml".

Dependabot анализирует теги образов Docker для семантического управления версиями (SemVer). Если Dependabot обнаруживает тег с предварительной версией, он будет предлагать только обновление до последней версии с соответствующей предварительной версией, и она не будет предлагать более новую версию, которая использует другую метку предварительной версии. Дополнительные сведения см dependabot-docker . в файле README.md в репозитории dependabot/dependabot-core .

GitHub Actions

Dependabot поддерживает обновления версий для GitHub Actions со следующими оговорками.

  • Dependabot поддерживает только обновления GitHub Actions с помощью синтаксиса репозитория GitHub репозитория.actions/checkout@v4 Dependabot игнорирует действия или повторно используемые рабочие процессы, на которые ссылается локально (например, ./.github/actions/foo.yml).
  • Docker Hub и GitHub Packages Container registry URL-адреса в настоящее время не поддерживаются. Например, ссылки на действия контейнера Docker с использованием docker:// синтаксиса не поддерживаются.
  • Dependabot поддерживает общедоступные и частные репозитории для GitHub Actions. Параметры конфигурации частного реестра см. в разделе "gitПараметры конфигурации для файла dependabot.yml".

Дополнительные сведения об использовании Dependabot version updates с GitHub Actionsсм. в разделе "Использование функций безопасности GitHub для защиты использования GitHub Actions".

Gradle

Dependabot не запускает Gradle, но поддерживает обновления следующих файлов:

  • build.gradle, build.gradle.kts (для проектов Kotlin)
  • gradle/libs.versions.toml (для проектов с использованием стандартного каталога версий Gradle)
  • Файлы, включенные apply через объявление, которое содержится dependencies в имени файла. Обратите внимание, что apply не поддерживает apply to, рекурсию или расширенные синтаксисы (например,apply в Kotlin с mapOf, имена файлов, определенные свойством).

Для Dependabot security updatesподдержка Gradle ограничена ручной отправкой данных граф зависимостей с помощью API отправки зависимостей. Дополнительные сведения о API отправки зависимостейсм. в разделе "Использование API отправки зависимостей".

Примечания:

  • При отправке зависимостей Gradle в граф зависимостей с помощью API отправки зависимостейотправляются все зависимости проекта, даже транзитивные зависимости, которые не упоминаются явным образом в любом файле зависимостей. Когда оповещение обнаруживается в транзитивной зависимости, Dependabot не может найти уязвимую зависимость в репозитории и поэтому не создаст обновление системы безопасности для этого оповещения.
  • Однако Dependabot version updates создаст запросы на вытягивание, если родительская зависимость явно объявлена в виде прямой зависимости в файле манифеста проекта.

Maven

Dependabot не запускает Maven, но поддерживает обновления pom.xml файлов.

NuGet CLI

Dependabot не запускает интерфейс командной строки NuGet, но поддерживает большинство функций до версии 6.8.0.

pip и pip-компиляция

Помимо поддержки обновлений requirements.txt файлов{ % данных variables.product.prodname_dependabot %} поддерживает обновления pyproject.toml файлов, если они соответствуют стандарту PEP 621.

pnpm

pnpm поддерживается для Dependabot version updates и Dependabot security updates.

паб

Dependabot не будет выполнять обновление pub , если версия, которую она пытается обновить, игнорируется, даже если доступна более ранняя версия.

Вы можете использовать Dependabot для поддержания актуальности зависимостей Dart, если вы используете частные репозитории размещенного паба. Сведения о том, как разрешить Dependabot получить доступ к частным зависимостям GitHub см. в разделе "Разрешение Dependabot доступ к частным зависимостям".

Swift

Поддержка частного реестра применяется только к реестрам Git. Реестры Swift не поддерживаются. Не декларативные манифесты не поддерживаются. Дополнительные сведения о не декларативных манифестах см. в разделе "Редактирование не декларативных манифестов " в документации по Swift Evolution.

Terraform

Поддержка Terraform включает:

  • Модули, размещенные в Реестре Terraform или общедоступном репозитории Git.
  • Поставщики Terraform.
  • Частный реестр Terraform. Вы можете настроить доступ для частных репозиториев Git, указав реестр Git в dependabot.yml файле. Дополнительные сведения см. в разделе git.

yarn

Dependabot поддерживает поставщики зависимостей для версии 2.