Skip to main content

Configurando a ação de revisão de dependências

Você pode usar a ação de revisão de dependência opção para capturar vulnerabilidades antes que elas sejam adicionadas ao seu projeto.

Quem pode usar esse recurso?

Proprietários de repositórios, proprietários de organizações, gerentes de segurança e usuários com a função de administrador

O "ação de revisão de dependência" refere-se à ação específica que pode informar sobre diferenças em uma solicitação de pull no contexto de GitHub Actions. Ele também pode adicionar mecanismos de imposição ao GitHub Actions fluxo de trabalho. Para obter mais informações, consulte Análise de dependência.

Para obter uma lista de opções de configuração comuns, consulte Revisão de dependências no GitHub Marketplace.

Configurando o ação de revisão de dependência

Há dois métodos de configuração do ação de revisão de dependência:

  • Integrar as opções de configuração no arquivo de fluxo de trabalho.
  • Fazer referência a um arquivo de configuração no arquivo de fluxo de trabalho.

Observe que todos os exemplos usam um número de versão curto para a ação (v3) em vez de um número de versão semver (por exemplo, v3.0.8). Isso garante que você use a versão secundária mais recente da ação.

Usando a configuração embutida para configurar o ação de revisão de dependência

  1. Adicione um fluxo de trabalho YAML à pasta .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@v6
         - name: Dependency Review
           uses: actions/dependency-review-action@v4
    
  2. Especifique suas configurações.

    Este ação de revisão de dependência arquivo de exemplo ilustra como você pode usar as opções de configuração disponíveis.

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
      contents: read
    
    jobs:
      dependency-review:
        runs-on: ubuntu-latest
        steps:
        - name: 'Checkout Repository'
          uses: actions/checkout@v6
        - 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
    

Usando um arquivo de configuração para configurar ação de revisão de dependência

  1. Adicione um fluxo de trabalho YAML à pasta .github/workflows e use config-file para especificar que você está usando um arquivo de configuração.

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
     contents: read
    
    jobs:
      dependency-review:
        runs-on: ubuntu-latest
        steps:
        - name: 'Checkout Repository'
          uses: actions/checkout@v6
        - 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. Crie o arquivo de configuração no caminho especificado.

    Esse arquivo de exemplo YAML ilustra como é possível usar as opções de configuração disponíveis.

    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 obter mais detalhes sobre as opções de configuração, consulte dependency-review-action.

Leitura adicional