Skip to main content

Como gerenciar atualizações de dependência

O Copilot Chat pode ajudar você a configurar o Dependabot para simplificar as atualizações de dependência.

Automatizar atualizações de dependência

Cenário de exemplo

Digamos que seu projeto dependa de várias bibliotecas e pacotes. Dependências vulneráveis ou desatualizadas criam riscos de segurança que podem afetar seu projeto e outras pessoas que contam com dele.

O Copilot Chat pode ajudar você a configurar as atualizações de versão e segurança do Dependabot, de modo que suas dependências sempre permaneçam nas versões mais seguras e atualizadas. Confira Sobre as atualizações de segurança do Dependabot e Sobre as atualizações da versão do Dependabot.

Antes de começar, verifique se os dados do Dependabot estão totalmente habilitados em "Settings" do repositório.

  1. Nas configurações de "Code security", as opções Dependabot alerts e Dependabot security updates devem estar definidas como "Enabled".
  2. Crie e confirme um arquivo .github/dependabot.yml vazio no repositório.

Solicitação de exemplo

Verifique se o repositório está anexado ao prompt para contexto.

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.

Saída de exemplo

O Copilot Chat analisa seu repositório e grava o conteúdo do arquivo de configuração dependabot.yml para você, que informa ao Dependabot quais dependências ele precisa verificar.

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"

Depois de confirmar o arquivo dependabot.yml em seu repositório, o Dependabot começará a abrir pull requests em seu repositório sempre que uma dependência vulnerável ou desatualizada for detectada.

Personalizar o gerenciamento de dependências

Cenário de exemplo

Cenário de exemplo

Digamos que sua equipe tenha usado a configuração básica do Dependabot por alguns meses e você está recebendo muitas pull requests de atualização de dependência. Porém, você está descobrindo que:

  • As pull requests não são revisadas porque ninguém é atribuído automaticamente.
  • Você quer adicionar as pull requests automaticamente ao quadro de projetos da equipe por meio de um rótulo.
  • A CI está ficando sobrecarregada com muitas pull requests de dependência simultâneas.
  • Você está recebendo atualizações para dependências de desenvolvimento que não afetam a produção.

Você quer personalizar sua configuração do Dependabot para ajustar melhor o fluxo de trabalho da sua equipe, como atribuir pull requests automaticamente aos membros certos da equipe, adicionar rótulos para adicionar pull requests ao quadro de projetos, limitar o número de pull requests abertas e focar apenas as dependências de produção.

O Copilot Chat pode escrever um dependabot.yml atualizado mais adequado às necessidades da sua equipe.

Solicitação de exemplo

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.

Dica

Saída de exemplo

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"