Skip to main content

リポジトリの依存関係の自動送信の構成

依存関係の自動送信を使用して、推移的な依存関係データをリポジトリに送信できます。 これにより、依存関係グラフを使用して、これらの推移的な依存関係を分析できます。

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

People with admin permissions to a repository, or the security manager role for the repository, can configure automatic dependency submission for that repository.

依存関係の自動送信について

Note

現在、依存関係の自動送信は Maven でのみサポートされています。

依存関係グラフは、リポジトリが依存する依存関係をユーザーが理解できるように、リポジトリ内のマニフェストとロック ファイルを分析します。 ただし、一部のエコシステムでは、推移的な依存関係の解決はビルド時に発生し、GitHub では、リポジトリの内容だけに基づいてすべての依存関係を自動的に検出することはできません。

リポジトリの依存関係の自動送信を有効にすると、GitHub はリポジトリ内の推移的な依存関係を自動的に識別し、依存関係送信 API を使用してこれらの依存関係を GitHub に送信します。 その後、依存関係グラフを使用して、これらの依存関係を報告できます。

自動依存関係の送信の使用は、GitHub Actions 分にカウントされます。 詳しくは、「GitHub Actions の課金について」を参照してください。

必要に応じて、自動依存関係の送信のために、セルフホステッド ランナーまたは GitHub ホスト型 より大きなランナー (larger runner) を構成することもできます。 詳細については、「自動依存関係の送信にセルフホステッド ランナーを使用する」および「自動依存関係の送信に GitHub でホストされる大規模なランナーを使用する」を参照してください。

前提条件

依存関係の自動送信を有効にするには、リポジトリに対して依存関係グラフを有効にする必要があります。

また、依存関係の自動送信を使用するには、リポジトリに対して GitHub Actions を有効にする必要があります。 詳しくは、「リポジトリの GitHub Actions の設定を管理する」を参照してください。

依存関係の自動送信の有効化

リポジトリ管理者は、この手順で説明されている手順に従って、リポジトリの依存関係の自動送信を有効または無効にすることができます。

組織の所有者は、セキュリティ構成を使用して、複数のリポジトリの依存関係の自動送信を有効にすることができます。 詳しくは、「カスタム セキュリティ構成の作成」を参照してください。

  1. GitHub で、リポジトリのメイン ページに移動します。

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

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

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

  4. [依存関係グラフ] で、[自動依存関係の送信] の横にあるドロップダウン メニューをクリックし、 Enabled を選択します。

リポジトリの依存関係の自動送信を有効にすると、GitHub は次のようになります。

  • リポジトリのすべてのブランチにあるリポジトリのルートにある pom.xml ファイルへの変更を監視します。
  • 変更ごとに依存関係の自動送信を実行します。

リポジトリの Actions タブを表示すると、自動ワークフローの実行に関する詳細を表示できます。

Note

オプションが有効になった後、pom.xml ファイルへの最初のプッシュで自動送信が行われます。

セルフホステッド ランナーを使用した依存関係の自動送信

GitHub Actions インフラストラクチャを使用する代わりに、自動依存関係送信ジョブを実行するようにセルフホステッド ランナーを構成できます。

  1. 1つか複数のセルフホステッド ランナーを、リポジトリまたは組織レベルでプロビジョニングします。 詳細については、「セルフホステッド ランナーの概要」および「自己ホストランナーの追加」を参照してください。 セルフホステッド ランナーは Linux または macOS 上で実行されており、Docker がインストールされている必要があります。
  2. 依存関係の自動送信を使用する各ランナーに dependency-submission ラベルを割り当てます。 詳しくは、「セルフホストランナーとのラベルの利用」を参照してください。
  3. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。
  4. [依存関係グラフ] で、[自動依存関係の送信] の横にあるドロップダウン メニューをクリックし、ラベル付きランナー ** [有効] を選択します**。

有効にすると、次の場合を除き、自動依存関係送信ジョブはセルフホステッド ランナーで実行されます。

  • セルフホステッド ランナーは使用できません。
  • dependency-submission ラベルでタグ付けされたランナー グループはありません。

Note

セルフホステッド ランナーを使用する場合は、依存関係の送信ワークフローがプライベート レジストリに接続できるように、Maven サーバー設定ファイルへのアクセスを追加する必要があります。 プライベート レジストリからの依存関係は、次の pom.xml 更新プログラムの依存関係ツリーに含まれます。 Maven サーバー設定ファイルの詳細については、Maven ドキュメントの「 Security and Deployment Settings 」を参照してください。

依存関係の自動送信に GitHub ホスト型 より大きなランナー (larger runner) を使用する

GitHub Team または GitHub Enterprise Cloud ユーザーは、より大きなランナー (larger runner) を使用して、依存関係の自動送信ジョブを実行できます。

  1. dependency-submissionという名前で、組織レベルで大きなランナーをプロビジョニングします。 詳細については、「組織へのより大きなランナー (larger runner)の追加」を参照してください。
  2. リポジトリにランナーへのアクセス権を付与します。 詳細については、「レポジトリに より大きなランナー (larger runner) へのアクセスを許可する」を参照してください。
  3. [依存関係グラフ] で、[自動依存関係の送信] の横にあるドロップダウン メニューをクリックし、ラベル付きランナー ** [有効] を選択します**。

依存関係の自動送信のトラブルシューティング

現在、依存関係の自動送信は Maven でのみサポートされています。 この機能では、Maven Dependency Tree Submission アクションが使用されます。 詳細については、GitHub Marketplace の Maven Dependency Tree Dependency Submission アクションのドキュメントを参照してください。 プロジェクトで標準以外の Maven 構成を使用している場合、依存関係が正しく生成されず、依存関係グラフに送信されない可能性があります。

参考資料