О 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 | v1, v2 | |||||
Груз | cargo | Версия 1 | (только Git) | ||||
Composer | composer | версия 1, версия 2 | |||||
[Docker | docker | Версия 1 | Нет данных | ||||
Hex | mix | Версия 1 | |||||
Пакет ELM | elm | Версия 0.19 | |||||
Субмодуль Git | gitsubmodule | Нет данных | Нет данных | ||||
GitHub Actions | github-actions | Нет данных | Нет данных | ||||
Модули Go | gomod | Версия 1 | |||||
Gradle | gradle | Нет данных | |||||
Maven | maven | Нет данных | |||||
npm | npm | v6, v7, v8, v9 | |||||
NuGet | nuget | <= 6.7.0 | |||||
pip | pip | версия 21.1.2 | |||||
pipenv | pip | <= 2021-05-29 | |||||
pip-compile | pip | 6.1.0 | |||||
pnpm | npm | v7, v8, v9 | (только версия 7 и v8) | ||||
poetry | pip | Версия 1 | |||||
pub | pub | Версия 2 | |||||
Swift | swift | v5 | (только git) | ||||
Terraform | terraform | >= 0,13, <= 1.8.x | Нет данных | ||||
пряжа | npm | v1, v2, v3 |
Совет. Для диспетчеров пакетов, таких как pipenv
и poetry
, необходимо использовать значение YAML pip
. Например, если вы используете poetry
для управления зависимостями Python и хотите, чтобы Dependabot отслеживал файл манифеста зависимостей для новых версий, используйте package-ecosystem: "pip"
в файле dependabot.yml
.
Дополнительные сведения о поддержке экосистемы для Dependabot security updatesсм. также в разделе "Поддерживаемые экосистемы пакетов графа зависимостей".
Груз
Поддержка частного реестра применяется к реестрам Git и не включает в себя реестры грузов.
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-ecosystem
AutoTITLE".
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.7.0.
pip и pip-компиляция
Помимо поддержки обновлений requirements.txt
файлов{ % данных variables.product.prodname_dependabot %} поддерживает обновления pyproject.toml
файлов, если они соответствуют стандарту PEP 621.
pnpm
pnpm поддерживается для Dependabot version updates (в версиях 7, v8 и v9) и Dependabot security updates (только для версии 7 и v8).
паб
Dependabot не будет выполнять обновление pub
, если версия, которую она пытается обновить, игнорируется, даже если доступна более ранняя версия.
Swift
Поддержка частного реестра применяется только к реестрам Git. Реестры Swift не поддерживаются. Не декларативные манифесты не поддерживаются. Дополнительные сведения о не декларативных манифестах см. в разделе "Редактирование не декларативных манифестов " в документации по Swift Evolution.
Terraform
Поддержка Terraform включает:
- Модули, размещенные в Реестре Terraform или общедоступном репозитории Git.
- Поставщики Terraform.
- Частный реестр Terraform. Вы можете настроить доступ для частных репозиториев Git, указав реестр Git в
dependabot.yml
файле. Дополнительные сведения см. в разделеgit
.
yarn
Dependabot поддерживает поставщики зависимостей для версии 2.