Skip to main content

Настройка запросов на вытягивание обновлений безопасности Dependabot

Узнайте, как настроить запросы на вытягивание Dependabot для обновлений системы безопасности, чтобы соответствовать приоритетам безопасности и рабочим процессам проекта.

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

Users with write access

Подготовка к кастомизации pull requests

Если вы еще не настроили dependabot.yml файл для репозитория и хотите настроить запросы на вытягивание обновлений безопасности, сначала необходимо:

  1. Запустите файл в dependabot.yml``.github каталог репозитория. Дополнительные сведения см. в разделе Настройка обновлений версий Dependabot.
  2. Задайте все необходимые ключи. Дополнительные сведения см. в разделе "Обязательные ключи".
  3. Если вы хотите, чтобы настройка экосистемы пакетов применялось только к обновлениям системы безопасности (и исключению open-pull-requests-limit обновлений версий), задайте для ключа значение 0.

Затем вы можете рассмотреть свои потребности и приоритеты для обновлений системы безопасности и применить сочетание параметров настройки, описанных ниже.

Приоритет значимых обновлений

Чтобы создать более целевой процесс проверки, который определяет приоритеты значимых обновлений, используйте groups для объединения обновлений системы безопасности для нескольких зависимостей в один запрос на вытягивание.

Подробные инструкции см. в разделе "Приоритеты значимых обновлений".

Автоматическое добавление назначаемого

Используется assignees для автоматического добавления отдельных лиц или команд в качестве назначаемого для запросов на вытягивание.

Подробные инструкции см. в статье "Автоматическое добавление назначаемого пользователя".

Автоматическое добавление рецензентов

Чтобы обеспечить оперативное решение обновлений системы безопасности проекта соответствующими командами, вы можете автоматически добавлять рецензентов в запросы на вытягивание Dependabot с помощью файла CODEOWNERS. См . раздел AUTOTITLE.

Добавление меток на запросы на вытягивание с помощью пользовательских меток

Чтобы определить приоритеты конкретных запросов на вытягивание или интегрировать их в конвейеры CI/CD, используйте для labels применения собственных пользовательских меток к каждому запросу на вытягивание.

Подробные инструкции см. в разделе "Запросы на вытягивание меток" с пользовательскими метками.

Добавление префикса для фиксации сообщений

Чтобы интегрироваться с службами автоматизации, обрабатывающими сообщения о фиксации сообщений или заголовках запросов на вытягивание, используйте commit-message для указания префикса, который требуется для сообщений фиксации и заголовков запросов на вытягивание.

Подробные инструкции см. в разделе "Добавление префикса для фиксации сообщений".

Связывание запросов на вытягивание с вехой

Чтобы отслеживать ход выполнения задачи проекта или выпуска, используйте для milestone связывания запросов на вытягивание Dependabotс вехой.

Подробные рекомендации см. в разделе "Связывание запросов на вытягивание" с вехой.

Изменение разделителя в имени ветви запроса на вытягивание

Чтобы убедиться, что имена ветви соответствуют существующим соглашениям вашей команды, используйте pull-request-branch-name.separator для указания разделителя, который нужно использовать Dependabot для имен ветвей.

Подробные инструкции см. в разделе "Изменение разделителя" в имени ветви запроса на вытягивание.

Пример 1. Конфигурация только для обновлений системы безопасности

В этом примере dependabot.yml файл:

  • Использует частный реестр для обновлений зависимостей npm.
  • Отключает обновления версий для зависимостей, чтобы любые настройки применялись только к обновлениям системы безопасности.
  • Настраивается таким образом, что Dependabot применяет пользовательские метки к запросам на вытягивание и автоматически добавляет назначаемые.
  • Группит обновления безопасности для зависимостей golang в один запрос на вытягивание.
YAML
# Example configuration file that:
#  - Uses a private registry for npm updates
#  - Ignores lodash dependency
#  - Disables version-updates
#  - Applies custom labels
#  - Adds assignees
#  - Group security updates for golang dependencies into a single pull request

version: 2
registries:
  # Define a private npm registry with the name `example`
  example:
    type: npm-registry
    url: https://example.com
    token: ${{secrets.NPM_TOKEN}}
updates:
  - package-ecosystem: "npm"
    directory: "/src/npm-project"
    schedule:
      interval: "daily"
    # For Lodash, ignore all updates
    ignore:
      - dependency-name: "lodash"
    # Disable version updates for npm dependencies
    open-pull-requests-limit: 0
    registries:
      # Ask Dependabot to use the private registry for npm
      - example
    # Raise all npm pull requests for security updates with custom labels
    labels:
      - "npm dependencies"
      - "triage-board"
    # Raise all npm pull requests for security updates with assignees
    assignees:
      - "user-name"
  - package-ecosystem: "gomod"
    directories:
      - "**/*"
    schedule:
      interval: "weekly"
    open-pull-requests-limit: 0
    groups:
      # Group security updates for golang dependencies
      # into a single pull request
      golang:
        applies-to: security-updates
        patterns:
          - "golang.org*"

Пример 2. Настройка обновлений версий и обновлений системы безопасности

В этом примере dependabot.yml файл:

  • Настраивается таким образом, что Dependabot добавляет пользовательские метки как в обновления версий, так и в обновления системы безопасности.
  • groups Использует параметр настройки для создания двух групп ("angular" и "production-dependencies") для группировки нескольких обновлений в один запрос на вытягивание.
  • Указывает, что groups настройка применяется только к angular обновлениям системы безопасности.
  • Указывает, что groups настройка применяется только к production-dependencies обновлениям версий.
YAML
version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
# Raise all npm pull requests for security and version updates with custom labels
    labels:
      - "npm dependencies"
      - "triage-board"
    groups:
      angular:
        # Group security updates for Angular dependencies into a single pull request
        applies-to: security-updates
        patterns:
          - "@angular*"
      production-dependencies:
        # Group version updates for dependencies of type "production" into a single pull request
        applies-to: version-updates
        dependency-type: "production"

Дополнительные материалы