Este artigo fornece informações de solução de problemas para ajudá-lo a resolver problemas quando Dependabot não funcionar conforme o esperado. Se você encontrar erros quando Dependabot tentar atualizar suas dependências, você pode usar essas orientações para diagnosticar e corrigir problemas comuns.
Investigar erros com Dependabot security updates
Quando Dependabot está impedido de criar uma pull request para corrigir um alerta de Dependabot, ele publica a mensagem de erro no alerta. A exibição do Dependabot alerts mostra uma lista de todos os alertas que ainda não foram resolvidos. Para acessar a exibição de alertas, clique em Dependabot alerts na guia Segurança do repositório. Quando um pull request que corrigirá a dependência vulnerável foi gerado, o alerta inclui um link para esse pull request.

Há vários motivos pelos quais um alerta pode não ter um link de pull request:
- Dependabot security updates não estão habilitadas para o repositório.
- O alerta é para uma dependência indireta ou transitória que não está explicitamente definida em um arquivo de bloqueio.
- Um erro impediu Dependabot de criar um pull request.
Se um erro impediu que Dependabot criasse um pull request, você pode exibir os detalhes do erro clicando no alerta.
Investigar erros com Dependabot version updates
Quando o Dependabot for impedido de criar uma pull request para atualizar uma dependência em um ecossistema, você poderá ver a lista de logs de trabalho para saber mais sobre o erro.
A lista de logs de trabalho pode ser acessada no gráfico de dependências de um repositório. No gráfico de dependências, clique na guia do Dependabot e à direita do arquivo de manifesto afetado, clique em Trabalhos de atualização recentes.
Para exibir os arquivos de logs completos de um trabalho específico, à direita da entrada de log na qual você está interessado, clique em exibir logs.

Para saber mais, confira Exibir logs de trabalho do Dependabot.
Entender os erros de Dependabot
Pull requests para atualizações de segurança atuam para atualizar uma dependência vulnerável à versão mínima que inclui uma correção para a vulnerabilidade. Em contrapartida, os pull requests para atualizações de versão agem para atualizar uma dependência da versão mais recente permitida pelo manifesto do pacote e pelos arquivos de configuração de Dependabot. Consequentemente, alguns erros são específicos para um tipo de atualização.
Dependabot não pode atualizar a DEPENDÊNCIA para uma versão não vulnerável
**Somente atualizações de segurança.** O Dependabot não pode criar uma pull request para atualizar a dependência vulnerável para uma versão segura sem desfazer outras dependências no grafo de dependência desse repositório.
Cada aplicativo com dependências tem um gráfico de dependências, ou seja, um gráfico direcionado acíclico de cada versão de pacote da qual o aplicativo depende direta ou indiretamente. Toda vez que uma dependência é atualizada, este gráfico deve ser resolvido. Caso contrário, o aplicativo não será criado. Quando um ecossistema tem um gráfico de dependência profundo e complexo, por exemplo, npm e RubyGems, geralmente é impossível atualizar uma única dependência sem atualizar todo o ecossistema.
A melhor maneira de evitar esse problema é manter-se atualizado com as versões mais recentes, habilitando, por exemplo, as atualizações de versões. Isso aumenta a probabilidade de que uma vulnerabilidade em uma dependência possa ser resolvida por meio de uma atualização simples que não afete o gráfico de dependência. Para saber mais, confira Configuração de atualizações de versão do Dependabot.
Dependabot tenta atualizar dependências sem um alerta
**Somente atualizações de segurança.** Dependabot atualiza dependências transitivas definidas explicitamente que são vulneráveis para todos os ecossistemas. Para npm, Dependabot gerará uma pull request que também atualizará a dependência pai se for a única maneira de corrigir a dependência transitiva.
Por exemplo, um projeto com uma dependência no A versão ~2.0.0 que tem uma dependência transitiva no B versão ~1.0.0 que foi resolvido para 1.0.1.
my project
|
--> A (2.0.0) [~2.0.0]
|
--> B (1.0.1) [~1.0.0]
Se uma vulnerabilidade de segurança for lançada para o B versões <2.0.0 e um patch estiver disponível em 2.0.0, então Dependabot tentará atualizar B, mas descobrirá que não é possível, devido à restrição em vigor pelo A, que só permite versões vulneráveis mais baixas. Para corrigir a vulnerabilidade, Dependabot procurará atualizações na dependência A, que permitem que seja usada a versão corrigida de B.
Dependabot gera automaticamente uma pull request que atualiza as dependências transitivas pai e filho bloqueados.
O Dependabot falha ao fechar uma pull request aberta para uma atualização que já foi aplicada na ramificação padrão
O Dependabot fechará pull requests para atualizações de dependência assim que detectar que essas atualizações foram confirmadas na ramificação padrão. No entanto, em raras circunstâncias, a pull request pode permanecer aberta. Se você notar que fez commit de uma atualização para uma dependência manualmente e que a pull request para essa mesma atualização ainda está aberta, você pode usar um dos seguintes comandos em um comentário sobre a pull request:
*
@dependabot recreate, ou
*
@dependabot rebase.
Qualquer comentário disparará o Dependabot para verificar se a dependência não é mais atualizável ou vulnerável. Se o Dependabot detectar que a pull request não é mais obrigatória, ele fechará a pull request nesse caso específico.
Para obter mais informações sobre comandos de comentário do Dependabot, confira Gerenciar pull requests para atualizações de dependências.
Dependabot não consegue atualizar para a versão necessária, pois já existe um pull request aberto para a última versão
**Somente atualizações de segurança.** O Dependabot não criará uma pull request para atualizar a dependência vulnerável para uma versão segura porque já há uma pull request em aberto para atualizar essa dependência. Você verá este erro quando uma vulnerabilidade for detectada em uma única dependência e já houver um pull request aberto para atualizar a dependência para a última versão.
Existem duas opções: você pode revisar a pull request aberta e fazer o merge assim que estiver confiante de que a mudança é segura, ou fechar a pull request e acionar uma nova pull request de atualização de segurança. Para obter mais informações, confira Como disparar uma pull request do Dependabot manualmente.
Nenhuma atualização de segurança é necessária, pois DEPENDENCY não está mais vulnerável
**Somente atualizações de segurança.** O Dependabot não podem fechar uma solicitação pull para atualizar uma dependência que não é ou que deixou de ser vulnerável. Você pode ver esse erro quando os dados do gráfico de dependência são obsoletos ou quando o gráfico de dependência e o Dependabot não concordam se uma versão específica de uma dependência estiver vulnerável.
Para depurar o problema, recomendamos que você primeiro examine o gráfico de dependência do repositório, examine qual versão detectou para a dependência e verifique se a versão identificada corresponde ao que está sendo usado no repositório.
Se você suspeitar de que os dados do gráfico de dependência estejam desatualizados, talvez seja necessário atualizar manualmente o gráfico de dependência do repositório ou investigar mais as informações de dependência. Para saber mais, confira Solução de problemas para o gráfico de dependências.
Se conseguir confirmar que a versão da dependência não está mais vulnerável, você poderá fechar a solicitação pull do Dependabot.
O Dependabot esgotou o tempo durante esta atualização
Dependabot demorou mais do que o tempo máximo permitido para avaliar a atualização necessária e preparar um pull request. Em geral, esse erro é visto apenas em repositórios grandes com muitos arquivos de manifesto, por exemplo, projetos de repositório único do npm ou do YARN com centenas de arquivos package.json. As atualizações no ecossistema do Composer também levam mais tempo para ser avaliadas e podem expirar.
Este erro é difícil de ser corrigido. Se uma atualização de versão atingir o tempo limite, você poderá especificar as dependências mais importantes para atualização usando o parâmetro allow ou, como alternativa, usar o parâmetro ignore para excluir algumas dependências das atualizações. Atualizar sua configuração pode permitir que Dependabot revise a atualização da versão e gere a pull request no tempo disponível.
Se uma atualização de segurança expirar, você pode reduzir as chances de isso acontecer mantendo as dependências atualizadas, por exemplo, habilitando atualizações de versão. Para saber mais, confira Configuração de atualizações de versão do Dependabot.
Dependabot não consegue abrir mais nenhum pull request
Há um limite no número de pull requests abertos que Dependabot irá gerar. Quando este limite é atingido, nenhum pull request novo será aberto e este erro será relatado. A melhor maneira de resolver este erro é revisar e fazer merge alguns dos pull requests abertos.
Existem limites separados para solicitações de atualização de versões e segurança, para que os pull requests de atualização de versão aberta não possam bloquear a criação de uma solicitação de atualização de segurança. O limite para pull requests de atualização de segurança é 10. Por padrão, o limite para as atualizações de versão é 5, mas você pode alterá-lo usando o parâmetro open-pull-requests-limit no arquivo de configuração. Para saber mais, confira Referência de opções do Dependabot.
A melhor maneira de resolver este erro é fazer o merge ou fechar alguns dos pull requests existentes e acionar uma nova pull request manualmente. Para obter mais informações, confira Como disparar uma pull request do Dependabot manualmente.
Dependabot não pode resolver ou acessar suas dependências
Se Dependabot tentar verificar se as referências de dependências precisam ser atualizadas em um repositório, mas não puder acessar um ou mais arquivos referenciados, a operação irá falhar com a mensagem de erro "Dependabot can't resolve your LANGUAGE dependency files." O tipo de erro da API é git_dependencies_not_reachable.
Da mesma forma, se Dependabot não pode acessar um registro de pacote privado em que uma dependência está localizada, gera-se um dos erros a seguir:
- "O Dependabot não pode acessar uma dependência em um registro de pacote privado"
(Tipo de erro da API:private_source_not_reachable) - "O Dependabot não pode se autenticar em um registro de pacote privado"
(Tipo de erro da API:private_source_authentication_failure) - "O Dependabot atingiu o tempo limite enquanto aguardava um registro de pacote privado"
(Tipo de erro da API:private_source_timed_out) - "O Dependabot não pôde validar o certificado para um registro de pacote privado"
(Tipo de erro da API:private_source_certificate_failure)
Para permitir que Dependabot atualize as referências de dependências com sucesso, certifique-se de que todas as dependências referenciadas estejam hospedadas em locais acessíveis.
**Somente atualizações de versão.** 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 [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization#allowing-dependabot-to-access-private-or-internal-dependencies). Você pode configurar o acesso a registros privados no arquivo de configuração `dependabot.yml` de um repositório. Para saber mais, confira [AUTOTITLE](/code-security/dependabot/working-with-dependabot/configuring-access-to-private-registries-for-dependabot). Adicionalmente, Dependabot não é compatível com dependências privadas GitHub para todos os gerenciadores de pacote. Para saber mais, confira [AUTOTITLE](/code-security/dependabot/ecosystems-supported-by-dependabot/supported-ecosystems-and-repositories).
Dependabot falha ao agrupar um conjunto de dependências em uma única pull request para Dependabot version updates
As definições de configuração de groups no arquivo dependabot.yml podem se aplicar a atualizações de versão e atualizações de segurança. Use a chave applies-to para especificar onde (atualizações de versão ou atualizações de segurança) um conjunto de regras de agrupamento é aplicado.
Não é possível aplicar um único conjunto de regras de agrupamento a atualizações de versão e a atualizações de segurança. Em vez disso, se quiser agrupar atualizações de versão e atualizações de segurança usando os mesmos critérios, você deverá definir dois conjuntos de regras de agrupamento com nomes separados.
Ao configurar atualizações de versão agrupadas, você deve configurar grupos por ecossistema de pacote. Recomendamos conferir os logs para depurar o problema. Para obter informações sobre como acessar os logs de um manifesto, consulte Investigar erros com Dependabot version updates acima.
Você pode ter criado grupos vazios acidentalmente. Isso acontece, por exemplo, ao definir um dependency-type na chave allow do trabalho geral.
allow:
dependency-type: production
# this restricts the entire job to production dependencies
groups:
development-dependencies:
dependency-type: "development"
# this group will always be empty
allow:
dependency-type: production
# this restricts the entire job to production dependencies
groups:
development-dependencies:
dependency-type: "development"
# this group will always be empty
Neste exemplo, Dependabot:
- Confira a lista de dependências e restrinja o trabalho às dependências usadas apenas em
production. - Tente criar um grupo chamado
development-dependencies, que é um subconjunto dessa lista reduzida. - Determine se o grupo
development-dependenciesestá vazio, pois todas as dependênciasdevelopmentforam removidas na etapa 1. -
Atualize **individualmente** todas as dependências que não estão no grupo. Como o grupo de dependências em produção está vazio, Dependabot ignorará o grupo e criará uma pull request separada para cada dependência.
Você precisa garantir que as configurações não se cancelem mutuamente e atualizá-las como necessário no arquivo de configuração.
Para saber mais sobre como configurar grupos de Dependabot version updates, confira Referência de opções do Dependabot.
Dependabot falha ao agrupar um conjunto de dependências em uma única pull request para Dependabot security updates
As definições de configuração de groups no arquivo dependabot.yml podem se aplicar a atualizações de versão e atualizações de segurança. Use a chave applies-to para especificar onde (atualizações de versão ou atualizações de segurança) um conjunto de regras de agrupamento é aplicado. Verifique se você tem o agrupamento configurado para aplicar a atualizações de segurança. Se a chave applies-to estiver ausente de um conjunto de regras de agrupamento em sua configuração, qualquer regra de grupo será por padrão aplicada apenas a atualizações de versão.
Não é possível aplicar um único conjunto de regras de agrupamento a atualizações de versão e a atualizações de segurança. Em vez disso, se quiser agrupar atualizações de versão e atualizações de segurança usando os mesmos critérios, você deverá definir dois conjuntos de regras de agrupamento com nomes separados.
Para atualizações de segurança agrupadas, o Dependabot usa as diretrizes a seguir para criar solicitações pull agrupadas.
- O Dependabot agrupará dependências do mesmo ecossistema de pacotes que estão localizadas em diretórios diferentes quando regras de agrupamento são especificadas para configurações que usam a chave
directories. - O Dependabot aplicará outras opções de personalização relevantes do arquivo
dependabot.ymlpara receber solicitações de atualizações de segurança agrupadas. As regras de grupo configuradas em um arquivodependabot.ymlsubstituirão as configurações da interface do usuário para habilitar ou desabilitar atualizações de segurança agrupadas no nível da organização ou do repositório. - O Dependabot não agrupará dependências de diferentes ecossistemas de pacotes.
- Dependabot não agrupará atualizações de segurança com atualizações de versão.
Para saber mais, confira Sobre as atualizações de segurança do Dependabot e Personalizar pull requests para atualizações de segurança do Dependabot.
Dependabot falha ao atualizar uma das dependências em uma pull request agrupada
Você pode usar diferentes técnicas de solução de problemas para atualizações de versão com falha e atualizações de segurança com falha.
Como tratar falhas em atualizações de versão agrupadas
**Somente atualizações de versão.** Dependabot mostrará a atualização com falha em seus logs, assim como no resumo do trabalho no final de seus logs. Você deve usar o comentário `@dependabot recreate` na pull request para compilar o grupo novamente. Para saber mais, confira [AUTOTITLE](/code-security/dependabot/working-with-dependabot/managing-pull-requests-for-dependency-updates#managing-dependabot-pull-requests-with-comment-commands).
Se a dependência ainda não for atualizada, você deverá usar a configuração de exclude-patterns para que a dependência seja excluída do grupo. Dependabot gerará uma pull request separada para atualizar a dependência.
Se a atualização da dependência ainda falhar, pode haver um problema com a própria dependência ou com Dependabot nesse ecossistema específico.
Se você desejar ignorar as atualizações de versão para a dependência, siga um destes procedimentos.
- Configure uma regra
ignorepara a dependência no arquivodependabot.yml. Para saber mais, confira Referência de opções do Dependabot. - Use o comando de comentário
@dependabot ignorepara a dependência na solicitação de pull para as atualizações agrupadas. Para saber mais, confira Gerenciar pull requests para atualizações de dependências.
Manipulando falhas em atualizações de segurança agrupadas
**Somente atualizações de segurança.** Se uma pull request agrupada para atualizações de segurança falhar ou não puder ser mesclada, recomendamos que você abra manualmente as pull requests para aumentar as versões de alterações interruptivas. Quando você atualiza manualmente um pacote incluído em uma pull request agrupada, o Dependabot trocará a base da pull request para que ela não inclua o pacote atualizado manualmente.
Se você desejar ignorar as atualizações de versão para a dependência, siga um destes procedimentos.
- Configure uma regra
ignorepara a dependência no arquivodependabot.yml. Para saber mais, confira Referência de opções do Dependabot. - Use o comando de comentário
@dependabot ignorepara a dependência na solicitação de pull para as atualizações agrupadas. Para saber mais, confira Gerenciar pull requests para atualizações de dependências.
Falha na CI (integração contínua) na minha pull request agrupada
**Somente atualizações de versão.** Se a falha ocorrer por causa de uma única dependência, você deve utilizar a configuração de `exclude-patterns`para que a dependência seja excluída do grupo. Dependabot gerará uma pull request separada para atualizar a dependência.
Se você desejar ignorar as atualizações de versão para a dependência, siga um destes procedimentos.
- Configure uma regra
ignorepara a dependência no arquivodependabot.yml. Para saber mais, confira Referência de opções do Dependabot. - Use o comando de comentário
@dependabot ignorepara a dependência na solicitação de pull para as atualizações agrupadas. Para saber mais, confira Gerenciar pull requests para atualizações de dependências.
Se continuar vendo falhas de CI, você deverá remover a configuração do grupo para que Dependabot volte a gerar pull requests individuais para cada dependência. Em seguida, você deve verificar e confirmar se a atualização está funcionando corretamente para cada pull request individual.
Acionar um pull request de Dependabot manualmente
Se você desbloquear Dependabot, você poderá iniciar manualmente uma nova tentativa de criar um pull request.
-
**Atualizações de segurança:** veja o alerta do Dependabot que mostra o erro corrigido e clique em **Criar atualização de segurança do Dependabot**. -
**Atualizações de versão:** na guia **Insights** do repositório, clique em **Grafo de dependência** e clique na guia **Dependabot**. Clique em **_HORA_ da última verificação** para ver o arquivo de log gerado pelo Dependabot durante a última verificação em busca das atualizações de versão. Clique em **Procurar atualizações**.
Leitura adicional
-
[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/troubleshooting-the-dependency-graph) -
[AUTOTITLE](/code-security/dependabot/troubleshooting-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies)