Skip to main content

Azure Private Network を使用して github でホストされるアクション ランナーで実行するように Dependabot を設定する

          Dependabot ホストランナーで GitHub を実行するようにAzure Virtual Network (VNET) を構成できます。

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

書き込み アクセスを持つユーザー

          Dependabot updates の VNET を構成する

この記事では、VNET で構成されたホスト型ランナーでDependabotGitHub実行する手順について説明します。 この記事では、次の内容について説明します:

  • VNET 構成を使って Enterprise または organization のランナー グループを作成する方法。
  • ランナー グループ内でGitHub用のDependabotホストランナーを作成する方法。
  • 大規模なランナーで Dependabot を有効にする方法。
  • Azure 仮想ネットワークファイアウォールの IP ルールを構成する方法。

Azure VNET で GitHub ホストランナーを使用するには、まずAzure リソースを構成してから、GitHub でプライベート ネットワーク構成を作成する必要があります。

Azure リソースの構成

Azureプライベート ネットワークで ホストランナーを使用する方法については、 ドキュメントの「Azure リソースの構成を参照してください。

メモ

  • Azure リソースを構成するためにスクリプトに必要な databaseIdは、企業または組織のリソースを構成しているかどうかに応じて、次のいずれかを参照できます。
  • 企業スラッグは、企業の URL (https://github.com/enterprises/SLUG) を調べることで特定できます。
  • Organization アカウントのログイン。Organization の URL (https://github.com/organizations/ORGANIZATION_LOGIN) を確認することで特定できます。
  • このスクリプトは、作成されたリソースの完全なペイロードを返します。 作成されたリソースのペイロードで返される GitHubId ハッシュ値は、次の手順でネットワーク構成を設定するときに使用するネットワーク設定リソース ID です。 GitHub

企業内の Dependabot updates に対する VNET インジェクトランナーの設定

Azure リソースを構成した後、組織レベルでネットワーク構成を作成することで、プライベート ネットワーク用のAzure Virtual Network (VNET) を使用できます。 その後、そのネットワーク構成をランナー グループに関連付けることができます。

  1. Enterprise 用に新しいネットワーク構成を追加します。 ドキュメントのGitHub Enterprise Cloudする」を参照してください。
  2. エンタープライズのランナー グループを作成し、 Dependabot updates 実行する組織を選択します。 ドキュメントのGitHub Enterprise Cloudする」を参照してください。
  3.        GitHubホストランナーを作成し、エンタープライズ ランナー グループに追加します。 
           [
           ](/enterprise-cloud@latest/actions/using-github-hosted-runners/using-larger-runners/managing-larger-runners#adding-a-larger-runner-to-an-enterprise)ドキュメントのGitHub Enterprise Cloudする」を参照してください。 重要な点は次のとおりです。
    
    • ランナー名は dependabot にする必要があります

    • Linux x64 プラットフォームを選びます。

    • 適切な Ubuntu バージョンを選びます。

    •      GitHubホストランナーをランナー グループに追加するときは、前の手順で作成したランナー グループを選択します。
      

    メモ

           GitHubホストランナー**の dependabot** に名前を付けると、ランナに **dependabot** ラベルが割り当てられ、アクションに対するDependabotによってトリガーされるジョブを取得できます。
    

          Dependabotを実行するトリガー

VNET を使用してプライベート ネットワークを設定したので、 Dependabot 実行を開始できます。

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

  2. リポジトリ名の下にある [Insights] タブをクリックします。

  3. 左側のサイドバーで、 [Dependency graph] (依存関係グラフ) をクリックします。

    [依存関係グラフ] タブのスクリーンショット。タブはオレンジ色の枠線で強調されています。

  4. [依存関係グラフ] で、 [Dependabot] をクリックします。

  5. 関心のあるマニフェスト ファイル名の右側にある [Recent update jobs] をクリックします。

  6. マニフェスト ファイルの最近の更新ジョブがない場合は、[Check for updates] をクリックして、Dependabot のバージョン更新ジョブを再実行し、そのエコシステムの依存関係に対する新しい更新プログラムをチェックします。

          Dependabot updates のログとアクティブなジョブを確認
  • リポジトリの Dependabot タブで、**** ワークフローのログを表示できます。 [アクション] ページの左側のサイドバーで、 Dependabot ジョブを選択していることを確認します。

    [Dependabot in vnet] ワークフローのログの例。 Dependabot ジョブがオレンジ色の枠線で強調表示されています。

  • ランナーに関する情報を含むページで、アクティブなジョブを表示できます。 このページにアクセスするには、Enterprise の [Policies] タブをクリックし、左側のサイドバーで [Actions] を選び、[Runner group] タブをクリックして、ランナーを選びます。

    Dependabot ランナーのアクティブなジョブを示すスクリーンショット。

Azure VNET ファイアウォールの IP 規則を構成する

Azure VNET 環境が IP 許可リストを使用するファイアウォールで構成されている場合は、許可された IP アドレスの一覧を更新して、メタ API エンドポイントから提供される GitHub ホストランナーの IP アドレスを使用することが必要になる場合があります。

  •         GitHub は、その IP 範囲に対して次のパブリック エンドポイントを提供します。
    

    取得 https://api.github.com/meta

  • 次の curl コマンドをコピーしてターミナルまたはコマンド プロンプトに貼り付け、プレースホルダーのベアラー トークン値を実際の値に置き換えます。

    Bash
          curl -L \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer YOUR-TOKEN" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          https://api.github.com/meta
    
  • 応答から actions キーを探します。

        "actions": [ ... ]
    

    これらは、GitHub Actionsランナーやホストランナーなど、Dependabot ランナーによって使用される IP 範囲です。

  • これらの IP をファイアウォールの許可リストに追加します。