Sobre o grafo de dependência
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 a versão, informações da licença, o arquivo de manifesto que a incluiu e se ela tem vulnerabilidades conhecidas. Para ecossistemas de pacotes que dão suporte a dependências transitivas, o status da relação será exibido e você poderá clicar em "", e em seguida em "Show paths" para ver o caminho transitivo que trouxe a dependência.
Você também pode pesquisar uma dependência específica usando a barra de pesquisa. As dependências são classificadas automaticamente com os pacotes vulneráveis na parte superior.
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. Dependências enviadas para um projeto usando a API de envio de dependência mostrarão qual detector foi usado para seu envio e quando elas foram enviadas. Para saber mais sobre o API de envio de dependência, confira Using the dependency submission API.
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 saber mais, 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 saber mais, confira Exporting a software bill of materials for your repository.
Disponibilidade do gráfico de dependências
Os administradores de repositórios podem habilitar ou desabilitar o grafo de dependência em repositórios. Para obter mais informações, confira Gerenciando as configurações de segurança e análise do repositório.
Os administradores de repositórios podem habilitar ou desabilitar o grafo de dependência em repositórios. Confira Configuring the dependency graph.
{ % data reusables.dependabot.dependabot-alerts-dependency-graph-enterprise % }
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 saber mais, confira Using the dependency submission API.
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.
Usar o gráfico de dependências
Você pode usar o gráfico de dependências para:
- Explore os repositórios dos quais o seu código depende e aqueles que dependem dele. Para saber mais, confira Exploring the dependencies of a repository.
- Ver e atualizar dependências vulneráveis no seu repositório. Para saber mais, confira Sobre alertas do Dependabot.
- Veja as informações sobre dependências vulneráveis em pull requests. Para saber mais, confira Revendo alterações de dependência em um pull request.
Leitura adicional
-
[Grafo de dependência](https://en.wikipedia.org/wiki/Dependency_graph) na Wikipédia -
[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository) -
[AUTOTITLE](/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts) -
[AUTOTITLE](/code-security/dependabot/troubleshooting-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies)