Sobre as Dependabot version updates
O Dependabot facilita a manutenção de suas dependências. Você pode usá-lo para garantir que seu repositório se mantenha atualizado automaticamente com as versões mais recentes dos pacotes e aplicações do qual ele depende.
Habilite as Dependabot version updates fazendo o check-in de um arquivo de configuração dependabot.yml
em seu repositório. O arquivo de configuração especifica a localização do manifesto ou de outros arquivos de definição de pacote, armazenados no seu repositório. O Dependabot usa essas informações para verificar se há pacotes e aplicativos desatualizados. O Dependabot determina se há uma nova versão de uma dependência examinando o semver (controle de versão semântica) da dependência para decidir se ela deve ser atualizada para essa versão. Para certos gerentes de pacote, Dependabot version updates também é compatível com armazenamento. Dependências de vendor (ou armazenadas) são dependências registradas em um diretório específico em um repositório, em vez de referenciadas em um manifesto. Dependências de vendor estão disponíveis no tempo de criação, ainda que os servidores de pacote estejam indisponíveis. Dependabot version updates pode ser configurado para verificar as dependências de vendor para novas versões e atualizá-las, se necessário.
Quando o Dependabot identifica uma dependência desatualizada, ele gera uma solicitação de pull para atualizar o manifesto para a última versão da dependência. Para dependências de vendor, Dependabot levanta um pull request para substituir diretamente a dependência desatualizada pela nova versão. Você verifica se os seus testes passam, revisa o changelog e lança observações incluídas no resumo do pull request e, em seguida, faz a mesclagem. Para obter mais informações, confira "Como configurar as atualizações de versão do Dependabot".
Se você habilitar as atualizações de segurança, o Dependabot também vai gerar solicitações de pull para atualizar as dependências vulneráveis. Para obter mais informações, confira "Sobre as Dependabot security updates".
Quando o Dependabot gera solicitações de pull, essas solicitações de pull podem ser referentes a atualizações de segurança ou de versão:
- As Dependabot security updates são solicitações de pull automatizadas que ajudam você a atualizar as dependências com vulnerabilidades conhecidas.
- As Dependabot version updates são solicitações de pull automatizadas que mantêm suas dependências atualizadas, mesmo quando elas não têm nenhuma vulnerabilidade. Para verificar o status das atualizações da versão, acesse a aba Insights do seu repositório e, em seguida, gráfico de dependência e Dependabot.
O GitHub Actions não é necessário para que Dependabot version updates e Dependabot security updates sejam executadas no GitHub Enterprise Cloud. No entanto, as solicitações de pull abertas pelo Dependabot podem disparar fluxos de trabalho que executam ações. Para obter mais informações, confira "Automatizando o Dependabot com GitHub Actions."
O Dependabot e todos os recursos relacionados são cobertos pelo contrato de licença. Para obter mais informações, confira " Termos do Cliente Enterprise do GitHub".
Frequência de Dependabot pull requests
Você especifica com que frequência verifica cada ecossistema para novas versões no arquivo de configuração: diariamente, semanalmente ou mensalmente.
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
.
Se tiver habilitado atualizações de segurança, às vezes você verá atualizações de segurança extras de pull requests. Elas são disparadas por um alerta do Dependabot para uma dependência no branch padrão. Dependabot gera automaticamente um pull request para atualizar a dependência vulnerável.
Repositórios e ecossistemas suportados
É possível configurar atualizações de versão para repositórios que contenham um manifesto de dependência ou arquivo de bloqueio para um dos gerentes de pacotes suportados. Para alguns gerenciadores de pacotes, você também pode configurar o armazenamento para dependências. Para obter mais informações, confira "Opções de configuração para o arquivo dependabot.yml".1
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".
Dependabot não é compatível com as dependências privadas de GitHub para todos os gerenciadores de pacote. Veja os detalhes na tabela abaixo.
A tabela a seguir mostra, para cada gerenciador de pacotes:
- O valor YAML a ser usado no arquivo dependabot.yml
- As versões compatíveis do gerenciador de pacotes
- Se as dependências em repositórios ou registros de GitHub privados são compatíveis
- Se as dependências delegadas são compatíveis
Gerenciador de pacotes | Valor do YAML | Versões com suporte | Repositórios privados | Registros privados | Delegação |
---|---|---|---|---|---|
bundler | bundler | v1, v2 | |||
Cargo | cargo | v1 | |||
Compositor | composer | v1, v2 | |||
Docker [1] | docker | v1 | |||
Hex | mix | v1 | |||
elm-package | elm | v0.19 | |||
git submodule | gitsubmodule | Não aplicável | |||
GitHub Actions [2] | github-actions | Não aplicável | |||
Módulos Go | gomod | v1 | |||
Gradle [3] | gradle | Não aplicável | |||
Maven [4] | maven | Não aplicável | |||
npm | npm | v6, v7, v8 | |||
NuGet | nuget | <= 4.8 [5] | |||
pip [6] | pip | v21.1.2 | |||
pipenv | pip | <= 2021-05-29 | |||
pip-compile [6] | pip | 6.1.0 | |||
poetry | pip | v1 | |||
pub [7] | pub | v2 | |||
Terraform | terraform | >= 0.13, <= 1.3.x | |||
yarn | npm | v1, v2, v3 | [8] |
Dica: para gerenciadores de pacotes como pipenv
e poetry
, você precisa usar o valor pip
do YAML. Por exemplo, se você usar poetry
para gerenciar suas dependências do Python e quiser que o Dependabot monitore seu arquivo de manifesto de dependência em busca de novas versões, use package-ecosystem: "pip"
no arquivo dependabot.yml.
[1] Dependabot pode atualizar marcas de imagem do Docker em manifestos do Kubernetes. Adicione uma entrada ao elemento Docker package-ecosystem
do arquivo dependabot.yml para cada diretório que contém um manifesto do Kubernetes que faz referência a marcas de imagem do Docker. Os manifestos do Kubernetes podem ser arquivos YAML de implantação do Kubernetes ou gráficos do Helm. Para obter informações sobre como configurar o arquivo dependabot.yml para docker
, confira "package-ecosystem
" em "Opções de configuração para o arquivo dependabot.yml".
Dependabot dá suporte a Registros do Docker públicos e privados. Para obter uma lista dos registros com suporte, confira "docker-registry
" em "Opções de configuração para o arquivo dependabot.yml".
[2] Dependabot só dá suporte a atualizações para GitHub Actions usando a sintaxe do repositório GitHub, como actions/checkout@v3. Não há suporte atualmente para URLs do Docker Hub e de GitHub Packages Container registry.
[3] O Dependabot não executa o Gradle, mas dá suporte a atualizações nos seguintes arquivos:
build.gradle
,build.gradle.kts
(para projetos Kotlin)gradle/libs.versions.toml
(para projetos que usam um catálogo de versão padrão do Gradle)- Arquivos incluídos por meio da declaração
apply
que tenhamdependencies
no nome do arquivo. Observe queapply
não dá suporte aapply to
, recursão ou sintaxes avançadas (por exemplo,apply
do Kotlin commapOf
e nomes de arquivo definidos por propriedade).
[4] O Dependabot não executa o Maven, mas dá suporte a atualizações em arquivos pom.xml
.
[5] Dependabot não executa o NuGet CLI, mas é compatível com a maioria dos recursos até a versão 4.8.
[6] Além de dar suporte a atualizações de arquivos requirements.txt
, Dependabot dá suporte a atualizações de arquivos pyproject.toml
se eles seguem o padrão PEP 621.
O suporte a [7] Dependabot não executará uma atualização para pub
quando a versão para a qual ele tenta atualizar for ignorada, mesmo se uma versão anterior estiver disponível.
[8] O dependabot dá suporte a dependências de fornecedores para v2 em diante.
Se o seu repositório já usa uma integração para gerenciamento de dependências, você precisará desativar isso antes de habilitar o Dependabot. Para obter mais informações, confira "Sobre as integrações".
Sobre a desativação automática de Dependabot updates
Quando os mantenedores de um repositório param de interagir com solicitações de pull do Dependabot, o Dependabot pausa temporariamente as atualizações e deixa você a par. Esse comportamento de recusa automática reduz o ruído porque o Dependabot não cria solicitações de pull para atualizações de versão e segurança e não troca de base as solicitações de pull do Dependabot para repositórios inativos.
A desativação automática das atualizações do Dependabot se aplica somente a repositórios em que Dependabot abriu solicitações de pull, mas elas permanecem intocadas. Se o Dependabot não tiver aberto nenhuma solicitação de pull, o Dependabot nunca será pausado.
Um repositório ativo é um repositório para o qual um usuário (não o Dependabot) executou nenhuma das ações abaixo nos últimos 90 dias:
- Mescle ou feche uma solicitação de pull do Dependabot no repositório.
- Faça uma alteração no arquivo dependabot.yml para o repositório.
- Dispare manualmente uma atualização de segurança ou uma atualização de versão.
- Habilite Dependabot security updates para o repositório.
- Use os comandos
@dependabot
em solicitações de pull.
Um repositório inativo é um repositório que tem pelo menos uma solicitação de pull do Dependabot aberta por mais de 90 dias, que foi habilitado para o período completo e em que nenhuma das ações listadas acima foi executada por um usuário.
Quando Dependabot é pausado, GitHub adiciona um aviso ao corpo de todas as solicitações de pull do Dependabot e atribui um rótulo dependabot-paused
a essas solicitações de pull. Você também verá um aviso de faixa na interface do usuário da guia Configurações do repositório (em Segurança e análise de código e Dependabot ), assim como na lista do Dependabot alerts (se Dependabot security updates são afetados).
Assim que o mantenedor interagir com uma solicitação de pull do Dependabot outra vez, Dependabot será despausado:
- As atualizações de segurança são retomadas automaticamente para Dependabot alerts.
- As atualizações de versão são retomadas automaticamente com o agendamento especificado no arquivo dependabot.yml.
Sobre notificações para atualizações de versão para Dependabot
Você pode filtrar suas notificações em GitHub para mostrar as notificações para pull requests criados por Dependabot. Para obter mais informações, confira "Como gerenciar notificações na sua caixa de entrada".