comandos da CLI do agente de modernização 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.
  • Seleção de origem flexível: pasta atual, entrada manual (caminhos locais ou URLs do Git) ou arquivos de configuração do repositório.
  • Plano visual e indicadores de progresso.
  • Prompts guiados para opções de configuração, incluindo domínios de avaliação e parâmetros.
  • 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 <source> Origem a ser avaliada (repetível). Aceita caminhos locais, URLs do Git ou um caminho de arquivo de configuração JSON. Use vários --source sinalizadores para especificar vários repositórios. . (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 GitHub problema a ser atualizada com o resumo da avaliação. Nenhum
--format <format> Formato de saída para relatórios de avaliação: html ou markdown. html
--assess-config <path> Caminho para um arquivo YAML de configuração de avaliação que substitui parâmetros de avaliação padrão, como runtime de destino, serviços de computação e cobertura de análise. Descoberta automática ou padrões
--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 GitHub problema 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

Avalie vários repositórios usando um arquivo de configuração:

modernize assess --source .github/modernize/repos.json

Avalie vários repositórios especificando fontes diretamente:

modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2

Avaliar e produzir relatórios no formato markdown:

modernize assess --format markdown

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.
  • Issue updates (se você fornecer --issue-url): GitHub emitir 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> Origem para atualização (repetível). Aceita caminhos locais, URLs do Git ou um caminho de arquivo de configuração JSON. Use vários --source sinalizadores para especificar vários repositórios. . (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

Atualize vários repositórios usando um arquivo de configuração:

modernize upgrade "Java 21" --source .github/modernize/repos.json

Atualize vários repositórios especificando fontes diretamente:

modernize upgrade "Java 21" --source https://github.com/org/repo1 --source https://github.com/org/repo2

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

Você pode fornecer várias fontes à CLI de várias maneiras:

  • Arquivo de configuração do repositório: crie um .github/modernize/repos.json arquivo que lista todos os repositórios e, em seguida, passe-o com --source.
  • Vários --source sinalizadores: especifique caminhos locais ou URLs do Git diretamente na linha de comando.
  • Modo interativo: selecione fontes por meio da TUI (pasta atual, entrada manual ou configuração do repositório).

Arquivo de configuração do repositório

Crie um .github/modernize/repos.json arquivo para definir sua lista de repositórios. A configuração dá suporte a dois formatos:

Formato simples (matriz de repositórios):

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

Formato completo (com ramificação e caminhos locais):

{
  "repos": [
    {
      "name": "PhotoAlbum-Java",
      "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
      "branch": "main"
    },
    {
      "name": "local-project",
      "path": "/absolute/path/to/project"
    }
  ]
}

Cada entrada de repositório dá suporte aos seguintes campos:

Campo Descrição Obrigatório
name Um nome amigável para o repositório. Sim
url URL de clone do Git (HTTPS ou SSH). Um de url ou path
path Caminho absoluto do diretório local. Um de url ou path
branch Branch para fazer check-out após a clonagem. No
description Descrição legível por humanos. No

Formato completo com agrupamento de aplicativos (opcional, para relatórios organizados):

Você pode adicionar uma apps[] seção para agrupar repositórios em aplicativos lógicos. Quando os aplicativos são definidos, o relatório agregado organiza os resultados por aplicativo e dá suporte à distribuição de relatório.

{
  "repos": [
    {
      "name": "PhotoAlbum-Java",
      "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
      "branch": "main"
    },
    {
      "name": "PhotoAlbum",
      "url": "https://github.com/Azure-Samples/PhotoAlbum.git"
    }
  ],
  "apps": [
    {
      "identifier": "photo-app",
      "description": "Photo management application",
      "repos": ["PhotoAlbum-Java"],
      "output": {
        "type": "local",
        "path": "/path/to/reports/photo-app"
      }
    }
  ]
}

Cada entrada de aplicativo dá suporte a:

Campo Descrição Obrigatório
identifier Nome de exibição exclusivo do aplicativo. Sim
description Descrição legível por humanos. No
repos Lista de nomes de repositório que pertencem a este aplicativo. Sim
output Onde distribuir o relatório de avaliação deste aplicativo após a geração. No

O output campo dá suporte aos seguintes tipos de distribuição:

Tipo Descrição Campos obrigatórios
local Copie relatórios para um diretório local. path
git Envie relatórios por push para um repositório Git. Formato de URL: https://github.com/org/repo.git#branch:path. url

Importante

A delegação do Cloud Coding Agent (--delegate cloud) requer que os repositórios tenham GitHub (github.com) URLs do repositório. Repositórios de caminho local e provedores não GitHub (GitLab, Azure DevOps) não têm suporte para delegação de nuvem e são ignorados.

Em seguida, use --source para passar o caminho do arquivo de configuração:

Avalie todos os repositórios localmente:

modernize assess --source .github/modernize/repos.json

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

modernize assess --source .github/modernize/repos.json --delegate cloud

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

modernize upgrade --source .github/modernize/repos.json --delegate cloud

Várias fontes na linha de comando

Você também pode especificar várias fontes diretamente:

modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
modernize upgrade "Java 21" --source ./project-a --source ./project-b

Próximas Etapas