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.

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, consulta «Acerca de la revisión de dependencias» y «Revisión de los cambios de dependencia en una solicitud de incorporación 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.

Repository administrators can enable or disable the dependency graph for private repositories.

You can also enable or disable the dependency graph for all repositories owned by your user account or organization. For more information, see "Configuring the dependency graph."

  1. On GitHub.com, navigate to the main page of the repository.

  2. Debajo del nombre del repositorio, haz clic en Configuración. Botón de configuración del repositorio

  3. In the "Security" section of the sidebar, click Code security and analysis.

  4. Read the message about granting GitHub Enterprise Cloud read-only access to the repository data to enable the dependency graph, then next to "Dependency Graph", click Enable. "Enable" button for the dependency graph You can disable the dependency graph at any time by clicking Disable next to "Dependency Graph" on the settings page for "Code security and analysis."

  5. Si «GitHub Advanced Security» no está habilitado, haz clic en Habilitar junto a la característica. Captura de pantalla de la característica de seguridad avanzada de GitHub con el botón «Habilitar» resaltado

Acerca de la configuración de la dependency review action

La dependency review action 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 "Revisión de dependencias" en la documentación de la API.

Están disponibles las siguientes opciones de configuración.

OpciónObligatorioUso
fail-on-severityOpcionalesDefine 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.

Sugerencia: Las opciones allow-licenses y deny-licenses se excluyen mutuamente.

Configuración de la dependency review action

Hay dos métodos para configurar la dependency review action:

  • 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.

Usar la configuración insertada para configurar la dependency review action

  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@v3
           - name: Dependency Review
             uses: actions/dependency-review-action@v3
  2. Especifique su configuración.

    En este archivo de ejemplo de dependency review action 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@v3
          - name: Dependency Review
            uses: actions/dependency-review-action@v3
            with:
            # Possible values: "critical", "high", "moderate", "low" 
            fail-on-severity: critical
    
            # You can only include one of these two options: `allow-licenses` and `deny-licences`
            # ([String]). Only allow these licenses (optional)
            # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses 
            allow-licenses: GPL-3.0, BSD-3-Clause, MIT
            # ([String]). Block the pull request on these licenses (optional)
            # Possible values: Any  `spdx_id` value(s) from https://docs.github.com/en/rest/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 dependency review action

  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@v3
          - name: Dependency Review
            uses: actions/dependency-review-action@v3
            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'   
             # Syntax for an external file: OWNER/REPOSITORY/FILENAME@BRANCH
             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-licences`
      # ([String]). Only allow these licenses (optional)
      # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses 
      allow-licenses: 
        - GPL-3.0
        - BSD-3-Clause
        - MIT
       # ([String]). Block the pull request on these licenses (optional)
       # Possible values: Any  `spdx_id` value(s) from https://docs.github.com/en/rest/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.