Plano por lotes com o agente de modernização do GitHub Copilot

O plano em lote permite-lhe gerar planos de modernização para múltiplos repositórios usando um único fluxo de trabalho e um objetivo de modernização partilhado. Este artigo mostra-lhe como criar planos consistentes em múltiplas aplicações antes de iniciar a execução.

Ao utilizar o plano por lotes, pode:

  • Crie planos para múltiplas aplicações num único fluxo de trabalho guiado.
  • Aplique um objetivo consistente de modernização entre os repositórios.
  • Use os resultados da avaliação como contexto para melhorar a qualidade do plano.
  • Revise os planos antes da execução e decida quais os repositórios a modernizar primeiro.

O plano de lotes oferece os seguintes benefícios:

  • Consistência e controlo:

    • Objetivo comum: Parta de um prompt de modernização em vários repositórios.
    • Resultados comparáveis: Analise os planos lado a lado antes de os executar.
    • Refinamento flexível: Editar cada plano gerado para refletir necessidades específicas do repositório.
  • Planeamento em grande escala:

    • Visibilidade do portefólio: Compreenda como o mesmo pedido se aplica entre aplicações.
    • Preparação reutilizável: Reutilizar a mesma lista de repositórios e os resultados da avaliação das fases anteriores.
    • Tomada de decisão mais rápida: Gera primeiro planos e depois execute apenas os repositórios que aprovar.

Pré-requisitos

  • Modernizar o CLI
  • Acesso a todos os repositórios de que precisa para planear.
  • Autenticação do GitHub configurada (gh auth login).
  • Uma avaliação em lote concluída (recomendada) se quiser que o agente use as conclusões da avaliação como contexto de planeamento.

Sugestão

A avaliação em lote não é obrigatória, mas normalmente produz planos mais precisos e acionáveis porque o agente pode referenciar problemas detetados e oportunidades de migração.

Configurar repositórios

O agente de modernização suporta múltiplas formas de especificar os repositórios que pretende planear:

  • Pasta atual: Crie um plano para o projeto no seu diretório de trabalho atual.
  • Entrada manual: Introduza diretamente caminhos de diretórios locais ou URLs Git remotos.
  • Ficheiro de configuração do repositório: Use um ficheiro de configuração JSON que liste todos os repositórios.

Ficheiro de configuração do repositório

Para operações em lote em vários repositórios, crie um ficheiro de configuração JSON para listar todos os repositórios. Por exemplo, crie-o em .github/modernize/repos.json no seu diretório de trabalho, ou forneça um caminho personalizado.

Formato (array de repositórios):

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

Cada entrada de repositório suporta os seguintes campos:

Campo Description Obrigatório
name Um nome amigável para o repositório (usado em relatórios e dashboards). Yes
url URL de clonagem do Git nos formatos HTTPS ou SSH. Um de url ou path

Sugestão

Pode usar o mesmo ficheiro repos.json nos fluxos de trabalho de avaliação em lote, planeamento em lote e atualização em lote.

O agente de modernização deteta automaticamente o ficheiro repos.json em .github/modernize/repos.json quando seleciona De um ficheiro de configuração em modo interativo. Também pode fornecer um caminho personalizado.

Como funciona o plano em lote

O fluxo de trabalho de planeamento em lote:

  1. Seleção do repositório: Escolha os repositórios que pretende incluir.
  2. Seleção de contexto: Opcionalmente, use os relatórios de avaliação disponíveis como entrada.
  3. Definição de enunciado: Descreva o seu objetivo de modernização uma vez e aplique-o a vários repositórios.
  4. Esclarecimento: Responda a quaisquer perguntas de seguimento do agente.
  5. Geração de plano: O agente cria um plano para cada repositório selecionado.

Cada plano gerado é guardado no repositório alvo e pode ser revisto ou editado antes da execução.

Executar plano em lote

Depois de configurares os teus repositórios, inicia o fluxo de trabalho de planeamento em lote.

Modo interativo

  1. Execute o agente de modernização:

    modernize
    
  2. Selecione Planear no menu principal.

    ○ 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. Escolha como especificar os seus repositórios-alvo. Selecione De um ficheiro de configuração para usar um repos.json ficheiro.

    ○ 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
    

    Sugestão

    Também pode selecionar entrada manual para introduzir caminhos locais ou URLs Git remotos diretamente, ou a pasta Current para planear o projeto no seu diretório atual.

  4. Se o repos.json ficheiro for detetado na localização predefinida, o agente preenche-o automaticamente. Caso contrário, introduza o caminho para o seu ficheiro de configuração e pressione Enter.

  5. Todos os repositórios são selecionados por padrão. Desmarque quaisquer repositórios que queira saltar e depois pressione Enter para confirmar a sua seleção.

    • Use as setas para navegar e pressione Espaço para alternar repositórios individuais.
  6. Selecione 1. Mantenha o plano local para gerar planos na sua máquina, ou escolha 2. Submete ao Cloud Agent para que um Cloud Agent os gere. A opção 2 é experimental.

  7. Introduza o nome do plano ou pressione Enter para usar o padrão.

  8. Introduza o seu objetivo de modernização como um prompt. Por exemplo:

    • 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. Prima Enter para gerar os planos.

  10. O agente automaticamente:

    • Clona cada repositório selecionado ou submete um trabalho a um agente cloud para cada repositório.
    • Gera um plano local para cada repositório ou uma PR com o plano em cada repositório.

Passos seguintes

Depois de concluir o plano em lote, reveja os planos e execute-os usando o execute comando:

Fornecer comentários

Se tiveres feedback sobre o batch plan ou o agente de modernização, cria um problema no repositório github-copilot-appmod ou usa o formulário de feedback de modernização GitHub Copilot.