Существуют различные способы настройки запросов на вытягивание Dependabot, чтобы они лучше соответствовали собственным внутренним процессам.
Например, чтобы интегрировать Dependabotзапросы на вытягивание в конвейеры CI/CD, они могут применять пользовательские метки для запросов на вытягивание, которые затем можно использовать для активации рабочих процессов действий.
Существует несколько различных вариантов настройки, которые можно использовать в сочетании и адаптировать для каждой экосистемы пакетов.
Автоматическое добавление рецензентов и назначений
Внимание
Свойство reviewers закрывается и будет удалено в будущем выпуске GitHub Enterprise Server.
Вы также можете автоматически добавлять рецензентов и назначать их с помощью файла CODEOWNERS. См . раздел AUTOTITLE.
По умолчанию 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"
Добавление меток на запросы на вытягивание с помощью пользовательских меток
По умолчанию Dependabot вызывает запросы на dependencies вытягивание с меткой.
Dependabot также применяет метку экосистемы, такую как java, npm, или github-actions, к запросам на вытягивание. Dependabot добавляет как метку, dependencies так и метку экосистемы ко всем запросам на вытягивание, включая обновления одной экосистемы, для улучшения фильтрации и сортировки.
Dependabot создает метки по умолчанию, которые применяются к запросам на вытягивание, если они еще не существуют в репозитории. Если вы хотите использовать пользовательские метки вместо меток по умолчанию, вы можете установить этот labels параметр в экосистеме dependabot.yml файлов для каждого пакета; это переопределяет значения по умолчанию. Дополнительные сведения см. в разделе Управление метками иlabels .
Если в репозитории присутствуют метки семантической версии (SemVer), Dependabot также автоматически применит их для указания типа обновления версии (major, minor, или patch). Эти метки применяются в дополнение к любым пользовательским меткам, которые вы определяете.
Вы можете использовать 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 заполняет заголовки запросов на вытягивание на основе сообщений фиксации.
Вы можете указать собственный префикс для Dependabot сообщения о фиксации %}(и заголовки запросов на вытягивание) для определенной экосистемы пакетов. Это может быть полезно, если, например, выполняется автоматизация, обрабатывающая сообщения о фиксации сообщений или заголовки запросов на вытягивание.
Чтобы явно указать параметры, используйте commit-message следующие поддерживаемые параметры:
-
`prefix`:- Задает префикс для всех сообщений фиксации.
- Префикс также добавляется в начало заголовка запроса на вытягивание.
-
`prefix-development`:- Задает отдельный префикс для всех сообщений фиксации, которые обновляют зависимости разработки, как определено диспетчером пакетов или экосистемой.
- Поддерживается для
bundler, ,composer,mix``maven``npmи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 для проверки наличия обновлений версий в ветви, отличной от ветви по умолчанию.
См. также milestone и 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 для создания запросов на вытягивание.
Примечание.
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.