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 gráfico de dependência é um resumo dos arquivos de manifesto e de bloqueio armazenados em um repositório e quaisquer dependências enviadas para o repositório usando o API de envio de dependência (beta). Para cada repositório, ele mostra as dependências, ou seja, os ecossistemas e os pacotes dos quais ele depende.

Para cada dependência, você pode ver as 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.

O GitHub Enterprise Server não calcula informações sobre os dependentes, os repositórios e os pacotes que dependem de um repositório.

Quando você efetua push de um commit para o GitHub Enterprise Server 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. Para obter informações sobre os ecossistemas compatíveis e os arquivos de manifesto, confira "Ecossistemas de pacotes compatíveis" abaixo.

Além disso, você pode usar a API de envio de dependência (beta) para enviar dependências do gerenciador de pacotes ou ecossistema de sua escolha, mesmo que o ecossistema não tenha suporte no grafo de dependência para análise de arquivo de bloqueio ou manifesto. Dependências submetidas a um projeto usando API de envio de dependência (beta) mostrarão qual detector foi usado para seu envio e quando eles foram enviados. Para obter mais informações sobre API de envio de dependência, consulte "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

Os proprietários de empresas podem configurar o grafo de dependência e os Dependabot alerts para uma empresa. Para saber mais, confira "Habilitando o gráfico de dependências para a sua empresa" e "Habilitando o Dependabot para sua empresa".

Para obter mais informações sobre a configuração do grafo de dependência, confira "Configurando o grafo de dependência".

Dependências incluídas

O gráfico de dependência inclui todas as dependências de um repositório detalhadas nos arquivos de manifesto e de bloqueio, ou um equivalente, para ecossistemas com suporte, bem como todas as dependências enviadas usando o API de envio de dependência (beta). Isso inclui:

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

O gráfico de dependências identifica dependências indiretas dos arquivos de bloqueio. 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 Enterprise Server 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:

Ecossistemas de pacote compatíveis

Os formatos recomendados definem explicitamente quais versões são usadas para todas as dependências diretas e indiretas. Se você usar esses formatos, o grafo de dependência será mais preciso. Ele também reflete a configuração de build atual e permite que o grafo de dependência relate as vulnerabilidades em dependências diretas e indiretas.

Gerenciador de pacotesIdiomasFormatos recomendadosTodos os formatos com suporte
CargoRustCargo.lockCargo.toml, Cargo.lock
CompositorPHPcomposer.lockcomposer.json, composer.lock
NuGet.NET languages (C#, F#, VB), C++.csproj, .vbproj, .nuspec, .vcxproj, .fsproj.csproj, .vbproj, .nuspec, .vcxproj, .fsproj, packages.config
Fluxos de trabalho GitHub ActionsYAML.yml, .yaml.yml, .yaml
Módulos GoGogo.modgo.mod
MavenJava, Scalapom.xmlpom.xml
npmJavaScriptpackage-lock.jsonpackage-lock.json, package.json
pipPythonrequirements.txt, pipfile.lockrequirements.txt, pipfile, pipfile.lock, setup.py
pnpmJavaScriptpnpm-lock.yamlpackage.json, pnpm-lock.yaml
pubDartpubspec.lockpubspec.yaml, pubspec.lock
Python PoesiaPythonpoetry.lockpoetry.lock, pyproject.toml
RubyGemsRubyGemfile.lockGemfile.lock, Gemfile, *.gemspec
Gerenciador de Pacotes SwiftSwiftPackage.resolvedPackage.resolved
YarnJavaScriptyarn.lockpackage.json, yarn.lock

Observações:

  • Se você listar as dependências Python em um arquivo setup.py, talvez não seja possível analisar nem listar todas as dependências do projeto.

  • Os fluxos de trabalho do GitHub Actions precisam estar localizados no diretório .github/workflows/ de um repositório para serem reconhecidos como manifestos. As ações ou os fluxos de trabalho referenciados com a sintaxe jobs[*].steps[*].uses ou jobs.<job_id>.uses serão analisados como dependências. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".

  • O Dependabot criará apenas Dependabot alerts para GitHub Actions vulneráveis que usam controle de versão semântico. Você não receberá alertas sobre uma ação vulnerável que usa o controle de versão SHA. Se você usar GitHub Actions com o controle de versão SHA, recomendamos habilitar Dependabot version updates para que seu repositório ou organização mantenha as ações que você usa atualizadas com as versões mais recentes. Para obter mais informações, consulte "Sobre alertas do Dependabot" e "Sobre as atualizações da versão do Dependabot".

Você pode usar a API de envio de dependência (beta) para adicionar dependências do gerenciador de pacotes ou do ecossistema de sua escolha ao gráfico de dependências, mesmo que o ecossistema não esteja na lista de ecossistemas compatíveis acima. Dependências enviadas para um projeto usando API de envio de dependência (beta) mostrarão qual detector foi usado para seu envio e quando elas foram enviadas.

Você só obterá Dependabot alerts das dependências de um dos ecossistemas com suporte do GitHub Advisory Database. Para obter mais informações sobre o API de envio de dependência, consulte "Usar a API de envio de dependências".

Leitura adicional