Envío de dependencias
Usa la API de REST para enviar dependencias.
Acerca de los envíos de dependencias
Nota: La capacidad de usar la API REST para enviar dependencias actualmente está en versión beta pública y se encuentra sujeta a cambios.
Puedes usar la API REST para enviar dependencias para un proyecto. Esto te permite agregar dependencias, como las que se resuelven cuando se compila o crea software, a la característica de gráfico de dependencias de GitHub, lo que proporciona un panorama más completo de todos las dependencias del proyecto.
El gráfico de dependencias muestra las dependencias que envías mediante la API, además de las dependencias identificadas mediante archivos de bloqueo o de manifiesto en el repositorio (por ejemplo, un archivo package-lock.json
en un proyecto de JavaScript). Para más información sobre la visualización del gráfico de dependencias, consulta "Explorar las dependencias de un repositorio".
Las dependencias enviadas recibirán Dependabot alerts y Dependabot security updates para cualquier vulnerabilidad conocida. Solo obtendrás Dependabot alerts para las dependencias que proceden de uno de los ecosistemas compatibles de GitHub Advisory Database. Las dependencias enviadas no se mostrarán en la revisión de dependencias ni en la información de las dependencias de la organización.
Puedes enviar dependencias en forma de instantánea. Una instantánea es un conjunto de dependencias asociadas a un SHA de confirmación y otros metadatos, que refleja el estado actual del repositorio para una confirmación. Puedes optar por usar acciones realizadas previamente o crear tus propias acciones para enviar las dependencias en el formato necesario cada vez que se compila el proyecto. Para obtener más información, vea «Uso de Dependency submission API».
Puedes enviar varios conjuntos de dependencias para su inclusión en el gráfico de dependencias. La API de REST usa la propiedad job.correlator
y la categoría detector.name
de la instantánea para garantizar que se muestren los envíos más recientes para cada flujo de trabajo. La propiedad correlator
en sí es el campo principal que se usará para mantener la distinción de los envíos independientes. Una propiedad correlator
de ejemplo podría ser una simple combinación de dos variables disponibles en las ejecuciones de acciones: <GITHUB_WORKFLOW> <GITHUB_JOB>
.
Create a snapshot of dependencies for a repository
Create a new snapshot of a repository's dependencies. You must authenticate using an access token with the repo
scope to use this endpoint for a repository that the requesting user has access to.
Parámetros para "Create a snapshot of dependencies for a repository"
Encabezados | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nombre, Tipo, Descripción | ||||||||||||||||||||||||||||||||||||
accept string Setting to | ||||||||||||||||||||||||||||||||||||
Parámetros de la ruta de acceso | ||||||||||||||||||||||||||||||||||||
Nombre, Tipo, Descripción | ||||||||||||||||||||||||||||||||||||
owner string RequeridoThe account owner of the repository. The name is not case sensitive. | ||||||||||||||||||||||||||||||||||||
repo string RequeridoThe name of the repository. The name is not case sensitive. | ||||||||||||||||||||||||||||||||||||
Parámetros del cuerpo | ||||||||||||||||||||||||||||||||||||
Nombre, Tipo, Descripción | ||||||||||||||||||||||||||||||||||||
version integer RequeridoThe version of the repository snapshot submission. | ||||||||||||||||||||||||||||||||||||
job object Requerido | ||||||||||||||||||||||||||||||||||||
Properties of |
Nombre, Tipo, Descripción |
---|
id string RequeridoThe external ID of the job. |
correlator string RequeridoCorrelator provides a key that is used to group snapshots submitted over time. Only the "latest" submitted snapshot for a given combination of |
html_url string The url for the job. |
sha
string RequeridoThe commit SHA associated with this dependency snapshot. Maximum length: 40 characters.
ref
string RequeridoThe repository branch that triggered this snapshot.
detector
object RequeridoA description of the detector used.
Properties of detector
Nombre, Tipo, Descripción |
---|
name string RequeridoThe name of the detector used. |
version string RequeridoThe version of the detector used. |
url string RequeridoThe 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
Nombre, Tipo, Descripción | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
key object A user-defined key to represent an item in | ||||||||||||||||||||||||||||||
Properties of |
Nombre, Tipo, Descripción | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name string RequeridoThe name of the manifest. | |||||||||||||||
file object | |||||||||||||||
Properties of |
Nombre, Tipo, Descripción |
---|
source_location string The 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
Nombre, Tipo, Descripción | |||||||||
---|---|---|---|---|---|---|---|---|---|
key object A user-defined key to represent an item in | |||||||||
Properties of |
Nombre, Tipo, Descripción |
---|
package_url string Package-url (PURL) of dependency. See https://github.com/package-url/purl-spec for more details. |
metadata object User-defined metadata to store domain-specific information limited to 8 keys with scalar values. |
relationship string A notation of whether a dependency is requested directly by this manifest or is a dependency of another dependency. Puede ser uno de los siguientes: |
scope string A 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. Puede ser uno de los siguientes: |
dependencies array of strings Array of package-url (PURLs) of direct child dependencies. |
scanned
string RequeridoThe time at which the snapshot was scanned.
Códigos de estado de respuesta HTTP para "Create a snapshot of dependencies for a repository"
status code | Descripción |
---|---|
201 | Created |
Ejemplos de código para "Create a snapshot of dependencies for a repository"
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/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"
}