Skip to main content

Configurando a versão das atualizações do Dependabot

Você pode configurar seu repositório para que o Dependabot atualize automaticamente os pacotes que você usa.

Who can use this feature

People with write permissions to a repository can enable or disable Dependabot version updates for the repository.

Sobre atualizações de versão para dependências

Habilite as Dependabot version updates fazendo o check-in de um arquivo de configuração dependabot.yml no diretório .github do seu repositório. Em seguida, o Dependabot cria um pull request para manter as dependências que você configura atualizadas. Para cada dependência do gerenciador de pacotes que você deseja atualizar, você deve especificar a localização dos arquivos de manifesto do pacote e a frequência de busca por atualizações nas dependências listadas nesses arquivos. Para obter informações sobre como habilitar as atualizações de segurança, confira "Como configurar as Dependabot security updates".

Quando você habilitar atualizações de versão pela primeira vez, você pode ter muitas dependências que estão desatualizadas e algumas podem ser muitas versões por trás da versão mais recente. O Dependabot verifica as dependências desatualizadas assim que estiver habilitado. Você pode ver novas pull requests para atualizações de versão dentro de alguns minutos após adicionar o arquivo de configuração, dependendo do número de arquivos de manifesto para os quais você configura as atualizações. Dependabot também será executada uma atualização sobre as alterações subsequentes no arquivo de configuração.

Dependabot também pode criar pull requests quando você alterar um arquivo de manifesto depois que uma atualização falhar. Isto ocorre porque alterações em um manifesto, como remover a dependência que causou falha na atualização, pode fazer com que a atualização recém-acionada sejam bem-sucedida.

Para manter as solicitações de pull gerenciáveis e fáceis de serem revisadas, o Dependabot gera, no máximo, cinco solicitações de pull para começar a trazer as dependências para a última versão. Se você fizer o merge de algumas desses primeiros pull requests antes da próxima atualização programada, Os pull requests restantes serão abertos na próxima atualização, até o máximo. Você pode alterar o número máximo de solicitações de pull em aberto definindo a opção de configuração open-pull-requests-limit. Para obter mais informações, confira "Como personalizar as atualizações de dependência".

Por padrão, somente as dependências diretas definidas explicitamente em um manifesto são mantidas atualizadas por Dependabot version updates. Você pode optar por receber atualizações de dependências indiretas definidas em arquivos de bloqueio. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".

Ao executar atualizações de segurança ou versão, alguns ecossistemas devem ser capazes de resolver todas as dependências de sua fonte para verificar se as atualizações foram bem-sucedidas. Se o seu manifesto ou arquivos de bloqueio contiverem dependências privadas, Dependabot deverá ser capaz de acessar o local em que essas dependências estão hospedadas. Os proprietários da organização podem conceder a Dependabot acesso a repositórios privados que contêm dependências para um projeto dentro da mesma organização. Para obter mais informações, confira "Como gerenciar as configurações de segurança e de análise da sua organização". Você pode configurar o acesso a registros privados no arquivo de configuração dependabot.yml de um repositório. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml". Adicionalmente, Dependabot não é compatível com dependências privadas GitHub para todos os gerenciadores de pacote. Para obter mais informações, confira "Sobre as atualizações de versão do Dependabot" e "Suporte à linguagem do GitHub".

Habilitar Dependabot version updates

Habilite as Dependabot version updates fazendo commit de um arquivo de configuração dependabot.yml no repositório. Se você habilitar o recurso na página de configurações, o GitHub criará um arquivo básico que você poderá editar, caso contrário, crie o arquivo usando qualquer editor de arquivos.

  1. No GitHub.com, navegue até a página principal do repositório. 1. Abaixo do nome do repositório, clique em Configurações. Botão Configurações do repositório

  2. Na seção "Segurança" da barra lateral, clique em Segurança de código e análise.

  3. Em "Segurança e análise de código", à direita de "Dependabot version updates", clique em Habilitar para abrir um arquivo de configuração dependabot.yml básico no diretório .github do repositório.

  4. Adicione uma version.

  5. Opcionalmente, se você tiver dependências em um registro privado, adicione uma seção registries contendo detalhes de autenticação.

  6. Adicione uma seção updates, com uma entrada para cada gerenciador de pacotes que você deseja que o Dependabot monitore.

  7. Para cada gerenciador de pacotes, use:

    • package-ecosystem para especificar o gerenciador de pacotes.
    • directory para especificar o local do manifesto ou de outros arquivos de definição.
    • schedule.interval: especifica a frequência com a qual novas versões são verificadas.
  8. Verifique o arquivo de configuração dependabot.yml no diretório .github do repositório.

Para obter informações sobre todas as opções de configuração, confira "Opções de configuração do arquivo dependabot.yml".

Exemplo de arquivo dependabot.yml

O exemplo de arquivo dependabot.yml abaixo configura atualizações de versão para dois gerenciadores de pacotes: npm e Docker. Quando este arquivo é marcado, o Dependabot verifica os arquivos de manifesto no branch padrão buscando dependências desatualizadas. Se encontrar dependências desatualizadas, irá gerar pull requests em relação ao branch padrão para atualizar as dependências.

# Basic dependabot.yml file with
# minimum configuration for two package managers

version: 2
updates:
  # Enable version updates for npm
  - package-ecosystem: "npm"
    # Look for `package.json` and `lock` files in the `root` directory
    directory: "/"
    # Check the npm registry for updates every day (weekdays)
    schedule:
      interval: "daily"

  # Enable version updates for Docker
  - package-ecosystem: "docker"
    # Look for a `Dockerfile` in the `root` directory
    directory: "/"
    # Check for updates once a week
    schedule:
      interval: "weekly"

No exemplo acima, se as dependências do Docker estavam muito desatualizadas, o ideal é começar com um agendamento daily até que as dependências estejam atualizadas e retornar a um agendamento semanal.

Habilitando atualizações da versão em bifurcações

Se você quiser habilitar atualizações de versão nas bifurcações, há um passo extra. As atualizações de versão não são habilitadas automaticamente em forks quando um arquivo de configuração dependabot.yml está presente. Isso garante que os proprietários do fork não habilitem acidentalmente as atualizações de versão quando efetuarem pull de alterações, incluindo um arquivo de configuração dependabot.yml do repositório original.

Em uma bifurcação, você também precisa habilitar explicitamente Dependabot.

  1. No GitHub.com, navegue até a página principal do repositório. 1. Abaixo do nome do repositório, clique em Configurações. Botão Configurações do repositório

  2. Na seção "Segurança" da barra lateral, clique em Segurança de código e análise.

  3. Em "Segurança e análise de código", à direita de "Dependabot version updates", clique em Habilitar para permitir que Dependabot inicie atualizações de versão. Captura de tela da configuração de um repositório bifurcado de Dependabot version updates

Verificando o status das atualizações da versão

Depois de habilitar as atualizações de versão, a guia Dependabot no grafo de dependência do repositório será preenchida. Esta aba mostra quais gerentes de pacote de Dependabot estão configurados para monitorar e quando Dependabot fez a última verificação com relação a novas versões.

Aba de Insights do Repositório, gráfico de dependências, aba Dependabot

Para obter informações, confira "Como listar as dependências configuradas para atualizações de versão".

Desabilitar Dependabot version updates

Você pode desabilitar por completo as atualizações de versão excluindo o arquivo dependabot.yml do repositório. Mais usualmente, você deseja desabilitar as atualizações temporariamente para uma ou mais dependências, ou gerenciadores de pacotes.

  • Gerenciadores de pacotes: desabilite-os definindo open-pull-requests-limit: 0 ou removendo a linha de comentário de package-ecosystem relevante no arquivo de configuração.
  • Dependências específicas: desabilite-as adicionando atributos ignore a pacotes ou a aplicativos que você deseja excluir das atualizações.

Quando você desabilita dependências, você pode usar cartões curingas para corresponder a um conjunto de bibliotecas relacionadas. Você também pode especificar quais versões excluir. Isso é particularmente útil se você precisa bloquear atualizações de uma biblioteca, deixando pendente trabalho para suportar uma alteração quebrada na sua API, mas quer obter qualquer correção de segurança para a versão que você usa.

Exemplo de desabilitação de atualizações de versão para algumas dependências

O exemplo de arquivo dependabot.yml abaixo inclui exemplos das diferentes maneiras de desabilitar as atualizações em algumas dependências, permitindo que outras atualizações continuem.

# dependabot.yml file with updates
# disabled for Docker and limited for npm

version: 2
updates:
  # Configuration for Dockerfile
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
      # Disable all pull requests for Docker dependencies
    open-pull-requests-limit: 0

  # Configuration for npm
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    ignore:
      # Ignore updates to packages that start with 'aws'
      # Wildcards match zero or more arbitrary characters
      - dependency-name: "aws*"
      # Ignore some updates to the 'express' package
      - dependency-name: "express"
        # Ignore only new versions for 4.x and 5.x
        versions: ["4.x", "5.x"]
      # For all packages, ignore all patch updates
      - dependency-name: "*"
        update-types: ["version-update:semver-patch"]

Para obter mais informações sobre como verificar as preferências de ignorar existentes, confira "Opções de configuração para o arquivo dependabot.yml".