次の方法で共有


GitHub Copilot モダン化エージェントを使用したバッチ アップグレード

バッチ アップグレードを使用すると、複数のリポジトリに一貫した最新化計画を同時に適用できます。 この記事では、エンタープライズ規模で複数のアプリケーションを効率的にアップグレードする方法について説明します。

バッチ アップグレードを使用すると、次のことができます。

  • 同じアップグレード ターゲットを使用して複数のアプリケーションを同時にアップグレードします。
  • アプリケーション間で同様のアップグレード パターンを使用して、一貫性のあるパターンを適用します。
  • クラウド コーディング エージェントへの委任時に並列実行を活用します。

バッチ アップグレードには、次の利点があります。

  • 一貫性のある実行:

    • 標準化されたアプローチ: すべてのリポジトリに同じ最新化パターンを適用します。
    • 変動性の低下: 同様のアプリケーションに対して一貫したアップグレード パスを確保します。
    • 再利用可能な戦略: アプリケーション間で組織固有のスキルを使用します。
  • スケールと効率:

    • 並列処理: クラウド コーディング エージェントを使用して、複数のリポジトリを同時に処理します。
    • 自動化されたワークフロー: スケジュールされた最新化のために CI/CD パイプラインと統合します。
    • 時間の節約: モダン化の合計時間を数週間から数時間に短縮します。

前提条件

  • CLI を最新化します
  • 完了した バッチ評価 (推奨されますが、必須ではありません)。
  • すべてのリポジトリは、同じプログラミング言語 (Java または .NET) を使用します。
  • アップグレードするすべてのリポジトリへのアクセス。
  • GitHub 認証が構成されました (gh auth login)。

Important

バッチ アップグレード内のすべてのリポジトリは、同じプログラミング言語を使用する必要があります。 リポジトリが別の言語を使用している場合、バッチ アップグレードによってリポジトリが失敗としてマークされ、スキップされます。

リポジトリを構成する

バッチ アップグレードを有効にするには、アップグレードするすべてのリポジトリを一覧表示する .github/modernize/repos.json ファイルを作業ディレクトリに作成します。

ヒント

サンプル リポジトリの場合は、最初にそれらをフォークし、クラウド コーディング エージェントにジョブを委任するための管理者アクセス許可があることを確認します。

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

リポジトリの構成

各エントリには次のものが必要です。

  • name: リポジトリのフレンドリ名 (レポートとダッシュボードで使用)。
  • url: Git クローン URL (HTTPS 形式)。

ヒント

アクセス権がある限り、さまざまな組織のリポジトリを含め、さまざまな認証方法を使用できます。

ファイルの場所

repos.json ファイルは.github/modernize/repos.jsonに配置する必要があります。

最新化エージェントは、バッチ操作の実行時にこのファイルを自動的に検出します。

実行モードを選択する

バッチ アップグレードでは、2 つの実行モードと 2 つの対話方法がサポートされています。

実行モード

ローカル実行

  • 最適な方法: テスト、小さなリポジトリセット (1 から 5 個のリポジトリ)、またはローカル制御が必要な場合。
  • しくみ: ローカル コンピューターでリポジトリを順番に処理します。
  • セットアップが必要: 基本的な前提条件を超える必要はありません。

クラウド コーディング エージェントの委任

  • エンタープライズ規模の運用、大規模なポートフォリオ (5 つ以上のリポジトリ)、または並列処理に最適です。
  • しくみ: クラウドで並列実行するために GitHub クラウド コーディング エージェントにタスクを送信します。
  • セットアップが必要: 各リポジトリの MCP サーバー構成 (セットアップ中に構成)。

ヒント

リポジトリを並列に処理することで、クラウド コーディング エージェントの委任によって、合計最新化時間を数時間から数分に短縮できます。

相互作用メソッド

対話型モード (TUI)

  • メニューとプロンプトを使用したガイド付きエクスペリエンス。
  • 初めてのユーザーやオプションを確認する場合に最適です。
  • ローカル実行とクラウド実行の両方をサポートします。

非対話型モード (CLI/ヘッドレスモード)

  • コマンドライン ベースで、完全に自動化されています。
  • CI/CD パイプラインと自動化に最適です。
  • --delegate cloud フラグを使用したローカル実行とクラウド実行の両方をサポートします。

任意の実行モードを任意の対話方法と組み合わせることができます。 例えば次が挙げられます。

  • modernize (対話型、ローカル)
  • modernize →クラウド コーディング エージェント (対話型、クラウド) を選択します
  • modernize upgrade "Java 21" (非対話型、ローカル)
  • modernize upgrade "Java 21" --delegate cloud (非対話型、クラウド)

バッチ アップグレードのしくみ

バッチ アップグレード ワークフロー:

  1. 言語検出: 最初のリポジトリからプロジェクト言語 (Java または .NET) を自動的に検出します。
  2. プランの作成: プロンプトに基づいてアップグレード プランを作成するか、最新の LTS バージョンを使用します。
  3. 実行: 各リポジトリにアップグレードを適用します。
  4. 検証: 各リポジトリの変更をビルドして検証します。

バッチ アップグレードの実行

リポジトリを構成し、実行モードを選択したら、バッチ アップグレードを開始します。

対話型モード (ローカルアップグレード)

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

    modernize
    
  2. エージェントは、 repos.json ファイルを検出し、リポジトリの一覧を表示します。

    ターミナルの [リポジトリの選択] リストを示すモダン化 CLI のスクリーンショット。

  3. アップグレードするリポジトリを選択し、 Enter キーを押して選択内容を確認します。

    • Ctrl+A を押すをクリックして、すべてのリポジトリを選択します。
    • または、方向キーを使用 して移動し、 Enter を押して個々のリポジトリを選択します。
  4. 2 を選択 します。 メイン メニューからアップグレードします。

    ターミナルの [アップグレード ランタイム] メニュー オプションを示すモダン化 CLI のスクリーンショット。

  5. アップグレードを実行するには、1 を選択 します。ローカルにアップグレードします

    ターミナルの [ローカルにアップグレード] メニュー オプションを示すモダン化 CLI のスクリーンショット。

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

    • 要求に基づいてアップグレード プランを作成します。
    • プランを各リポジトリに順番に適用します。
    • 変更後に各リポジトリをビルドして検証します。
    • 各リポジトリの進行状況と概要を表示します。

    ターミナルの各リポジトリのアップグレードの進行状況を示す Modernize CLI のスクリーンショット。

対話型モード (クラウド コーディング エージェントへの委任)

前提条件: MCP サーバーを構成する

アップグレードを実行する前に、各リポジトリで GitHub Copilot モダン化 MCP サーバーを構成します。

Java アプリケーションの場合は、リポジトリ設定の Cloud Coding Agent セクションに次の構成を追加します。

{
  "mcpServers": {
    "app-modernization": {
      "type": "local",
      "command": "npx",
      "tools": [
        "*"
      ],
      "args": [
        "-y",
        "@microsoft/github-copilot-app-modernization-mcp-server"
      ]
    }
  }
}

[MCP 構成] セクションが強調表示されているリポジトリの [コーディング エージェントの設定] ウィンドウを示す GitHub のスクリーンショット。

手順

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

    modernize
    
  2. エージェントは、 repos.json ファイルを検出し、リポジトリの一覧を表示します。

    ターミナルのリポジトリの一覧を示すモダン化 CLI のスクリーンショット。

  3. アップグレードするリポジトリを選択し、 Enter キーを押して選択内容を確認します。

    • Ctrl+A を押すをクリックして、すべてのリポジトリを選択します。
    • または、方向キーを使用 して移動し、 Enter を押して個々のリポジトリを選択します。
  4. 2 を選択 します。 メイン メニューからアップグレードします。

  5. アップグレードを実行するには、2 を選択します 。クラウド コーディング エージェントに委任します

    ターミナルの [クラウド コーディング エージェントへの委任] メニュー オプションを示す最新化 CLI のスクリーンショット。

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

    • 各リポジトリのアップグレード 計画を作成します。

    • 各リポジトリのクラウド コーディング エージェント ジョブを送信します。

    • クラウド内でジョブを個別に並列で実行します。

    • 各リポジトリのジョブ ID と PR URL を表示します。

      ターミナルでクラウド コーディング エージェントにアップグレードを委任する進行状況を示す最新化 CLI のスクリーンショット。

    • タスクを AgentHQ に委任して並列実行します。

      AgentHQ に委任されたアップグレード タスクを含む [エージェント] ウィンドウを示す GitHub のスクリーンショット。

    • 個々のタスクの進行状況をリアルタイムで追跡します。

      個々のクラウド コーディング エージェントのアップグレード タスクの進行状況を追跡する [エージェント] ウィンドウを示す GitHub のスクリーンショット。

    • 完了した各タスクのアップグレードの概要を表示します。

      個々のクラウド コーディング エージェント タスクのアップグレードの概要が表示された [エージェント] ウィンドウを示す GitHub のスクリーンショット。

非対話型モード (CLI)

自動化と CI/CD 統合の場合は、 modernize upgrade コマンドを使用します。

ローカルにアップグレードする:

modernize upgrade "Java 21"

クラウド コーディング エージェントを使用したアップグレード:

modernize upgrade "Java 21" --delegate cloud

このコマンドは、 repos.json ファイルを自動的に検出し、すべてのリポジトリを処理します。

バッチ ヘッドレス実行とその他の CLI オプションについては、CLI コマンド リファレンスの 「マルチリポジトリ構成 」セクションを参照してください。

結果の確認

バッチ アップグレードが完了したら、次の手順を実行します。

  1. ターミナルに表示される集計レポートを確認します。

  2. 個々のリポジトリの変更を確認します。

    cd <repository-name>
    git status
    git diff
    
  3. アップグレードを成功させるために pull request を作成します。

    cd <repository-name>
    gh pr create --title "Upgrade to Java 21" --body "Automated upgrade by modernization agent"
    

バッチ アップグレードのトラブルシューティング

一般的な問題

リポジトリ アクセス エラー:

  • gh auth statusを使用して GitHub 認証を確認します。
  • repos.json内のすべてのリポジトリにアクセスできることを確認します。

言語の不一致エラー:

  • repos.json内のすべてのリポジトリが同じ言語 (Java または .NET) を使用していることを確認します。
  • 異なる言語に対して個別のバッチ操作を作成します。

複製の失敗:

  • repos.json内のリポジトリ URL が正しくアクセス可能であることを確認します。
  • すべてのリポジトリに対する適切なアクセス許可があることを確認します。
  • ネットワーク接続と VPN の設定を確認します。

アップグレード後のビルド エラー:

  • 集計されたレポートでビルド エラー メッセージを確認します。
  • 他の依存関係を更新する必要があるかどうかを確認します。
  • サード パーティ製ライブラリと新しいバージョンの互換性を確認します。

個々のリポジトリのエラー:

  • 個々のリポジトリが失敗した場合でも、バッチ 処理は続行されます。
  • 集計されたレポートを確認して、失敗したリポジトリを特定します。
  • エラー ログで特定のエラー メッセージを確認します。
  • 失敗したリポジトリを個別に再試行します。

クラウド コーディング エージェントのエラー:

  • GitHub Actions のアクセス許可とクォータの制限を確認します。
  • .NET Framework の場合は、Windows ランナーの構成が正しく設定されていることを確認します。

次のステップ

バッチ アップグレードを完了すると、次のことができます。

改善を続ける:

参考資料:

フィードバックの提供

私たちはあなたの入力を大切にしています! バッチ アップグレードまたはモダン化エージェントに関するフィードバックがある場合は、 github-copilot-appmod リポジトリで問題を作成 するか、 GitHub Copilot モダン化フィードバック フォームを使用します。