Skip to main content

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

Copilot Chat поможет вам настроить Dependabot для упрощения обновлений зависимостей.

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

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

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

Copilot Chat поможет вам настроиться с помощью обновлений безопасности и версий Dependabot, чтобы ваши зависимости всегда оставались в наиболее безопасных и актуальных версиях. См. раздел [AUTOTITLE и Сведения об обновлениях для системы безопасности Dependabot](/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates).

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

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

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

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

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.

Пример результата

Copilot Chat анализирует репозиторий и записывает содержимое 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 начнет открывать запросы на вытягивание в репозитории при обнаружении уязвимой или устаревшей зависимости.

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

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

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

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

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

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

Copilot Chat может записывать обновленные данные dependabot.yml , которые лучше соответствуют потребностям вашей команды.

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

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"