Существуют различные способы настройки запросов на вытягивание Dependabot, чтобы они лучше соответствовали собственным внутренним процессам.
Например:
- Чтобы повысить эффективность, Dependabot может автоматически добавлять конкретных лиц или команд в качестве рецензентов в запросы на вытягивание для конкретной экосистемы пакетов.
- Чтобы интегрировать Dependabotзапросы на вытягивание в конвейеры CI/CD, можно применить пользовательские метки к запросам на вытягивание, которые затем можно использовать для активации рабочих процессов действий.
Существует несколько различных вариантов настройки, которые можно использовать в сочетании и адаптировать для каждой экосистемы пакетов.
Автоматическое добавление рецензентов и назначений
По умолчанию Dependabot создает запросы на вытягивание без рецензентов и уполномоченных.
Однако вам может потребоваться, чтобы запросы на вытягивание были последовательно проверены или рассмотрены определенным человеком или группой, которая имеет опыт в этой экосистеме пакетов или автоматически назначена назначенной группе безопасности. В этом случае можно использовать reviewers
и assignees
задать эти значения для каждой экосистемы пакетов.
Приведенный ниже пример dependabot.yml
файла изменяет конфигурацию npm, чтобы все запросы на вытягивание, открытые с помощью обновлений версии и системы безопасности для npm, имели:
- Команда ("
my-org/team-name
") и отдельный ("octocat
") автоматически добавляются в качестве рецензентов в запросы на вытягивание. - Отдельный ("
user-name
") автоматически назначается запросам на вытягивание.
# `dependabot.yml` file with # reviews and an assignee for all npm pull requests version: 2 updates: # Keep npm dependencies up to date - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" # Raise all npm pull requests with reviewers reviewers: - "my-org/team-name" - "octocat" # Raise all npm pull requests with assignees assignees: - "user-name"
# `dependabot.yml` file with
# reviews and an assignee for all npm pull requests
version: 2
updates:
# Keep npm dependencies up to date
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Raise all npm pull requests with reviewers
reviewers:
- "my-org/team-name"
- "octocat"
# Raise all npm pull requests with assignees
assignees:
- "user-name"
Установка этого параметра также влияет на запросы на вытягивание обновлений системы безопасности для файлов манифеста этого диспетчера пакетов, если только вы не используете target-branch
для проверки наличия обновлений версий в ветви, отличной от ветви по умолчанию.
См. также assignees
и reviewers
.
Добавление меток на запросы на вытягивание с помощью пользовательских меток
По умолчанию Dependabot вызывает все запросы на вытягивание с меткой dependencies
.
Если определено несколько диспетчеров пакетов, Dependabot содержит дополнительную метку для каждого запроса на вытягивание, которая указывает, какой язык или экосистема обновляет запрос на вытягивание. Например, добавление java
обновлений Gradle или submodules
для обновлений подмодулы Git.
Dependabot создает метки по умолчанию, которые применяются к запросам на вытягивание, если они еще не существуют в репозитории. Если вы хотите использовать пользовательские метки, необходимо создать их самостоятельно. Дополнительные сведения см. в статье AUTOTITLE.
Вы можете использовать labels
для переопределения меток по умолчанию и указания собственных пользовательских меток для каждой экосистемы пакетов. Это полезно, если, например, вы хотите:
- Используйте метки для назначения приоритета определенным запросам на вытягивание.
- Используйте метки для активации другого рабочего процесса, например автоматического добавления запроса на вытягивание в доска проекта.
Приведенный ниже пример dependabot.yml
файла изменяет конфигурацию npm, чтобы все запросы на вытягивание, открытые с помощью обновлений версии и системы безопасности для npm, имели пользовательские метки.
# `dependabot.yml` file with # customized npm configuration version: 2 updates: # Keep npm dependencies up to date - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" # Raise all npm pull requests with custom labels labels: - "npm dependencies" - "triage-board"
# `dependabot.yml` file with
# customized npm configuration
version: 2
updates:
# Keep npm dependencies up to date
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Raise all npm pull requests with custom labels
labels:
- "npm dependencies"
- "triage-board"
Установка этого параметра также влияет на запросы на вытягивание обновлений системы безопасности для файлов манифеста этого диспетчера пакетов, если только вы не используете target-branch
для проверки наличия обновлений версий в ветви, отличной от ветви по умолчанию.
См. также labels
.
Добавление префикса для фиксации сообщений
По умолчанию Dependabot пытается обнаружить ваши настройки сообщений фиксации и использовать аналогичные шаблоны. Кроме того, Dependabot заполняет заголовки запросов на вытягивание на основе сообщений фиксации.
Вы можете указать собственный префикс для (и заголовки запросов на вытягивание) для определенной экосистемы пакетов. Это может быть полезно, если, например, выполняется автоматизация, обрабатывающая сообщения о фиксации сообщений или заголовки запросов на вытягивание.
Чтобы явно указать параметры, используйте commit-message
следующие поддерживаемые параметры:
prefix
:- Задает префикс для всех сообщений фиксации.
- Префикс также добавляется в начало заголовка запроса на вытягивание.
prefix-development
:- Задает отдельный префикс для всех сообщений фиксации, которые обновляют зависимости разработки, как определено диспетчером пакетов или экосистемой.
- Поддерживается для
bundler
, ,composer
,npm``mix``maven
иpip
.
include: "scope"
:- Указывает, что за любым префиксом следует типы зависимостей (
deps
илиdeps-dev
) обновлены в фиксации.
- Указывает, что за любым префиксом следует типы зависимостей (
В приведенном ниже примере показаны несколько различных вариантов, адаптированных для каждой экосистемы пакетов:
# Customize commit messages version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" commit-message: # Prefix all commit messages with "npm: " prefix: "npm" - package-ecosystem: "docker" directory: "/" schedule: interval: "weekly" commit-message: # Prefix all commit messages with [docker] " (no colon, but a trailing whitespace) prefix: [docker] " - package-ecosystem: "composer" directory: "/" schedule: interval: "weekly" # Prefix all commit messages with "Composer" plus its scope, that is, a # list of updated dependencies commit-message: prefix: "Composer" include: "scope" - package-ecosystem: "pip" directory: "/" schedule: interval: "weekly" # Include a list of updated dependencies # with a prefix determined by the dependency group commit-message: prefix: "pip prod" prefix-development: "pip dev"
# Customize commit messages
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
commit-message:
# Prefix all commit messages with "npm: "
prefix: "npm"
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
commit-message:
# Prefix all commit messages with [docker] " (no colon, but a trailing whitespace)
prefix: [docker] "
- package-ecosystem: "composer"
directory: "/"
schedule:
interval: "weekly"
# Prefix all commit messages with "Composer" plus its scope, that is, a
# list of updated dependencies
commit-message:
prefix: "Composer"
include: "scope"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
# Include a list of updated dependencies
# with a prefix determined by the dependency group
commit-message:
prefix: "pip prod"
prefix-development: "pip dev"
Установка этого параметра также влияет на запросы на вытягивание обновлений системы безопасности для файлов манифеста этого диспетчера пакетов, если только вы не используете target-branch
для проверки наличия обновлений версий в ветви, отличной от ветви по умолчанию.
См. также commit-message
.
Связывание запросов на вытягивание с вехой
Вехи помогают отслеживать ход выполнения групп запросов на вытягивание (или проблемы) в направлении цели проекта или выпуска. С помощью Dependabotможно связать milestone
запросы на вытягивание обновлений зависимостей с определенной вехой.
Необходимо указать числовой идентификатор вехи, а не метку. Чтобы найти числовый идентификатор, проверьте последнюю часть URL-адреса milestone
страницы. Например, "https://github.com/<org>/<repo>/milestone/3``3
" — это числовый идентификатор вехи.
# Specify a milestone for pull requests version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" # Associate pull requests with milestone "4" milestone: 4
# Specify a milestone for pull requests
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Associate pull requests with milestone "4"
milestone: 4
Установка этого параметра также влияет на запросы на вытягивание обновлений системы безопасности для файлов манифеста этого диспетчера пакетов, если только вы не используете target-branch
для проверки наличия обновлений версий в ветви, отличной от ветви по умолчанию.
См. также milestones
и AUTOTITLE.
Изменение разделителя в имени ветви запроса на вытягивание
Dependabot создает ветвь для каждого запроса на вытягивание. Каждое имя ветви включает в себя dependabot
, а также имя диспетчера пакетов и зависимость, которая должна быть обновлена. По умолчанию эти части имени ветви разделяются символом /
, например:
dependabot/npm_and_yarn/next_js/acorn-6.4.1
Чтобы обеспечить поддержку или согласованность существующих процессов, может потребоваться убедиться, что имена филиалов соответствуют существующим соглашениям вашей команды. В этом случае можно указать pull-request-branch-name.separator
другой разделитель, выбрав либо _
, /
либо "-"
.
В приведенном ниже примере конфигурация npm изменяет разделитель по умолчанию на /
"-"
, чтобы он отображался следующим образом:
- По умолчанию (
/
):dependabot/npm_and_yarn/next_js/acorn-6.4.1
- Настроено (
"-"
):dependabot-npm_and_yarn-next_js-acorn-6.4.1
Обратите внимание, что символ дефиса ("-"
) должен быть окружен кавычками, чтобы он не интерпретировался как запуск пустого списка YAML.
# Specify a different separator for branch names version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" pull-request-branch-name: # Change the default separator (/) to a hyphen (-) separator: "-"
# Specify a different separator for branch names
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
pull-request-branch-name:
# Change the default separator (/) to a hyphen (-)
separator: "-"
Установка этого параметра также влияет на запросы на вытягивание обновлений системы безопасности для файлов манифеста этого диспетчера пакетов, если только вы не используете target-branch
для проверки наличия обновлений версий в ветви, отличной от ветви по умолчанию.
См. также pull-request-branch-name.separator
.
Назначение запросов на вытягивание для не ветвь по умолчанию
По умолчанию Dependabot проверяет наличие файлов манифеста в ветвь по умолчанию и вызывает запросы на вытягивание обновлений в ветвь по умолчанию.
Как правило, рекомендуется хранить Dependabotпроверки и обновления ветвь по умолчанию. Однако в некоторых случаях может потребоваться указать другую целевую ветвь. Например, если процессам вашей команды требуется сначала протестировать и проверить обновления в не рабочая ветвь, можно указать target-branch
другую ветвь для Dependabot для создания запросов на вытягивание.
Note
Dependabot вызывает запросы на вытягивание обновлений системы безопасности только для ветвь по умолчанию. Если вы используете target-branch
, то в результате все параметры конфигурации для этого диспетчера пакетов будут применяться только к обновлениям версий, а не к обновлениям системы безопасности.
# Specify a non-default branch for pull requests for pip version: 2 updates: - package-ecosystem: "pip" directory: "/" schedule: interval: "weekly" # Raise pull requests for version updates # to pip against the `develop` branch target-branch: "develop" # Labels on pull requests for version updates only labels: - "pip dependencies" - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" # Check for npm updates on Sundays day: "sunday" # Labels on pull requests for security and version updates labels: - "npm dependencies"
# Specify a non-default branch for pull requests for pip
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
# Raise pull requests for version updates
# to pip against the `develop` branch
target-branch: "develop"
# Labels on pull requests for version updates only
labels:
- "pip dependencies"
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Check for npm updates on Sundays
day: "sunday"
# Labels on pull requests for security and version updates
labels:
- "npm dependencies"
См. также target-branch
.