最新化エージェント CLI コマンドのGitHub Copilot

GitHub Copilotモダン化エージェントは、アプリケーションの最新化に対話型モードと非対話型モードの両方を提供します。

コマンド モード

対話型モード

ガイド付きモダン化のために対話型テキスト ユーザー インターフェイス (TUI) を起動します。

modernize

対話型モードでは、次の機能が提供されます。

  • モダン化ワークフローを通じたメニュー駆動型ナビゲーション。
  • 柔軟なソース選択: 現在のフォルダー、手動入力 (ローカル パスまたは Git URL)、またはリポジトリ構成ファイル。
  • 視覚的な計画と進行状況インジケーター。
  • 評価ドメインとパラメーターを含む構成オプションのガイド付きプロンプト。
  • 複数リポジトリ選択インターフェイス。

非対話型モード

自動化とスクリプト作成のために特定のコマンドを直接実行します。

modernize <command> [options]

非対話型モードは、次の場合に使用します。

  • CI/CD パイプラインとの統合。
  • バッチ操作の自動化。
  • 最新化ワークフローのスクリプト化。
  • ヘッドレス環境での実行。

グローバル オプション

すべてのコマンドで、次のグローバル オプションがサポートされます。

オプション 説明
--help-h ヘルプ情報を表示します。
--no-tty 対話型プロンプト (ヘッドレス モード) を無効にします。

コマンド

評価

評価を実行し、包括的な分析レポートを生成します。

構文

modernize assess [options]

オプション

オプション 説明 デフォルト
--source <source> 評価するソース (反復可能)。 ローカル パス、Git URL、または JSON 構成ファイル パスを受け入れます。 複数の --source フラグを使用して、複数のリポジトリを指定します。 . (現在のディレクトリ)
--output-path <path> 評価結果のカスタム出力パス。 .github/modernize/assessment/
--issue-url <url> 評価の概要で更新するGitHub問題の URL。 なし
--format <format> 評価レポートの出力形式: html または markdown html
--assess-config <path> ターゲット ランタイム、コンピューティング サービス、分析カバレッジなどの既定の評価パラメーターをオーバーライドする評価構成 YAML ファイルへのパス。 自動検出または既定値
--model <model> 使用する LLM モデル。 claude-sonnet-4.6
--delegate <delegate> 実行モード: local (このマシン) または cloud (クラウド コーディング エージェント)。 local
--wait 委任されたタスクが完了し、結果が生成されるまで待機します ( --delegate cloudでのみ有効)。 Disabled
--force 進行中のタスクを無視して強制的に委任を再開します ( --delegate cloudでのみ有効)。 Disabled

例示

現在のディレクトリの基本的な評価:

modernize assess

カスタム出力場所を使用して評価する:

modernize assess --output-path ./reports/assessment

結果に関する問題GitHub評価して更新します。

modernize assess --issue-url https://github.com/org/repo/issues/123

特定のプロジェクト ディレクトリを評価します。

modernize assess --source /path/to/project

構成ファイルを使用して複数のリポジトリを評価する:

modernize assess --source .github/modernize/repos.json

ソースを直接指定して、複数のリポジトリを評価します。

modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2

マークダウン形式でレポートを評価して出力する:

modernize assess --format markdown

アウトプット

評価では、次の結果が生成されます。

  • レポート ファイル: JSON、MD、および HTML 形式での詳細な分析。
  • 概要: 主要な結果と推奨事項。
  • 更新プログラム (--issue-urlを指定した場合): GitHub概要を含むコメントを発行します。

プランの作成

モダン化の目標を説明する自然言語プロンプトに基づいて最新化計画を作成します。

構文

modernize plan create <prompt> [options]

引数

引数 説明
<prompt> モダン化の目標に関する自然言語の説明 (必須)。

オプション

オプション 説明 デフォルト
--source <path> アプリケーションのソース コードへのパス。 現在のディレクトリ
--plan-name <name> モダン化計画の名前。 modernization-plan
--language <lang> プログラミング言語 (javadotnet、または python)。 自動検出
--overwrite 既存のプランを同じ名前で上書きします。 Disabled
--model <model> 使用する LLM モデル。 claude-sonnet-4.6

例示

移行計画を生成します。

modernize plan create "migrate from oracle to azure postgresql"

カスタム名を使用してアップグレード プランを生成します。

modernize plan create "upgrade to spring boot 3" --plan-name spring-boot-upgrade

デプロイ計画を生成します。

modernize plan create "deploy the app to azure container apps" --plan-name deploy-to-aca

完全なオプションの例:

modernize plan create "upgrade to .NET 8" \
    --source /path/to/project \
    --plan-name dotnet8-upgrade \
    --language dotnet \
    --issue-url https://github.com/org/repo/issues/456

プロンプトの例

フレームワークのアップグレード:

  • upgrade to spring boot 3
  • upgrade to .NET 10
  • upgrade to JDK 21
  • migrate from spring boot 2 to spring boot 3

データベースの移行:

  • migrate from oracle to azure postgresql
  • migrate from SQL Server to azure cosmos db
  • switch from MySQL to azure database for mysql

クラウド移行:

  • migrate from on-premises to azure
  • containerize and deploy to azure container apps
  • migrate from rabbitmq to azure service bus

配備:

  • deploy to azure app service
  • deploy to azure kubernetes service
  • set up CI/CD pipeline for azure

アウトプット

このコマンドにより、次の結果が生成されます。

  • プラン ファイル (.github/modernize/{plan-name}/plan.md): 以下を含む詳細な最新化戦略:

    • コンテキストと目標
    • アプローチと手法
    • 説明
  • タスク リスト (.github/modernize/{plan-name}/tasks.json): 実行可能タスクの構造化された内訳

    • タスクの説明
    • 使用するスキル
    • 成功基準

ヒント

生成後に plan.mdtasks.json の両方を手動で編集して、実行前にアプローチをカスタマイズできます。

プランの実行

modernize plan createによって作成されたモダン化計画を実行します。

構文

modernize plan execute [prompt] [options]

引数

引数 説明
[prompt] 実行用の省略可能な自然言語命令 (例: "skip tests")。

オプション

オプション 説明 デフォルト
--source <path> アプリケーションのソース コードへのパス。 現在のディレクトリ
--plan-name <name> 実行するプランの名前。 modernization-plan
--language <lang> プログラミング言語 (java または dotnet)。 自動検出
--model <model> 使用する LLM モデル。 claude-sonnet-4.6
--delegate <delegate> 実行モード: local (このマシン) または cloud (クラウド コーディング エージェント)。 local
--force CCA ジョブが進行中であっても、実行を強制します。 Disabled

例示

最新のプランを対話形式で実行します。

modernize plan execute

特定のプランを実行します。

modernize plan execute --plan-name spring-boot-upgrade

追加の命令を使用して実行します。

modernize plan execute "skip the test" --plan-name spring-boot-upgrade

CI/CD のヘッドレス モードで実行します。

modernize plan execute --plan-name spring-boot-upgrade --no-tty

実行動作

実行中、エージェントは次の処理を行います。

  1. プランを読み込む: プランとタスクの一覧を読み取ります .github/modernization/{plan-name}/

  2. タスクの実行: タスク リスト内の各タスクを順番に処理します。

    • コード変換を適用します。
    • 変更後のビルドを検証します。
    • CVE をスキャンします。
    • 説明メッセージを使用して変更をコミットします。
  3. 概要の生成: すべての変更と結果のレポートを提供します。

アウトプット

  • コミット履歴: 実行された各タスクの詳細なコミット。
  • 概要レポート: 変更、成功、発生した問題の概要。
  • ビルド検証: アプリケーションが正常にビルドされたことを確認します。
  • CVE レポート: セキュリティの脆弱性が特定され、対処されました。

アップグレード

1 つのコマンドで、エンドツーエンドのアップグレード ワークフロー (計画、実行) を実行します。

構文

modernize upgrade [prompt] [options]

引数

引数 説明
[prompt] ターゲット バージョン (Java 17Spring Boot 3.2.NET 10 など)。 既定値は最新の LTS です。

オプション

オプション 説明 デフォルト
--source <source> アップグレードするソース (繰り返し可能)。 ローカル パス、Git URL、または JSON 構成ファイル パスを受け入れます。 複数の --source フラグを使用して、複数のリポジトリを指定します。 . (現在のディレクトリ)
--delegate <delegate> 実行モード: local (このマシン) または cloud (クラウド コーディング エージェント)。 local
--model <model> 使用する LLM モデル。 claude-sonnet-4.6

例示

現在のディレクトリで upgrade を実行します。

modernize upgrade "Java 17"
modernize upgrade ".NET 10"

特定のプロジェクトで upgrade を実行します。

modernize upgrade "Java 17" --source /path/to/project

クラウド コーディング エージェントを使用して upgrade を実行します。

modernize upgrade "Java 17" --delegate cloud

構成ファイルを使用して複数のリポジトリをアップグレードします。

modernize upgrade "Java 21" --source .github/modernize/repos.json

ソースを直接指定して、複数のリポジトリをアップグレードします。

modernize upgrade "Java 21" --source https://github.com/org/repo1 --source https://github.com/org/repo2

help

ヘルプコマンドと情報コマンドを提供します。

構文

modernize help [command]

コマンド

命令 説明
models 使用可能な LLM モデルとその乗数を一覧表示します。

例示

使用可能なモデルを一覧表示します。

modernize help models

CLI の構成

モダン化エージェントを使用すると、JSON ファイルと環境変数を使用してアプリケーションの動作をカスタマイズできます。

環境変数

環境変数を設定して、他のすべての構成スコープをオーバーライドします。

Variable 説明 デフォルト
MODERNIZE_LOG_LEVEL ログ レベル (noneerrorwarninginfodebugall) info
MODERNIZE_MODEL 使用する LLM モデル。 claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY テレメトリ収集を有効または無効にします。 true

例:

export MODERNIZE_LOG_LEVEL=debug
export MODERNIZE_MODEL=claude-sonnet-4.6
modernize assess

ユーザー構成

~/.modernize/config.json.github/modernize/config.jsonまたはリポジトリ全体の設定にユーザー固有の設定を格納します。

{
  "model": "claude-sonnet-4.6",
  "log_level": "info",
  "trusted_folders": [
    "/path/to/trusted/project",
  ]
}

trusted_folders プロパティは、対話型モードで LLM を使用するために信頼されているフォルダーを指定します。

環境変数の優先順位が最も高く、その後にユーザー構成、リポジトリの構成が続きます。 CI/CD オーバーライドには環境変数を使用し、個人設定にはユーザー構成を使用します。

複数リポジトリの構成

複数の方法で CLI に複数のソースを提供できます。

  • リポジトリ構成ファイル: すべてのリポジトリを一覧表示する .github/modernize/repos.json ファイルを作成し、 --sourceと共に渡します。
  • 複数の --source フラグ: コマンド ラインでローカル パスまたは Git URL を直接指定します。
  • 対話型モード: TUI (現在のフォルダー、手動入力、またはリポジトリ構成) を使用してソースを選択します。

リポジトリ構成ファイル

リポジトリ リストを定義する .github/modernize/repos.json ファイルを作成します。 この構成では、次の 2 つの形式がサポートされています。

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

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

フル フォーマット (ブランチ パスとローカル パスを含む):

{
  "repos": [
    {
      "name": "PhotoAlbum-Java",
      "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
      "branch": "main"
    },
    {
      "name": "local-project",
      "path": "/absolute/path/to/project"
    }
  ]
}

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

フィールド 説明 必須
name リポジトリのフレンドリ名。 はい
url Git クローン URL (HTTPS または SSH)。 urlまたはpath
path 絶対ローカル ディレクトリ パス。 urlまたはpath
branch 複製後にチェックアウトする分岐。 いいえ
description 人間が判読できる説明。 いいえ

アプリのグループ化を使用した完全な形式 (省略可能、整理されたレポートの場合):

apps[] セクションを追加して、リポジトリを論理アプリケーションにグループ化できます。 アプリが定義されると、集計されたレポートによって結果がアプリケーション別に整理され、レポートの配布がサポートされます。

{
  "repos": [
    {
      "name": "PhotoAlbum-Java",
      "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
      "branch": "main"
    },
    {
      "name": "PhotoAlbum",
      "url": "https://github.com/Azure-Samples/PhotoAlbum.git"
    }
  ],
  "apps": [
    {
      "identifier": "photo-app",
      "description": "Photo management application",
      "repos": ["PhotoAlbum-Java"],
      "output": {
        "type": "local",
        "path": "/path/to/reports/photo-app"
      }
    }
  ]
}

各アプリ エントリでは、次の機能がサポートされます。

フィールド 説明 必須
identifier アプリケーションの一意の表示名。 はい
description 人間が判読できる説明。 いいえ
repos このアプリに属するリポジトリ名の一覧。 はい
output 生成後にこのアプリの評価レポートを配布する場所。 いいえ

[ output ] フィールドでは、次の配布の種類がサポートされています。

タイプ 説明 必須フィールド
local レポートをローカル ディレクトリにコピーします。 path
git Git リポジトリにレポートをプッシュします。 URL 形式: https://github.com/org/repo.git#branch:path url

Important

クラウド コーディング エージェントの委任 (--delegate cloud) には、リポジトリに GitHub (github.com) リポジトリ URL が必要です。 ローカル パス リポジトリとGitHub以外のプロバイダー (GitLab、Azure DevOps) は、クラウド委任ではサポートされておらず、スキップされます。

次に、 --source を使用して構成ファイルのパスを渡します。

すべてのリポジトリをローカルで評価します。

modernize assess --source .github/modernize/repos.json

クラウド コーディング エージェントを使用して、すべてのリポジトリを評価します。

modernize assess --source .github/modernize/repos.json --delegate cloud

クラウド コーディング エージェントを使用して、すべてのリポジトリをアップグレードします。

modernize upgrade --source .github/modernize/repos.json --delegate cloud

コマンド ライン上の複数のソース

複数のソースを直接指定することもできます。

modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
modernize upgrade "Java 21" --source ./project-a --source ./project-b

次のステップ