Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.
- Seleção flexível de fonte: pasta atual, introdução manual (caminhos locais ou URLs Git) ou ficheiros de configuração de 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 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 <source> |
Fonte a avaliar (repetível). Aceita caminhos locais, URLs Git ou um caminho de ficheiro de configuração JSON. Use múltiplas --source flags 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> |
Um URL de edição do GitHub para atualizar 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 ficheiro YAML de configuração de avaliação que sobrepõe parâmetros de avaliação predefinidos, como runtime de alvo, serviços de computação e cobertura de análise. | Descoberta automática ou incumprimentos |
--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 usando um ficheiro de configuração:
modernize assess --source .github/modernize/repos.json
Avalie múltiplos repositórios especificando diretamente as fontes:
modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
Avalie e produza relatórios em formato de marcação:
modernize assess --format markdown
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): GitHub comentário de edição 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 3upgrade to .NET 10upgrade to JDK 21migrate from spring boot 2 to spring boot 3
Migrações de bases de dados:
migrate from oracle to azure postgresqlmigrate from SQL Server to azure cosmos dbswitch from MySQL to azure database for mysql
Migrações para a nuvem:
migrate from on-premises to azurecontainerize and deploy to azure container appsmigrate from rabbitmq to azure service bus
Implantação:
deploy to azure app servicedeploy to azure kubernetes serviceset 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:
Carrega o plano: Lê o plano e a lista de tarefas de
.github/modernization/{plan-name}/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.
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> |
Fonte a atualizar (repetível). Aceita caminhos locais, URLs Git ou um caminho de ficheiro de configuração JSON. Use múltiplas --source flags para especificar vários repositórios. |
. (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
Atualize múltiplos repositórios usando um ficheiro de configuração:
modernize upgrade "Java 21" --source .github/modernize/repos.json
Atualize múltiplos repositórios especificando diretamente as fontes:
modernize upgrade "Java 21" --source https://github.com/org/repo1 --source https://github.com/org/repo2
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
Pode fornecer múltiplas fontes ao CLI de várias formas:
-
Ficheiro de configuração do repositório: Crie um
.github/modernize/repos.jsonficheiro que liste todos os repositórios e depois passe com--source. -
Múltiplos
--sourceflags: Especifique caminhos locais ou URLs Git diretamente na linha de comandos. - Modo interativo: Selecione as fontes através da TUI (pasta atual, entrada manual ou configuração do repositório).
Ficheiro de configuração do repositório
Crie um .github/modernize/repos.json ficheiro para definir a sua lista de repositórios. A configuração suporta dois formatos:
Formato simples (array 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 ramais 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 suporta os seguintes campos:
| Campo | Descrição | Obrigatório |
|---|---|---|
name |
Um nome amigável para o repositório. | Sim |
url |
URL clone do git (HTTPS ou SSH). | Um de url ou path |
path |
Caminho de diretório local absoluto. | Um de url ou path |
branch |
Faz um ramo para verificar depois da clonagem. | No |
description |
Descrição legível para humanos. | No |
Formato completo com agrupamento de aplicações (opcional, para relatórios organizados):
Pode adicionar uma apps[] secção para agrupar repositórios em aplicações lógicas. Quando as aplicações são definidas, o relatório agregado organiza os resultados por aplicação e suporta a distribuição de relatórios.
{
"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 da aplicação suporta:
| Campo | Descrição | Obrigatório |
|---|---|---|
identifier |
Nome de exibição único da aplicação. | Sim |
description |
Descrição legível para humanos. | No |
repos |
Lista de nomes de repositórios que pertencem a esta aplicação. | Sim |
output |
Onde distribuir o relatório de avaliação desta aplicação após a geração. | No |
O output campo suporta os seguintes tipos de distribuição:
| Tipo | Descrição | Campos obrigatórios |
|---|---|---|
local |
Copiar os relatórios para um diretório local. | path |
git |
Envie relatórios para um repositório Git. Formato URL: https://github.com/org/repo.git#branch:path. |
url |
Importante
A delegação do Cloud Coding Agent (--delegate cloud) exige que os repositórios tenham URLs de repositório GitHub (github.com) . Repositórios de caminhos locais e fornecedores não-GitHub (GitLab, Azure DevOps) não são suportados para delegação na cloud e são ignorados.
Depois, use --source para passar o caminho do ficheiro de configuração:
Avalie todos os repositórios localmente:
modernize assess --source .github/modernize/repos.json
Avalie todos os repositórios utilizando 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
Múltiplas fontes na linha de comandos
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