Sobre como personalizar pull requests para atualizações de segurança
Você pode personalizar como o Dependabot gera pull requests para atualizações de segurança, para que elas se ajustem melhor às prioridades e processos de segurança do seu projeto. Por exemplo:
- Otimize as pull requests do Dependabot para priorizar atualizações significativas agrupando várias atualizações em apenas uma pull request.
- Aplicar rótulos personalizados para integrar pull requests do Dependabot em seus fluxos de trabalho existentes.
Semelhante às atualizações de versão, as opções de personalização para atualizações de segurança são definidas no arquivo dependabot.yml
. Se você já tiver personalizado o dependabot.yml
para atualizações de versão, muitas das opções de configuração definidas também poderão ser aplicadas automaticamente às atualizações de segurança. No entanto, há alguns pontos importantes a serem observados:
- As Dependabot security updates são sempre disparadas por um aviso de segurança, em vez de serem executadas de acordo com o
schedule
que você definiu nodependabot.yml
para atualizações de versão. - O Dependabot gera pull requests para atualizações de segurança somente no branch padrão. Se a configuração definir um valor para
target-branch
, a personalização desse ecossistema de pacotes só se aplicará às atualizações de versão por padrão.
Se você ainda não configurou um arquivo dependabot.yml
para o repositório e deseja personalizar pull requests para atualizações de segurança, primeiro você precisa:
- Fazer check-in de um arquivo
dependabot.yml
no diretório.github
do repositório. Para saber mais, confira Configurando a versão das atualizações do Dependabot. - Defina todas as chaves necessárias. Para obter mais informações, confira Chaves necessárias.
- Se você quiser que a personalização de um ecossistema de pacotes se aplique apenas a atualizações de segurança (e exclua atualizações de versão), defina a chave
open-pull-requests-limit
como0
.
Em seguida, você pode considerar quais são suas necessidades e prioridades para atualizações de segurança e aplicar uma combinação das opções de personalização descritas abaixo.
Como priorizar atualizações significativas
Para criar um processo de revisão mais direcionado que priorize atualizações significativas, use groups
para combinar atualizações de segurança para várias dependências em apenas uma pull request.
Para obter diretrizes detalhadas, confira Como priorizar atualizações significativas.
Adicionar revisores automaticamente
Para garantir que a equipe apropriada trate as atualizações de segurança do projeto imediatamente, adicione de modo automático revisores às solicitações de pull Dependabot usando um arquivo CODEOWNERS. Confira Sobre os proprietários de código.
Como rotular pull requests com rótulos personalizados
Para priorizar pull requests específicas ou integrá-las a pipelines de CI/CD, use labels
para aplicar seus rótulos personalizados a cada pull request.
Para obter diretrizes detalhadas, confira Pull requests de rotulagem com rótulos personalizados.
Adicionando um prefixo para fazer commit de mensagens
Para integrar com automações que processam mensagens de commit ou títulos de pull requests, use commit-message
para especificar o prefixo desejado para mensagens de commit e títulos de pull request.
Para obter diretrizes detalhadas, confira Adicionando um prefixo para fazer commit de mensagens.
Associando pull requests a um marco
Para acompanhar o progresso em direção a uma meta ou versão do projeto, use milestone
para associar pull requests do Dependabot a um marco.
Para obter diretrizes detalhadas, confira Como associar pull requests a um marco.
Como alterar o separador no nome do branch da pull request
Para garantir que os nomes de branch estejam alinhados com as convenções existentes da sua equipe, use pull-request-branch-name.separator
para especificar o separador que você deseja que o Dependabot use para nomes de branch.
Para obter diretrizes detalhadas, confira Como alterar o separador no nome do branch de pull request.
Exemplo 1: configuração somente para atualizações de segurança
Neste exemplo, o arquivo dependabot.yml
:
- Usa um registro privado para atualizações para dependências npm.
- Desabilita atualizações de versão para dependências, de modo que todas as personalizações se apliquem apenas a atualizações de segurança.
- É personalizado para que o Dependabot aplique rótulos personalizados às pull requests e adicione automaticamente responsáveis.
- Agrupa atualizações de segurança para dependências da Golang em apenas uma pull request.
# Example configuration file that: # - Uses a private registry for npm updates # - Ignores lodash dependency # - Disables version-updates # - Applies custom labels # - Group security updates for golang dependencies into a single pull request version: 2 registries: # Define a private npm registry with the name `example` example: type: npm-registry url: https://example.com token: ${{secrets.NPM_TOKEN}} updates: - package-ecosystem: "npm" directory: "/src/npm-project" schedule: interval: "daily" # For Lodash, ignore all updates ignore: - dependency-name: "lodash" # Disable version updates for npm dependencies open-pull-requests-limit: 0 registries: # Ask Dependabot to use the private registry for npm - example # Raise all npm pull requests for security updates with custom labels labels: - "npm dependencies" - "triage-board" # Raise all npm pull requests for security updates with assignees assignees: - "user-name" - package-ecosystem: "gomod" groups: # Group security updates for golang dependencies # into a single pull request golang: applies-to: security-updates patterns: - "golang.org*"
# Example configuration file that:
# - Uses a private registry for npm updates
# - Ignores lodash dependency
# - Disables version-updates
# - Applies custom labels
# - Group security updates for golang dependencies into a single pull request
version: 2
registries:
# Define a private npm registry with the name `example`
example:
type: npm-registry
url: https://example.com
token: ${{secrets.NPM_TOKEN}}
updates:
- package-ecosystem: "npm"
directory: "/src/npm-project"
schedule:
interval: "daily"
# For Lodash, ignore all updates
ignore:
- dependency-name: "lodash"
# Disable version updates for npm dependencies
open-pull-requests-limit: 0
registries:
# Ask Dependabot to use the private registry for npm
- example
# Raise all npm pull requests for security updates with custom labels
labels:
- "npm dependencies"
- "triage-board"
# Raise all npm pull requests for security updates with assignees
assignees:
- "user-name"
- package-ecosystem: "gomod"
groups:
# Group security updates for golang dependencies
# into a single pull request
golang:
applies-to: security-updates
patterns:
- "golang.org*"
Exemplo 2: configuração para atualizações de versão e atualizações de segurança
Neste exemplo, o arquivo dependabot.yml
:
- É personalizado para que o Dependabot adicione revisores e rótulos personalizados a atualizações de versão e atualizações de segurança.
- Usa a opção de personalização
groups
para criar dois grupos ("angular
" e "production-dependencies
") para agrupar várias atualizações em solicitações de pull únicas. - Especifica que a personalização
groups
paraangular
se aplica apenas a atualizações de segurança. - Especifica que a personalização
groups
paraproduction-dependencies
se aplica somente a atualizações de versão.
version: 2 updates: # Keep npm dependencies up to date - package-ecosystem: "npm" directory: "/" schedule: interval: "weekly" # Raise all npm pull requests for security and version updates with custom labels labels: - "npm dependencies" - "triage-board" # Raise all npm pull requests for security and version updates with reviewers reviewers: - "my-org/team-name" - "octocat" groups: angular: # Group security updates for Angular dependencies into a single pull request applies-to: security-updates patterns: - "@angular*" production-dependencies: # Group version updates for dependencies of type "production" into a single pull request applies-to: version-updates dependency-type: "production"
version: 2
updates:
# Keep npm dependencies up to date
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
# Raise all npm pull requests for security and version updates with custom labels
labels:
- "npm dependencies"
- "triage-board"
# Raise all npm pull requests for security and version updates with reviewers
reviewers:
- "my-org/team-name"
- "octocat"
groups:
angular:
# Group security updates for Angular dependencies into a single pull request
applies-to: security-updates
patterns:
- "@angular*"
production-dependencies:
# Group version updates for dependencies of type "production" into a single pull request
applies-to: version-updates
dependency-type: "production"