# 依存関係レビュー アクション構成のカスタマイズ

依存関係レビュー アクション構成に基本的なカスタマイズを追加する方法について説明します。

## イントロダクション

依存関係レビュー アクションは、依存関係の変更について pull request をスキャンし、新しい依存関係に既知の脆弱性がある場合にエラーを発生させます。 インストールが完了すると、ワークフロー実行が必須としてマークされている場合、既知の脆弱なパッケージを導入する pull request のマージがブロックされます。

このガイドでは、脆弱性の重大度レベル、依存関係ライセンス、スコープに基づくビルドの失敗という 3 つの非常に一般的なカスタマイズを追加する方法について説明します。

### 前提条件

このガイドは、以下の読者を対象としています。

* リポジトリに対して依存関係グラフが有効になっています。 詳細については、「[依存関係グラフの有効化](/ja/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/enable-dependency-graph#enabling-the-dependency-graph-for-a-repository)」を参照してください。
* GitHub Actions はリポジトリに対して有効になっています。 詳細については、「[リポジトリのGitHub Actions設定の管理](/ja/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)」を参照してください。

## 手順 1: 依存関係レビュー アクションの追加

この手順では、依存関係レビュー ワークフローをリポジトリに追加します。

1. GitHub で、リポジトリのメイン ページに移動します。
2. リポジトリ名の下にある **\[<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Actions]** をクリックします。

   !["github/docs" リポジトリのタブのスクリーンショット。 \[アクション\] タブがオレンジ色の枠線で強調表示されています。](/assets/images/help/repository/actions-tab-global-nav-update.png)
3. 「GitHub Actions の使用を開始する」で「セキュリティ」カテゴリを見つけてから、**すべて表示** をクリックします。
4. \[依存関係レビュー] を見つけて、**\[構成]** をクリックします。 または、検索バーを使用して \[依存関係レビュー] を検索します。
5. これにより、依存関係レビューの GitHub Actions ワークフロー ファイル ( `dependency-review.yml`) が開きます。 このファイルには次が含まれているべきです。

   ```yaml copy
   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
   ```

## 手順 2: 重大度の変更

依存関係レビュー アクションを必須に設定することで、脆弱な依存関係を含むコードがマージされないようにすることができます。 ただし、リスクの低い脆弱性をブロックすると、状況によっては制限が厳しすぎる可能性があることに注意してください。 この手順では、`fail-on-severity` オプションを使用してビルドが失敗する原因となる脆弱性の重大度を変更します。

1. `fail-on-severity` ファイルの末尾に `dependency-review.yml` オプションを追加します。

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

## 手順 3: ブロックするライセンスの追加

依存関係をブロックする理由は、脆弱性だけではありません。 組織で使用できるライセンスの種類に制限がある場合は、依存関係レビューを使用すると、`deny-licenses` オプションを使用してこれらのポリシーを適用できます。 この手順では、pull request が LGPL-2.0 または BSD-2-Clause ライセンスを含む依存関係を導入した場合にビルドを中断するカスタマイズを追加します。

1. `deny-licenses` ファイルの末尾に `dependency-review.yml` オプションを追加します。

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

## 手順 4: スコープの追加

最後に、`fail-on-scopes` オプションを使用して、脆弱な依存関係を特定のデプロイ環境 (この場合は開発環境) にマージしないようにします。

1. `fail-on-scopes` ファイルの末尾に `dependency-review.yml` オプションを追加します。

   ```yaml copy
         - 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
   ```

## 手順 5: 構成を確認する

これで、`dependency-review.yml` ファイルは次のようになります。

```yaml copy

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

この構成は、独自のカスタム構成のテンプレートとして使用できます。

使用可能なすべてのカスタマイズ オプションの詳細については、依存関係レビュー アクションのドキュメントの「[README](https://github.com/actions/dependency-review-action/blob/main/README.md#configuration)」を参照してください。

## ベスト プラクティス

依存関係レビューの構成をカスタマイズする場合は、次のようなベスト プラクティスに従うことができます。

* ブロックリストを許可リストより選択します。 許可するすべてのライブラリの包括的なリストを作成するよりも、ブロックする "本当に悪い" 依存関係の一覧をコンパイルする方が実用的です。

* 許可するライセンスを指定する代わりに、ライセンスをブロックすることを選択します。 さまざまなライセンスがあるため、通常、互換性のあるライセンスの完全な一覧をコンパイルするよりも、現在のライセンスと互換性がないことがわかっているライセンスを除外する方が実用的です。

* `fail-on-severity` を選択します。 脆弱性の重大度に基づいて失敗することは、セキュリティの必要性と、開発者向けの低摩擦エクスペリエンスを作成する必要性とのバランスを取るには良い方法です。

## 詳細については、次を参照してください。

* [依存関係レビュー アクションの構成](/ja/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configure-dependency-review-action)
* [organization 全体で依存関係レビューを実施する](/ja/code-security/how-tos/secure-at-scale/configure-organization-security/configure-specific-tools/enforce-dependency-review)