Partilhar via


Comandos CLI do agente de modernização do GitHub Copilot

O agente de modernização GitHub Copilot fornece modos interativos e não interativos para a modernização de aplicações.

Modos de comando

Modo interativo

Lance a Interface de Utilizador de Texto interativa (TUI) para modernização guiada:

modernize

O modo interativo oferece:

  • Navegação guiada por menus através do fluxo de trabalho de modernização.
  • Plano visual e indicadores de progresso.
  • Prompts guiados para opções de configuração.
  • Interface de seleção multi-repositório.

Modo não interativo

Executar comandos específicos diretamente para automação e scripting:

modernize <command> [options]

Use o modo não interativo quando:

  • Integração com pipelines CI/CD.
  • Automatizar operações em lote.
  • Workflows de modernização de scripts.
  • Correr em ambientes sem cabeça.

Opções globais

Todos os comandos suportam estas opções globais:

Option Descrição
--help, -h Apresenta informação de ajuda.
--no-tty Desativa os prompts interativos (modo headless).

Comandos

avaliar

Realiza uma avaliação e gera um relatório de análise abrangente.

Sintaxe

modernize assess [options]

Opções

Option Descrição Predefinição
--source <path> O caminho para o projeto de origem (caminho local relativo ou absoluto). . (diretório atual)
--output-path <path> Um caminho de saída personalizado para os resultados da avaliação. .github/modernize/assessment/
--issue-url <url> Um URL de emissão no GitHub para atualizar com o resumo da avaliação. Nenhum
--multi-repo Permite a avaliação multi-repositório. Analisa subdiretórios de primeiro nível à procura de múltiplos repositórios. Disabled
--model <model> O modelo de LLM a usar. claude-sonnet-4.6
--delegate <delegate> O modo de execução: local (esta máquina) ou cloud (Agente de Codificação na Nuvem). local
--wait Espera que as tarefas delegadas sejam concluídas e gerem resultados (válidos apenas com --delegate cloud). Disabled
--force Força o reinício da delegação, ignorando tarefas em curso (válidas apenas com --delegate cloud). Disabled

Exemplos

Avaliação básica do diretório atual:

modernize assess

Avalie com a localização personalizada da saída:

modernize assess --output-path ./reports/assessment

Avaliar e atualizar o problema do GitHub com os resultados:

modernize assess --issue-url https://github.com/org/repo/issues/123

Avalie o diretório específico de projetos:

modernize assess --source /path/to/project

Avalie múltiplos repositórios no diretório atual:

modernize assess  --multi-repo

Output

A avaliação gera:

  • Ficheiros de relatório: Análise detalhada em formatos JSON, MD e HTML.
  • Resumo: Principais conclusões e recomendações.
  • Atualizações de edição (se fornecer --issue-url): comentário de edição no GitHub com resumo.

Criar o plano

Cria um plano de modernização baseado num enunciado em linguagem natural que descreve os seus objetivos de modernização.

Sintaxe

modernize plan create <prompt> [options]

Argumentos

Argumento Descrição
<prompt> Uma descrição em linguagem natural dos objetivos de modernização (obrigatória).

Opções

Option Descrição Predefinição
--source <path> O caminho para o código-fonte da aplicação. Diretório atual
--plan-name <name> O nome do plano de modernização. modernization-plan
--language <lang> A linguagem de programação (java, dotnet, ou python). Detetação automática
--overwrite Sobrescreve um plano existente com o mesmo nome. Disabled
--model <model> O modelo de LLM a usar. claude-sonnet-4.6

Exemplos

Gerar um plano de migração:

modernize plan create "migrate from oracle to azure postgresql"

Gere um plano de atualização com um nome personalizado:

modernize plan create "upgrade to spring boot 3" --plan-name spring-boot-upgrade

Gerar um plano de implementação:

modernize plan create "deploy the app to azure container apps" --plan-name deploy-to-aca

Exemplo completo de opções:

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

Exemplos enunciados

Atualizações da estrutura:

  • upgrade to spring boot 3
  • upgrade to .NET 10
  • upgrade to JDK 21
  • migrate from spring boot 2 to spring boot 3

Migrações de bases de dados:

  • migrate from oracle to azure postgresql
  • migrate from SQL Server to azure cosmos db
  • switch from MySQL to azure database for mysql

Migrações para a nuvem:

  • migrate from on-premises to azure
  • containerize and deploy to azure container apps
  • migrate from rabbitmq to azure service bus

Implantação:

  • deploy to azure app service
  • deploy to azure kubernetes service
  • set up CI/CD pipeline for azure

Output

O comando gera:

  • Ficheiro do plano (.github/modernize/{plan-name}/plan.md): Estratégia detalhada de modernização incluindo:

    • Contexto e objetivos
    • Abordagem e metodologia
    • Esclarecimentos
  • Lista de tarefas (.github/modernize/{plan-name}/tasks.json): Divisão estruturada das tarefas executáveis com:

    • Descrições de tarefas
    • Competências a usar
    • Critérios de êxito

Sugestão

Podes editar manualmente ambos plan.md e tasks.json depois da geração para personalizar a abordagem antes da execução.

Plano Execução

Executa um plano de modernização criado por modernize plan create.

Sintaxe

modernize plan execute [prompt] [options]

Argumentos

Argumento Descrição
[prompt] As instruções opcionais em linguagem natural para execução (por exemplo, "skip tests").

Opções

Option Descrição Predefinição
--source <path> O caminho para o código-fonte da aplicação. Diretório atual
--plan-name <name> O nome do plano a executar. modernization-plan
--language <lang> A linguagem de programação (java ou dotnet). Detetação automática
--model <model> O modelo de LLM a usar. claude-sonnet-4.6
--delegate <delegate> O modo de execução: local (esta máquina) ou cloud (Agente de Codificação na Nuvem). local
--force Força a execução mesmo quando um trabalho de CCA está em curso. Disabled

Exemplos

Execute o plano mais recente de forma interativa:

modernize plan execute

Execute um plano específico:

modernize plan execute --plan-name spring-boot-upgrade

Execute com instruções extra:

modernize plan execute "skip the test" --plan-name spring-boot-upgrade

Executar em modo headless para CI/CD:

modernize plan execute --plan-name spring-boot-upgrade --no-tty

Comportamento de execução

Durante a execução, o agente:

  1. Carrega o plano: Lê o plano e a lista de tarefas de .github/modernization/{plan-name}/

  2. Executa tarefas: Processa cada tarefa na lista de tarefas sequencialmente:

    • Aplica transformações de código.
    • Valida builds após alterações.
    • Exames para CVEs.
    • Alterações de commits com mensagens descritivas.
  3. Gera um resumo: Fornece um relatório de todas as alterações e resultados.

Output

  • Histórico de commits: Commits detalhados para cada tarefa executada.
  • Relatório resumo: Visão geral das mudanças, sucessos e quaisquer problemas encontrados.
  • Validação da build: Confirmação de que a aplicação é construída com sucesso.
  • Relatório CVE: Vulnerabilidades de segurança identificadas e abordadas.

actualização

Executa um fluxo de trabalho de atualização de ponta a ponta – planear e executar – num único comando.

Sintaxe

modernize upgrade [prompt] [options]

Argumentos

Argumento Descrição
[prompt] A versão alvo, como Java 17, Spring Boot 3.2, .NET 10. Por defeito é o LTS mais recente.

Opções

Option Descrição Predefinição
--source <source> O projeto caminho para a fonte (caminho local relativo ou absoluto). . (diretório atual)
--delegate <delegate> O modo de execução: local (esta máquina) ou cloud (Agente de Codificação na Nuvem). local
--model <model> O modelo de LLM a usar. claude-sonnet-4.6

Exemplos

Execute upgrade no diretório atual:

modernize upgrade "Java 17"
modernize upgrade ".NET 10"

Executa upgrade num projeto específico:

modernize upgrade "Java 17" --source /path/to/project

Executa upgrade usando o Cloud Coding Agent:

modernize upgrade "Java 17" --delegate cloud

help

Fornece comandos de ajuda e informação.

Sintaxe

modernize help [command]

Comandos

Comando Descrição
models Lista modelos LLM disponíveis e os seus multiplicadores.

Exemplos

Lista de modelos disponíveis:

modernize help models

Configurar a CLI

Ao usar o agente de modernização, pode personalizar o comportamento da aplicação através de ficheiros JSON e variáveis de ambiente.

Variáveis de ambiente

Defina as variáveis de ambiente para sobrepor todos os outros escopos de configuração:

Variable Descrição Predefinição
MODERNIZE_LOG_LEVEL O nível de registo (none, error, warning, info, debug, ) all info
MODERNIZE_MODEL O modelo de LLM a usar. claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY Ativar ou desativar a recolha de telemetria. true

Exemplo:

export MODERNIZE_LOG_LEVEL=debug
export MODERNIZE_MODEL=claude-sonnet-4.6
modernize assess

Configuração de utilizador

Armazene as preferências específicas do utilizador ou ~/.modernize/config.json definições de repositório em .github/modernize/config.json.

{
  "model": "claude-sonnet-4.6",
  "log_level": "info",
  "trusted_folders": [
    "/path/to/trusted/project",
  ]
}

A trusted_folders propriedade especifica as pastas que são de confiança para usar LLM em modo interativo.

Observação

As variáveis de ambiente têm a maior prioridade, seguidas pela configuração do utilizador e, em seguida, pela configuração do repositório. Use variáveis de ambiente para sobrescrições CI/CD e configuração do utilizador para preferências pessoais.

Configuração multi-repositório

Crie um .github/modernize/repos.json ficheiro para ativar o modo multi-repositório:

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

Depois de o repos.json ficheiro estar no lugar, use os seguintes comandos para operar em todos os repositórios configurados:

Avalie todos os repositórios localmente:

modernize assess

Avalie todos os repositórios utilizando o Cloud Coding Agent:

modernize assess --delegate cloud

Atualize todos os repositórios usando o Cloud Coding Agent:

modernize upgrade --delegate cloud

Passos seguintes