Customizing your dependency review action configuration

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

Introduction

The dependency review action 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. On GitHub, navigate to the main page of the repository.

  2. Under your repository name, click Actions.

    Screenshot of the tabs for the "github/docs" repository. The "Actions" tab is highlighted with an orange outline.

  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:

    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@v6
          - 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 dependency review action 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:

          - 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:

          - 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:

          - 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:


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:
          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:

Further reading