Skip to main content

Configuración de la revisión de dependencias

Puedes usar la revisión de dependencias para detectar vulnerabilidades antes de que se agreguen al proyecto.

¿Quién puede utilizar esta característica?

Propietarios de repositorios, propietarios de organizaciones, administradores de seguridad y usuarios con el rol de administrador

Acerca de la revisión de dependencias

La revisión de dependencias te permite entender los cambios a las dependencias y el impacto de seguridad de estos cambios en cada solicitud de cambios. Proporciona una visualización fácil de entender para los cambios de dependencia con un diferencial importante en la pestaña "Archivos cambiados" de una solicitud de incorporación de cambios. La revisión de dependencias te informa sobre:

  • Qué dependencias se agregaron, eliminaron o actualizaron junto con las fechas de lanzamiento.
  • Cuántos proyectos utilizan estos componentes.
  • Datos de las vulnerabilidades para estas dependencias.

Para obtener más información, vea «Acerca de la revisión de dependencias» y «Revisar los cambios de las dependencias en una solicitud de cambios».

Acerca de la configuración de la revisión de dependencias

La revisión de dependencias se incluye en GitHub Enterprise Cloud para los repositorios públicos. Para usar la revisión de dependencias en repositorios privados propiedad de las organizaciones, debes tener una licencia para GitHub Advanced Security y tener habilitado el gráfico de dependencias.

Los administradores del repositorio pueden habilitar o inhabilitar la gráfica de dependencias para los repositorios privados o internos.

También puede habilitar o inhabilitar la gráfica de dependencias para todos los repositorios que pertenecen a su cuenta de usuario u organización. Para obtener más información, consulta "Administración de la configuración de seguridad y análisis para la cuenta personal".

También puedes habilitar el gráfico de dependencias para varios repositorios de una organización al mismo tiempo. Para obtener más información, consulte "Protección de la organización."

  1. En GitHub, navegue hasta la página principal del repositorio.

  2. En el nombre del repositorio, haz clic en Configuración. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de un encabezado de repositorio en el que se muestran las pestañas. La pestaña "Configuración" está resaltada con un contorno naranja oscuro.

  3. En la sección "Seguridad" de la barra lateral, haga clic en Análisis y seguridad del código.

  4. Lea el mensaje sobre otorgar acceso de solo lectura a GitHub Enterprise Cloud para los datos del repositorio para poder habilitar el gráfico de dependencias. A continuación, haga clic en Enable junto a "Dependency Graph".

    Captura de pantalla en la que se muestra cómo habilitar el gráfico de dependencias de un repositorio. El botón "Habilitar" está resaltado con un contorno naranja oscuro.

    Puedes deshabilitar el gráfico de dependencias en cualquier momento haciendo clic en Disable junto a "Dependency Graph" en la página de configuración de "code security and analysis".

  5. Desplázate hacia abajo en la página y si "GitHub Advanced Security" no está habilitado, haz clic en Habilitar junto a la característica.

Acerca de la configuración de la Acción de revisión de dependencias

La Acción de revisión de dependencias examina las solicitudes de incorporación de cambios de dependencia y genera un error si las nuevas dependencias tienen vulnerabilidades conocidas. La acción es compatible con un punto de conexión de API que compara las dependencias entre dos revisiones e informa de las diferencias.

Para obtener más información sobre la acción y el punto de conexión de API, consulta la documentación dependency-review-action y «Puntos de conexión de la API de REST para la revisión de dependencias».

Los propietarios de la organización pueden implementar la revisión de dependencias a escala aplicando el uso de las variables de Acción de revisión de dependencias en los repositorios de la organización. Esto implica el uso de conjuntos de reglas de repositorio para los que establecerá las variables de Acción de revisión de dependencias como un flujo de trabajo necesario, lo que significa que las solicitudes de incorporación de cambios solo se pueden combinar una vez que el flujo de trabajo pasa todas las comprobaciones necesarias. Para obtener más información, vea «Aplicación de la revisión de dependencias en una organización».

Esta es una lista de las opciones de configuración comunes. Para obtener más información y una lista completa de opciones, vea Revisión de dependencias en GitHub Marketplace.

OpciónObligatorioUso
fail-on-severityDefine el umbral del nivel de gravedad (low, moderate, high y critical).
La acción generará un error en las solicitudes de incorporación de cambios que introduzcan vulnerabilidades del nivel de gravedad especificado o superior.
allow-licensesContiene una lista de licencias permitidas. Encontrarás los valores posibles para este parámetro en la página Licencias de la documentación de la API.
La acción generará un error en las solicitudes de incorporación de cambios que introduzcan dependencias con licencias que no coincidan con las de la lista.
deny-licensesContiene una lista de licencias prohibidas. Encontrarás los valores posibles para este parámetro en la página Licencias de la documentación de la API.
La acción generará un error en las solicitudes de incorporación de cambios que introduzcan dependencias con licencias que coincidan con las de la lista.
fail-on-scopesContiene una lista de cadenas que representan los entornos de compilación que desea admitir (development, runtime, unknown).
La acción producirá un error en las solicitudes de incorporación de cambios que introducen vulnerabilidades en los ámbitos que coinciden con la lista.
comment-summary-in-prHabilite o deshabilite los informes del resumen de revisión como comentario en la solicitud de incorporación de cambios. Si está habilitado, debe conceder al flujo de trabajo o al trabajo el permiso pull-requests: write.
allow-ghsasContiene una lista de identificadores GitHub Advisory Database que se pueden omitir durante la detección. Puedes encontrar los valores posibles para este parámetro en los GitHub Advisory Database.
config-fileEspecifica una ruta de acceso a un archivo de configuración. El archivo de configuración puede ser local al repositorio o un archivo ubicado en un repositorio externo.
external-repo-tokenEspecifica un token para capturar el archivo de configuración, si el archivo reside en un repositorio externo privado. El token debe tener acceso de lectura al repositorio.

Tip

Las opciones allow-licenses y deny-licenses son mutuamente excluyentes.

Configuración de la Acción de revisión de dependencias

Hay dos métodos para configurar la Acción de revisión de dependencias:

  • Insertar las opciones de configuración en el archivo de flujo de trabajo.
  • Hacer referencia a un archivo de configuración en el archivo de flujo de trabajo.

Observa que en todos los ejemplos se usa un número de versión corto para la acción (v3) en lugar de un número de versión SemVer (por ejemplo, v3.0.8). Esto garantiza que uses la versión secundaria más reciente de la acción.

Uso de la configuración insertada para configurar la Acción de revisión de dependencias

  1. Agrega un nuevo flujo de trabajo YAML a la carpeta .github/workflows.

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
      contents: read
    
    jobs:
      dependency-review:
        runs-on: ubuntu-latest
        steps:
         - name: 'Checkout Repository'
           uses: actions/checkout@v4
         - name: Dependency Review
           uses: actions/dependency-review-action@v4
    
  2. Especifique su configuración.

    En este archivo de ejemplo de la Acción de revisión de dependencias se muestra cómo se pueden usar las opciones de configuración disponibles.

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
      contents: read
    
    jobs:
      dependency-review:
        runs-on: ubuntu-latest
        steps:
        - name: 'Checkout Repository'
          uses: actions/checkout@v4
        - name: Dependency Review
          uses: actions/dependency-review-action@v4
          with:
            # Possible values: "critical", "high", "moderate", "low"
            fail-on-severity: critical
    
            
            # You can only include one of these two options: `allow-licenses` and `deny-licenses`
            # ([String]). Only allow these licenses (optional)
            # Possible values: Any SPDX-compliant license identifiers or expressions from https://spdx.org/licenses/
            allow-licenses: GPL-3.0, BSD-3-Clause, MIT
            # ([String]). Block the pull request on these licenses (optional)
            # Possible values: Any SPDX-compliant license identifiers or expressions from https://spdx.org/licenses/
            deny-licenses: LGPL-2.0, BSD-2-Clause
            
            # ([String]). Skip these GitHub Advisory Database IDs during detection (optional)
            # Possible values: Any valid GitHub Advisory Database ID from https://github.com/advisories
            allow-ghsas: GHSA-abcd-1234-5679, GHSA-efgh-1234-5679
            # ([String]). Block pull requests that introduce vulnerabilities in the scopes that match this list (optional)
            # Possible values: "development", "runtime", "unknown"
            fail-on-scopes: development, runtime
    

Uso de un archivo de configuración para configurar la Acción de revisión de dependencias

  1. Agrega un nuevo flujo de trabajo YAML a la carpeta .github/workflows y usa config-file para especificar que usas un archivo de configuración.

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
     contents: read
    
    jobs:
      dependency-review:
        runs-on: ubuntu-latest
        steps:
        - name: 'Checkout Repository'
          uses: actions/checkout@v4
        - name: Dependency Review
          uses: actions/dependency-review-action@v4
          with:
           # ([String]). Representing a path to a configuration file local to the repository or in an external repository.
           # Possible values: An absolute path to a local file or an external file.
           config-file: './.github/dependency-review-config.yml'
           # Optional alternative syntax for an external file: OWNER/REPOSITORY/FILENAME@BRANCH (uncomment if preferred)
           # config-file: 'github/octorepo/dependency-review-config.yml@main'
    
           # ([Token]) Use if your configuration file resides in a private external repository.
           # Possible values: Any GitHub token with read access to the private external repository.
           external-repo-token: 'ghp_123456789abcde'
    
  2. Crea el archivo de configuración en la ruta de acceso especificada.

    En este archivo de ejemplo YAML se ilustra cómo puedes usar las opciones de configuración disponibles.

    YAML
      # Possible values: "critical", "high", "moderate", "low"
      fail-on-severity: critical
    
      # You can only include one of these two options: `allow-licenses` and `deny-licenses`
      # ([String]). Only allow these licenses (optional)
      # Possible values: Any SPDX-compliant license identifiers or expressions from https://spdx.org/licenses/
      allow-licenses:
        - GPL-3.0
        - BSD-3-Clause
        - MIT
       # ([String]). Block the pull request on these licenses (optional)
       # Possible values: Any SPDX-compliant license identifiers or expressions from https://spdx.org/licenses/
      deny-licenses:
        - LGPL-2.0
        - BSD-2-Clause
    
       # ([String]). Skip these GitHub Advisory Database IDs during detection (optional)
       # Possible values: Any valid GitHub Advisory Database ID from https://github.com/advisories
      allow-ghsas:
        - GHSA-abcd-1234-5679
        - GHSA-efgh-1234-5679
       # ([String]). Block pull requests that introduce vulnerabilities in the scopes that match this list (optional)
       # Possible values: "development", "runtime", "unknown"
      fail-on-scopes:
        - development
        - runtime
    

Para obtener más información sobre las opciones de configuración, consulta dependency-review-action.

Información adicional