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.
- Nas configurações de "Code security", as opções Dependabot alerts e Dependabot security updates devem estar definidas como "Enabled".
- 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
- Há muitas opções de personalização para explorar. Para saber mais, confira Como personalizar pull requests para atualizações de segurança do Dependabot e Personalizando pull requests do Dependabot para se ajustarem aos seus processos.
- Você pode especificar personalizações diferentes por ecossistema de pacotes.
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"