Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A atualização em lote permite aplicar planos de modernização consistentes em vários repositórios simultaneamente. Este artigo mostra como atualizar vários aplicativos com eficiência em escala empresarial.
Usando a atualização em lote, você pode:
- Atualize vários aplicativos simultaneamente usando o mesmo destino de atualização.
- Aplique padrões consistentes usando padrões de atualização semelhantes entre aplicativos.
- Aproveite a execução paralela ao delegar aos Agentes de Codificação na Nuvem.
A atualização em lote oferece os seguintes benefícios:
Execução consistente:
- Abordagem padronizada: aplique os mesmos padrões de modernização em todos os repositórios.
- Variabilidade reduzida: garanta caminhos de atualização consistentes para aplicativos semelhantes.
- Estratégias reutilizáveis: use habilidades específicas da organização em diferentes aplicativos.
Escala e eficiência:
- Processamento paralelo: use agentes de codificação de nuvem para processar vários repositórios simultaneamente.
- Fluxos de trabalho automatizados: integre-se aos pipelines de CI/CD para modernização agendada.
- Economia de tempo: reduza o tempo total de modernização de semanas para horas.
Pré-requisitos
- Modernizar a CLI.
- Uma avaliação em lote concluída (recomendada, mas não necessária).
- Todos os repositórios usam a mesma linguagem de programação (Java ou .NET).
- Acesso a todos os repositórios que você deseja atualizar.
- Autenticação do GitHub configurada (
gh auth login).
Importante
Todos os repositórios em uma atualização em lote devem usar a mesma linguagem de programação. Se um repositório usar um idioma diferente, a atualização em lote marcará o repositório como com falha e o ignorará.
Configurar repositórios
Para habilitar a atualização em lote, crie um .github/modernize/repos.json arquivo no diretório de trabalho que lista todos os repositórios que você deseja atualizar.
Dica
Para repositórios de exemplo, bifurque-os primeiro e verifique se você tem permissão de administrador para delegar o trabalho aos Agentes de Codificação na Nuvem.
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "ZavaSocialFrontEnd",
"url": "https://github.com/Azure-Samples/ZavaSocialFrontEnd"
}
]
Configuração do repositório
Cada entrada requer:
- nome: um nome amigável para o repositório (usado em relatórios e dashboards).
- url: A URL do clone do Git (formato HTTPS).
Dica
Você pode incluir repositórios de diferentes organizações e usar diferentes métodos de autenticação, desde que tenha acesso.
Local do arquivo
Você deve colocar o arquivo repos.json em .github/modernize/repos.json.
O agente de modernização detecta automaticamente esse arquivo ao executar operações em lote.
Escolha o modo de execução
A atualização em lote dá suporte a dois modos de execução e dois métodos de interação:
Modos de execução
Execução local
- Melhor para: teste, conjuntos menores de repositórios (1 a 5 repositórios) ou quando você preferir o controle local.
- Como funciona: processa repositórios sequencialmente em seu computador local.
- Configuração necessária: nenhuma além dos pré-requisitos básicos.
Delegação do Agente de Codificação em Nuvem
- Melhor para: operações em nível empresarial, portfólios grandes (mais de 5 repositórios) ou processamento paralelo.
- Como funciona: envia tarefas aos Agentes de Codificação de Nuvem do GitHub para execução paralela na nuvem.
- Configuração necessária: configuração do servidor MCP em cada repositório (configurado durante a instalação).
Dica
Ao processar repositórios em paralelo, a delegação do Cloud Coding Agent pode reduzir o tempo total de modernização de horas para minutos.
Métodos de interação
Modo interativo (TUI)
- Experiência guiada com menus e indicadores.
- Melhor para usuários iniciantes ou quando você deseja examinar as opções.
- Dá suporte à execução local e na nuvem.
Modo não interativo (CLI/sem interface gráfica)
- Baseado em linha de comando, totalmente automatizado.
- Melhor para pipelines de CI/CD e automação.
- Suporta execução local e na nuvem com o flag
--delegate cloud.
Observação
Você pode combinar qualquer modo de execução com qualquer método de interação. Por exemplo:
-
modernize(interativo, local) -
modernize→ selecionar Agentes de Codificação de Nuvem (interativo, nuvem) -
modernize upgrade "Java 21"(não interativo, local) -
modernize upgrade "Java 21" --delegate cloud(não interativo, nuvem)
Como funciona a atualização em lote
O fluxo de trabalho de atualização em lote:
- Detecção de idioma: detecta automaticamente o idioma do projeto (Java ou .NET) no primeiro repositório.
- Criação de plano: cria um plano de atualização com base no prompt ou usa as versões mais recentes do LTS.
- Execução: aplica a atualização a cada repositório.
- Validação: compila e valida as alterações para cada repositório.
Executar a atualização em lote
Depois de configurar seus repositórios e escolher um modo de execução, inicie a atualização em lote.
Modo interativo (atualizar localmente)
Execute o agente de modernização:
modernizeO agente detecta o
repos.jsonarquivo e exibe a lista de repositórios:Selecione repositórios para atualizar e pressione
Enterpara confirmar sua seleção.-
Imprensa
Ctrl+Apara selecionar todos os repositórios. -
Ou use teclas de direção para navegar e pressionar
Enterpara selecionar repositórios individuais.
-
Imprensa
Selecione 2. Atualização no menu principal.
Para executar a atualização, selecione 1. Atualize localmente.
O agente automaticamente:
- Cria um plano de atualização com base em sua solicitação.
- Aplica o plano a cada repositório sequencialmente.
- Compila e valida cada repositório após as alterações.
- Exibe o progresso e o resumo de cada repositório.
Modo interativo (delegando a agentes de codificação na nuvem)
Pré-requisitos: configurar o servidor MCP
Antes de executar a atualização, configure o Servidor MCP de Modernização do GitHub Copilot em cada repositório.
Para aplicativos Java, adicione essa configuração na seção Cloud Coding Agent das configurações do repositório:
{
"mcpServers": {
"app-modernization": {
"type": "local",
"command": "npx",
"tools": [
"*"
],
"args": [
"-y",
"@microsoft/github-copilot-app-modernization-mcp-server"
]
}
}
}
Steps
Execute o agente de modernização:
modernizeO agente detecta o
repos.jsonarquivo e exibe a lista de repositórios:Selecione repositórios para atualizar e pressione
Enterpara confirmar sua seleção.-
Imprensa
Ctrl+Apara selecionar todos os repositórios. -
Ou use teclas de direção para navegar e pressionar
Enterpara selecionar repositórios individuais.
-
Imprensa
Selecione 2. Atualização no menu principal.
Para executar a atualização, selecione 2. Delegar aos Agentes de Codificação na Nuvem.
O agente automaticamente:
Cria planos de atualização para cada repositório.
Envia uma tarefa do Cloud Coding Agent para cada repositório.
Executa trabalhos de forma independente em paralelo na nuvem.
Exibe IDs de trabalho e URLs de PR para cada repositório.
Delega tarefas ao AgentHQ para execução paralela.
Acompanha o progresso de cada tarefa individual em tempo real.
Exibe o resumo da atualização para cada tarefa concluída.
CLI (modo não interativo)
Para automação e integração de CI/CD, use o modernize upgrade comando:
Atualizar localmente:
modernize upgrade "Java 21"
Atualizar usando agentes de codificação de nuvem:
modernize upgrade "Java 21" --delegate cloud
O comando detecta automaticamente o repos.json arquivo e processa todos os repositórios.
Observação
Para obter a execução sem cabeça em lote e mais opções da CLI, consulte a seção de configuração de vários repositórios na referência de comandos da CLI.
Analisar resultados
Quando a atualização em lote for concluída:
Verifique o relatório agregado exibido no terminal.
Examine as alterações individuais do repositório:
cd <repository-name> git status git diffCrie solicitações de pull para atualizações bem-sucedidas:
cd <repository-name> gh pr create --title "Upgrade to Java 21" --body "Automated upgrade by modernization agent"
Solução de problemas de atualizações em lote
Problemas comuns
Erros de acesso ao repositório:
- Verifique a autenticação do GitHub usando
gh auth status. - Verifique se você tem acesso a todos os repositórios em
repos.json.
Erros de incompatibilidade de linguagem:
- Verifique se todos os repositórios em
repos.jsonusam o mesmo idioma (Java ou .NET). - Crie operações em lote separadas para idiomas diferentes.
Falhas de clonagem:
- Verifique se as URLs do repositório estão corretas
repos.jsone acessíveis. - Verifique se você tem permissões de acesso adequadas para todos os repositórios.
- Verifique a conectividade de rede e as configurações de VPN.
Falhas de build após a atualização:
- Examine as mensagens de erro de build no relatório agregado.
- Verifique se você precisa atualizar outras dependências.
- Verifique a compatibilidade de bibliotecas de terceiros com a nova versão.
Falhas individuais do repositório:
- O processo em lote continua mesmo se os repositórios individuais falharem.
- Examine o relatório agregado para identificar repositórios com falha.
- Verifique os logs de erros em busca de mensagens de erro específicas.
- Repetir os repositórios que falharam, um a um.
Falhas do Cloud Coding Agent:
- Verifique as permissões e os limites de cota do GitHub Actions.
- Para o .NET Framework, verifique se a configuração do executor do Windows está definida corretamente.
Próximas Etapas
Depois de concluir a atualização em lote, você pode:
Continue melhorando:
- Executar a avaliação em lote – Reavaliar para verificar melhorias e identificar novas oportunidades.
- Criar habilidades personalizadas para padrões específicos da organização – capturar padrões bem-sucedidos para reutilização.
Saiba mais:
Fornecer comentários
Valorizamos sua entrada! Se você tiver algum comentário sobre a atualização em lote ou o agente de modernização, crie um problema no repositório github-copilot-appmod ou use o formulário de comentários de modernização do GitHub Copilot.