Skip to main content

Solução de problemas para o gráfico de dependências

Se as informações de dependências relatadas pelo gráfico de dependências não é o que você esperava, há uma série de pontos a considerar e várias coisas que você pode verificar.

Os resultados da detecção de dependências relatados pelo GitHub podem ser diferentes dos resultados retornados por outras ferramentas. Existem boas razões para isso e é útil entender como GitHub determina as dependências para o seu projeto.

O gráfico de dependências só encontra dependências nos manifestos e nos arquivos de bloquei?

O grafo de dependência inclui automaticamente informações sobre dependências declaradas explicitamente no ambiente. Ou seja, dependências que são especificadas em um manifesto ou um arquivo de bloqueio. O gráfico de dependências, geralmente, também inclui dependências transitivas, mesmo quando não são especificadas em um arquivo de travamento analisando as dependências das dependências em um arquivo de manifesto.

O grafo de dependência não inclui automaticamente dependências "soltas". Dependências "soltas" são arquivos individuais copiados de outra fonte e verificados no repositório diretamente ou dentro de um arquivo (como um arquivo ZIP ou JAR), em vez de ser referenciadas pelo manifesto ou arquivo de bloqueio do gerenciador de pacotes.

No entanto, você pode usar a API Envio de dependência (beta) para adicionar dependências ao grafo de dependência de um projeto, mesmo que as dependências não sejam declaradas em um arquivo de manifesto ou de bloqueio, como as dependências resolvidas quando um projeto é criado. O grafo de dependência exibirá as dependências enviadas agrupadas por ecossistema, mas separadamente das dependências analisadas dos arquivos de manifesto ou de bloqueio. Para obter mais informações sobre a API Envio de dependência, confira "Como usar a API Envio de dependência".

Verificação: a dependência ausente para um componente que não está especificado no arquivo de manifesto ou de bloqueio do repositório?

O gráfico de dependências detecta dependências especificadas usando variáveis?

O gráfico de dependências analisa como são carregados para GitHub. O gráfico de dependência não tem acesso ao ambiente de construção do projeto. Portanto, ele não pode resolver variáveis usadas dentro dos manifestos. Se você usar variáveis dentro de um manifesto para especificar o nome, ou o que é mais comum, a versão de uma dependência, essa dependência não será incluída automaticamente no grafo de dependência.

No entanto, você pode usar a API Envio de dependência (beta) para adicionar dependências ao grafo de dependência de um projeto, mesmo que as dependências só sejam resolvidas na criação do projeto. Para obter mais informações sobre a API Envio de dependência, confira "Como usar a API Envio de dependência".

Verificação: a dependência ausente é declarada no manifesto por meio de uma variável para o nome ou a versão?

Existem limites que afetam os dados do gráfico de dependências?

Sim, o gráfico de dependências tem duas categorias de limites:

  1. Limites de processamento

    Eles afetam o gráfico de dependências exibido dentro de GitHub e também impedem que sejam criados Dependabot alerts.

    Manifestos com tamanho superior a 0.5 MB são processados apenas para contas corporativas. Para outras contas, manifestos acima de 0,5 MB são ignorados e não criarão Dependabot alerts.

    Por padrão, o GitHub não processará mais de 20 manifestos por repositório. Dependabot alerts não foi criado para manifestos acima deste limite. Se você precisar aumentar o limite, entre em contato com GitHub Support.

  2. Limites de visualização

    Eles afetam o que é exibido no gráfico de dependências dentro de GitHub. No entanto, eles não afetam Dependabot alerts que foram criados.

    A exibição de dependências do gráfico de dependências em um repositório só exibe 100 manifestos. De modo geral, isso é adequado, já que é significativamente maior do que o limite de processamento descrito acima. Em situações em que o limite de processamento é superior a 100, os Dependabot alerts são criados para quaisquer manifestos que não são mostrados dentro de GitHub.

Verificação: a dependência ausente está em um arquivo de manifesto com mais de 0,5 MB ou em um repositório com um grande número de manifestos?

Leitura adicional