Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Агент модернизации GitHub Copilot предоставляет интерактивные и неинтерактивные режимы модернизации приложений.
Режимы команд
Интерактивный режим
Запустите интерактивный пользовательский интерфейс текста (TUI) для интерактивной модернизации:
modernize
Интерактивный режим предоставляет следующие возможности:
- Навигация на основе меню через рабочий процесс модернизации.
- Гибкий выбор источника: текущая папка, входные данные вручную (локальные пути или URL-адреса Git) или файлы конфигурации репозитория.
- Визуальный план и индикаторы хода выполнения.
- Интерактивные запросы для параметров конфигурации, включая домены оценки и параметры.
- Интерфейс выбора нескольких репозиторий.
Неинтерактивный режим
Выполните определенные команды непосредственно для автоматизации и скриптов:
modernize <command> [options]
Используйте неинтерактивный режим, когда:
- Интеграция с конвейерами CI/CD.
- Автоматизация пакетных операций.
- Рабочие процессы модернизации сценариев.
- Работает в бессерверных средах.
Глобальные опции
Все команды поддерживают следующие глобальные параметры:
| Опция | Описание |
|---|---|
--help, -h |
Отображает сведения о справке. |
--no-tty |
Отключает интерактивные запросы (режим без головы). |
Команды
Оценить
Выполняет оценку и создает комплексный отчет по анализу.
Синтаксис
modernize assess [options]
Options
| Опция | Описание | По умолчанию |
|---|---|---|
--source <source> |
Источник для оценки (повторяемый). Принимает локальные пути, URL-адреса Git или путь к файлу конфигурации JSON. Используйте несколько флагов для указания нескольких --source репозиториев. |
. (текущий каталог) |
--output-path <path> |
Пользовательский путь вывода для результатов оценки. | .github/modernize/assessment/ |
--issue-url <url> |
URL-адрес проблемы GitHub для обновления с сводкой оценки. | Нет |
--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
Оценка и вывод отчетов в формате markdown:
modernize assess --format markdown
Выходные данные
Оценка создает следующее:
- Файлы отчетов: подробный анализ в форматах JSON, MD и HTML.
- Сводка: ключевые выводы и рекомендации.
- обновления Issue (если вы предоставляете
--issue-url): GitHub примечания проблемы с сводкой.
Создание плана
Создает план модернизации на основе запроса естественного языка, описывающего цели модернизации.
Синтаксис
modernize plan create <prompt> [options]
Аргументы
| Аргумент | Описание |
|---|---|
<prompt> |
Описание целей модернизации (обязательно). |
Options
| Опция | Описание | По умолчанию |
|---|---|---|
--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.mdtasks.json и после создания, чтобы настроить подход перед выполнением.
выполнение плана
Выполняет план модернизации, созданный с помощью modernize plan create.
Синтаксис
modernize plan execute [prompt] [options]
Аргументы
| Аргумент | Описание |
|---|---|
[prompt] |
Необязательные инструкции по естественному языку для выполнения (например, "пропустить тесты"). |
Options
| Опция | Описание | По умолчанию |
|---|---|---|
--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}/Выполняет задачи: обрабатывает каждую задачу в списке задач последовательно:
- Применяет преобразования кода.
- Проверяет сборки после изменений.
- Проверяет наличие CVEs.
- Фиксирует изменения с описательными сообщениями.
Создает сводку: предоставляет отчет обо всех изменениях и результатах.
Выходные данные
- Журнал фиксаций: подробные фиксации для каждой выполняемой задачи.
- Сводный отчет: обзор изменений, успехов и любых проблем.
- Проверка сборки: подтверждение успешной сборки приложения.
- Отчет CVE: уязвимости безопасности, выявленные и устраненные.
upgrade
Выполняет комплексный рабочий процесс обновления — план и выполнение — в одной команде.
Синтаксис
modernize upgrade [prompt] [options]
Аргументы
| Аргумент | Описание |
|---|---|
[prompt] |
Целевая версия, например Java 17, Spring Boot 3.2, .NET 10. По умолчанию используется последняя версия LTS. |
Options
| Опция | Описание | По умолчанию |
|---|---|---|
--source <source> |
Источник обновления (повторяемый). Принимает локальные пути, URL-адреса Git или путь к файлу конфигурации 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]
Команды
| Command | Описание |
|---|---|
models |
Перечисляет доступные модели LLM и их умножители. |
Примеры
Список доступных моделей:
modernize help models
Настройка интерфейса командной строки
С помощью агента модернизации можно настроить поведение приложения с помощью JSON-файлов и переменных среды.
Переменные среды
Задайте переменные среды для переопределения всех других областей конфигурации:
| Variable | Описание | По умолчанию |
|---|---|---|
MODERNIZE_LOG_LEVEL |
Уровень ведения журнала (none, , errorwarninginfo, , 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файл, который перечисляет все репозитории, а затем передайте его.--source -
Несколько
--sourceфлагов: укажите локальные пути или URL-адреса Git непосредственно в командной строке. - Интерактивный режим: выбор источников с помощью TUI (текущая папка, входные данные вручную или конфигурация репозитория).
Файл конфигурации репозитория
.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": [
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
"branch": "main"
},
{
"name": "local-project",
"path": "/absolute/path/to/project"
}
]
}
Каждая запись репозитория поддерживает следующие поля:
| Поле | Описание | Обязательный |
|---|---|---|
name |
Понятное имя репозитория. | Да |
url |
URL-адрес клона Git (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 |
Это важно
Делегирование агента программирования облака (--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