Skip to main content

プルリクエスト内の依存関係の変更をレビューする

プルリクエストに依存関係への変更が含まれている場合は、変更内容の概要と、依存関係に既知の脆弱性があるかどうかを確認できます。

この機能を使用できるユーザーについて

依存関係の確認は、パブリック リポジトリで有効になっています。 また、依存関係の確認は、GitHub Enterprise Cloud を使用し、GitHub Advanced Security のライセンスを持つ Organization によって所有されるプライベート リポジトリでも利用できます。 詳しくは、「GitHub Advanced Security について」を参照してください。

依存関係の確認について

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

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

依存関係のレビューでは、「左にシフト」することができます。 提供された予測情報を使用して、本番環境に至る前に脆弱性のある依存関係をキャッチできます。 詳しくは、「依存関係の確認について」を参照してください。

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

アクションと API エンドポイントについて詳しくは、dependency-review-action のドキュメントと、「依存関係レビュー用の REST API エンドポイント」をご覧ください。

キャッチする依存関係の脆弱性の種類を指定することで、ニーズに合わせて 依存関係レビュー アクション を構成できます。 詳しくは、「依存関係レビューの構成」を参照してください。

プルリクエスト内の依存関係を確認する

  1. リポジトリ名の下にある [pull request] をクリックします。

    リポジトリのメイン ページのスクリーンショット。 水平ナビゲーション バーでは、[pull request] というラベルが付いたタブが濃いオレンジ色の枠線で囲まれています。

  2. プルリクエストのリストで、レビューしたいプルリクエストをクリックします。

  3. pull request で、 [変更されたファイル] をクリックします。

    pull request のタブのスクリーンショット。 [変更されたファイル] タブが濃いオレンジ色の枠線で囲まれています。

  4. pull request に多くのファイルが含まれている場合は、 [ファイル フィルター] ドロップダウン メニューを使って、依存関係を記録していないファイルをすべて折りたたみます。 これにより、レビューを依存関係の変更に焦点を絞りやすくなります。

    [変更されたファイル] タブのスクリーンショット。[ファイル フィルター] というラベルの付いたドロップダウンが展開され、チェックボックス付きのファイルの種類の一覧が表示されています。 依存関係レビューを使うと、既定でソース diff がレンダリングされる大きなロックファイルで、どのような変更が加えられているかがよくわかります。

    注: 依存関係レビュー リッチ diff は、jquery.js のような、コミットされた静的 JavaScript ファイルでは使用できません。

  5. マニフェストまたはロック ファイルのヘッダーの右側で、 ボタンをクリックして、依存関係レビューを表示してください。

    pull request の [変更されたファイル] タブのスクリーンショット。 ファイル アイコンのラベルが付いたリッチ diff を表示するボタンが、濃いオレンジ色の枠線で囲まれています。

  6. 依存関係のレビューにリストされている依存関係を確認します。

    pull request の依存関係レビューの脆弱性の警告のスクリーンショット。

    脆弱性のある追加または変更された依存関係が最初に一覧表示され、次に重要度、依存関係名の順に並べられます。 これは、最も重要度の高い依存関係が、常に依存関係レビューの最上位に表示されるということです。 その他の依存関係は、依存関係名のアルファベット順に一覧表示されます。

    各依存関係の横にあるアイコンは、この pull request 内で、依存関係が追加 ()、更新 ()、または削除 () されているかどうかを示します。

    その他の情報は次のとおりです。

    • 新規、更新、または削除された依存関係のバージョンまたはバージョン範囲。
    • 依存関係の特定のバージョンの場合:
      • 依存関係のリリース時期。
      • このソフトウェアに依存しているプロジェクトの数。 この情報は、依存関係グラフから取得されます。 依存関係の数を確認すると、誤って間違った依存関係を追加することを防ぐことができます。
      • この依存関係で使用されるライセンス(この情報が利用可能な場合)。 これは、プロジェクトで特定のライセンスが使用されているコードを避ける必要がある場合に役立ちます。

    依存関係に既知の脆弱性がある場合、警告メッセージには次のものが含まれます。

    • 脆弱性の簡単な説明。
    • Common Vulnerabilities and Exposures (CVE) または GitHub Security Advisories (GHSA) 識別番号。 この ID をクリックすると、脆弱性の詳細を確認できます。
    • 脆弱性の重要度。
    • 脆弱性が修正された依存関係のバージョン。 誰かのプルリクエストを確認している場合は、パッチを適用したバージョンまたはそれ以降のリリースに依存関係を更新するようにコントリビューターに依頼することができます。
  7. 依存関係を変化させないような変更がマニフェストあるいはロックファイルに行われているかもしれず、あるいはGitHubがパースできず、その結果として依存関係レビューに現れてこない依存関係があるかもしれないので、ソースdiffをレビューしたいこともあるでしょう。

    ソース差分ビューに戻るには、 ボタンをクリックします。

    pull request の [変更されたファイル] タブのスクリーンショット。 コード アイコンのラベルが付いた、ソース差分を表示するボタンが、濃いオレンジ色の枠線で囲まれています。