Sobre o Dependabot
O Dependabot ajuda você a ficar por dentro de seus ecossistemas de dependência. Com o Dependabot, você pode manter as dependências atualizadas, resolvendo possíveis problemas de segurança em sua cadeia de suprimentos.
O Dependabot consiste em três recursos diferentes que ajudam você a gerenciar dependências:
- Dependabot alerts: informam você sobre vulnerabilidades nas dependências usadas em um repositório.
- Dependabot security updates: geram automaticamente pull requests para atualizar as dependências usadas que possuem vulnerabilidades de segurança conhecidas.
- Dependabot version updates: geram automaticamente pull requests para manter suas dependências atualizadas.
Para obter mais informações sobre o Dependabot, confira Guia de início rápido do Dependabot.
Neste artigo, você pode ver quais são os ecossistemas e repositórios compatíveis.
Repositórios e ecossistemas compatíveis
É possível configurar atualizações 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, consulte vendor
.
O Dependabot dá suporte também a dependências em registros privados. Para saber mais, confira Configurando o acesso a registros privados para Dependabot.
Note
Para garantir que o GitHub Enterprise Server dê suporte a Dependabot updates para as versões mais recentes do ecossistema com suporte, o proprietário da empresa deverá baixar a versão mais recente da ação do Dependabot. Para obter mais informações sobre a ação e para obter instruções sobre como baixar a versão mais recente, confira Usar a versão mais recente das ações agrupadas oficialmente.
Note
- 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 saber mais, 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 saber mais, confira Configurando o acesso a registros privados para Dependabot. - Dependabot não é compatível com as dependências privadas de GitHub para todos os gerenciadores de pacote. Veja os detalhes na tabela abaixo.
Se o seu repositório já usa uma integração para gerenciamento de dependências, você precisará desativar isso antes de habilitar o Dependabot.
Gerenciador de Pacotes | Valor YAML | Versões suportadas | Atualizações de versão | Atualizações de segurança | Repositórios privados | Registros privados | Delegação |
---|---|---|---|---|---|---|---|
bundler | bundler | v2 | |||||
Cargo | cargo | v1 | |||||
Composer | composer | v2 | |||||
Contêineres de desenvolvimento | devcontainers | Não aplicável | |||||
Docker | docker | v1 | Não aplicável | ||||
Hex | mix | v1 | |||||
elm-package | elm | v0.19 | |||||
Submódulo git | gitsubmodule | Não aplicável | Não aplicável | ||||
GitHub Actions | github-actions | Não aplicável | Não aplicável | ||||
Módulos Go | gomod | v1 | |||||
Gradle | gradle | Não aplicável | |||||
Maven | maven | Não aplicável | |||||
npm | npm | v7, v8, v9 | |||||
NuGet | nuget | <=6.12.0 | |||||
pip | pip | v21.1.2 | |||||
pipenv | pip | <= 2021-05-29 | |||||
pip-compile | pip | 6.1.0 | |||||
pnpm | npm | v7, v8, v9 | |||||
poetry | pip | v1 | |||||
pub | pub | v2 | |||||
Swift | swift | V5 | (somente git) | ||||
Terraform | terraform | >= 0.13, <= 1.10.x | Não aplicável | ||||
yarn | npm | v1, v2, v3 |
Tip
Para gerenciadores de pacotes como pipenv
e poetry
, você precisa usar o valor YAML pip
. 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
.
Para obter mais informações sobre suporte ao ecossistema para Dependabot security updates, confira também Ecossistemas de pacotes com suporte para grafos de dependência.
Cargo
O suporte ao registro privado inclui registros de carga, para que você possa usar o Dependabot para manter suas dependências do Rust atualizadas. Para obter mais informações, consulte Diretrizes para a configuração de registros privados para o Dependabot.
Contêineres de desenvolvimento
Você pode usar devcontainers
como um package-ecosystem
em seu arquivo dependabot.yml
para atualizar Recursos em seus arquivos de configuração devcontainer.json
. Para obter mais informações sobre esse suporte e para obter exemplos de arquivos de configuração, consulte Disponibilidade geral da Integração do Dependabot na documentação de contêineres de desenvolvimento.
Os contêineres de desenvolvimento são usados em várias ferramentas e serviços, incluindo Codespaces. Para obter mais informações sobre recursos e os serviços com suporte, consulte Recursos e Ferramentas e serviços de suporte na documentação de contêineres de desenvolvimento, respectivamente.
Esse atualizador garante que os recursos sejam fixados à versão mais recente major
no arquivo devcontainer.json
associado. Se um contêiner de desenvolvimento tiver um arquivo de bloqueio, esse arquivo também será atualizado. Para obter mais informações sobre especificações de arquivo de bloqueio, consulte Arquivos de bloqueio no repositório devcontainers/spec
.
Os recursos em qualquer local de contêiner de desenvolvimento válido serão atualizados em uma única solicitação de pull. Para obter mais informações sobre a especificação do contêiner de desenvolvimento, consulte Especificação na documentação de contêineres de desenvolvimento.
Docker
O Dependabot pode adicionar metadados de imagens do Docker a solicitações de pull para atualizações de versão. Os metadados incluem notas de versão, logs de mudanças e histórico de commits. Os administradores de repositório podem usar os metadados para avaliar rapidamente o risco de estabilidade da atualização de dependência.
Para que o Dependabot busque metadados do Docker, os mantenedores de imagens do Docker precisam adicionar o rótulo org.opencontainers.image.source
ao Dockerfile e incluir a URL do repositório de origem. Além disso, os mantenedores precisam marcar o repositório com as mesmas tags que as imagens do Docker publicadas. Para ver um exemplo, confira o repositório dependabot-fixtures/docker-with-source
. Para obter mais informações sobre rótulos do Docker, confira Rótulos de imagem de extensão e BUILDX_GIT_LABELS na documentação do Docker.
O Dependabot pode atualizar as tags de imagem do Docker nos 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 tags 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 Referência de opções do Dependabot.
Dependabot dá suporte a registros do Docker públicos e privados. Para obter uma lista dos registros com suporte, confira "docker-registry
" em Configurando o acesso a registros privados para Dependabot.
O Dependabot analisa marcas de imagem do Docker para Controle de Versão Semântico (SemVer). Se o Dependabot detectar uma tag com um pré-lançamento, ele apenas sugerirá uma atualização para a versão mais recente com um pré-lançamento correspondente e não sugerirá uma versão mais recente que use um rótulo de pré-lançamento diferente. Para obter mais informações, consulte o arquivo dependabot-docker
README.md no repositório dependabot/dependabot-core
.
GitHub Actions
O Dependabot suporta atualizações de versão para GitHub Actions com os alertas abaixo.
- O Dependabot dá suporte a atualizações do GitHub Actions apenas usando a sintaxe de repositório do GitHub, como
actions/checkout@v4
. O Dependabot ignorará ações ou fluxos de trabalho reutilizáveis referenciados localmente (por exemplo,./.github/actions/foo.yml
). - Não há suporte atualmente para URLs Container registry do Docker Hub e do GitHub Packages. Por exemplo, não há suporte para referências a ações de contêiner do Docker usando a sintaxe
docker://
. - Dependabot suporta repositórios públicos e privados para GitHub Actions. Para opções de configuração de registro privado, confira "
git
" em Referência de opções do Dependabot.
Para obter mais informações sobre o uso do Dependabot version updates com GitHub Actions, consulte Usar os recursos de segurança do GitHub para proteger seu uso do GitHub Actions.
Gradle
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).
O Dependabot usa informações do arquivo pom.xml
de dependências para adicionar links às informações de versão em pull requests de atualização. Se as informações forem omitidas do arquivo pom.xml
, elas não poderão ser incluídas em pull requests do Dependabot; consulte Como otimizar pacotes Java para atualizações do Dependabot.
Para o Dependabot security updates, o suporte do Gradle é limitado a uploads manuais dos dados do gráfico de dependência usando API de envio de dependência. Para obter mais informações sobre o API de envio de dependência, consulte Usar a API de envio de dependências.
Note
- Quando você carrega dependências do Gradle para o gráfico de dependências usando API de envio de dependência, todas as dependências do projeto são carregadas, mesmo as dependências transitivas que não são mencionadas explicitamente em nenhum arquivo de dependência. Quando um alerta é detectado em uma dependência transitiva, o Dependabot não consegue localizar a dependência vulnerável no repositório e, portanto, não cria uma atualização de segurança para esse alerta.
- No entanto, o Dependabot version updates criará solicitações de pull quando a dependência pai for explicitamente declarada como uma dependência direta no arquivo de manifesto do projeto.
Maven
O Dependabot não executa o Maven, mas dá suporte a atualizações em arquivos pom.xml
.
O Dependabot usa informações do arquivo pom.xml
de dependências para adicionar links às informações de versão em pull requests de atualização. Se as informações forem omitidas do arquivo pom.xml
, elas não poderão ser incluídas em pull requests do Dependabot; consulte Como otimizar pacotes Java para atualizações do Dependabot.
CLI do NuGet
O Dependabot não executa a CLI do NuGet, mas é compatível com a maioria dos recursos até a versão 6.8.0.
pip e pip-compile
Além de dar suporte a atualizações de arquivos requirements.txt
, o Dependabot dá suporte a atualizações de arquivos pyproject.toml
que seguem o padrão PEP 621.
pub
Dependabot não executará uma atualização para pub
quando a versão para a qual ele tentar atualizar for ignorada, mesmo se uma versão anterior estiver disponível.
Você pode usar o Dependabot para manter as dependências do Dart atualizadas se usar repositórios de pub hospedados privados. Para obter informações sobre como permitir que o Dependabot acesse dependências privadas do GitHub, confira Permitindo que o Dependabot acesse dependências privadas.
Swift
O suporte de registro particular se aplica somente a registros do Git. Não há suporte para registros do Swift. Não há suporte para manifestos não declarativos. Para obter mais informações sobre manifestos não declarativos, confira Editando manifestos não declarativos na documentação do Swift Evolution.
Terraform
O suporte Terraform inclui:
- Módulos hospedados no registro Terraform ou em um repositório Git acessível publicamente.
- Provedores Terraform.
- Registro Privado Terraform. Você pode configurar o acesso para repositórios git privados especificando um registro git em seu arquivo
dependabot.yml
. Para obter mais informações, consultegit
.
YARN
O Dependabot dá suporte a dependências de fornecedores da v2 em diante.