GitHub Copilot 现代化代理为应用程序现代化提供交互式和非交互式模式。
命令模式
交互模式
启动交互式文本用户界面(TUI),实现引导式现代化:
modernize
交互式模式提供:
- 通过现代化工作流进行菜单驱动的导航。
- 视觉计划和进度指示器。
- 配置选项的引导提示。
- 多存储库选择界面。
非交互模式
直接执行特定的命令进行自动化和脚本编写:
modernize <command> [options]
在以下情况下使用非交互模式:
- 与 CI/CD 管道集成。
- 自动执行批处理作。
- 编写现代化工作流脚本。
- 在无外设环境中运行。
全局选项
所有命令都支持以下全局选项:
| 选项 | 说明 |
|---|---|
--help、-h |
显示帮助信息。 |
--no-tty |
禁用交互式提示(无外设模式)。 |
指令
评估
运行评估并生成全面的分析报告。
Syntax
modernize assess [options]
选项
| 选项 | 说明 | 默认 |
|---|---|---|
--source <path> |
源项目的路径(相对路径或绝对本地路径)。 |
. (当前目录) |
--output-path <path> |
评估结果的自定义输出路径。 | .github/modernize/assessment/ |
--issue-url <url> |
GitHub 问题 URL,用于更新评估摘要。 | 没有 |
--multi-repo |
启用多存储库评估。 扫描多个存储库的第一级子目录。 | 已禁用 |
--model <model> |
要使用的 LLM 模型。 | claude-sonnet-4.6 |
--delegate <delegate> |
执行模式: local (此计算机)或 cloud (云编码代理)。 |
local |
--wait |
等待委托的任务完成并生成结果(仅有效)。--delegate cloud |
已禁用 |
--force |
强制重启委派,忽略正在进行的任务(仅有效)。--delegate cloud |
已禁用 |
示例
当前目录的基本评估:
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 --multi-repo
输出
评估生成:
- 报告文件:JSON、MD 和 HTML 格式的详细分析。
- 摘要:关键发现和建议。
-
问题更新 (如果提供
--issue-url):GitHub 问题注释摘要。
计划创建
基于描述现代化目标的自然语言提示创建现代化计划。
Syntax
modernize plan create <prompt> [options]
Arguments
| 论点 | 说明 |
|---|---|
<prompt> |
现代化目标的自然语言描述(必需)。 |
选项
| 选项 | 说明 | 默认 |
|---|---|---|
--source <path> |
应用程序源代码的路径。 | 当前目录 |
--plan-name <name> |
现代化计划的名称。 | modernization-plan |
--language <lang> |
编程语言(java或dotnetpython)。 |
自动检测 |
--overwrite |
覆盖具有相同名称的现有计划。 | 已禁用 |
--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.. 创建的现代化计划。
Syntax
modernize plan execute [prompt] [options]
Arguments
| 论点 | 说明 |
|---|---|
[prompt] |
可选的执行自然语言说明(例如,“跳过测试”)。 |
选项
| 选项 | 说明 | 默认 |
|---|---|---|
--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 作业正在进行,也会强制执行。 | 已禁用 |
示例
以交互方式执行最新计划:
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 报告:已识别并解决的安全漏洞。
升级
在单个命令中运行端到端升级工作流-计划和执行。
Syntax
modernize upgrade [prompt] [options]
Arguments
| 论点 | 说明 |
|---|---|
[prompt] |
目标版本,例如Java 17, Spring Boot 3.2。 .NET 10 默认为最新的 LTS。 |
选项
| 选项 | 说明 | 默认 |
|---|---|---|
--source <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
帮助
提供帮助和信息命令。
Syntax
modernize help [command]
指令
| 命令 | 说明 |
|---|---|
models |
列出可用的 LLM 模型及其乘数。 |
示例
列出可用模型:
modernize help models
配置 CLI
通过使用现代化代理,可以通过 JSON 文件和环境变量自定义应用程序行为。
环境变量
设置环境变量以替代所有其他配置范围:
| Variable | 说明 | 默认 |
|---|---|---|
MODERNIZE_LOG_LEVEL |
日志记录级别(none、、errorwarning、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 替代和用户配置环境变量。
多存储库配置
创建文件 .github/modernize/repos.json 以启用多存储库模式:
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "PhotoAlbum",
"url": "https://github.com/Azure-Samples/PhotoAlbum.git"
}
]
repos.json文件就位后,请使用以下命令在所有配置的存储库中作:
在本地评估所有存储库:
modernize assess
使用云编码代理评估所有存储库:
modernize assess --delegate cloud
使用云编码代理升级所有存储库:
modernize upgrade --delegate cloud