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:
- Explore os repositórios dos quais o seu código depende e aqueles que dependem dele . Para obter mais informações, consulte "Explorar as dependências de um repositório".
- Visualizar um resumo das dependências usadas nos repositórios da sua organização em um único painel. Para obter mais informações, consulte "Visualizar informações na organização".
- Ver e atualizar dependências vulneráveis no seu repositório. Para obter mais informações, consulte "Sobre alertas para dependências vulneráveis.
- Veja as informações sobre dependências vulneráveis em pull requests. Para obter mais informações, consulte "Revisar as alterações de dependências em um pull request".
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 pacotes | Idiomas | Formatos recomendados | Todos os formatos compatíveis |
|---|---|---|---|
| Composer | PHP | composer.lock | composer.json, composer.lock |
dotnet CLI | .NET languages (C#, C++, F#, VB) | .csproj, .vbproj, .nuspec, .vcxproj, .fsproj | .csproj, .vbproj, .nuspec, .vcxproj, .fsproj, packages.config |
| Maven | Java, Scala | pom.xml | pom.xml |
| npm | JavaScript | package-lock.json | package-lock.json, package.json |
| Python PIP | Python | requirements.txt, pipfile.lock | requirements.txt, pipfile, pipfile.lock, setup.py* |
| RubyGems | Ruby | Gemfile.lock | Gemfile.lock, Gemfile, *.gemspec |
| Yarn | JavaScript | yarn.lock | package.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.