Note: Your site administrator must set up Atualizações de Dependabot for your GitHub Enterprise Server instance before you can use this feature. Para obter mais informações, consulte "Habilitar Dependabot para a sua empresa."
Sobre atualizações de versão para dependências
Você habilita Atualizações de versão do Dependabot, verificando um arquivo de configuração dependabot.yml no diretório do seu repositório .github
. 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 mais informações sobre habilitar atualizações de segurança, consulte "Configurar 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 os pull requests gerenciáveis e fáceis de revisar, o Dependabot gera um máximo de cinco pull requests para começar a criar dependências até a versão mais recente. 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 pull requests definindo a opção de configuração open-pull-requests-limit.
Para obter mais informações, consulte "Personalizar atualizações de dependência".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, consulte "Gerenciar configurações de segurança e análise para sua organização". É possível configurar o acesso a registros privados no arquivo de configuração de dependabot.yml de um repositório. Para obter mais informações, consulte "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, consulte "Sobre atualizações de versão do Dependabot" e "GitHub suporte a idiomas".
Habilitar Atualizações de versão do Dependabot
Você habilita Atualizações de versão do Dependabot enviando um arquivo de configuração de dependabot.yml para o seu repositório.
-
Crie um arquivo de configuração dependabot.yml no diretório
.github
do seu repositório. -
Adicione uma
versão
. -
Opcionalmente, se você tiver dependências em um registro privado, adicione uma seção de
registros
que contém detalhes de autenticação. -
Adicione uma seção de
atualizações
com uma entrada para cada gerenciador de pacotes que você deseja que Dependabot monitore. -
Para cada gerenciador de pacotes, use:
package-ecosystem
para especificar o gerenciador de pacote.directory
para especificar o local do manifesto ou de outros arquivos de definição.schedule.interval
para especificar com que frequência verificar novas versões.
-
Confira o arquivo de configuração dependabot.yml no diretório e
.github
do repositório.
Para obter mais informações sobre as opções de configuração, consulte "Opções de configuração para o arquivo dependabot.yml".
Exemplo: arquivo dependabot.yml
O exemplo do arquivo dependabot.yml configura atualizações da versão para dois gerentes 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.
# Arquivo básico dependabot.yml com
# configuração mínima para dois gerenciadores de pacotes
version: 2
updates:
# Permitir atualizações de versão para npm
- package-ecosystem: "npm"
# Procurar arquivos "package.json" e "lock" no diretório "root"
directory: "/"
# Verificar o registro npm para atualizações diárias (dias de semana)
schedule:
interval: "daily"
# Habilitar atualizações da versão para Docker
- package-ecosystem: "docker"
# Buscar um "Dockerfile" no diretório "root"
directory: "/"
# Verificar atualizações uma vez na semana
schedule:
interval: "weekly"
No exemplo acima, se as dependências do Docker estivessem muito desatualizadas, você poderia optar por começar com um cronograma diário
até que as dependências estivessem atualizadas, e depois voltar para uma programação 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. Atualizações de versão não são habilitadas automaticamente nas bifurcações quando um arquivo de configuração dependabot.yml estiver presente. Isso garante que os proprietários de bifurcação não habilitarão intencionalmente as atualizações de versão quando eles promoverem pull das 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.
- No your GitHub Enterprise Server instance, navegue até a página principal do repositório.
- No nome do repositório, clique em Insights.
- Na barra lateral esquerda, clique em gráfico de dependências.
- Em "Dependência gráfica", clique em Dependabot.
- Em "Enable Dependabot" (Habilitar Dependabot), clique em Habilitar Dependabot.
Verificando o status das atualizações da versão
Depois que você habilitar as atualizações de versão, será preenchida a aba Dependabot no gráfico de dependências para o repositório. 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, consulte "Listando dependências configuradas para atualizações da versão".
Desabilitar Atualizações de versão do Dependabot
Você pode desabilitar as atualizações da versão inteiramente excluindo o arquivo dependabot.yml do seu 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 configurando
open-pull-requests-limit: 0
ou comentando opackage-ecosystem
relevante no arquivo de configuração. - Dependências específicas: desabilite ao adicionar atributos
ignore
para pacotes ou 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 atualizações para algumas dependências, ao mesmo tempo que permite 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: "daily"
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 a verificação de preferências de ignorados existentes, consulte "Opções de configuração para o arquivo dependabot.yml".