О Dependabot
Dependabot помогает оставаться на вершине экосистем зависимостей. С помощью Dependabotможно сохранить зависимости, которые вы используете для актуальной версии, устраняя любые потенциальные проблемы безопасности в цепочке поставок.
Dependabot состоит из трех различных функций, которые помогают управлять зависимостями:
- Dependabot alerts— сообщите об уязвимостях в зависимости, которые вы используете в репозитории.
- Dependabot security updates— автоматически вызывают запросы на вытягивание для обновления зависимостей, которые используются с известными уязвимостями безопасности.
- Dependabot version updates— автоматически вызывают запросы на вытягивание, чтобы обеспечить актуальность зависимостей.
Дополнительные сведения о Dependabotсм. в разделе "Краткое руководство по зависимостям".
В этой статье показано, какие экосистемы и репозитории поддерживаются.
Поддерживаемые экосистемы и репозитории
Обновления можно настроить для репозиториев, содержащих манифест зависимостей или файл блокировки для одного из поддерживаемых диспетчеров пакетов. Для некоторых диспетчеров пакетов можно также настроить поставщиков для зависимостей. Дополнительные сведения см. в разделе vendor
.
Dependabot также поддерживает зависимости в частных реестрах. Дополнительные сведения см. в разделе registries
.
Note
- При обновлении системы безопасности или версий некоторые экосистемы должны иметь возможность разрешить все зависимости от источника, чтобы убедиться, что обновления успешно выполнены. Если файлы манифеста или блокировки содержат какие-либо частные зависимости, Dependabot должен иметь доступ к расположению, в котором размещаются эти зависимости. Владельцы организации могут предоставлять Dependabot доступ к частным репозиториям, содержащим зависимости для проекта, в той же организации. Дополнительные сведения см. в разделе Управление параметрами безопасности и анализа для организации. Вы можете настроить доступ к частным реестрам в файле конфигурации репозитория
dependabot.yml
. Дополнительные сведения см. в разделе Параметры конфигурации для файла dependabot.yml. - Dependabot не поддерживает частные зависимости GitHub для всех менеджеров пакетов. Подробные сведения см. в таблице ниже.
Если репозиторий уже использует интеграцию для управления зависимостями, перед включением Dependabot необходимо отключить эту функцию. Дополнительные сведения см. в разделе "Сведения об использовании интеграции".
Диспетчер пакетов | Значение YAML | Поддерживаемые версии | Обновления версий | Обновления для системы безопасности | Частные репозитории | Частные реестры | Вендоринг |
---|---|---|---|---|---|---|---|
Средство увязки программ в пакеты | bundler | v2 | |||||
Груз | cargo | Версия 1 | |||||
Composer | composer | версия 1, версия 2 | |||||
Контейнеры разработки | devcontainers | Нет данных | |||||
[Docker | docker | Версия 1 | Нет данных | ||||
Пакет SDK для .NET | dotnet-sdk | >=.NET Core 3.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.12.0 | |||||
pip | pip | версия 21.1.2 | |||||
pipenv | pip | <= 2021-05-29 | |||||
pip-compile | pip | 6.1.0 | |||||
pnpm | npm | v7, v8, v9 | |||||
poetry | pip | Версия 1 | |||||
pub | pub | Версия 2 | |||||
Swift | swift | v5 | (только git) | ||||
Terraform | terraform | >= 0,13, <= 1.8.x | Нет данных | ||||
пряжа | npm | v1, v2, v3 |
Tip
Для таких диспетчеров пакетов, как pipenv
и poetry
, необходимо использовать pip
значение YAML. Например, если вы используете poetry
для управления зависимостями Python и хотите, чтобы Dependabot отслеживал файл манифеста зависимостей для новых версий, используйте package-ecosystem: "pip"
в файле dependabot.yml
.
Дополнительные сведения о поддержке экосистемы для Dependabot security updatesсм. также в разделе "Поддерживаемые экосистемы пакетов графа зависимостей".
Груз
Поддержка частного реестра включает в себя реестры грузов, поэтому можно использовать Dependabot для актуальности зависимостей Rust. Дополнительные сведения см. в разделе "Руководство по настройке частных реестров для Dependabot".
Контейнеры разработки
Вы можете использовать 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-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 использует сведения из pom.xml
файла зависимостей для добавления ссылок на выпуск сведений о выпуске в запросах на вытягивание обновлений. Если сведения опущены из pom.xml
файла, то его нельзя включить в Dependabot запросы на вытягивание, см. в разделе "Оптимизация пакетов Java для обновлений Dependabot".
Для Dependabot security updatesподдержка Gradle ограничена ручной отправкой данных граф зависимостей с помощью API отправки зависимостей. Дополнительные сведения о API отправки зависимостейсм. в разделе "Использование API отправки зависимостей".
Note
- При отправке зависимостей Gradle в граф зависимостей с помощью API отправки зависимостейотправляются все зависимости проекта, даже транзитивные зависимости, которые не упоминаются явным образом в любом файле зависимостей. Когда оповещение обнаруживается в транзитивной зависимости, Dependabot не может найти уязвимую зависимость в репозитории и поэтому не создаст обновление системы безопасности для этого оповещения.
- Однако Dependabot version updates создаст запросы на вытягивание, если родительская зависимость явно объявлена в виде прямой зависимости в файле манифеста проекта.
Maven
Dependabot не запускает Maven, но поддерживает обновления pom.xml
файлов.
Dependabot использует сведения из pom.xml
файла зависимостей для добавления ссылок на выпуск сведений о выпуске в запросах на вытягивание обновлений. Если сведения опущены из pom.xml
файла, то его нельзя включить в Dependabot запросы на вытягивание, см. в разделе "Оптимизация пакетов Java для обновлений Dependabot".
NuGet CLI
Dependabot не запускает интерфейс командной строки NuGet, но поддерживает большинство функций до версии 6.8.0.
pip и pip-компиляция
Помимо поддержки обновлений requirements.txt
файлов{ % данных variables.product.prodname_dependabot %} поддерживает обновления pyproject.toml
файлов, если они соответствуют стандарту PEP 621.
паб
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.