Skip to main content

Personalizando atualizações de dependências

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

Who can use this feature

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

Observação: o administrador do site precisa configurar as Dependabot updates para o your GitHub Enterprise Server instance para que você possa usar esse recurso. Para obter mais informações, confira "Como habilitar o Dependabot para sua 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 rótulos 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 obter mais informações 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 "Como listar as dependências configuradas para atualizações de 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: "daily"
    # 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: "daily"
    # 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: "daily"
    # 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"

Mais exemplos

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