Pontos de extremidade da API REST para envio de dependências
Use a API REST para enviar dependências.
Sobre os envios de dependências
Você pode usar a API REST para enviar dependências para um projeto. Isso permite que você adicione dependências, como aquelas resolvidas quando o software é compilado ou criado, ao recurso de gráfico de dependências do GitHub, fornecendo uma visão mais completa de todas as dependências do seu projeto.
O gráfico mostra todas as dependências que você envia usando a API, além de quaisquer dependências identificadas por meio de arquivos de manifesto ou de bloqueio no repositório (por exemplo, um arquivo package-lock.json em um projeto JavaScript). Para obter mais informações sobre exibição do grafo de dependência, confira Explorar as dependências de um repositório.
As dependências enviadas receberão Dependabot alerts e Dependabot security updates para quaisquer vulnerabilidades conhecidas. Você só obterá os Dependabot alerts das dependências de um dos ecossistemas compatíveis com o GitHub Advisory Database. Para saber mais sobre esses ecossistemas, confira Sobre o banco de dados de avisos do GitHub. Para dependências transitivas enviadas por meio de API de envio de dependência, o Dependabot abrirá automaticamente solicitações de pull para atualizar a dependência pai, se uma atualização estiver disponível.
As dependências enviadas serão mostradas na revisão de dependência, mas não estão disponíveis nos insights de dependência da sua organização.
Observação
A API de revisão de dependência e API de envio de dependência funcionam em conjunto. Isso significa que a API de revisão de dependência incluirá dependências enviadas por meio de API de envio de dependência.
É possível enviar dependências na forma de um instantâneo. Um instantâneo é um conjunto de dependências associadas a um SHA de commit e a outros metadados, que reflete o estado atual do repositório de um commit. É possível optar por usar ações predefinidas ou criar suas próprias ações para enviar suas dependências no formato necessário sempre que seu projeto for criado. Para saber mais, confira Usar a API de envio de dependências.
É possível enviar diversos conjuntos de dependências para serem incluídos em seu grafo de dependência. A API REST usa a propriedade job.correlator e a categoria detector.name do instantâneo para garantir que os envios mais recentes para cada fluxo de trabalho sejam exibidos. A propriedade correlator em si é o campo primário que você usará para diferenciar os envios independentes. Um correlator de exemplo pode ser uma combinação simples de duas variáveis disponíveis em execuções de ações: <GITHUB_WORKFLOW> <GITHUB_JOB>.
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.
- 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.
 
- 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.
- Os resultados da análise estática são usados quando nenhum outro dado está disponível.
Create a snapshot of dependencies for a repository
Create a new snapshot of a repository's dependencies.
The authenticated user must have access to the repository.
OAuth app tokens and personal access tokens (classic) need the repo scope to use this endpoint.
Tokens de acesso refinados para "Create a snapshot of dependencies for a repository"
Esse ponto de extremidade funciona com os seguintes tipos de token refinados:
- Tokens de acesso de usuário do aplicativo GitHub
- Tokens de acesso à instalação do aplicativo GitHub
- Tokens de acesso pessoal refinados
O token refinado deve ter os seguintes conjuntos de permissões:
- "Contents" repository permissions (write)
Parâmetros para "Create a snapshot of dependencies for a repository"
| Nome, Tipo, Descrição | 
|---|
| acceptstringSetting to  | 
| Nome, Tipo, Descrição | 
|---|
| ownerstring ObrigatórioThe account owner of the repository. The name is not case sensitive. | 
| repostring ObrigatórioThe name of the repository without the  | 
| Nome, Tipo, Descrição | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| versioninteger ObrigatórioThe version of the repository snapshot submission. | |||||||||||||||||||||
| jobobject Obrigatório | |||||||||||||||||||||
| Properties of  | 
| Nome, Tipo, Descrição | 
|---|
| idstring ObrigatórioThe external ID of the job. | 
| correlatorstring ObrigatórioCorrelator provides a key that is used to group snapshots submitted over time. Only the "latest" submitted snapshot for a given combination of  | 
| html_urlstringThe url for the job. | 
sha string ObrigatórioThe commit SHA associated with this dependency snapshot. Maximum length: 40 characters.
ref string ObrigatórioThe repository branch that triggered this snapshot.
detector object ObrigatórioA description of the detector used.
Properties of detector
| Nome, Tipo, Descrição | 
|---|
| namestring ObrigatórioThe name of the detector used. | 
| versionstring ObrigatórioThe version of the detector used. | 
| urlstring ObrigatórioThe url of the detector used. | 
metadata object User-defined metadata to store domain-specific information limited to 8 keys with scalar values.
manifests object A collection of package manifests, which are a collection of related dependencies declared in a file or representing a logical group of dependencies.
Properties of manifests
| Nome, Tipo, Descrição | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| keyobjectA user-defined key to represent an item in  | ||||||||||||||||||
| Properties of  | 
| Nome, Tipo, Descrição | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| namestring ObrigatórioThe name of the manifest. | |||||||||
| fileobject | |||||||||
| Properties of  | 
| Nome, Tipo, Descrição | 
|---|
| source_locationstringThe path of the manifest file relative to the root of the Git repository. | 
metadata object User-defined metadata to store domain-specific information limited to 8 keys with scalar values.
resolved object A collection of resolved package dependencies.
Properties of resolved
| Nome, Tipo, Descrição | ||||||
|---|---|---|---|---|---|---|
| keyobjectA user-defined key to represent an item in  | ||||||
| Properties of  | 
| Nome, Tipo, Descrição | 
|---|
| package_urlstringPackage-url (PURL) of dependency. See https://github.com/package-url/purl-spec for more details. | 
| metadataobjectUser-defined metadata to store domain-specific information limited to 8 keys with scalar values. | 
| relationshipstringA notation of whether a dependency is requested directly by this manifest or is a dependency of another dependency. Pode ser um dos:  | 
| scopestringA notation of whether the dependency is required for the primary build artifact (runtime) or is only used for development. Future versions of this specification may allow for more granular scopes. Pode ser um dos:  | 
| dependenciesarray of stringsArray of package-url (PURLs) of direct child dependencies. | 
scanned string ObrigatórioThe time at which the snapshot was scanned.
Códigos de status de resposta HTTP para "Create a snapshot of dependencies for a repository"
| Código de status | Descrição | 
|---|---|
| 201 | Created | 
Exemplos de código para "Create a snapshot of dependencies for a repository"
Exemplo de solicitação
curl -L \
  -X POST \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  https://api.github.com/repos/OWNER/REPO/dependency-graph/snapshots \
  -d '{"version":0,"sha":"ce587453ced02b1526dfb4cb910479d431683101","ref":"refs/heads/main","job":{"correlator":"yourworkflowname_youractionname","id":"yourrunid"},"detector":{"name":"octo-detector","version":"0.0.1","url":"https://github.com/octo-org/octo-repo"},"scanned":"2022-06-14T20:25:00Z","manifests":{"package-lock.json":{"name":"package-lock.json","file":{"source_location":"src/package-lock.json"},"resolved":{"@actions/core":{"package_url":"pkg:/npm/%40actions/core@1.1.9","dependencies":["@actions/http-client"]},"@actions/http-client":{"package_url":"pkg:/npm/%40actions/http-client@1.0.7","dependencies":["tunnel"]},"tunnel":{"package_url":"pkg:/npm/tunnel@0.0.6"}}}}}'Response
Status: 201{
  "id": 12345,
  "created_at": "2018-05-04T01:14:52Z",
  "message": "Dependency results for the repo have been successfully updated.",
  "result": "SUCCESS"
}