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.

Disponibilidade do gráfico de dependências

O gráfico de dependências está disponível para todos os repositórios públicos que definem dependências em um ecossistema de pacote suportado usando um formato de arquivo suportado. Os administradores do repositório também podem configurar o gráfico de dependências para repositórios privados.

Sobre o gráfico de dependências

O gráfico de dependências é um resumo do manifesto e bloqueia arquivos armazenados em um repositório. Para cada repositório, é exibido:

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

Ao fazer push de um commit para GitHub que altera ou adiciona um manifesto compatível ou um arquivo de bloqueio para o branch-padrão, o gráfico de dependências é atualizado automaticamente. Além disso, o gráfico é atualizado quando alguém faz push de uma alteração no repositório de uma de suas dependências. Para informações sobre os ecossistemas compatíveis e arquivos de manifesto, consulte "ecossistemas de pacote compatíveis" abaixo.

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, consulte "Sobre a revisão de dependências".

Dependências incluídas

O gráfico de dependências inclui todas as dependências de um repositório detalhadas nos arquivos de manifesto e de bloqueio ou seu equivalente para ecossistemas compatíveis. Isto inclui:

  • Dependências diretas, que são definidas explicitamente em um manifesto ou arquivo de bloqueio
  • 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 explicitamente a partir de um arquivo de bloqueio ou verificando as dependências de suas dependências diretas. 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.

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:

Habilitar o gráfico de dependências

Para gerar um gráfico dependente, GitHub precisa de acesso somente-leitura ao manifesto dependência e aos arquivos de bloqueios de um repositório. O gráfico de dependências é gerado automaticamente para todos os repositórios públicos e você pode optar por habilitá-lo para repositórios privados. For information about enabling or disabling it for private repositories, see "Exploring the dependencies of a repository."

Se o gráfico de dependências não estiver disponível no seu sistema, o administrador do site poderá habilitar o gráfico de dependências e Alertas do Dependabot. Para obter mais informações, consulte "Habilitar alertas para dependências vulneráveis em GitHub Enterprise Server

Quando o gráfico de dependências é ativado pela primeira vez, todos manifesto e arquivos de bloqueio para ecossistemas suportados são analisados imediatamente. O gráfico geralmente é preenchido em minutos, mas isso pode levar mais tempo para repositórios com muitas dependências. Uma vez habilitado, o gráfico é atualizado automaticamente a cada push para o repositório e cada push para outros repositórios no gráfico.

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, seu gráfico de dependências será mais preciso. Ele também reflete a configuração da criação atual e permite que o gráfico de dependências relate vulnerabilidades em dependências diretas e indiretas. As dependências indiretas que são inferidas a partir de um arquivo de manifesto (ou equivalente) são excluídas das verificações de dependências vulneráveis.

Gerenciador de pacotesIdiomasFormatos recomendadosTodos os formatos compatíveis
ComposerPHPcomposer.lockcomposer.json, composer.lock
dotnet CLI.NET languages (C#, C++, F#, VB).csproj, .vbproj, .nuspec, .vcxproj, .fsproj.csproj, .vbproj, .nuspec, .vcxproj, .fsproj, packages.config
MavenJava, Scalapom.xmlpom.xml
npmJavaScriptpackage-lock.jsonpackage-lock.json, package.json
Python PIPPythonrequirements.txt, pipfile.lockrequirements.txt, pipfile, pipfile.lock, setup.py*
RubyGemsRubyGemfile.lockGemfile.lock, Gemfile, *.gemspec
YarnJavaScriptyarn.lockpackage.json, yarn.lock

Observação: se você listar suas dependências de Python em um arquivo setup.py, será provável que não possamos analisar e listar cada dependência no seu projeto.

Leia mais

Esse documento ajudou você?Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.