Skip to main content

Como personalizar pull requests para atualizações de segurança do Dependabot

Saiba como personalizar pull requests do Dependabot para que as atualizações de segurança se alinhem com as prioridades de segurança e os fluxos de trabalho do projeto.

Quem pode usar esse recurso?

Users with write access

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 no dependabot.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 como 0.

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.
YAML
# 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 para angular se aplica apenas a atualizações de segurança.
  • Especifica que a personalização groups para production-dependencies se aplica somente a atualizações de versão.
YAML
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"

Leitura adicional