Skip to main content

Esta versão do GitHub Enterprise Server foi descontinuada em 2026-04-09. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise Server. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Como o grafo de dependência reconhece dependências

O grafo de dependência analisa automaticamente os arquivos de manifesto. Você pode enviar dados para dependências que não podem ser detectadas automaticamente.

Quem pode usar esse recurso?

O gráfico de dependência está disponível para todos os repositórios.

O grafo de dependência pode identificar as dependências do projeto usando os métodos a seguir.

MétodoComo funciona
          **Análise estática** | Analisa os arquivos de manifesto e bloqueio em seu repositório |

| | | | API de envio de dependência | Aceita dados de dependência que você envia programaticamente |

Depois que as dependências estiverem no gráfico, você poderá receber Dependabot alerts e Dependabot security updates para quaisquer vulnerabilidades conhecidas.

Análise estática

Quando você habilita o grafo de dependência, GitHub verifica o repositório em busca de arquivos de manifesto com suporte e analisa o nome e a versão de cada pacote. O gráfico é atualizado quando você altera um arquivo de manifesto ou bloqueio compatível em seu branch padrão.

A análise estática pode identificar:

  •         **Dependências diretas** explicitamente definidas em um arquivo de manifesto ou lock.
    
  •         **Dependências indiretas** — dependências dessas dependências diretas, também chamadas de "dependências transitivas", mas somente se forem definidas em um manifesto ou arquivo de bloqueio, não quando forem resolvidas no momento da compilação.
    

Para o grafo mais confiável, você deve usar arquivos de bloqueio (ou seus equivalentes), pois eles definem exatamente quais versões das dependências diretas e indiretas você usa no momento. Os arquivos de bloqueio também garantem que todos os colaboradores do repositório estejam usando as mesmas versões, o que facilitará o teste e a depuração de código.

A API de envio de dependência

Você pode chamar o API de envio de dependência em seu próprio script ou fluxo de trabalho. Isso será útil se:

  • Você precisa enviar dependências transitivas que não podem ser detectadas a partir de arquivos de bloqueio.
  • Você precisa criar uma lógica personalizada ou usar um sistema de CI/CD externo.

As dependências são enviadas para API de envio de dependência na forma de um instantâneo. Esta é uma lista de dependências associadas a um commit SHA e outros metadados, refletindo o estado atual do seu repositório.

Se você estiver chamando a API em um fluxo de trabalho GitHub Actions, poderá usar uma ação pré-configurada para seu ecossistema que coleta automaticamente as dependências e as envia para a API. Caso contrário, você poderá escrever sua própria ação ou chamar a API de um sistema externo.

As dependências enviadas estão disponíveis nos insights de dependência da sua organização.

Para saber mais, confira Usar a API de envio de dependências.

Priorização

Um repositório pode usar vários métodos para submissão de dependências, o que pode resultar no manifesto do mesmo pacote sendo analisado múltiplas vezes, potencialmente produzindo saídas diferentes a cada análise. O grafo de dependência usa a lógica de deduplicação para analisar as saídas, priorizando as informações mais precisas para cada arquivo de manifesto.

O grafo de dependência exibe apenas uma instância de cada arquivo de manifesto usando as regras de precedência a seguir.

  1.        **Os envios de usuário** têm a prioridade mais alta, pois geralmente são criados durante compilações de artefatos que têm as informações mais completas.
    
    • Se houver vários instantâneos manuais de detectores diferentes, eles serão classificados em ordem alfabética por correlator e pelo primeiro usado.
    • Se houver dois correlacionadores com o mesmo detector, as dependências resolvidas serão mescladas. Para obter mais informações sobre correlacionadores e detectores, consulte Pontos de extremidade da API REST para envio de dependências.
  2.        **Os envios automáticos** têm a segunda prioridade mais alta, pois também são criados durante compilações de artefato, mas não são enviados pelos usuários.
    
  3.        **Os resultados da análise estática** são usados quando nenhum outro dado está disponível.