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> |
プログラミング言語 (java、 dotnet、または 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 3upgrade to .NET 10upgrade to JDK 21migrate from spring boot 2 to spring boot 3
データベースの移行:
migrate from oracle to azure postgresqlmigrate from SQL Server to azure cosmos dbswitch from MySQL to azure database for mysql
クラウド移行:
migrate from on-premises to azurecontainerize and deploy to azure container appsmigrate from rabbitmq to azure service bus
配備:
deploy to azure app servicedeploy to azure kubernetes serviceset up CI/CD pipeline for azure
アウトプット
このコマンドにより、次の結果が生成されます。
プラン ファイル (
.github/modernize/{plan-name}/plan.md): 以下を含む詳細な最新化戦略:- コンテキストと目標
- アプローチと手法
- 説明
タスク リスト (
.github/modernize/{plan-name}/tasks.json): 実行可能タスクの構造化された内訳- タスクの説明
- 使用するスキル
- 成功基準
ヒント
生成後に plan.md と tasks.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
実行動作
実行中、エージェントは次の処理を行います。
プランを読み込む: プランとタスクの一覧を読み取ります
.github/modernization/{plan-name}/タスクの実行: タスク リスト内の各タスクを順番に処理します。
- コード変換を適用します。
- 変更後のビルドを検証します。
- CVE をスキャンします。
- 説明メッセージを使用して変更をコミットします。
概要の生成: すべての変更と結果のレポートを提供します。
アウトプット
- コミット履歴: 実行された各タスクの詳細なコミット。
- 概要レポート: 変更、成功、発生した問題の概要。
- ビルド検証: アプリケーションが正常にビルドされたことを確認します。
- CVE レポート: セキュリティの脆弱性が特定され、対処されました。
アップグレード
1 つのコマンドで、エンドツーエンドのアップグレード ワークフロー (計画、実行) を実行します。
構文
modernize upgrade [prompt] [options]
引数
| 引数 | 説明 |
|---|---|
[prompt] |
ターゲット バージョン (Java 17、Spring 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 |
ログ レベル (none、 error、 warning、 info、 debug、 all) |
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