Skip to main content

Управление обновлениями зависимостей

Копилот Чат Это поможет вам настроиться Dependabot для оптимизации обновлений зависимостей.

Автоматизация обновлений зависимостей

Пример сценария

Допустим, ваш project зависит от множества библиотек и пакетов. Уязвимые или устаревшие зависимости создают риски безопасности, которые могут повлиять на ваш project и другие, кто от него зависит.

Копилот Чат Это поможет вам настроить Dependabot безопасность и обновления версий, чтобы ваши зависимости всегда оставались на самых безопасных и up-toдатовых версиях. См. Сведения об обновлениях для системы безопасности Dependabot и Сведения об обновлениях версий Dependabot.

Перед началом убедитесь, что он Dependabot полностью включён в «Настройках» вашего репозитория.

  1. В настройках «Безопасность кода» убедитесь, Dependabot alerts что обе Dependabot security updates установлены в «Включено».
  2. Создайте и зафиксируйте пустой файл .github/dependabot.yml в репозиторий.

Пример запроса

Убедитесь, что репозиторий подключен к запросу контекста.

Copilot prompt
Analyze the codebase and project structure of this repository. Detect all package managers and package ecosystems in use, including their respective locations (e.g., npm, yarn, pip, maven, gradle, composer, github-actions, etc.).

For each detected ecosystem, create a configuration entry in a single, top-level .github/dependabot.yml file that enables security and version updates on a reasonable schedule. Use the recommended best practices for each ecosystem. Clearly specify the directory for each ecosystem detected. If multiple ecosystems or multiple directories are present, include them all in the configuration.

In the output, include any notes on the configuration or best practices, as well as next steps that include how to commit the dependabot.yml file to the repository via the GitHub web browser and how to check that Dependabot version updates and Dependabot security updates are enabled.

Пример выходных данных

Копилот Чат Анализирует ваш репозиторий и записывает содержимое dependabot.yml конфигурационного файла, который показывает Dependabot , какие зависимости нужно сканировать.

version: 2
updates:
  # Python (pip)
  - package-ecosystem: "pip"
    directory: "/"                     # Location of requirements.txt
    schedule:
      interval: "weekly"               # Weekly updates are a good balance for libraries
      day: "sunday"
      time: "06:00"
      timezone: "UTC"
    open-pull-requests-limit: 5
    allow:
      - dependency-type: "all"
    commit-message:
      prefix: "pip"
    labels:
      - "dependencies"
      - "python"
    ignore:
      - dependency-name: "pip"         # Ignore pip self-updates

  # GitHub Actions
  - package-ecosystem: "github-actions"
    directory: "/"                     # Looks for workflow files under .github/workflows/
    schedule:
      interval: "weekly"
      day: "sunday"
      time: "06:00"
      timezone: "UTC"
    open-pull-requests-limit: 5
    commit-message:
      prefix: "actions"
    labels:
      - "dependencies"
      - "github-actions"

После того как вы закрепите dependabot.yml файл в репозиторий, Dependabot начнём открывать pull request-запросы к вашему репозиторию, когда обнаруживается уязвимая или устаревшая зависимость.

Настройка управления зависимостями

Пример сценария

Допустим, ваша команда использует базовую Dependabot конфигурацию уже несколько месяцев, и вы получаете много pull request-запросов на обновления зависимостей. Тем не менее, вы обнаруживаете, что:

  • Запросы на вытягивание сидят без проверки, так как никто не назначается автоматически.
  • Вы хотите, чтобы pull requests автоматически добавлялись на доску project вашей команды через метку.
  • Ci становится перегруженным с слишком большим количеством одновременных запросов на вытягивание зависимостей.
  • Вы получаете обновления для зависимостей разработки, которые не влияют на рабочую среду.

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

Копилот Чат Можете написать обновление dependabot.yml , которое лучше соответствует потребностям вашей команды.

Пример запроса

Copilot prompt
I want to customize my pull requests for Dependabot security and version updates, so that:

* Pull requests are automatically assigned to the team "octocat-reviewers."
* The label "security-management" is automatically added to every pull request.
* The number of open Dependabot PRs is limited.
* Development dependencies are ignored.

Draft an update to the dependabot.yml file in my repository that specifies these customization options.

Совет

Пример выходных данных

version: 2
updates:
  # Python (pip)
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"
      day: "sunday"
      time: "06:00"
      timezone: "UTC"
    open-pull-requests-limit: 5
    allow:
      - dependency-type: "production"     # Ignore development dependencies
    assignees:
      - "octocat-reviewers"               # Assign PRs to the team
    labels:
      - "dependencies"
      - "security-management"             # Custom label for all PRs
      - "python"
    commit-message:
      prefix: "pip"
    ignore:
      - dependency-name: "pip"