依存関係レビュー アクション について
"依存関係レビュー アクション" とは、GitHub Actions コンテキスト内の pull request の差異を報告し、GitHub Actions ワークフローに適用メカニズムを追加できる特定のアクションです。
依存関係レビュー アクション では、pull request で依存関係の変更をスキャンし、新しい依存関係に既知の脆弱性がある場合にエラーを発生させます。 このアクションは、2 つのリビジョン間の依存関係を比較し、相違点を報告する API エンドポイントによってサポートされます。
アクションと API エンドポイントについて詳しくは、dependency-review-action
のドキュメントと、「依存関係レビュー用の REST API エンドポイント」をご覧ください。
組織の所有者は、組織内のリポジトリ全体で 依存関係レビュー アクション の使用を実施することで、依存関係レビューを大規模にロールアウトできます。 これには、必要なワークフローとして 依存関係レビュー アクション を設定するためのリポジトリ ルールセットの使用が含まれます。つまり、pull requestは、ワークフローが必要なすべてのチェックに合格した後にのみ統合できます。 詳しくは、「組織全体で依存関係レビューを実施する」を参照してください。
一般的な構成オプションの一覧を示します。 詳細とオプションの完全な一覧については、GitHub Marketplace の「依存関係レビュー」を参照してください。
オプション | 必須 | 使用法 |
---|---|---|
fail-on-severity | 重大度レベル (low 、moderate 、high 、critical ) のしきい値を定義します。アクションは、指定した重大度レベル以上の脆弱性を引き起こす pull request で失敗します。 | |
allow-licenses | 許可されているライセンスのリストが含まれています。 このパラメーターに使用できる値は、API ドキュメントの「ライセンス」のページで確認できます。 アクションは、リストに一致しないライセンスを持つ依存関係を導入する pull request で失敗します。 | |
deny-licenses | 禁止されているライセンスのリストが含まれています。 このパラメーターに使用できる値は、API ドキュメントの「ライセンス」のページで確認できます。 アクションは、リストに一致するライセンスを持つ依存関係を導入する pull request で失敗します。 | |
fail-on-scopes | サポートするビルド環境 (development 、 runtime 、 unknown ) を表す文字列のリストが含まれます。 このアクションは、リストに一致する範囲に脆弱性をもたらす pull request によって失敗します。 | |
comment-summary-in-pr | pull request で、レビュー概要のレポートをコメントとして有効または無効にします。 有効にした場合は、ワークフローまたはジョブに pull-requests: write アクセス許可を付与する必要があります。 | |
allow-ghsas | 検出中にスキップできる GitHub Advisory Database ID のリストが含まれています。 このパラメーターに指定できる値は、GitHub Advisory Database で見つけることができます。 | |
config-file | 構成ファイルのパスを指定します。 構成ファイルは、リポジトリに対してローカルにすることも、外部リポジトリにあるファイルにすることもできます。 | |
external-repo-token | ファイルがプライベート外部リポジトリに存在する場合に、構成ファイルをフェッチするためのトークンを指定します。 トークンには、リポジトリへの読み取りアクセスが必要です。 |
Tip
allow-licenses
オプションと deny-licenses
オプションは同時に指定できません。
依存関係レビュー アクション の構成について
依存関係レビュー アクション を構成する方法は 2 つあります。
- ワークフロー ファイル内に構成オプションをインライン化する。
- ワークフロー ファイル内で構成オプションを参照する。
すべての例で、アクションに対して、semver リリース番号 (v3.0.8
など) ではなく、短いバージョン番号 (v3
) が使われています。 これにより、アクションの最新のマイナー バージョンを使うことができます。
インライン構成を使って 依存関係レビュー アクション を設定する
-
.github/workflows
フォルダーに新しい YAML ワークフローを追加します。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
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
-
必要に応じて設定を変更します。
この 依存関係レビュー アクション サンプル ファイルは、利用可能な構成オプションの使用方法を示しています。
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: # 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
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: # 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
構成ファイルを使って 依存関係レビュー アクション を設定する
-
.github/workflows
フォルダーに新しい YAML ワークフローを追加し、config-file
を使って構成ファイルを使用していることを指定します。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: # ([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'
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: # ([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'
-
指定したパスに構成ファイルを作成します。
この YAML ファイルの例は、利用可能な構成オプションの使用方法を示しています。
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
# 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
構成オプションの詳細については、「dependency-review-action
」を参照してください。