Поделиться через


Команды CLI агента модернизации GitHub Copilot

Агент модернизации GitHub Copilot предоставляет интерактивные и неинтерактивные режимы модернизации приложений.

Режимы команд

Интерактивный режим

Запустите интерактивный пользовательский интерфейс текста (TUI) для интерактивной модернизации:

modernize

Интерактивный режим предоставляет следующие возможности:

  • Навигация на основе меню через рабочий процесс модернизации.
  • Визуальный план и индикаторы хода выполнения.
  • Интерактивные запросы для параметров конфигурации.
  • Интерфейс выбора нескольких репозиторий.

Неинтерактивный режим

Выполните определенные команды непосредственно для автоматизации и скриптов:

modernize <command> [options]

Используйте неинтерактивный режим, когда:

  • Интеграция с конвейерами CI/CD.
  • Автоматизация пакетных операций.
  • Рабочие процессы модернизации сценариев.
  • Работает в бессерверных средах.

Глобальные опции

Все команды поддерживают следующие глобальные параметры:

Опция Описание
--help, -h Отображает сведения о справке.
--no-tty Отключает интерактивные запросы (режим без головы).

Команды

Оценить

Выполняет оценку и создает комплексный отчет по анализу.

Синтаксис

modernize assess [options]

Options

Опция Описание По умолчанию
--source <path> Путь к исходному проекту (относительный или абсолютный локальный путь). . (текущий каталог)
--output-path <path> Пользовательский путь вывода для результатов оценки. .github/modernize/assessment/
--issue-url <url> URL-адрес проблемы GitHub для обновления с сводкой оценки. Нет
--multi-repo Включает оценку нескольких репозиторий. Сканирует подкаталоги первого уровня для нескольких репозиториев. Disabled
--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  --multi-repo

Выходные данные

Оценка создает следующее:

  • Файлы отчетов: подробный анализ в форматах JSON, MD и HTML.
  • Сводка: ключевые выводы и рекомендации.
  • Обновления проблем (если вы предоставляете --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 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] Необязательные инструкции по естественному языку для выполнения (например, "пропустить тесты").

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

Поведение выполнения

Во время выполнения агент:

  1. Загружает план: считывает план и список задач из .github/modernization/{plan-name}/

  2. Выполняет задачи: обрабатывает каждую задачу в списке задач последовательно:

    • Применяет преобразования кода.
    • Проверяет сборки после изменений.
    • Проверяет наличие CVEs.
    • Фиксирует изменения с описательными сообщениями.
  3. Создает сводку: предоставляет отчет обо всех изменениях и результатах.

Выходные данные

  • Журнал фиксаций: подробные фиксации для каждой выполняемой задачи.
  • Сводный отчет: обзор изменений, успехов и любых проблем.
  • Проверка сборки: подтверждение успешной сборки приложения.
  • Отчет CVE: уязвимости безопасности, выявленные и устраненные.

upgrade

Выполняет комплексный рабочий процесс обновления — план и выполнение — в одной команде.

Синтаксис

modernize upgrade [prompt] [options]

Аргументы

Аргумент Описание
[prompt] Целевая версия, например Java 17, Spring Boot 3.2.NET 10. По умолчанию используется последняя версия LTS.

Options

Опция Описание По умолчанию
--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

help

Предоставляет команды справки и информации.

Синтаксис

modernize help [command]

Команды

Command Описание
models Перечисляет доступные модели LLM и их умножители.

Примеры

Список доступных моделей:

modernize help models

Настройка интерфейса командной строки

С помощью агента модернизации можно настроить поведение приложения с помощью JSON-файлов и переменных среды.

Переменные среды

Задайте переменные среды для переопределения всех других областей конфигурации:

Variable Описание По умолчанию
MODERNIZE_LOG_LEVEL Уровень ведения журнала (none, , warningerrorinfo, , 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

Дальнейшие действия