Skip to main content

Uso de Dependency submission API

Puedes usar Dependency submission API para enviar dependencias para proyectos, como las dependencias resueltas cuando se crea o compila un proyecto.

Nota: Actualmente, la API de envío de dependencias se encuentra en versión beta pública y está sujeta a cambios.

Acerca de Dependency submission API

Dependency submission API te permite 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.

Las dependencias se envían a Dependency submission API 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. Para más información sobre Dependency submission API, consulta la documentación de Dependency submission REST API.

Envío de dependencias en tiempo de compilación

Puedes usar Dependency submission API en un flujo de trabajo de GitHub Actions para enviar dependencias para tu proyecto cuando se compila.

Uso de acciones hechas previamente

La manera más sencilla de usar Dependency submission API es agregar una acción hecha previamente al repositorio que recopilará y convertirá la lista de dependencias al formato de instantánea requerido y enviará la lista a la API. Las acciones que completan estos pasos para varios ecosistemas están disponibles en GitHub Marketplace y se crearán más acciones durante el transcurso de la versión beta y más adelante. Encuentra vínculos a las acciones que actualmente están disponibles en la tabla que se muestra a continuación:

EcosistemaAcción
GoEnvío de dependencias de Go

Por ejemplo, el flujo de trabajo de Envío de dependencias de Go siguiente calcula las dependencias de un destino de compilación de Go (un archivo de Go con una función main) y envía la lista a Dependency Submission API.


name: Go Dependency Submission
on:
  push:
    branches:
      - main
      
# The API requires write permission on the repository to submit dependencies
permissions:
  contents: write

# Envionment variables to configure Go and Go modules. Customize as necessary
env:
  GOPROXY: '' # A Go Proxy server to be used
  GOPRIVATE: '' # A list of modules are considered private and not requested from GOPROXY
jobs:
  go-action-detection:
    runs-on: ubuntu-latest
    steps:
      - name: 'Checkout Repository'
        uses: actions/checkout@v3
        
      - uses: actions/setup-go@v3
        with:
          go-version: ">=1.18.0"
          
      - name: Run snapshot action
        uses: @actions/go-dependency-submission@v1
        with:
            # Required: Define the repo path to the go.mod file used by the
            # build target
            go-mod-path: go-example/go.mod
            #
            # Optional. Define the repo path of a build target,
            # a file with a `main()` function.
            # If undefined, this action will collect all dependencies
            # used by all build targets for the module. This may
            # include Go dependencies used by tests and tooling.
            go-build-target: go-example/cmd/octocat.go

Creación de una acción propia

De manera alternativa, puedes escribir tu propia acción para enviar dependencias para el proyecto en tiempo de compilación. El flujo de trabajo debe:

  1. Generar una lista de dependencias para el proyecto.
  2. Traducir la lista de dependencias al formato de instantánea que Dependency submission API acepta. Para más información sobre el formato, consulta los parámetros de cuerpo para la operación "Crear una instantánea de repositorio" de la API en la documentación de Dependency submission REST API.
  3. Enviar la lista de dependencias con formato a Dependency submission API.

GitHub Enterprise Cloud mantiene el kit de herramientas de envío de dependencias, una biblioteca de TypeScript que te ayuda a crear tu propia acción de Acciones de GitHub para enviar dependencias a Dependency submission API. Para más información sobre cómo escribir una acción, consulta "Creación de acciones".