Skip to main content

依存関係レビューの構成

依存関係レビューを使用して、脆弱性がプロジェクトに追加される前に捕捉できます。

依存関係の確認について

依存関係レビューを使うと、すべてのPull Reqeustにおける以下の変更による依存関係の変化とセキュリティについての影響を理解しやすくなります。pull request の [Files Changed](変更されたファイル) タブ上のリッチ diff で依存関係の変更をわかりやすく視覚化できます。 依存関係レビューは、以下のことを知らせます:

  • リリース日と合わせて、追加、削除、更新された依存関係。
  • これらのコンポーネントを使うプロジェクトの数。
  • これらの依存関係に関する脆弱性のデータ。

詳細については、「依存関係の確認について」および「プルリクエスト内の依存関係の変更をレビューする」を参照してください。

依存関係レビューの構成について

依存関係レビューは、依存関係グラフが お使いの GitHub Enterprise Server インスタンス に対して有効になっていると同時に Advanced Security が Organization またはリポジトリに対して有効になっている場合に使うことができます。 詳しくは、「自社で GitHub Advanced Security を有効にする」をご覧ください。

依存関係グラフが有効になっているかどうかを確認する

  1. お使いの GitHub Enterprise Server インスタンス で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。

  4. Configure security and analysis features(セキュリティと分析機能の構成) で、依存関係グラフが有効になっているかどうかを確認します。

  5. 依存関係グラフが有効である場合は、"GitHub Advanced Security" の横にある Enable(有効にする) をクリックして、依存関係レビューを含む Advanced Security を有効にします。 エンタープライズに Advanced Security に使用できるライセンスがない場合、[有効にする] ボタンは無効です。"コードのセキュリティと分析機能" のスクリーンショット。

依存関係レビュー アクション の構成について

依存関係レビュー アクション は、依存関係の変更について pull request をスキャンし、新しい依存関係に既知の脆弱性がある場合はエラーを発生させます。 アクションは、2 つのリビジョン間の依存関係を比較し、相違点を報告する API エンドポイントによってサポートされています。

アクションと API エンドポイントについて詳しくは、dependency-review-action ドキュメントと、と API ドキュメントの 「依存関係の確認」を参照してください。

次の構成オプションを使用できます。

オプション必須使用法
fail-on-severity重大度レベル (lowmoderatehighcritical) のしきい値を定義します。
アクションは、指定した重大度レベル以上の脆弱性を引き起こす pull request で失敗します。
allow-ghsas検出中にスキップできる GitHub Advisory Database ID のリストを含めます。 このパラメーターに指定できる値は、GitHub Advisory Database で見つけることができます。
config-file構成ファイルへのパスを指定します。 構成ファイルは、リポジトリに対してローカルにすることも、外部リポジトリにあるファイルにすることもできます。

依存関係レビュー アクション の構成について

依存関係レビュー アクション を構成する方法は 2 つあります。

  • ワークフロー ファイル内に構成オプションをインライン化する。
  • ワークフロー ファイル内で構成オプションを参照する。

すべての例で、アクションに対して、semver リリース番号 (v3.0.8 など) ではなく、短いバージョン番号 (v3) が使われています。 これにより、アクションの最新のマイナー バージョンを使うことができます。

インライン構成を使って 依存関係レビュー アクション を設定する

  1. .github/workflows フォルダーに新しい YAML ワークフローを追加します。

    runs-on の場合、既定のラベルは self-hosted です。 既定のラベルは、任意のランナーのラベルに置き換えることができます。

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
      contents: read
    
    jobs:
      dependency-review:
       runs-on: self-hosted
         steps:
         - name: 'Checkout Repository'
           uses: actions/checkout@v4
         - name: Dependency Review
           uses: actions/dependency-review-action@v3
    
  2. 必要に応じて設定を変更します。

    この 依存関係レビュー アクション サンプル ファイルは、利用可能な構成オプションの使用方法を示しています。

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
      contents: read
    
    jobs:
      dependency-review:
      runs-on: self-hosted
        steps:
        - name: 'Checkout Repository'
          uses: actions/checkout@v4
        - name: Dependency Review
          uses: actions/dependency-review-action@v3
          with:
            # Possible values: "critical", "high", "moderate", "low"
            fail-on-severity: critical
    
            
            # ([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
            
    

構成ファイルを使って 依存関係レビュー アクション を設定する

  1. .github/workflows フォルダーに新しい YAML ワークフローを追加し、config-file を使って構成ファイルを使用していることを指定します。

    runs-on の場合、既定のラベルは self-hosted です。 既定のラベルは、任意のランナーのラベルに置き換えることができます。

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
     contents: read
    
    jobs:
      dependency-review:
        runs-on: self-hosted
        steps:
        - name: 'Checkout Repository'
          uses: actions/checkout@v4
        - name: Dependency Review
          uses: actions/dependency-review-action@v3
          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'
           # Syntax for an external file: OWNER/REPOSITORY/FILENAME@BRANCH
           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. 指定したパスに構成ファイルを作成します。

    この YAML ファイルの例は、利用可能な構成オプションの使用方法を示しています。

    YAML
      # Possible values: "critical", "high", "moderate", "low"
      fail-on-severity: critical
    
       # ([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」を参照してください。