Note
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 um proprietário da 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 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 "Configurando as atualizações de segurança do Dependabot".
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 reduzir ainda mais o número de solicitações de pull que você está vendo, você pode usar a opção de configuração groups
para agrupar conjuntos de dependências (por ecossistema de pacote). Dependabot em seguida, gera uma única solicitação de pull para atualizar o máximo de dependências possível no grupo para as versões mais recentes ao mesmo tempo. Para obter mais informações, confira "Personalizando atualizações de dependências".
Ocasionalmente, devido a uma configuração incorreta ou uma versão incompatível, você pode ver que a execução do Dependabot falhou. Após30 execuções com falha, o Dependabot version updates ignorará as execuções subsequentes agendadas até que você acione manualmente um marcador para atualizações do gráfico de dependência , ou atualize o arquivo de manifesto. Dependabot security updates ainda será executado como de costume.
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 "Gerenciando 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 "Ecossistemas e repositórios compatíveis com o Dependabot" e "Suporte a 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.
-
Crie um arquivo de configuração
dependabot.yml
no diretório.github
do repositório. Você pode usar o trecho abaixo como ponto de partida. For information about the options you can use to customize how Dependabot maintains your repositories, see "Opções de configuração para o arquivo dependabot.yml."YAML # To get started with Dependabot version updates, you'll need to specify which # package ecosystems to update and where the package manifests are located. version: 2 updates: - package-ecosystem: "" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "weekly"
# To get started with Dependabot version updates, you'll need to specify which # package ecosystems to update and where the package manifests are located. version: 2 updates: - package-ecosystem: "" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "weekly"
-
Adicione uma
version
. Essa chave é obrigatória. O arquivo precisa começar comversion: 2
. -
Opcionalmente, se você tiver dependências em um registro privado, adicione uma seção
registries
contendo detalhes de autenticação. Para saber mais, confiraregistries
em “Opções de configuração do arquivodependabot.yml
”. -
Adicione uma seção
updates
, com uma entrada para cada gerenciador de pacotes que você deseja que o Dependabot monitore. Essa chave é obrigatória. Você a utiliza para configurar como Dependabot atualiza as versões ou as dependências do seu projeto. Cada entrada configura as configurações de atualização para um gerenciador de pacotes específico. -
Para cada gerenciador de pacotes, use:
-
package-ecosystem
para especificar o gerenciador de pacotes. Para obter mais informações sobre os gerenciadores de pacotes, confirapackage-ecosystem
em “Opções de configuração do arquivodependabot.yml
”. -
directory
para especificar o local do manifesto ou de outros arquivos de definição. Para saber mais, confiradirectory
em “Opções de configuração do arquivodependabot.yml
”. -
schedule.interval
: especifica a frequência com a qual novas versões são verificadas. Para saber mais, confiraschedule.interval
em “Opções de configuração do arquivodependabot.yml
”.
-
-
Verifique o arquivo de configuração dependabot.yml no diretório
.github
do repositório.
Arquivo de exemplo 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.
-
Em GitHub, acesse a página principal do repositório.
-
Abaixo do nome do repositório, clique em Configurações. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.
-
Na seção "Security" da barra lateral, clique em Code security and analysis.
-
Em "Code security and analysis", à direita de "Dependabot version updates", clique em Enable para permitir que o Dependabot inicie atualizações de versão.
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.
Para obter mais informações, confira "Listando dependências configuradas para atualizações da 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 depackage-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 saber mais sobre como verificar as preferências de ignorar existentes, confira "Opções de configuração para o arquivo dependabot.yml".