Skip to main content

Esta versão do GitHub Enterprise Server será descontinuada em 2026-03-17. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise Server. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Ecossistemas de pacotes com suporte a gráficos de dependência

O gráfico de dependências suporta uma variedade de ecossistemas.

Sobre o gráfico de dependências

Para uma introdução ao gráfico de dependências, consulte Sobre o gráfico de dependências.

Construindo o gráfico de dependências

Se o gráfico de dependências estiver ativado, ele irá verificar seu repositório em busca de arquivos de manifesto usados ​​pelos ecossistemas de pacotes de linguagens de programação. Ao encontrar um dos arquivos de manifesto compatíveis, o programa irá analisar o arquivo e construir uma declaração do seu conteúdo, incluindo o nome e a versão de cada pacote. Isso se chama "análise estática".

Alguns arquivos definem explicitamente quais versões são usadas para todas as dependências diretas e indiretas. Eles bloqueiam as versões dos pacotes para aquelas incluídas na compilação e permitem que o Dependabot encontre versões vulneráveis em dependências diretas e indiretas. Se você usar esses formatos, seu gráfico de dependências será mais preciso, por isso eles serão listados na coluna "Arquivos recomendados" da tabela "Ecossistemas de pacotes suportados". Consulte Ecossistemas de pacotes suportados.

Ecossistemas de pacotes com suporte por meio de ações de envio de dependência

Além da análise estática e do envio automático do gráfico de dependências, você pode usar a API API de envio de dependência para adicionar dependências de tempo de compilação ao gráfico de dependências ou para adicionar dependências de gerenciadores de pacotes e ecossistemas de sua escolha, mesmo que o ecossistema não esteja na tabela "Ecossistemas de pacotes suportados". As informações obtidas dessas dependências enviadas fluirão, por sua vez, para Dependabot updates e Dependabot alerts.

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 obter mais informações sobre API de envio de dependência, leia Usar a API de envio de dependências.

Ecossistemas de pacotes com suporte

Gerenciador de pacotesIdiomasDependências transitivas estáticasEnvio automático de dependênciaArquivos recomendadosArquivos adicionais
CargoRustCargo.lockCargo.toml
ComposerPHPcomposer.lockcomposer.json
NuGetLinguagens .NET (C#, F#, VB), C++
          `.csproj`, `.vbproj`, `.nuspec`, , `.vcxproj``.fsproj` | `packages.config` |

| Fluxos de trabalho GitHub Actions | YAML | | | .yml, .yaml | | | Módulos Go | Go | | | go.mod| | | Gradle | Java | | | | | | | | Maven | Java, Scala | | | pom.xml | | | npm | JavaScript | | | package-lock.json | package.json| | | | pip | Python | | | requirements.txt, pipfile.lock | pipfile, setup.py | | pnpm | JavaScript | | | pnpm-lock.yaml | package.json | | pub | Dart | | | pubspec.lock | pubspec.yaml | | Poetry | Python | | | poetry.lock | pyproject.toml | | RubyGems | Ruby | | | Gemfile.lock | Gemfile, *.gemspec | | Gerenciador de Pacotes Swift | Swift | | | Package.resolved | | | Yarn | JavaScript | | | yarn.lock | package.json |

Observação

  • 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 saber mais, confira Sintaxe de fluxo de trabalho para o GitHub Actions.
  • Para GitHub Actions, Dependabot alerts são gerados apenas para ações que usam controle de versão semântico, não controle de versão SHA. Para obter mais informações, confira Sobre alertas do Dependabot e Sobre as atualizações da versão do Dependabot.

Eliminação de duplicação de manifestos

O grafo de dependência pode aprender sobre dependências de três maneiras diferentes: análise estática, envio automático e envio manual. Um repositório pode ter vários métodos configurados, o que pode fazer com que o mesmo manifesto do pacote seja verificado várias vezes, potencialmente com saídas diferentes de cada verificação. O grafo de dependência usa a lógica de eliminação de duplicação para analisar as saídas, priorizando as informações mais precisas para cada arquivo de manifesto.

O grafo de dependência exibe apenas uma instância de cada arquivo de manifesto usando as regras de precedência a seguir.

  1. Os envios de usuário têm a prioridade mais alta, pois geralmente são criados durante compilações de artefatos que têm as informações mais completas.
    • Se houver vários instantâneos manuais de detectores diferentes, eles serão classificados em ordem alfabética por correlator e pelo primeiro usado.
    • Se houver dois correlacionadores com o mesmo detector, as dependências resolvidas serão mescladas. Para obter mais informações sobre correlacionadores e detectores, consulte Pontos de extremidade da API REST para envio de dependências.
  2. Os envios automáticos têm a segunda prioridade mais alta, pois também são criados durante compilações de artefato, mas não são enviados pelos usuários.
  3. Os resultados da análise estática são usados quando nenhum outro dado está disponível.