Skip to main content

Sobre o gráfico de dependências

Você pode usar o gráfico de dependências para identificar todas as dependências do seu projeto. O gráfico de dependências é compatível com uma série de ecossistemas de pacotes populares.

Sobre o gráfico de dependências

O grafo de dependência é um resumo dos arquivos de manifesto e de bloqueio armazenados em um repositório, além de outras dependências que sejam enviadas para o repositório ao usar a API de envio de dependência. Para cada repositório, ele mostra:

  • As dependências, os ecossistemas e os pacotes do qual depende
  • Os dependentes, os repositórios e os pacotes que dependem dele

Para cada dependência, você pode ver as informações de licença e a gravidade da vulnerabilidade. Você também pode pesquisar uma dependência específica usando a barra de pesquisa. As dependências são classificadas automaticamente pela gravidade da vulnerabilidade.

Quando você efetua push de um commit para o GitHub que altera ou adiciona um arquivo de manifesto ou de bloqueio compatível para o branch padrão, o grafo de dependência é atualizado automaticamente. Além disso, o grafo é atualizado quando alguém efetua push de uma alteração no repositório de uma das suas dependências.

Para obter mais informações sobre os ecossistemas com suporte e os arquivos de manifesto, consulte "Ecossistemas de pacotes com suporte para grafos de dependência".

Além disso, você pode usar a API de envio de dependência para enviar dependências do gerenciador de pacotes ou ecossistema de sua escolha, mesmo que o ecossistema não tenha suporte pelo grafo de dependência para análise de arquivos de manifesto ou de bloqueio. As dependências enviadas para um projeto ao usar a API de envio de dependência mostrarão qual detector foi utilizado para o envio e quando elas foram enviadas. Para obter mais informações sobre a API de envio de dependência, confira “Usar a API de envio de dependências”.

Ao criar um pull request que contém alterações para dependências direcionadas ao branch padrão, GitHub usará o gráfico de dependências para adicionar revisões de dependências ao pull request. Eles indicam se as dependências contêm vulnerabilidades e, em caso afirmativo, a versão da dependência na qual a vulnerabilidade foi corrigida. Para obter mais informações, confira "Sobre a análise de dependência".

Se você tiver pelo menos acesso de leitura ao repositório, poderá exportar o grafo de dependência para o repositório como uma SBOM (conta de materiais de software) compatível com SPDX, por meio da GitHub interface do usuário ou da API REST do GitHub. Para obter mais informações, confira "Como exportar uma lista de materiais de software para seu repositório".

Disponibilidade do gráfico de dependências

O grafo de dependência é gerado automaticamente para todos os repositórios públicos. Você pode optar por habilitá-lo para forks e repositórios privados. Para obter mais informações, confira "Gerenciando as configurações de segurança e análise do repositório".

Os administradores de repositórios também podem configurar o gráfico de dependências para repositórios privados. Para obter mais informações, confira "Configurando o grafo de dependência".

Dependências incluídas

O grafo de dependência inclui todas as dependências de um repositório que estão detalhadas nos arquivos de manifesto e de bloqueio, ou seus equivalentes, para ecossistemas com suporte, bem como quaisquer dependências que sejam enviadas ao usar a API de envio de dependência. Isso inclui:

  • As dependências diretas, que são explicitamente definidas em um arquivo de manifesto ou de bloqueio ou que foram enviadas ao usar a API de envio de dependência
  • Dependências indiretas dessas dependências diretas, também conhecidas como dependências transitórias ou subdependências

O grafo de dependência identifica as dependências indiretas somente se elas estiverem definidas em um arquivo de bloqueio ou tiverem sido enviadas ao usar a API de envio de dependência. Para o gráfico mais confiável, você deve usar os arquivos de bloqueio (ou o equivalente deles), pois definem exatamente quais versões das dependências diretas e indiretas você usa atualmente. Se você usar arquivos de bloqueio, você também terá certeza de que todos os contribuidores do repositório usarão as mesmas versões, o que facilitará para você testar e depurar o código. Se o ecossistema não tiver arquivos de bloqueio, você poderá usar ações pré-fabricadas que resolvam dependências transitivas para vários ecossistemas. Para obter mais informações, confira "Usar a API de envio de dependências".

Para saber mais sobre como o GitHub ajuda você a entender as dependências do seu ambiente, confira "Sobre a segurança da cadeia de suprimento".

Dependentes incluídos

Para repositórios públicos, apenas repositórios públicos que dependem dele ou de pacotes que publica são relatados. Essas informações não foram relatadas para repositórios privados.

Usar o gráfico de dependências

Você pode usar o gráfico de dependências para:

Leitura adicional