Skip to main content

Customizing your dependency review action configuration

Learn how to add a basic customization to your dependency review configuration.

Quem pode usar esse recurso?

The ação de revisão de dependência is available for public repositories. The ação de revisão de dependência is also available in private repositories owned by organizations that use GitHub Enterprise Cloud and have a license for GitHub Advanced Security. Para obter mais informações, confira "Sobre a Segurança Avançada do GitHub".

Introduction

The ação de revisão de dependência scans your pull requests for dependency changes and raises an error if any new dependencies have known vulnerabilities. Once installed, if the workflow run is marked as required, pull requests introducing known vulnerable packages will be blocked from merging.

This guide shows you how to add three very common customizations: failing builds based on vulnerability severity level, dependency license, and scope.

Prerequisites

This guide assumes that:

Step 1: Adding the dependency review action

In this step, we'll add the dependency review workflow to your repository.

  1. No GitHub.com, navegue até a página principal do repositório.

  2. No nome do repositório, clique em Ações.

    Captura de tela das guias do repositório "github/docs". A guia "Ações" está realçada com um contorno laranja.

  3. Under "Get started with GitHub Actions", find the "Security" category, then click View all.

  4. Find "Dependency review", then click Configure. Alternatively, search for "Dependency review" using the search bar.

  5. This will open dependency review’s GitHub Actions workflow file, dependency-review.yml. It should contain the following:

    YAML
    name: 'Dependency review'
    on:
      pull_request:
        branches: [ "main" ]
    
    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
    

Step 2: Changing the severity

You can block code containing vulnerable dependencies from ever being merged by setting the ação de revisão de dependência to required. However, it's worth noting that blocking low-risk vulnerabilities may be too restrictive in some circumstances. In this step, we will change the severity of vulnerability that will cause a build to fail with the fail-on-severity option.

  1. Add the fail-on-severity option to the end of the dependency-review.yml file:

    YAML
          - name: 'Dependency Review'
            uses: actions/dependency-review-action@v4
            with:
              fail-on-severity: moderate
    

Step 3: Adding licenses to block

Vulnerabilities aren’t the only reason you might want to block a dependency. If your organization has restrictions on what sorts of licenses you can use, you can use dependency review to enforce those policies with the deny-licenses option. In this step, we will add a customization that will break the build if the pull request introduces a dependency that contains the LGPL-2.0 or BSD-2-Clause license.

  1. Add the deny-licenses option to the end of the dependency-review.yml file:

    YAML
          - name: 'Dependency Review'
            uses: actions/dependency-review-action@v4
            with:
              fail-on-severity: moderate
              deny-licenses: LGPL-2.0, BSD-2-Clause
    

Step 4: Adding scopes

Finally, we'll use the fail-on-scopes option to prevent merging vulnerable dependencies to specific deployment environments, in this case the development environment.

  1. Add the fail-on-scopes option to the end of the dependency-review.yml file:

    YAML
          - name: 'Dependency Review'
            uses: actions/dependency-review-action@v4
            with:
              fail-on-severity: moderate
              deny-licenses: LGPL-2.0, BSD-2-Clause
              fail-on-scopes: development
    

Step 5: Check the configuration

The dependency-review.yml file should now look like this:

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:
          fail-on-severity: moderate
          deny-licenses: LGPL-2.0, BSD-2-Clause
          fail-on-scopes: development

You can use this configuration as a template for your own custom configurations.

For more information on all the possible customization options, see the README in the dependency review action documentation.

Best practices

When customizing your dependency review configuration, there are some best practices you can follow:

  • Choose block lists over allow lists. It is more practical to compile a list of the "really bad" dependencies you want to block than to create an inclusive list of all the libraries you want to allow.

  • Choose to block licenses instead of specifying which licenses to allow. There are a wide variety of licenses out there, so it's usually more practical to exclude those you know are incompatible with current licenses than it is to compile a complete list of compatible licenses.

  • Choose fail-on-severity. Failing based on the severity of a vulnerability is a good way to balance the need for security with the need to create low-friction experiences for developers.

Further reading