Skip to main content

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

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

依存関係の確認は、GitHub Enterprise Server 内にある Organization 所有のリポジトリで利用できます。 この機能には、GitHub Advanced Security のライセンスが必要です。 詳細については、「GitHub Advanced Security について」を参照してください。

依存関係の確認について

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

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

プライベート リポジトリで依存関係レビューを使うには、依存関係グラフを有効にして、your GitHub Enterprise Server instance を GitHub.com に接続する必要があります。 詳しい情報については、GitHub Enterprise Server 上の脆弱な依存関係に対するアラートの有効化に関するページを参照してください。

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

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

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

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

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

  1. リポジトリ名の下にある [pull request] をクリックします。 [pull request] タブの選択 1. プルリクエストのリストで、レビューしたいプルリクエストをクリックします。 1. pull request で、 [Files changed] (変更されたファイル) をクリックします。 Pull Request の [Files changed](変更されたファイル) タブ

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

    [ファイル フィルター] メニュー 依存関係レビューを使うと、既定でソース diff がレンダリングされる大きなロックファイルで、どのような変更が加えられているかがよくわかります。

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

  3. マニフェストまたはロック ファイルのヘッダーの右側で、 [] リッチ diff ボタンをクリックして、依存関係レビューを表示します。

    リッチ diff ボタン

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

    依存関係のレビューにおける脆弱性の警告

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

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

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

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

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

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

    ソース diff のビューに戻るには、 ボタンをクリックしてください。

    ソース diff ボタン