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.
A atualização por lote permite-lhe aplicar planos de modernização consistentes em múltiplos repositórios simultaneamente. Este artigo mostra-lhe como atualizar múltiplas aplicações de forma eficiente à escala empresarial.
Ao usar a atualização em lote, pode fazer o seguinte:
- Atualize várias aplicações simultaneamente usando o mesmo destino de atualização.
- Aplique padrões consistentes usando padrões de atualização semelhantes entre aplicações.
- Aproveite a execução paralela ao delegar a Agentes de Cloud Coding.
A atualização por lote oferece os seguintes benefícios:
Execução consistente:
- Abordagem padronizada: Aplicar os mesmos padrões de modernização em todos os repositórios.
- Redução da variabilidade: Garantir caminhos de atualização consistentes para aplicações semelhantes.
- Estratégias reutilizáveis: Utilize competências específicas da organização em várias aplicações.
Escala e eficiência:
- Processamento paralelo: Use Agentes de Cloud Coding para processar múltiplos repositórios simultaneamente.
- Fluxos de trabalho automatizados: Integrar com pipelines CI/CD para modernização agendada.
- Poupança de tempo: Reduza o tempo total de modernização de semanas para horas.
Pré-requisitos
- Modernizar o CLI
- Uma avaliação em lote concluída (recomendada mas não obrigatória).
- Todos os repositórios utilizam a mesma linguagem de programação (Java ou .NET).
- Acesso a todos os repositórios que quer atualizar.
- Autenticação no GitHub configurada (
gh auth login).
Importante
Todos os repositórios numa atualização em lote devem usar a mesma linguagem de programação. Se um repositório usar uma linguagem diferente, a atualização por lote marca o repositório como falhado e ignora-o.
Configurar repositórios
Para permitir a atualização por lote, cria um .github/modernize/repos.json ficheiro no teu diretório de trabalho que liste todos os repositórios que queres atualizar.
Sugestão
Para repositórios de exemplo, faça primeiro um fork e certifique-se de que tem permissão de administrador para delegar o trabalho aos Agentes de Programaçã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 exige:
- nome: Um nome amigável para o repositório (usado em relatórios e dashboards).
- url: The Git clone URL (formato HTTPS).
Sugestão
Pode incluir repositórios de diferentes organizações e usar métodos de autenticação distintos, desde que tenha acesso.
Localização do ficheiro
Deve colocar o ficheiro repos.json em .github/modernize/repos.json.
O agente de modernização deteta automaticamente este ficheiro ao executar operações em lote.
Escolha o seu modo de execução
A atualização em lote suporta dois modos de execução e dois métodos de interação:
Modos de execução
Execução local
- Ideal para: Testes, conjuntos mais pequenos de repositórios (1-5 repositórios), ou quando preferes controlo local.
- Como funciona: Processa repositórios sequencialmente na sua máquina local.
- Configuração necessária: Nenhuma além dos pré-requisitos básicos.
Delegação do Agente de Codificação na Nuvem
- Melhor para: operações em escala empresarial, grandes portfólios (5+ repositórios) ou processamento paralelo.
- Como funciona: Submete tarefas aos GitHub Cloud Coding Agents para execução paralela na cloud.
- Configuração necessária: configuração do servidor MCP em cada repositório (configurada durante a configuração).
Sugestão
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 comandos.
- É ideal para utilizadores iniciantes ou quando queres rever opções.
- Suporta execução local e na cloud.
Modo não interativo (CLI/headless)
- Baseado em linha de comandos, totalmente automatizado.
- Melhor para processos CI/CD e automação.
- Suporta execução local e na cloud com
--delegate cloudflag.
Observação
Podes combinar qualquer modo de execução com qualquer método de interação. Por exemplo:
-
modernize(interativo, local) -
modernize→ selecionar Cloud Coding Agents (interativo, cloud) -
modernize upgrade "Java 21"(não interativo, local) -
modernize upgrade "Java 21" --delegate cloud(não interativo, cloud)
Como funciona a atualização por lote
O fluxo de trabalho de atualização por lote:
- Deteção de linguagem: Detete automaticamente a linguagem do projeto (Java ou .NET) a partir do primeiro repositório.
- Criação de plano: Cria um plano de atualização com base no seu pedido ou utiliza as versões mais recentes do LTS.
- Execução: Aplica a atualização a cada repositório.
- Validação: Constrói e valida alterações para cada repositório.
Executar a atualização por lote
Depois de configurares os teus repositórios e escolheres um modo de execução, inicia a atualização em lote.
Modo interativo (atualizar localmente)
Execute o agente de modernização:
modernizeO agente deteta o
repos.jsonficheiro e apresenta a lista do repositório:Selecione repositórios para atualizar e pressione
Enterpara confirmar a sua seleção.-
Imprensa
Ctrl+Apara selecionar todos os repositórios. -
Ou usar as setas para navegar e pressionar
Enterpara selecionar repositórios individuais.
-
Imprensa
Selecione 2. Atualiza a partir do menu principal.
Para executar a atualização, selecione 1. Atualiza localmente.
O agente automaticamente:
- Cria um plano de atualização com base no seu pedido.
- Aplica o plano a cada repositório sequencialmente.
- Constrói e valida cada repositório após alterações.
- Apresenta o progresso e o resumo de cada repositório.
Modo interativo (delegação a Agentes de Codificação na Nuvem)
Pré-requisitos: Configurar o servidor MCP
Antes de executar a atualização, configure o GitHub Copilot Modernization MCP Server em cada repositório.
Para aplicações Java, adicione esta configuração na secção Cloud Coding Agent das definições do seu repositório:
{
"mcpServers": {
"app-modernization": {
"type": "local",
"command": "npx",
"tools": [
"*"
],
"args": [
"-y",
"@microsoft/github-copilot-app-modernization-mcp-server"
]
}
}
}
Passos
Execute o agente de modernização:
modernizeO agente deteta o
repos.jsonficheiro e apresenta a lista do repositório:Selecione repositórios para atualizar e pressione
Enterpara confirmar a sua seleção.-
Imprensa
Ctrl+Apara selecionar todos os repositórios. -
Ou usar as setas para navegar e pressionar
Enterpara selecionar repositórios individuais.
-
Imprensa
Selecione 2. Atualiza a partir do menu principal.
Para executar a atualização, selecione 2. Delegar aos agentes de programação em nuvem.
O agente automaticamente:
Cria planos de atualização para cada repositório.
Submete uma tarefa de Cloud Coding Agent para cada repositório.
Executa trabalhos de forma independente em paralelo na cloud.
Mostra 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.
Mostra o resumo da atualização para cada tarefa concluída.
Modo não interativo (CLI)
Para automação e integração CI/CD, use o modernize upgrade comando:
Atualize localmente:
modernize upgrade "Java 21"
Atualize usando Cloud Coding Agents:
modernize upgrade "Java 21" --delegate cloud
O comando deteta automaticamente o repos.json ficheiro e processa todos os repositórios.
Observação
Para execução headless em lote e mais opções de CLI, consulte a secção configuração multirrepositorio na referência de comandos CLI.
Analisar resultados
Quando a atualização em lote terminar:
Verifique o relatório agregado apresentado no terminal.
Revise as alterações individuais dos repositórios:
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"
Resolução de problemas de atualizações em lote
Problemas comuns
Erros de acesso ao repositório:
- Verifique a autenticação no GitHub usando
gh auth status. - Certifique-se de que tem acesso a todos os repositórios em
repos.json.
Erros de incompatibilidade linguística:
- Certifique-se de que todos os repositórios
repos.jsonusam a mesma linguagem (Java ou .NET). - Crie operações em lote separadas para diferentes línguas.
Falhas de clones:
- Verifique se os
repos.jsonURLs dos repositórios estão corretos e acessíveis. - Certifique-se de que tem as permissões de acesso adequadas a todos os repositórios.
- Verifique a conectividade de rede e as definições da VPN.
Falhas de construção após a atualização:
- Revise as mensagens de erro de compilação no relatório agregado.
- Verifique se precisa de atualizar outras dependências.
- Verifique a compatibilidade das bibliotecas de terceiros com a nova versão.
Falhas individuais de repositórios:
- O processo em lote continua mesmo que repositórios individuais falhem.
- Revise o relatório agregado para identificar repositórios falhados.
- Verifique os registos de erro para mensagens de erro específicas.
- Retentar individualmente os repositórios que falharam.
Falhas do Agente de Codificação na Nuvem:
- Verifique as permissões de Ações do GitHub e os limites de quotas.
- Para o .NET Framework, certifique-se de que a configuração do Windows Runner está corretamente definida.
Passos seguintes
Depois de completar a atualização em lote, pode:
Continue a melhorar:
- Faça uma avaliação em lote - Reavalie para verificar melhorias e identificar novas oportunidades.
- Crie competências personalizadas para padrões específicos da organização - Capture padrões bem-sucedidos para reutilização.
Saiba mais:
Fornecer comentários
Valorizamos a sua opinião! Se tiveres algum feedback sobre a atualização em lote ou o agente de modernização, cria uma questão no repositório github-copilot-appmod ou usa o formulário de feedback de modernização do GitHub Copilot.