Skip to main content

Personalizar as solicitações de pull do Dependabot para se adequarem aos seus processos

Saiba como personalizar suas solicitações de pull do Dependabot para melhor se adequarem aos seus fluxos de trabalho internos

Quem pode usar esse recurso?

Users with write access

Há várias maneiras de personalizar suas pull requests do Dependabot para que elas se adaptem melhor aos seus processos internos.

Por exemplo, para integrar as solicitações pull do Dependabot em seus pipelines de CI/CD, ele pode aplicar rótulos personalizados a solicitações pull, que você pode usar para disparar fluxos de trabalho de ação.

Há várias opções de personalização diferentes que podem ser usadas em combinação e personalizadas para cada ecossistema de pacotes.

Adicionando destinatários automaticamente

Por padrão, o Dependabot gera pull requests sem destinatários.

Para atribuir automaticamente pull requests a uma equipe de segurança designada, você pode usar assignees para definir esses valores por ecossistema de pacotes.

O exemplo de arquivo dependabot.yml abaixo altera a configuração do npm para que todas as pull requests em aberto com as atualizações de versão e segurança para o npm tenham:

  • Um indivíduo ("user-name") atribuído automaticamente às pull requests.
YAML
# `dependabot.yml` file with
#  assignee for all npm pull requests

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise all npm pull requests with assignees
    assignees:
      - "user-name"

Adicionar revisores automaticamente

Por padrão, o Dependabot gera pull requests sem revisores.

Para garantir que as atualizações de segurança do projeto sejam tratadas imediatamente pela equipe apropriada, você pode adicionar automaticamente revisores a pull requests do Dependabot usando um arquivo CODEOWNERS. Confira Sobre os proprietários de código.

Como rotular pull requests com rótulos personalizados

Por padrão, o Dependabot gera as solicitações pull com o rótulo dependencies.

Dependabot também aplica um rótulo de ecossistema, como java, npm ou github-actions, para solicitações de pull. Dependabot adiciona os rótulos dependencies e do ecossistema a todas as solicitações pull, incluindo atualizações de ecossistema único, para melhorar a filtragem e a triagem.

Dependabot cria os rótulos padrão aplicados às solicitações pull caso elas ainda não existam no repositório. Se você quiser usar rótulos personalizados em vez dos padrões, poderá definir a opção labels em seu dependabot.yml arquivo por ecossistema de pacotes; isso substitui os padrões. Para obter mais informações, consulte Gerenciar etiquetas e labels.

Se rótulos semânticos de versão (SemVer) estiverem presentes no repositório, Dependabot também os aplicará automaticamente para indicar o tipo de atualização de versão (major, minor ou patch). Esses rótulos são aplicados além de quaisquer rótulos personalizados que você definir.

Você pode usar labels para substituir os rótulos padrão e especificar seus próprios rótulos personalizados por ecossistema de pacotes. Isso é útil se, por exemplo, você quiser:

  • Usar rótulos para atribuir prioridade a determinadas solicitações de pull.
  • Usar rótulos acionando outro fluxo de trabalho, como adicionar automaticamente a solicitação de pull a um quadro de projeto.

O exemplo de arquivo dependabot.yml abaixo altera a configuração do npm para que todas as solicitações de pull em aberto com as atualizações de versão e segurança para o npm tenham rótulos personalizados.

YAML
# `dependabot.yml` file with
# customized npm configuration

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise all npm pull requests with custom labels
    labels:
      - "npm dependencies"
      - "triage-board"

Se você definir essa opção, isso também afetará as solicitações de pull para atualizações de segurança nos arquivos de manifesto deste gerenciador de pacotes, a menos que você use target-branch para verificar se há atualizações de versão em um branch não padrão.

Consulte também labels.

Adicionar um prefixo a mensagens de confirmação

Por padrão, o Dependabot tenta detectar suas preferências de mensagem do commit e usa padrões similares. Além disso, Dependabot preenche os títulos das solicitações de pull com base nas mensagens de commit.

Você pode especificar seu próprio prefixo para as mensagens de commit (e títulos de solicitação de pull) de Dependabot para um ecossistema de pacotes específico. Isso pode ser útil se, por exemplo, você estiver executando automações que processam mensagens de commit ou títulos de solicitações de pull.

Para especificar suas preferências explicitamente, use commit-message juntamente com as seguintes opções compatíveis:

  •         `prefix`:
    
    • Especifica um prefixo para todas as mensagens de commit.
    • O prefixo também é adicionado ao início do título da solicitação de pull.
  •         `prefix-development`:
    
    • Especifica um prefixo separado para todas as mensagens de commit que atualizam dependências de desenvolvimento, conforme definido pelo gerenciador de pacotes ou ecossistema.
    • Com suporte para bundler, composer, mix, maven, npm e pip.
  •         `include: "scope"`:
    
    • Especifica que qualquer prefixo é seguido pelos tipos de dependência (deps ou deps-dev) atualizadas no commit.

O exemplo abaixo mostra diversas opções diferentes, adaptadas a cada ecossistema de pacotes:

YAML
# Customize commit messages

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    commit-message:
      # Prefix all commit messages with "npm: "
      prefix: "npm"

  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
    commit-message:
      # Prefix all commit messages with "[docker] " (no colon, but a trailing whitespace)
      prefix: "[docker] "

  - package-ecosystem: "composer"
    directory: "/"
    schedule:
      interval: "weekly"
    # Prefix all commit messages with "Composer" plus its scope, that is, a
    # list of updated dependencies
    commit-message:
      prefix: "Composer"
      include: "scope"

  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"
    # Include a list of updated dependencies
    # with a prefix determined by the dependency group
    commit-message:
      prefix: "pip prod"
      prefix-development: "pip dev"

Se você definir essa opção, isso também afetará as solicitações de pull para atualizações de segurança nos arquivos de manifesto deste gerenciador de pacotes, a menos que você use target-branch para verificar se há atualizações de versão em um branch não padrão.

Consulte também commit-message.

Associar pull requests a um marco

Os marcos ajudam você a acompanhar o progresso de grupos de solicitações de pull (ou problemas) em direção a uma meta ou versão do projeto. Com Dependabot, você pode usar a opção milestone de associar solicitações de pull para atualizações de dependências a um marco específico.

Você precisa especificar o identificador numérico do marco e não sua etiqueta. Para encontrar o identificador numérico, verifique a parte final do URL da página, após milestone. Por exemplo, para https://github.com/<org>/<repo>/milestone/3, "3" é o identificador numérico do marco.

YAML
# Specify a milestone for pull requests

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Associate pull requests with milestone "4"
    milestone: 4

Se você definir essa opção, isso também afetará as solicitações de pull para atualizações de segurança nos arquivos de manifesto deste gerenciador de pacotes, a menos que você use target-branch para verificar se há atualizações de versão em um branch não padrão.

Consulte também milestone e Sobre marcos.

Alterar o separador no nome da ramificação da pull request

Dependabot gera um branch para cada pull request. Cada nome de ramificação inclui dependabot, bem como o nome do gerenciador de pacotes e a dependência a ser atualizada. Por padrão, essas partes do nome da ramificação são separadas por um símbolo /, por exemplo:

  • dependabot/npm_and_yarn/next_js/acorn-6.4.1

Para manter a compatibilidade e a consistência com seus processos existentes, talvez seja necessário garantir que os nomes de suas ramificações estejam alinhados com as convenções já estabelecidas em sua equipe. Nesse caso, você pode usar pull-request-branch-name.separator para especificar um separador diferente, escolha _, / ou "-".

No exemplo abaixo, a configuração do npm altera o separador padrão de / para "-" para que ele apareça como tal:

  • Padrão (/): dependabot/npm_and_yarn/next_js/acorn-6.4.1
  • Personalizado ("-"): dependabot-npm_and_yarn-next_js-acorn-6.4.1

Observe que o símbolo de hífen ("-") deve estar entre aspas para que não seja interpretado como o início de uma lista YAML vazia.

YAML
# Specify a different separator for branch names

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    pull-request-branch-name:
      # Change the default separator (/) to a hyphen (-)
      separator: "-"

Se você definir essa opção, isso também afetará as solicitações de pull para atualizações de segurança nos arquivos de manifesto deste gerenciador de pacotes, a menos que você use target-branch para verificar se há atualizações de versão em um branch não padrão.

Consulte também pull-request-branch-name.separator.

Direcionar solicitações de pull a uma ramificação não padrão

Por padrão, Dependabot verifica se há arquivos de manifesto na ramificação padrão e cria solicitações de pull para atualizações nessa ramificação.

Geralmente, faz mais sentido manter as verificações e atualizações de Dependabot na ramificação padrão. No entanto, pode haver casos em que seja necessário especificar uma ramificação de destino diferente. Se, por exemplo, os processos da sua equipe exigirem que você primeiro teste e valide as atualizações em uma ramificação que não seja de produção, você pode usar target-branch para especificar uma ramificação diferente para Dependabot para enviar solicitações de pull.

Observação

O Dependabot gera pull requests para atualizações de segurança somente na ramificação padrão. Se você usar target-branch, como resultado, todas as configurações desse gerenciador de pacotes serão aplicadas somente às atualizações de versão, e não às de segurança.

YAML
# Specify a non-default branch for pull requests for pip

version: 2
updates:
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise pull requests for version updates
    # to pip against the `develop` branch
    target-branch: "develop"
    # Labels on pull requests for version updates only
    labels:
      - "pip dependencies"

  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      # Check for npm updates on Sundays
      day: "sunday"
    # Labels on pull requests for security and version updates
    labels:
      - "npm dependencies"

Consulte também target-branch.