GitHub Copilotモダン化エージェントを使用したバッチ計画

Batch プランを使用すると、1 つのワークフローと共有のモダン化の目標を使用して、複数のリポジトリの最新化計画を生成できます。 この記事では、実行を開始する前に、複数のアプリケーション間で一貫したプランを作成する方法について説明します。

バッチ 計画を使用すると、次のことができます。

  • 1 つのガイド付きワークフローで複数のアプリケーションのプランを作成します。
  • リポジトリ間で一貫した最新化の目標を適用します。
  • 評価結果をコンテキストとして使用 して、プランの品質を向上させます。
  • 実行前に計画を確認 し、最初に最新化するリポジトリを決定します。

Batch プランには、次の利点があります。

  • 一貫性と制御:

    • 共有意図: リポジトリ間で 1 つのモダン化プロンプトから開始します。
    • 同等の出力: プランを実行する前に、プランを並べて確認します。
    • 柔軟な絞り込み: リポジトリ固有のニーズを反映するように、生成された各プランを編集します。
  • 大規模な計画:

    • ポートフォリオの可視性: アプリケーション間で同じ要求がどのように適用されるかを理解します。
    • 再利用可能な準備: 以前のステージと同じリポジトリ リストと評価出力を再利用します。
    • 迅速な意思決定: 最初に計画を生成してから、承認したリポジトリのみを実行します。

前提条件

  • CLI を最新化します
  • 計画するすべてのリポジトリへのアクセス。
  • GitHub認証が構成されている (gh auth login)。
  • エージェントが評価結果を計画コンテキストとして使用する場合は、完了したバッチ評価(推奨)。

ヒント

バッチ評価は必要ありませんが、エージェントは検出された問題と移行の機会を参照できるため、通常は、より正確で実用的な計画が生成されます。

リポジトリを構成する

モダン化エージェントでは、計画するリポジトリを指定する複数の方法がサポートされています。

  • 現在のフォルダー: 現在の作業ディレクトリにプロジェクトのプランを作成します。
  • 手動入力: ローカル ディレクトリ パスまたはリモート Git URL を直接入力します。
  • リポジトリ構成ファイル: すべてのリポジトリを一覧表示する JSON 構成ファイルを使用します。

リポジトリ構成ファイル

多数のリポジトリでバッチ操作を行う場合は、すべてのリポジトリを一覧表示する JSON 構成ファイルを作成します。 たとえば、作業ディレクトリの .github/modernize/repos.json に作成するか、カスタム パスを指定します。

形式 (リポジトリの配列):

[
    {
        "name": "PhotoAlbum-Java",
        "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
    },
    {
        "name": "PhotoAlbum",
        "url": "https://github.com/Azure-Samples/NewsFeedSite.git"
    }
]

各リポジトリ エントリは、次のフィールドをサポートしています。

フィールド Description 必須
name リポジトリのフレンドリ名 (レポートとダッシュボードで使用)。 はい
url HTTPS または SSH 形式の Git クローン URL。 urlまたはpath

ヒント

バッチ評価、バッチ計画、バッチ アップグレード ワークフローで同じ repos.json ファイルを使用できます。

モダン化エージェントは、対話型モードで構成ファイルから選択すると、repos.json.github/modernize/repos.jsonファイルを自動的に検出します。 カスタム パスを指定することもできます。

バッチ計画の仕組み

バッチ計画ワークフロー:

  1. リポジトリの選択: 含めるリポジトリを選択します。
  2. コンテキストの選択: 必要に応じて、使用可能な評価レポートを入力として使用します。
  3. プロンプト定義: モダン化の目標を 1 回記述し、リポジトリ全体に適用します。
  4. 明確化: エージェントからのフォローアップの質問に回答します。
  5. プランの生成: エージェントは、選択した各リポジトリのプランを作成します。

生成された各プランはターゲット リポジトリに保存され、実行前に確認または編集できます。

バッチ計画を実行する

リポジトリを構成したら、バッチ計画ワークフローを開始します。

対話型モード

  1. モダン化エージェントを実行します。

    modernize
    
  2. メイン メニューから [プラン ] を選択します。

    ○ How would you like to modernize your app?
    
        Assess
        Analyze modernization readiness across one or multiple applications
      > Plan
        Generate a structured plan to guide the agent
        Execute
        Run the tasks defined in the modernization plan
    
      Or select a quick-start scenario:
    
        Upgrade
            Upgrade runtimes and frameworks across one or multiple applications
    
  3. ターゲット リポジトリを指定する方法を選択します。 repos.json使用するには、[構成ファイルから] を選択します。

    ○ Choose target repositories
    
        1. Current folder
          /Users/username/project
        2. Manual input
          Enter local path or remote URL
      > 3. From a config file
          /path/to/.github/modernize/repos.json
    

    ヒント

    [ 手動入力 ] を選択してローカル パスまたはリモート Git URL を直接入力することも、 現在のフォルダー を選択して現在のディレクトリ内のプロジェクトを計画することもできます。

  4. repos.json ファイルが既定の場所で検出されると、エージェントによって自動的に入力されます。 それ以外の場合は、構成ファイルへのパスを入力し、Enter キーを押 します

  5. 既定では、すべてのリポジトリが選択されています。 スキップするリポジトリの選択を解除し、 Enter キーを押して選択を確定します。

    • 方向キーを使用して 移動し、 Space キーを押して個々のリポジトリを切り替えます。
  6. 1 を選択 します。プランをローカル のままにして、マシンでプランを生成するか、2 を選択します 。クラウド エージェントに送信して 、クラウド エージェントに生成してもらう。 オプション 2 は試験段階です。

  7. プラン名を入力するか、 Enter キーを押して既定値を使用します。

  8. プロンプトとしてモダン化の目標を入力します。 例えば次が挙げられます。

    • upgrade to Spring Boot 3 and prepare for Azure deployment
    • migrate the database to Azure PostgreSQL
    • containerize the application and deploy to Azure Container Apps
  9. Enter キーを押してプランを生成します。

  10. エージェントは自動的に次の手順を実行します。

    • 選択した各リポジトリを複製するか、リポジトリごとにクラウド エージェントにジョブを送信します。
    • 各リポジトリのプランをローカルに生成するか、各リポジトリにプランを含む PR を生成します。

次のステップ

バッチ計画を完了したら、 execute コマンドを使用してプランを確認し、実行します。

フィードバックを提供する

バッチ計画または最新化エージェントに関するフィードバックがある場合は、 github-copilot-appmod リポジトリに問題を作成するか、GitHub Copilotモダン化フィードバック フォームを使用します。