Skip to main content

Personalizando atualizações de dependências

Você pode personalizar como Dependabot mantém suas dependências.

Quem pode usar esse recurso?

People with write permissions to a repository can configure Dependabot for the repository.

Observação: o administrador do site precisa configurar as Dependabot updates do sua instância do GitHub Enterprise Server para que você possa usar esse recurso. Para obter mais informações, confira "Habilitando o Dependabot para sua empresa".

Talvez você não consiga habilitar ou desabilitar Dependabot updates se o proprietário de uma empresa tiver definido uma política no nível da empresa. Para obter mais informações, confira "Como impor políticas para segurança e análise de código na empresa".

Sobre a personalização de atualizações de dependências

Depois de habilitar as atualizações de versão, você poderá personalizar como o Dependabot mantém suas dependências adicionando mais opções ao arquivo dependabot.yml. Por exemplo, você pode:

  • Especifique o dia da semana que as solicitações de pull serão abertas para as atualizações de versão: schedule.day
  • Defina revisores, destinatários e etiquetas para cada gerenciador de pacotes: reviewers, assignees e labels
  • Defina uma estratégia de controle de versão para as alterações em cada arquivo de manifesto: versioning-strategy
  • Altere o número máximo de solicitações de pull em aberto para as atualizações de versão do padrão de cinco: open-pull-requests-limit
  • Abra as solicitações de pull para as atualizações de versão a fim de direcioná-las para um branch específico, em vez do branch padrão: target-branch

Para saber mais sobre as opções de configuração, confira "Opções de configuração para o arquivo dependabot.yml".

Quando você atualiza o arquivo dependabot.yml no seu repositório, o Dependabot executa uma verificação imediata com a nova configuração. Em minutos, você verá uma lista atualizada das dependências na guia Dependabot . Isso poderá demorar mais se o repositório tiver muitas dependências. Você também pode ver novas pull requests para atualizações de versão. Para obter mais informações, confira "Listando dependências configuradas para atualizações da versão".

Impacto das alterações de configuração nas atualizações de segurança

Se você personalizar o arquivo dependabot.yml, poderá observar algumas alterações nas solicitações de pull geradas para as atualizações de segurança. Essas pull requests são sempre acionadas por uma consultoria de segurança para uma dependência, ao invés da agenda Dependabot. No entanto, elas herdam as configurações relevantes do arquivo dependabot.yml, a menos que você especifique um branch de destino diferente para as atualizações de versão.

Para ver um exemplo, confira "Como definir rótulos personalizados" abaixo.

Modificando o agendamento

Quando você define um agendamento de atualização daily, por padrão, o Dependabot verifica se há novas versões às 5h UTC. Use schedule.time para especificar uma hora alternativa do dia para verificar se há atualizações (formato: hh:mm).

O exemplo de arquivo dependabot.yml abaixo expande a configuração do npm para especificar o período em que o Dependabot deve verificar se há atualizações de versão para as dependências.

# `dependabot.yml` file with
# customized schedule for version updates

version: 2
updates:
  # Keep npm dependencies up to date
  - package-ecosystem: "npm"
    directory: "/"
    # Check the npm registry for updates at 2am UTC
    schedule:
      interval: "daily"
      time: "02:00"

Configurando revisores e responsáveis

Por padrão, Dependabot levanta todas as pull requests sem revisores ou responsáveis.

Use reviewers e assignees para especificar revisores e destinatários para todas as solicitações de pull geradas para um gerenciador de pacotes. Ao especificar uma equipe, você precisa usar o nome completo dela, como se você estivesse @mentioning a equipe (incluindo a organização).

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 dois revisores e um destinatário.

# `dependabot.yml` file with
# reviews and an 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 reviewers
    reviewers:
      - "my-org/team-name"
      - "octocat"
    # Raise all npm pull requests with an assignee
    assignees:
      - "user-name"

Definindo etiquetas personalizadas

Por padrão, o Dependabot gera todas as solicitações de pull com o rótulo dependencies. Se mais de um gerenciador de pacotes for definido, o Dependabot incluirá um rótulo adicional em cada solicitação de pull. Isso indica a linguagem ou o ecossistema em que a solicitação de pull será atualizada, por exemplo, java para atualizações do Gradle e submodules para atualizações do Git Submodule. Dependabot cria essas etiquetas padrão automaticamente, conforme necessário no seu repositório.

Use labels para substituir os rótulos padrão e especificar rótulos alternativos para todas as solicitações de pull geradas para um gerenciador de pacotes. Não é possível criar rótulos no arquivo dependabot.yml, ou seja, os rótulos alternativos já precisam existir no repositório.

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. Ele também altera a configuração do Docker para verificar as atualizações de versão em relação a um branch personalizado e levantar as pull request com etiquetas personalizadas em relação ao branch personalizado. As alterações no Docker não afetarão as pull request de atualização de segurança porque as atualizações de segurança sempre são feitas em relação ao branch padrão.

Observação: o novo target-branch precisa conter um Dockerfile para atualização, caso contrário, essa alteração terá o efeito de desabilitar as atualizações de versão para o Docker.

# `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"

    # Keep Docker dependencies up to date
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise pull requests for Docker version updates
    # against the "develop" branch. The Docker configuration
    # no longer affects security update pull requests.
    target-branch: "develop"
    # Use custom labels on pull requests for Docker version updates
    labels:
      - "Docker dependencies"
      - "triage-board"

Ignorando dependências específicas para Dependabot version updates

Se preferir não adotar as alterações de dependências no projeto, você pode configurar o Dependabot para ignorar essas dependências ao abrir pul requests para atualizações de versão. Você pode fazer isso usando um dos métodos a seguir.

  • Configure a opção ignore para a dependência no arquivo dependabot.yml. Você pode usar isso para ignorar atualizações para dependências, versões e tipos de atualizações específicos. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".
  • Use comandos de comentário @dependabot ignore em uma Dependabotpull request para atualizações de versão. Você pode usar comandos de comentário para ignorar atualizações para dependências e versões específicas. Para obter mais informações, confira "Gerenciar pull requests para atualizações de dependências".

Se quiser deixar de ignorar uma dependência ou a condição "ignore", você poderá excluir as condições "ignore" do arquivo dependabot.yml ou reabrir a solicitação de pull.

Mais exemplos

Para mais exemplos, confira "Opções de configuração para o arquivo dependabot.yml".