Compartilhar via


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

O agente de modernização do GitHub Copilot fornece modos interativos e não interativos para modernização de aplicativos.

Modos de comando

Modo interativo

Inicie a TUI (Interface do Usuário de Texto) interativa para modernização guiada:

modernize

O modo interativo fornece:

  • Navegação orientada por menu por meio 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 de vários repositórios.

Modo não interativo

Execute comandos específicos diretamente para automação e script:

modernize <command> [options]

Use o modo não interativo quando:

  • Integração com pipelines de CI/CD.
  • Automatizando operações em lote.
  • Fluxos de trabalho de modernização de script.
  • Em execução em ambientes sem cabeça.

Opções globais

Todos os comandos dão suporte a estas opções globais:

Opção Descrição
--help, -h Exibe informações de ajuda.
--no-tty Desabilita prompts interativos (modo sem cabeça).

Comandos

avaliar

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

Sintaxe

modernize assess [options]

Opções

Opção Descrição Default
--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> Uma URL de problema do GitHub a ser atualizada com o resumo da avaliação. Nenhum
--multi-repo Habilita a avaliação de vários repositórios. Verifica subdiretórios de primeiro nível em busca de vários repositórios. Desactivado
--model <model> O modelo LLM a ser usado. claude-sonnet-4.6
--delegate <delegate> O modo de execução: local (este computador) ou cloud (Cloud Coding Agent). local
--wait Aguarda que as tarefas delegadas sejam concluídas e gerem resultados (somente válidos com --delegate cloud). Desactivado
--force Força a reinicialização da delegação, ignorando tarefas em andamento (somente válidas com --delegate cloud). Desactivado

Exemplos

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

modernize assess

Avaliar com o local de saída personalizado:

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 de projeto específico:

modernize assess --source /path/to/project

Avaliar vários repositórios no diretório atual:

modernize assess  --multi-repo

Saída

A avaliação gera:

  • Arquivos de relatório: análise detalhada em formatos JSON, MD e HTML.
  • Resumo: Principais descobertas e recomendações.
  • Emitir atualizações (se você fornecer --issue-url): o GitHub emitirá um comentário com resumo.

criar plano

Cria um plano de modernização com base em um prompt de linguagem natural que descreve suas metas de modernização.

Sintaxe

modernize plan create <prompt> [options]

Argumentos

Argument Descrição
<prompt> Uma descrição em linguagem natural das metas de modernização (necessárias).

Opções

Opção Descrição Default
--source <path> O caminho para o código-fonte do aplicativo. Diretório atual
--plan-name <name> O nome do plano de modernização. modernization-plan
--language <lang> A linguagem de programação (javaoudotnetpython). Detectado automaticamente
--overwrite Substitui um plano existente com o mesmo nome. Desactivado
--model <model> O modelo LLM a ser usado. claude-sonnet-4.6

Exemplos

Gere um plano de migração:

modernize plan create "migrate from oracle to azure postgresql"

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

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

Gerar um plano de implantação:

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

Exemplo de opções completas:

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 de pedidos

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 banco 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 na 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

Saída

O comando gera:

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

    • Contexto e metas
    • Abordagem e metodologia
    • Esclarecimentos
  • Lista de tarefas (.github/modernize/{plan-name}/tasks.json): detalhamento estruturado de tarefas executáveis com:

    • Descrições da tarefa
    • Habilidades a serem usadas
    • Critérios de sucesso

Dica

Você pode editar manualmente a plan.md geração após a tasks.json geração para personalizar a abordagem antes da execução.

execução do plano

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

Sintaxe

modernize plan execute [prompt] [options]

Argumentos

Argument Descrição
[prompt] As instruções opcionais de linguagem natural para execução (por exemplo, "ignorar testes").

Opções

Opção Descrição Default
--source <path> O caminho para o código-fonte do aplicativo. Diretório atual
--plan-name <name> O nome do plano a ser executado. modernization-plan
--language <lang> A linguagem de programação (java ou dotnet). Detectado automaticamente
--model <model> O modelo LLM a ser usado. claude-sonnet-4.6
--delegate <delegate> O modo de execução: local (este computador) ou cloud (Cloud Coding Agent). local
--force Força a execução mesmo quando um trabalho CCA está em andamento. Desactivado

Exemplos

Execute o plano mais recente interativamente:

modernize plan execute

Execute um plano específico:

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

Execute com instruções extras:

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

Execute no modo sem cabeça 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.
    • Verifica se há CVEs.
    • Confirma alterações com mensagens descritivas.
  3. Gera resumo: fornece um relatório de todas as alterações e resultados.

Saída

  • Histórico de confirmação: confirmações detalhadas para cada tarefa executada.
  • Relatório de resumo: Visão geral de alterações, êxitos e quaisquer problemas encontrados.
  • Validação de build: confirmação de que o aplicativo é compilado com êxito.
  • Relatório CVE: vulnerabilidades de segurança identificadas e endereçadas.

atualização

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

Sintaxe

modernize upgrade [prompt] [options]

Argumentos

Argument Descrição
[prompt] A versão de destino, como Java 17, Spring Boot 3.2, .NET 10. O padrão é o LTS mais recente.

Opções

Opção Descrição Default
--source <source> O caminho para o projeto de origem (caminho local relativo ou absoluto). . (diretório atual)
--delegate <delegate> O modo de execução: local (este computador) ou cloud (Cloud Coding Agent). local
--model <model> O modelo LLM a ser usado. claude-sonnet-4.6

Exemplos

Execute upgrade no diretório atual:

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

Execute upgrade em um projeto específico:

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

Execute upgrade usando o Cloud Coding Agent:

modernize upgrade "Java 17" --delegate cloud

ajuda

Fornece comandos de ajuda e informações.

Sintaxe

modernize help [command]

Comandos

Command Descrição
models Lista os modelos llm disponíveis e seus multiplicadores.

Exemplos

Listar modelos disponíveis:

modernize help models

Configurar a CLI

Usando o agente de modernização, você pode personalizar o comportamento do aplicativo por meio de arquivos JSON e variáveis de ambiente.

Variáveis de ambiente

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

Variable Descrição Default
MODERNIZE_LOG_LEVEL O nível de registro em log (none, , error, warninginfo, , debug, all) info
MODERNIZE_MODEL O modelo LLM a ser usado. claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY Habilitar ou desabilitar a coleção de telemetria. true

Exemplo:

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

Configuração do usuário

Armazene preferências específicas do usuário em ~/.modernize/config.json configurações em todo o 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 confiáveis para usar LLM no modo interativo.

Observação

As variáveis de ambiente têm a precedência mais alta, seguida pela configuração do usuário e, em seguida, pela configuração do repositório. Use variáveis de ambiente para substituições de CI/CD e configuração do usuário para preferências pessoais.

Configuração de vários repositórios

Crie um .github/modernize/repos.json arquivo para habilitar o modo de vários repositórios:

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

Depois que o repos.json arquivo estiver em vigor, 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 usando o Cloud Coding Agent:

modernize assess --delegate cloud

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

modernize upgrade --delegate cloud

Próximas Etapas