Skip to main content

Ecossistemas e repositórios compatíveis com o Dependabot

O Dependabot é compatível com uma variedade de ecossistemas e repositórios

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

  • 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. Para saber mais, confira Sobre o uso de integrações.

Gerenciador de PacotesValor YAMLVersões suportadasAtualizações de versãoAtualizações de segurançaRepositórios privadosRegistros privadosDelegação
Bunbun>=v1.1.39
bundlerbundlerv2
Cargocargov1
Composercomposerv2
Contêineres de desenvolvimentodevcontainersNão aplicável
Dockerdockerv1Não aplicável
SDK .NETdotnet-sdk>=.NET Core 3.1Não aplicávelNão aplicávelNão aplicável
Hexmixv1
elm-packageelmv0.19
Submódulo gitgitsubmoduleNão aplicávelNão aplicável
GitHub Actionsgithub-actionsNão aplicávelNão aplicável
Módulos Gogomodv1
GradlegradleNão aplicável
MavenmavenNão aplicável
npmnpmv7, v8, v9
NuGetnuget<=6.12.0
pippipv21.1.2
pipenvpip<= 2021-05-29
pip-compilepip6.1.0
pnpmnpmv7, v8, v9
poetrypipv1
pubpubv2
SwiftswiftV5 (somente git)
Terraformterraform>= 0.13, <= 1.10.xNão aplicável
yarnnpmv1, 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.

Bun

O Dependabot dá suporte ao arquivo bun.lock baseado em texto padrão atual, mas não ao arquivo bun.lockb binário herdado. Há suporte para o arquivo bun.lock versão 1.1.39 e superior. Para saber mais, confira Lockfile na documentação do Bun.

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-dockerREADME.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 tenham dependencies no nome do arquivo. Observe que apply não dá suporte a apply to, recursão ou sintaxes avançadas (por exemplo, apply do Kotlin com mapOf 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, consulte git.

YARN

O Dependabot dá suporte a dependências de fornecedores da v2 em diante.