Сведения о dependabot.yml
файле
Файл dependabot.yml
определяет, как Dependabot поддерживает зависимости с помощью обновлений версий. Кроме того, все параметры, помеченные значком также изменяют, как Dependabot создает запросы на вытягивание обновлений безопасности, за исключением того, где target-branch
используется.
Файл конфигурации dependabot.yml
Dependabot использует синтаксис YAML. Если вы не знакомы с YAML и хотите узнать больше, см . статью "Сведения о YAML" за пять минут.
Этот файл должен храниться в каталоге репозитория в .github
ветвь по умолчанию. При добавлении или обновлении dependabot.yml
файла это активирует немедленную проверку наличия обновлений версий. Дополнительные сведения и пример см. в разделе Настройка обновлений версий Dependabot.
Note
Dependabot alerts настраиваются на вкладке репозитория или организации "Параметры", а не в dependabot.yml
файле, см . раздел AUTOTITLE.
Обязательные ключи
Ключ | Расположение | Характер использования |
---|---|---|
version | Верхний уровень | Синтаксис конфигурации Dependabot для использования. Всегда: 2 . |
updates | Верхний уровень | Раздел, в котором определяется каждый package-ecosystem из них для обновления. |
package-ecosystem | в разделе updates | Определите диспетчер пакетов для обновления. |
directories или directory | Под каждой package-ecosystem записью | Определите расположение манифеста или других файлов определений для обновления. |
schedule.interval | Под каждой package-ecosystem записью | Определите, следует ли искать обновления версий: daily , weekly или monthly . |
Кроме того, можно включить ключ верхнего уровня registries
для определения сведений о доступе для частных реестров, см. раздел "Ключ верхнего уровняregistries
".
# Basic `dependabot.yml` file with # minimum configuration for two package managers version: 2 updates: # Enable version updates for npm - package-ecosystem: "npm" # Look for `package.json` and `lock` files in the `root` directory directory: "/" # Check the npm registry for updates every day (weekdays) schedule: interval: "daily" # Enable version updates for Docker - package-ecosystem: "docker" # Look for a `Dockerfile` in the `root` directory directory: "/" # Check for updates once a week schedule: interval: "weekly"
# Basic `dependabot.yml` file with
# minimum configuration for two package managers
version: 2
updates:
# Enable version updates for npm
- package-ecosystem: "npm"
# Look for `package.json` and `lock` files in the `root` directory
directory: "/"
# Check the npm registry for updates every day (weekdays)
schedule:
interval: "daily"
# Enable version updates for Docker
- package-ecosystem: "docker"
# Look for a `Dockerfile` in the `root` directory
directory: "/"
# Check for updates once a week
schedule:
interval: "weekly"
Пример файла в реальном мире dependabot.yml
см. в разделе Dependabotсобственный файл конфигурации.
allow
Используется для определения точного определения зависимостей, которые следует поддерживать для экосистемы пакетов. Часто используется с параметром ignore
. Примеры см. в разделе Управление обновлениями зависимостей с помощью Dependabot.
Поведение по умолчанию Dependabot
- Все зависимости, явно определенные в манифесте, обновляются обновлениями версий.
- Все зависимости, определенные в файлах блокировки с уязвимыми зависимостями, обновляются обновлениями системы безопасности.
При allow
указании Dependabot используется следующий процесс:
-
Проверьте наличие всех явно разрешенных зависимостей.
-
Затем отфильтруйте все игнорируемые зависимости или версии.
Если зависимость соответствует
allow
оператору и операторуignore
, он игнорируется****.
Параметры | Характер использования |
---|---|
dependency-name | Разрешить обновления зависимостей с соответствующими именами, при необходимости используя * для сопоставления ноль или более символов. |
dependency-type | Разрешить обновления для зависимостей определенных типов. |
dependency-name
(allow
)
Для большинства диспетчеров пакетов необходимо определить значение, соответствующее имени зависимости, указанному в файле блокировки или манифеста. Некоторые системы имеют более сложные требования.
Диспетчер пакетов | Обязательный формат | Пример |
---|---|---|
Gradle и Maven | groupId:artifactId | org.kohsuke:github-api |
Docker для тегов изображений | Полное имя репозитория | Для тега <account ID>.dkr.ecr.us-west-2.amazonaws.com/base/foo/bar/ruby:3.1.0-focal-jemalloc изображения используйте base/foo/bar/ruby . |
dependency-type
(allow
)
Типы зависимостей | Поддерживаемые диспетчерами пакетов | Разрешить обновления |
---|---|---|
direct | Все | Все явно определенные зависимости. |
indirect | bundler , , pip``composer , cargo``gomod | Зависимости прямых зависимостей (также называемые подзависимостями или временными зависимостями). |
all | Все | Все явно определенные зависимости. Для bundler , pip , composer , cargo``gomod также зависимости прямых зависимостей. |
production | bundler , composer , mix``maven``npm ( pip не все менеджеры) | Только для зависимостей, определенных диспетчером пакетов в качестве рабочих зависимостей. |
development | bundler , composer , mix``maven``npm ( pip не все менеджеры) | Только для зависимостей, определенных диспетчером пакетов в качестве зависимостей разработки. |
assignees
Укажите отдельные назначаемый объект для всех запросов на вытягивание, поднятых для экосистемы пакетов. Примеры см. в разделе Настройка запросов на вытягивание зависимостей для соответствия вашим процессам.
Поведение по умолчанию Dependabot
- Запросы на вытягивание создаются без назначаемого пользователя.
При assignees
определении:
- Все запросы на вытягивание обновлений версий создаются с выбранными назначаемые.
- Все запросы на вытягивание обновлений для системы безопасности создаются с выбранными назначенными клиентами, если
target-branch
только не определяет обновления для не ветвь по умолчанию.
Назначаемы должны иметь доступ на запись в репозиторий. Для репозиториев, принадлежащих организации, члены организации с доступом на чтение также являются допустимыми назначаемыми.
commit-message
Определите формат для сообщений фиксации. Так как заголовки запросов на вытягивание записываются на основе сообщений о фиксации, этот параметр также влияет на заголовки запросов на вытягивание. Примеры см. в разделе Настройка запросов на вытягивание зависимостей для соответствия вашим процессам.
Поведение по умолчанию Dependabot
- Фиксация сообщений соответствует аналогичным шаблонам, обнаруженным в репозитории.
При commit-message
определении:
- Все сообщения фиксации соответствуют определенному шаблону.
- Все сообщения фиксации соответствуют определенному шаблону, если
target-branch
только не определяет обновления для не ветвь по умолчанию.
Параметры | Характер использования |
---|---|
prefix | Определяет префикс для всех сообщений фиксации и заголовков запросов на вытягивание. |
prefix-development | В поддерживаемых системах определяет другой префикс, используемый для фиксаций, которые обновляют зависимости в группе зависимостей разработки. |
include | Следуйте префиксу сообщения фиксации с дополнительными сведениями. |
Tip
При возникновении запросов на вытягивание для группированных обновлений имя ветви и название запроса на вытягивание определяются группойIDENTIFIER
, см. статью groups
.
prefix
- Используется для всех сообщений фиксации, если
prefix-development
не определено. - Значение может составлять до 50 символов.
- Dependabot вставляет двоеточие после префикса перед добавлением основного сообщения фиксации, когда значение заканчивается буквой, числом, закрывающей скобкой или закрывающей скобкой.
- Завершите значение символом пробела, чтобы остановить добавление двоеточия.
prefix-development
Поддерживается: bundler
, , mix``composer
, maven
, npm
и pip
.
- Используется только для сообщений фиксации, обновляющих зависимости в группе зависимостей разработки.
- В противном случае параметр ведет себя точно так же, как
prefix
и параметр.
include
- Поддерживает только значение
scope
- При определении любого префикса следует тип зависимостей, обновленных в фиксации:
deps
илиdeps-dev
.
directories
или directory
Обязательный параметр. Используется для определения расположения манифестов пакета для каждого диспетчера пакетов (например, package.json или Gemfile). Без этой информации Dependabot не удается создать запросы на вытягивание обновлений версий. Примеры см. в статье Определение нескольких расположений для файлов манифеста.
- Используется
directory
для определения одного каталога манифестов. - Используется
directories
для определения списка нескольких каталогов манифестов. - Определите каталоги относительно корневого каталога репозитория для большинства диспетчеров пакетов.
- Для GitHub Actionsиспользуйте значение
/
. Dependabot будет искать/.github/workflows
каталог, а такжеaction.yml/action.yaml
файл из корневого каталога.
Если необходимо использовать несколько блоков в файле конфигурации для определения обновлений для одной целевой ветви экосистемы, необходимо убедиться, что все значения уникальны и не перекрываются в каталогах.
Note
Ключ directories
поддерживает глоббинг и подстановочный знак *
. Эти функции не поддерживаются ключом directory
.
enable-beta-ecosystems
В настоящее время не используется.
groups
Определите правила для создания одного или нескольких наборов зависимостей, управляемых диспетчером пакетов, чтобы группировать обновления в меньшее количество целевых запросов на вытягивание. Примеры см. в разделе Оптимизация создания запросов на вытягивание обновлений версий Dependabot.
Поведение по умолчанию Dependabot
- Откройте один запрос на вытягивание для каждой зависимости, которая должна быть обновлена до более новой версии для обновлений версий и для обновлений системы безопасности.
Когда groups
используется для определения правил:
- Все обновления для зависимостей, соответствующих правилу, объединяются в один запрос на вытягивание.
- Если зависимость соответствует нескольким правилам, она включена в первую группу, которая соответствует ей.
- Все устаревшие зависимости, которые не соответствуют правилу, обновляются в отдельных запросах на вытягивание.
Параметры | Характер использования |
---|---|
IDENTIFIER | Определите идентификатор группы для использования в именах ветвей и заголовках запросов на вытягивание. Это должно начинаться и заканчиваться буквами, а также содержать буквы, каналы | , подчеркивания _ или дефисы - . |
applies-to | Укажите тип обновления, к которому применяется группа. Если не определено, по умолчанию обновляется версия. Поддерживаемые значения: version-updates или security-updates . |
dependency-type | Ограничить группу типом. Поддерживаемые значения: development или production . |
patterns | Определите один или несколько шаблонов для включения зависимостей с соответствующими именами. |
exclude-patterns | Определите один или несколько шаблонов, чтобы исключить зависимости из группы. |
update-types | Ограничить группу одним или несколькими уровнями семантического управления версиями. Поддерживаемые значения: minor , patch и major . |
dependency-type
(groups
)
Поддерживается: bundler
, , mix``composer
, maven
, npm
и pip
.
По умолчанию группа будет включать все типы зависимостей.
- Используется
development
для включения только зависимостей в группу зависимостей разработки. - Используется
production
для включения только зависимостей в рабочую группу зависимостей.
patterns
и exclude-patterns
(groups
)
Оба варианта поддерживают использование *
в качестве подстановочной карточки для определения совпадений с именами зависимостей. Если зависимость совпадает как с шаблоном, так и с шаблоном исключения, она исключается из группы.
update-types
(groups
)
По умолчанию группа будет включать обновления для всех семантических версий (SemVer). SemVer является принятым стандартом для определения версий программных пакетов в форме x.y.z
. Dependabot предполагает, что версии в этой форме всегда major.minor.patch
доступны.
- Используется
patch
для включения выпусков исправлений. - Используется
minor
для включения дополнительных выпусков. - Используется
major
для включения основных выпусков.
Примеры см. в разделе Управление обновлениями зависимостей с помощью Dependabot.
ignore
Используйте параметр, allow
чтобы определить точно, какие зависимости следует поддерживать для экосистемы пакетов. Dependabot проверяет все разрешенные зависимости, а затем отфильтровывает все пропускаемые зависимости или версии. Таким образом, зависимость, соответствующая как разрешением, так и игнорировать, будет игнорироваться. Примеры см. в разделе Управление обновлениями зависимостей с помощью Dependabot.
Поведение по умолчанию Dependabot
- Все зависимости, явно определенные в манифесте, обновляются обновлениями версий.
- Все зависимости, определенные в файлах блокировки с уязвимыми зависимостями, обновляются обновлениями системы безопасности.
При ignore
использовании Dependabot используется следующий процесс:
-
Проверьте наличие всех явно разрешенных зависимостей.
-
Затем отфильтруйте все игнорируемые зависимости или версии.
Если зависимость соответствует
allow
оператору и операторуignore
, он игнорируется****.
Параметры | Характер использования |
---|---|
dependency-name | Игнорируйте обновления зависимостей с именами сопоставления, при необходимости используя * для сопоставления ноль или более символов. |
versions | Игнорировать определенные версии или диапазоны версий. |
update-types | Игнорировать обновления на одном или нескольких уровнях семантического управления версиями. Поддерживаемые значения: version-update:semver-minor , version-update:semver-patch и version-update:semver-major . |
dependency-name
(ignore
)
Для большинства диспетчеров пакетов необходимо определить значение, соответствующее имени зависимости, указанному в файле блокировки или манифеста. Некоторые системы имеют более сложные требования.
Диспетчер пакетов | Обязательный формат | Пример |
---|---|---|
Gradle и Maven | groupId:artifactId | org.kohsuke:github-api |
Docker для тегов изображений | Полное имя репозитория | Для тега <account ID>.dkr.ecr.us-west-2.amazonaws.com/base/foo/bar/ruby:3.1.0-focal-jemalloc изображения используйте base/foo/bar/ruby . |
versions
(ignore
)
Используйте для пропуска определенных версий или диапазонов версий. Если вы хотите определить диапазон, используйте стандартный шаблон для диспетчера пакетов. Например:
- npm: использование
^1.0.0
- Пакет: использование
~> 2.0
- Docker: использование синтаксиса версии Ruby
- NuGet: использование
7.*
- Maven: использование
[1.4,)
Примеры см. в разделе Управление обновлениями зависимостей с помощью Dependabot.
update-types
(ignore
)
Укажите, какие семантические версии (SemVer) следует игнорировать. SemVer является принятым стандартом для определения версий программных пакетов в форме x.y.z
. Dependabot предполагает, что версии в этой форме всегда major.minor.patch
доступны.
- Используется
patch
для включения выпусков исправлений. - Используется
minor
для включения дополнительных выпусков. - Используется
major
для включения основных выпусков.
insecure-external-code-execution
Поддерживается: bundler
, mix
и pip
.
Разрешить Dependabot выполнять внешний код в манифесте во время обновлений. Примеры см. в разделе "Разрешение выполнения внешнего кода".
Поведение по умолчанию Dependabot
- Когда вы предоставляете Dependabot доступ к одному или нескольким реестрам, выполнение внешнего кода автоматически отключается для защиты кода от скомпрометированных пакетов.
- Обновления версий могут завершиться ошибкой без возможности выполнения кода.
Если вы разрешаете insecure-external-code-execution
:
- Dependabot выполнит код в манифесте в рамках процесса обновления версии.
- Код имеет доступ только к диспетчерам пакетов в реестрах, связанных с этим
updates
параметром. Доступ к любому из реестров, определенных в конфигурации верхнего уровняregistries
, не разрешен. - Это должно обеспечить успешное обновление, но также может позволить скомпрометированному пакету украсть учетные данные или получить доступ к настроенным реестрам.
Поддерживаемое значение: allow
.
labels
Укажите собственные метки для всех запросов на вытягивание, возникающих для диспетчера пакетов. Примеры см. в разделе Настройка запросов на вытягивание зависимостей для соответствия вашим процессам.
Поведение по умолчанию Dependabot
- Все запросы на вытягивание имеют
dependencies
метку. - Если вы определяете несколько диспетчеров пакетов, в каждый запрос на вытягивание добавляется дополнительная метка для экосистемы или языка. Например,
java
для обновлений Gradle иsubmodules
для обновлений подмодулы Git. - Dependabot автоматически создает эти метки по умолчанию, как это требуется в репозитории.
При labels
определении:
- Указанные метки используются вместо меток по умолчанию.
- Если какая-либо из этих меток не определена в репозитории, она пропускается.
- Вы можете отключить все метки, включая метки по умолчанию, с помощью
labels: [ ]
.
Установка этого параметра также влияет на запросы на вытягивание обновлений системы безопасности для файлов манифеста этого диспетчера пакетов, если только вы не используете target-branch
для проверки наличия обновлений версий в ветви, отличной от ветви по умолчанию.
milestone
Свяжите все запросы на вытягивание, поднятые для диспетчера пакетов, с вехой. Примеры см. в разделе Настройка запросов на вытягивание зависимостей для соответствия вашим процессам.
Поведение по умолчанию Dependabot
- Не используются вехи.
При milestone
определении:
- Все запросы на вытягивание диспетчера пакетов добавляются в веху.
Поддерживаемое значение: числовой идентификатор вехи.
Tip
Если вы посмотрите на веху, ее идентификатором является последняя часть URL-адреса страницы, после milestone
. Например, см. https://github.com/<org>/<repo>/milestone/3
раздел AUTOTITLE.
open-pull-requests-limit
Измените ограничение на максимальное количество запросов на вытягивание обновлений версий, открытых в любое время.
Поведение по умолчанию Dependabot
- Если открыты пять запросов на вытягивание с обновлениями версий, дальнейшие запросы на вытягивание не создаются до тех пор, пока некоторые из этих открытых запросов не будут объединены или закрыты.
- Обновления системы безопасности имеют отдельный внутренний предел в десять открытых запросов на вытягивание, которые нельзя изменить.
При open-pull-requests-limit
определении:
- Dependabot открывает запросы на вытягивание до определенного целочисленного значения.
- Вы можете временно отключить обновления версий для диспетчера пакетов, установив этот параметр равным нулю, см . раздел "Отключение Dependabot version updates".
package-ecosystem
Обязательный параметр. Определите один package-ecosystem
элемент для каждого диспетчера пакетов, который требуется Dependabot для отслеживания новых версий. Репозиторий также должен содержать манифест зависимостей или файл блокировки для каждого диспетчера пакетов, см . пример dependabot.yml
файла.
Диспетчер пакетов | Значение YAML | Поддерживаемые версии |
---|---|---|
Булочка | bun | >=v1.1.39 |
Средство увязки программ в пакеты | bundler | v2 |
Груз | cargo | Версия 1 |
Composer | composer | v2 |
Контейнеры разработки | 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 | v7, v8, v9 |
NuGet | nuget | <=6.12.0 |
pip | pip | версия 21.1.2 |
pip-compile | pip | 6.1.0 |
pipenv | pip | <= 2021-05-29 |
pnpm | npm | v7, v8 v9 (только обновления версий) |
poetry | pip | Версия 1 |
паб | pub | Версия 2 |
Swift | swift | v5 |
Terraform | terraform | >= 0,13, <= 1.8.x |
yarn | npm | v1, v2, v3 |
pull-request-branch-name.separator
Укажите разделитель, используемый при создании имен ветвей. Примеры см. в разделе Настройка запросов на вытягивание зависимостей для соответствия вашим процессам.
Поведение по умолчанию Dependabot
- Создайте имена ветвей формы:
dependabot/PACKAGE_MANAGER/DEPENDENCY
При pull-request-branch-name.separator
определении:
- Вместо этого используйте указанный
/
символ.
Поддерживаемые значения: "-"
, _``/
Tip
Символ дефиса должен быть экранирован, поэтому он не интерпретируется как запуск пустого списка YAML.
rebase-strategy
Отключите автоматическую перебазировку запросов на вытягивание, вызываемых Dependabot.
Поведение Dependabot по умолчанию — перебазировать открытые запросы на вытягивание, если Dependabot обнаруживает любые изменения в запросе на вытягивание версии или обновления системы безопасности. Dependabot проверяет наличие изменений при:
- Расписание выполняется для проверки обновлений версий.
- Повторно откройте закрытый запрос на вытягивание Dependabot.
- Вы изменяете значение
target-branch
в файле конфигурации Dependabot, см. разделtarget-branch
. - Запрос на вытягивание Dependabot конфликтует после недавней отправки в целевую ветвь.
Если rebase-strategy
задано значение disabled
, Dependabot перестает перезаключать запросы на вытягивание.
Note
Запросы на вытягивание, открытые перед отключением повторной базы данных, будут перебазироваться до 30 дней после их открытия. Это влияет на все запросы на вытягивание, конфликты с целевой ветвью и все запросы на вытягивание обновлений версий.
registries
Настройте доступ к реестрам частных пакетов, чтобы разрешить Dependabot обновлять более широкий диапазон зависимостей, см[. раздел AUTOTITLE и Настройка доступа к частным реестрам для Dependabot](/code-security/dependabot/working-with-dependabot/guidance-for-the-configuration-of-private-registries-for-dependabot).
В файле есть 2 расположения dependabot.yml
, в которых можно использовать registries
ключ:
- На верхнем уровне, где вы определяете частные реестры, которые вы хотите использовать, и сведения о доступе см. в разделе Настройка доступа к частным реестрам для Dependabot.
- В блоках, где можно указать, какие частные
updates
реестры следует использовать каждому диспетчеру пакетов.
Поведение по умолчанию Dependabot заключается в том, чтобы создавать запросы на вытягивание только для обновления зависимостей, хранящихся в общедоступных реестрах.
Если в файле конфигурации Dependabot есть раздел конфигурации верхнего уровня registries
, определяющий доступ к одному или нескольким частным реестрам, можно настроить каждый package-ecosystem
из них для использования одного или нескольких частных реестров.
Если registries
определяется для диспетчера пакетов:
- Каждый частный реестр, указанный для диспетчера пакетов, проверяется на наличие обновлений версии и системы безопасности.
- Dependabot использует сведения о доступе, определенные в разделе верхнего уровня
registries
.
Поддерживаемые значения: REGISTRY_NAME
или "*"
reviewers
Укажите отдельных рецензентов или команды рецензентов для всех запросов на вытягивание, поднятых для диспетчера пакетов. Примеры см. в разделе Настройка запросов на вытягивание зависимостей для соответствия вашим процессам.
Поведение по умолчанию Dependabot
- Запросы на вытягивание создаются без назначенных рецензентов.
При reviewers
определении:
- Все запросы на вытягивание обновлений версий создаются с выбранными рецензентами.
- Все запросы на вытягивание обновлений системы безопасности создаются с выбранными рецензентами, если
target-branch
только не определяет обновления для не ветвь по умолчанию.
Рецензенты должны иметь по крайней мере доступ на чтение к репозиторию.
schedule
Обязательный параметр. Определите частоту проверки новых версий для каждого диспетчера пакетов, который вы настраиваете с помощью interval
параметра. При необходимости для ежедневных и еженедельных интервалов можно настроить, когда Dependabot проверяет наличие обновлений. Примеры см. в разделе Оптимизация создания запросов на вытягивание обновлений версий Dependabot.
Параметры | Характер использования |
---|---|
interval | Необходимые. Определяет частоту для Dependabot. |
day | Укажите день, который нужно запустить для еженедельного интервала . |
time | Укажите время выполнения. |
timezone | Укажите часовой time пояс значения. |
interval
Поддерживаемые значения: daily
, weekly
или monthly
Каждый диспетчер пакетов должен определить интервал расписания.
- Используется
daily
для запуска на каждый рабочий день, понедельник до пятницы. - Используется
weekly
для запуска раз в неделю по умолчанию в понедельник. - Используется
monthly
для запуска в первый день каждого месяца.
По умолчанию Dependabot произвольно назначает время применения всех обновлений в файле конфигурации. С помощью time
timezone
параметров можно задать определенную среду выполнения для всех интервалов.
day
Поддерживаемые значения: monday
, , tuesday
, wednesday``thursday
, saturday``friday
илиsunday
При необходимости запустите еженедельные обновления для диспетчера пакетов в определенный день недели.
time
Формат: hh:mm
При необходимости выполните все обновления для диспетчера пакетов в определенное время суток. По умолчанию время интерпретируется как UTC.
timezone
Укажите часовой пояс для time
значения.
Идентификатор часового пояса должен соответствовать часовой поясу в базе данных, поддерживаемой iana, см . список часовых поясов базы данных tz.
target-branch
Определите конкретную ветвь для проверки обновлений версий и целевых запросов на вытягивание обновлений версий. Примеры см. в разделе Настройка запросов на вытягивание зависимостей для соответствия вашим процессам.
Поведение по умолчанию Dependabot
- Dependabot использует ветвь по умолчанию для репозитория, см. сведения о ветвь по умолчанию.
При target-branch
определении:
- Для обновления версий проверяются только файлы манифеста в целевой ветви.
- Все запросы на вытягивание обновлений версий открываются для указанной ветви.
- Параметры, определенные для этого
package-ecosystem
, больше не применяются к обновлениям системы безопасности, так как обновления безопасности всегда используют ветвь по умолчанию для репозитория.
vendor
Поддерживается только: bundler
и gomod
только.
Сообщите Dependabot для поддержания зависимостей поставщика, а также зависимостей, определенных файлами манифеста. Зависимость описывается как "поставщик" или "кэширована" при хранении кода в репозитории, см[. документацию и go mod vendor
документацию](https://golang.org/ref/mod#go-mod-vendor).`bundle cache`
Примеры см. в разделе Управление обновлениями зависимостей с помощью Dependabot.
Поведение по умолчанию Dependabot
- Сохраняйте только зависимости, записанные в манифесте и файлах блокировки, определенных для bundler.
- Вызов запросов на обновление безопасности и версий, которые обновляют номера версий, записанные в файлах манифеста и блокировки.
- Для модулей Go все поставщики зависимостей автоматически идентифицируются и поддерживаются так, как если бы
vendor
он был включен.
Если vendor
включена:
- Dependabot также поддерживает зависимости для пакета, хранящихся в каталоге
_vendor/cache_
в репозитории. - Запросы на вытягивание иногда содержат обновления зависимостей, хранящихся в репозитории.
Поддерживаемые значения: true
или false
versioning-strategy
Поддерживается: bundler
, , composer``cargo
, npm``pip``mix``pub
Определите, как Dependabot должен изменять файлы манифеста. Примеры см. в разделе Управление обновлениями зависимостей с помощью Dependabot.
Поведение по умолчанию Dependabot
- Попробуйте различать зависимости приложений и библиотек.
- Для приложений всегда увеличьте минимальное требование к версии, чтобы соответствовать новой версии. Стратегия
increase
. - Для библиотек расширяйте требования к разрешенной версии, чтобы включить как новые, так и старые версии, когда это возможно. Стратегия
widen
.
При versioning-strategy
определении Dependabot использует указанную стратегию.
Значение | Поведение |
---|---|
auto | Поведение по умолчанию. |
increase | Всегда увеличьте минимальное требование к версии, чтобы соответствовать новой версии. Если диапазон уже существует, обычно это только увеличивает нижнюю границу. |
increase-if-necessary | Оставьте ограничение, если исходное ограничение разрешает новую версию, в противном случае укажите ограничение. |
lockfile-only | Создавать запросы на вытягивание только для обновления файлов блокировки. Пропускать все новые версий, для которых требуются изменения манифеста пакета. |
widen | Расширяйте допустимые требования к версии для включения новых и старых версий, когда это возможно. Как правило, это увеличивает только максимально допустимое требование версии. |
Например, если текущая версия и 1.0.0
текущее ограничение является ^1.0.0
различными стратегиями, будет вызывать следующие обновления:
Новая версия 1.2.0
increase
: новое ограничение^1.2.0
increase-if-necessary
: новое ограничение^1.0.0
widen
: новое ограничение^1.0.0
Новая версия 2.0.0
increase
: новое ограничение^2.0.0
increase-if-necessary
: новое ограничение^2.0.0
widen
: новое ограничение>=1.0.0 <3.0.0
Note
Если используемый диспетчер пакетов еще не поддерживает настройку versioning-strategy
параметра или не поддерживает нужное значение. Код стратегии открытый код, поэтому если вы хотите, чтобы определенная экосистема поддерживала новую стратегию, вы всегда можете отправить запрос на вытягивание.https://github.com/dependabot/dependabot-core/
Теги управления версиями
- Представляет этапы жизненного цикла выпуска программного обеспечения, такие как альфа, бета-версия и стабильные версии.
- Позволяет издателям более эффективно распространять свои пакеты.
- Укажите стабильность версии и сообщите, какие пользователи должны ожидать с точки зрения функций и стабильности.
Dependabot распознает различные теги управления версиями для предварительных выпусков, стабильных версий и пользовательских тегов в разных экосистемах.
Файл dependabot.yml
не управляет тегами управления версиями, которые можно использовать, но можно определить в параметрах конфигурации, таких как ignore
поддерживаемые теги управления версиями, для которого требуется игнорировать обновления.
Поддерживаемые теги управления версиями
Диспетчер пакетов | Значение YAML | Поддерживаемые теги | Примеры |
---|---|---|---|
Maven | maven | alpha, a, beta, b, milestone, m, rc, cr, sp, ga, final, release, snapshot | spring-security-web@5.6.0-SNAPSHOT , spring-core@5.2.0.RELEASE |
npm | npm | alpha , beta , canary``dev``experimental``latest``legacy``next``nightly``rc``release``stable | lodash@beta , , react@latest``express@next |
pnpm | npm | alpha , beta , canary``dev``experimental``latest``legacy``next``nightly``rc``release``stable | lodash@1.2.0-alpha , , react@alpha``vue@next |
yarn | npm | alpha , beta , canary``dev``experimental``latest``legacy``next``nightly``rc``release``stable | lodash@1.2.0-alpha , , axios@latest``moment@nightly |
Глоссарий тегов управления версиями
alpha
: ранняя версия может быть нестабильной и иметь неполные функции.beta
: более стабильным, чем альфа- но может по-прежнему иметь ошибки.canary
: регулярно обновляется предварительная версия для тестирования.dev
: представляет версии разработки.experimental
: версии с экспериментальными функциями.latest
: последний стабильный выпуск.legacy
: старые или устаревшие версии.next
: предстоящая версия выпуска.nightly
: версии, созданные ночью; часто включают последние изменения.rc
: кандидат выпуска, близкий к стабильному выпуску.release
: официальная версия выпуска.stable
: самая надежная, готовая к работе версия.
Ключ верхнего уровня registries
Укажите сведения о проверке подлинности, которые Dependabot могут использовать для доступа к реестрам частных пакетов, включая реестры, размещенные GitLab или Bitbucket.
Значение ключа registries
является ассоциативным массивом, каждый элемент которого состоит из ключа, определяющего конкретный реестр, и значения, являющегося ассоциативным массивом, которое указывает параметры, необходимые для доступа к реестру. dependabot.yml
Следующий файл настраивает реестр, определенный как dockerhub
в registries
разделе файла, а затем ссылается на этот файл в updates
разделе файла.
# Minimal settings to update dependencies stored in one private registry version: 2 registries: dockerhub: # Define access for a private registry type: docker-registry url: registry.hub.docker.com username: octocat password: ${{secrets.DOCKERHUB_PASSWORD}} updates: - package-ecosystem: "docker" directory: "/docker-registry/dockerhub" registries: - dockerhub # Allow version updates for dependencies in this registry schedule: interval: "monthly"
# Minimal settings to update dependencies stored in one private registry
version: 2
registries:
dockerhub: # Define access for a private registry
type: docker-registry
url: registry.hub.docker.com
username: octocat
password: ${{secrets.DOCKERHUB_PASSWORD}}
updates:
- package-ecosystem: "docker"
directory: "/docker-registry/dockerhub"
registries:
- dockerhub # Allow version updates for dependencies in this registry
schedule:
interval: "monthly"
Для указания параметров доступа используются следующие параметры. Параметры реестра должны содержать type
и url
, а также, как правило, либо сочетание username
и password
, либо token
.
Параметры | Характер использования |
---|---|
REGISTRY_NAME | **** Обязательный: определяет идентификатор реестра. |
type | **** Обязательный: определяет тип реестра. |
Подробные сведения о проверке подлинности | **** Обязательный: параметры, поддерживаемые для предоставления сведений о проверке подлинности, зависят от реестров разных типов. |
url | **** Обязательный: URL-адрес, используемый для доступа к зависимостям в этом реестре. Протокол указывать необязательно. Если этот параметр не задан, для него предполагается значение https:// . Dependabot добавляет или пропускает конечные косые черты по мере необходимости. |
replaces-base | Если логическое значение равно true , Dependabot разрешает зависимости, используя указанный url , а не базовый URL-адрес этой экосистемы. |
Подробные сведения о доступных вариантах, а также рекомендации и советы по настройке частных реестров см. в разделе Руководство по настройке частных реестров для Dependabot.
type
и сведения о проверке подлинности
Параметры, используемые для предоставления сведений о проверке подлинности для доступа к частному реестру, зависят от реестра type
.
Регистратура type | Обязательные параметры проверки подлинности |
---|---|
cargo-registry | token |
composer-repository | username и password |
docker-registry | username и password |
git | username и password |
hex-organization | organization и key |
hex-repository | repo и auth-key при необходимости с соответствующими public-key-fingerprint |
maven-repository | username и password |
npm-registry | username и password или token |
nuget-feed | username и password .или token |
pub-registry | token |
python-index | username и password .или token |
rubygems-server | username и password .или token |
terraform-registry | token |
Все конфиденциальные данные, используемые для проверки подлинности, должны храниться безопасно и ссылаться на нее из этого безопасного расположения, см. в разделе Настройка доступа к частным реестрам для Dependabot.
Tip
Если учетная запись является учетной записью GitHub, вместо пароля можно использовать GitHub personal access token вместо пароля.
url
и replaces-base
.
Параметр url
определяет, где получить доступ к реестру. Если необязательный replaces-base
параметр включен (true
), Dependabot разрешает зависимости, используя значение url
, а не базовый URL-адрес этой конкретной экосистемы.