Пакетное планирование с агентом GitHub Copilot для модернизации

Пакетный план позволяет создавать планы модернизации для нескольких репозиториев с помощью одного рабочего процесса и общей цели модернизации. В этой статье показано, как создать согласованные планы в нескольких приложениях перед началом выполнения.

С помощью пакетного плана можно:

  • Создайте планы для нескольких приложений в одном интерактивном рабочем процессе.
  • Применение последовательной цели модернизации между репозиториями.
  • Используйте результаты оценки в качестве контекста для улучшения качества плана.
  • Просмотрите планы перед выполнением и определите, какие репозитории сначала модернизировать.

Пакетный план обеспечивает следующие преимущества:

  • Согласованность и управление:

    • Общий замысел: Начните с одного запроса на модернизацию для всех репозиториев.
    • Сопоставимые результаты: просмотрите планы рядом друг с другом перед выполнением.
    • Гибкая доработка: измените каждый сгенерированный план с учётом потребностей конкретного репозитория.
  • Планирование в масштабе:

    • Видимость портфеля. Узнайте, как применяется один и тот же запрос в приложениях.
    • Повторное использование подготовки: используйте тот же список репозиториев и результаты оценки с предыдущих этапов.
    • Быстрое принятие решений: сначала создайте планы, а затем выполните только репозитории, которые вы утверждаете.

Необходимые условия

Подсказка

Пакетная оценка не требуется, но обычно она создает более точные и практические планы, так как агент может ссылаться на обнаруженные проблемы и возможности миграции.

Настройка репозиториев

Агент модернизации поддерживает несколько способов указания репозиториев, которые вы хотите запланировать:

  • Текущая папка: создайте план проекта в текущем рабочем каталоге.
  • Ввод вручную. Введите пути к локальному каталогу или удаленные URL-адреса Git напрямую.
  • Файл конфигурации репозитория: используйте файл конфигурации JSON, который перечисляет все репозитории.

Файл конфигурации репозитория

Для пакетных операций во многих репозиториях создайте файл конфигурации JSON для перечисления всех репозиториев. Например, создайте его .github/modernize/repos.json в рабочем каталоге или укажите пользовательский путь.

Формат (массив репозиториев):

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

Каждая запись репозитория поддерживает следующие поля:

Поле Description Обязательный
name Понятное имя репозитория (используется в отчетах и панелях мониторинга). Да
url URL-адрес клонирования Git в формате HTTPS или SSH. Одно из url или path

Подсказка

Один и тот же repos.json файл можно использовать в рабочих процессах пакетной оценки, пакетного плана и пакетного обновления.

Агент модернизации автоматически обнаруживает repos.json файл .github/modernize/repos.json, когда вы выбираете опцию Из файла конфигурации в интерактивном режиме. Можно также указать пользовательский путь.

Как работает пакетный план

Процесс пакетного планирования:

  1. Выбор репозитория: выберите репозитории, которые вы хотите включить.
  2. Выбор контекста: при необходимости используйте доступные отчеты оценки в качестве входных данных.
  3. Определение запроса: опишите цель модернизации один раз и примените ее к репозиториям.
  4. Уточнение. Ответить на все последующие вопросы от агента.
  5. Создание плана: агент создает план для каждого выбранного репозитория.

Каждый созданный план сохраняется в целевом репозитории и может быть проверен или изменен перед выполнением.

Запустить пакетный план

После настройки репозиториев запустите процесс пакетного планирования.

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

  1. Запустите агент модернизации:

    modernize
    
  2. Выберите "План " в главном меню.

    ○ How would you like to modernize your app?
    
        Assess
        Analyze modernization readiness across one or multiple applications
      > Plan
        Generate a structured plan to guide the agent
        Execute
        Run the tasks defined in the modernization plan
    
      Or select a quick-start scenario:
    
        Upgrade
            Upgrade runtimes and frameworks across one or multiple applications
    
  3. Выберите способ указания целевых репозиториев. Выберите из файла конфигурации , чтобы использовать repos.json файл.

    ○ Choose target repositories
    
        1. Current folder
          /Users/username/project
        2. Manual input
          Enter local path or remote URL
      > 3. From a config file
          /path/to/.github/modernize/repos.json
    

    Подсказка

    Вы также можете выбрать Ввод вручную, чтобы напрямую ввести локальные пути или удалённые URL-адреса Git, либо Текущая папка, чтобы спланировать работу с проектом в текущем каталоге.

  4. repos.json Если файл обнаружен в расположении по умолчанию, агент автоматически заполняет его. В противном случае введите путь к файлу конфигурации и нажмите клавишу ВВОД.

  5. По умолчанию выбраны все репозитории. Отмените выбор любых репозиториев, которые вы хотите пропустить, а затем нажмите клавишу ВВОД , чтобы подтвердить выбор.

    • Используйте клавиши со стрелками для навигации и нажмите пробел для переключения отдельных репозиториев.
  6. Выберите 1. Сохраните локальный план , чтобы создать планы на компьютере или выбрать 2. Отправьте в cloud Agent , чтобы создать их с помощью облачного агента. Вариант 2 является экспериментальным.

  7. Введите имя плана или нажмите Enter, чтобы использовать вариант по умолчанию.

  8. Введите цель модернизации в качестве запроса. Рассмотрим пример.

    • upgrade to Spring Boot 3 and prepare for Azure deployment
    • migrate the database to Azure PostgreSQL
    • containerize the application and deploy to Azure Container Apps
  9. Нажмите клавишу ВВОД , чтобы создать планы.

  10. Агент автоматически:

    • Клонирует каждый выбранный репозиторий или отправляет задание в облачный агент для каждого репозитория.
    • Создает план локально для каждого репозитория или PR с этим планом для каждого репозитория.

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

После завершения пакетного плана просмотрите планы и выполните их с помощью execute команды:

Предоставьте отзыв

Если у вас есть отзывы о пакетном плане или агенте модернизации, создайте проблему в репозитории github-copilot-appmod или используйте форму обратной связи о модернизации GitHub Copilot.