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.
- Em suas configurações de "Segurança de código", verifique Dependabot alerts e Dependabot security updates ambos estão definidos como "Habilitados".
- Crie e confirme um arquivo
.github/dependabot.ymlvazio no repositório.
Prompt de exemplo
Certifique-se de que seu repositório está vinculado ao prompt para fornecer 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.
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
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.
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 obter mais informações, consulte Personalizar pull requests para atualizações de segurança do Dependabot e Personalizar as solicitações de pull do Dependabot para se adequarem 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"