Skip to main content

Como gerenciar atualizações de dependência

Bate-papo do Copilot pode ajudá-lo a configurar Dependabot para simplificar as atualizações de dependências.

Automatizar atualizações de dependência

Cenário de exemplo

Digamos que seu projeto depende de várias bibliotecas e pacotes. Dependências vulneráveis ou desatualizadas criam riscos de segurança que podem afetar seu projeto e outros projetos que dependem dele.

Bate-papo do Copilot pode ajudá-lo a configurar Dependabot atualizações de segurança e de versões, para 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 Dependabot está totalmente habilitado nas "Configurações" do seu repositório.

  1. Em suas configurações de "Segurança de código", verifique Dependabot alerts e Dependabot security updates ambos estão definidos como "Habilitados".
  2. Crie e confirme um arquivo .github/dependabot.yml vazio no repositório.

Prompt de exemplo

Certifique-se de que seu repositório está vinculado ao prompt para fornecer contexto.

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.

Saída de exemplo

Bate-papo do Copilot analisa seu repositório e grava o conteúdo do arquivo de dependabot.yml configuração para você, que informa 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 que você tiver confirmado o dependabot.yml arquivo em seu repositório, Dependabot começará a abrir solicitações de pull 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

Digamos que sua equipe esteja usando a configuração básica Dependabot há alguns meses e esteja recebendo muitos pull requests para atualizar dependências. Porém, você está descobrindo que:

  • As pull requests estão paradas sem revisão porque ninguém é designado 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ê deseja personalizar sua Dependabot configuração para ajustar melhor o fluxo de trabalho da sua equipe, como atribuir solicitações de pull automaticamente aos membros corretos da equipe, adicionar rótulos para adicionar solicitações de pull ao quadro de projetos, limitar o número de solicitações de pull abertas e focar apenas nas dependências de produção.

Bate-papo do Copilot pode escrever uma atualização dependabot.yml que melhor atenda às necessidades da sua equipe.

Prompt de exemplo

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.

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"