Skip to main content

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

プル要求の依存関係の変更を確認して、追加、更新、または削除された依存関係を特定し、運用環境に到達する前に脆弱性を検出します。

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

依存関係のレビューは、次のリポジトリの種類で使用できます。

  • GitHub.com 上のパブリックリポジトリ
  • GitHub Team が有効になっている GitHub Code Security 上の organization 所有リポジトリ

依存関係の確認について

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

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

依存関係の確認は、運用環境に到達する前に脆弱な依存関係を見つけるのに役立ちます。 「依存関係の確認」を参照してください。

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

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

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

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

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

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

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

  3. Pull request で、[ Files changed] をクリックします。

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

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

[変更されたファイル] タブのスクリーンショット。[ファイル フィルター] というラベルの付いたドロップダウンが展開され、チェックボックス付きのファイルの種類の一覧が表示されています。 依存関係レビューでは、大きなロック ファイルで何が変更されたかをより明確に確認できます。ソースの差分は既定では表示されません。

メモ

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

  1. 依存関係レビューを表示するには、マニフェストまたはロック ファイルのヘッダーの右側にある をクリックします。

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

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

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

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

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

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

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

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

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

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

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