Skip to main content

Справочник по параметрам зависимостей

Подробные сведения обо всех параметрах, которые можно использовать для настройки того, как Dependabot обслуживает репозитории:

Кто может использовать эту функцию?

Users with write access

Сведения о dependabot.yml файле

Файл dependabot.yml определяет, как Dependabot поддерживает зависимости с помощью обновлений версий. Кроме того, все параметры, помеченные значком также изменяют, как Dependabot создает запросы на вытягивание обновлений безопасности, за исключением того, где target-branch используется.

Файл конфигурации dependabot.ymlDependabot использует синтаксис 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".

YAML

# 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 используется следующий процесс:

  1. Проверьте наличие всех явно разрешенных зависимостей.

  2. Затем отфильтруйте все игнорируемые зависимости или версии.

    Если зависимость соответствует allow оператору и операторуignore, он игнорируется****.

ПараметрыХарактер использования
dependency-nameРазрешить обновления зависимостей с соответствующими именами, при необходимости используя * для сопоставления ноль или более символов.
dependency-typeРазрешить обновления для зависимостей определенных типов.

dependency-name (allow)

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

Диспетчер пакетовОбязательный форматПример
Gradle и MavengroupId:artifactIdorg.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ВсеВсе явно определенные зависимости.
indirectbundler, , pip``composer, cargo``gomodЗависимости прямых зависимостей (также называемые подзависимостями или временными зависимостями).
allВсеВсе явно определенные зависимости. Для bundler, pip, composer, cargo``gomodтакже зависимости прямых зависимостей.
productionbundler, composer, mix``maven``npm( pip не все менеджеры)Только для зависимостей, определенных диспетчером пакетов в качестве рабочих зависимостей.
developmentbundler, 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 используется следующий процесс:

  1. Проверьте наличие всех явно разрешенных зависимостей.

  2. Затем отфильтруйте все игнорируемые зависимости или версии.

    Если зависимость соответствует allow оператору и операторуignore, он игнорируется****.

ПараметрыХарактер использования
dependency-nameИгнорируйте обновления зависимостей с именами сопоставления, при необходимости используя * для сопоставления ноль или более символов.
versionsИгнорировать определенные версии или диапазоны версий.
update-typesИгнорировать обновления на одном или нескольких уровнях семантического управления версиями. Поддерживаемые значения: version-update:semver-minor, version-update:semver-patch и version-update:semver-major.

dependency-name (ignore)

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

Диспетчер пакетовОбязательный форматПример
Gradle и MavengroupId:artifactIdorg.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
Средство увязки программ в пакетыbundlerv2
ГрузcargoВерсия 1
Composercomposerv2
Контейнеры разработкиdevcontainersНет данных
DockerdockerВерсия 1
Пакет SDK для .NETdotnet-sdk>=.NET Core 3.1
HexmixВерсия 1
Пакет ELMelmВерсия 0.19
Субмодуль GitgitsubmoduleНет данных
GitHub Actionsgithub-actionsНет данных
Модули GogomodВерсия 1
GradlegradleНет данных
MavenmavenНет данных
npmnpmv7, v8, v9
NuGetnuget<=6.12.0
pippipверсия 21.1.2
pip-compilepip6.1.0
pipenvpip<= 2021-05-29
pnpmnpmv7, v8
v9 (только обновления версий)
poetrypipВерсия 1
пабpubВерсия 2
Swiftswiftv5
Terraformterraform>= 0,13, <= 1.8.x
yarnnpmv1, 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 ключ:

  1. На верхнем уровне, где вы определяете частные реестры, которые вы хотите использовать, и сведения о доступе см. в разделе Настройка доступа к частным реестрам для Dependabot.
  2. В блоках, где можно указать, какие частные 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

При 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Поддерживаемые тегиПримеры
Mavenmavenalpha, a, beta, b, milestone, m, rc, cr, sp, ga, final, release, snapshotspring-security-web@5.6.0-SNAPSHOT, spring-core@5.2.0.RELEASE
npmnpmalpha, beta, canary``dev``experimental``latest``legacy``next``nightly``rc``release``stablelodash@beta, , react@latest``express@next
pnpmnpmalpha, beta, canary``dev``experimental``latest``legacy``next``nightly``rc``release``stablelodash@1.2.0-alpha, , react@alpha``vue@next
yarnnpmalpha, beta, canary``dev``experimental``latest``legacy``next``nightly``rc``release``stablelodash@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 разделе файла.

YAML
# 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-registrytoken
composer-repositoryusername и password
docker-registryusername и password
gitusername и password
hex-organizationorganization и key
hex-repositoryrepo и auth-key при необходимости с соответствующими public-key-fingerprint
maven-repositoryusername и password
npm-registryusername и password
или token
nuget-feedusername и password.
или token
pub-registrytoken
python-indexusername и password.
или token
rubygems-serverusername и password.
или token
terraform-registrytoken

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

Tip

Если учетная запись является учетной записью GitHub, вместо пароля можно использовать GitHub personal access token вместо пароля.

url и replaces-base.

Параметр url определяет, где получить доступ к реестру. Если необязательный replaces-base параметр включен (true), Dependabot разрешает зависимости, используя значение url , а не базовый URL-адрес этой конкретной экосистемы.