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
O agente de modernização dá suporte a várias maneiras de especificar os repositórios que você deseja atualizar:
- Pasta atual: atualize o projeto no diretório de trabalho atual.
- Entrada manual: insira caminhos de diretório local ou URLs remotas do Git diretamente.
- Arquivo de configuração do repositório: use um arquivo de configuração JSON que lista todos os repositórios.
Arquivo de configuração do repositório
Para operações em lotes em vários repositórios, crie um arquivo de configuração JSON para listar todos os repositórios. Por exemplo, crie-o em .github/modernize/repos.json seu diretório de trabalho ou forneça um caminho personalizado.
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.
Formato simples (matriz de repositórios):
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "ZavaSocialFrontEnd",
"url": "https://github.com/Azure-Samples/ZavaSocialFrontEnd"
}
]
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 (usado em relatórios e dashboards). | Sim |
url |
Git clone URL no formato HTTPS ou no formato SSH. | Um de url ou path |
path |
Caminho absoluto do diretório local. | Um de url ou path |
branch |
Branch para verificar após clonagem. | No |
description |
Descrição legível por humanos. | No |
Dica
Você pode incluir repositórios de diferentes organizações e usar diferentes métodos de autenticação, desde que tenha acesso.
O agente de modernização detecta automaticamente o arquivo repos.json em .github/modernize/repos.json quando você seleciona De um arquivo de configuração no modo interativo. Você também pode fornecer um caminho personalizado.
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.
- Suportes: URLs Git e repositórios de caminho local.
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 para GitHub Cloud Coding Agents para execução paralela na nuvem.
- Configuração necessária: configuração do servidor MCP em cada repositório (configurado durante a instalação).
- Supports: somente repositórios com URLs GitHub (github.com). Não há suporte para provedores que não sejam do GitHub nem para caminhos locais.
Importante
A delegação do Cloud Coding Agent requer que os repositórios tenham URLs de repositório do GitHub (github.com). Repositórios especificados com caminhos locais ou hospedados em provedores não GitHub (GitLab, Azure DevOps) são ignorados durante a delegação de nuvem. Use a execução local para esses repositórios.
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→ selecione Atualizar (interativo, local) -
modernize→ selecione Atualizar → Delegar aos Agentes de Nuvem (interativo, nuvem) -
modernize upgrade "Java 21" --source ./repos.json(não interativo, local) -
modernize upgrade "Java 21" --source ./repos.json --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 linguagem: Detecta 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 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:
modernizeSelecione Atualizar no menu principal.
Escolha como especificar seus repositórios de destino. Selecione De um arquivo de configuração para usar um
repos.jsonarquivo.Dica
Você também pode selecionar entrada manual para inserir caminhos locais ou URLs remotas do Git diretamente ou pasta atual para atualizar o projeto em seu diretório atual.
Se o
repos.jsonarquivo for detectado no local padrão, o agente o preencherá automaticamente. Caso contrário, insira o caminho para o arquivo de configuração e pressione Enter.Todos os repositórios são selecionados por padrão. Desmarque todos os repositórios que você deseja ignorar e pressione Enter para confirmar sua seleção.
- Use teclas de direção para navegar e pressionar Espaço para alternar repositórios individuais.
Escolha o modo de execução. Selecione Atualizar localmente.
Insira o prompt de destino de atualização (por exemplo,
Java 21ou.NET 10) ou pressione Enter para aceitar o padrão (versão mais recente do LTS).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:
modernizeSelecione Atualizar no menu principal.
Escolha como especificar seus repositórios de destino. Selecione De um arquivo de configuração.
Se o
repos.jsonarquivo for detectado no local padrão, o agente o preencherá automaticamente. Caso contrário, insira o caminho para o arquivo de configuração e pressione Enter.Todos os repositórios são selecionados por padrão. Desmarque todos os repositórios que você deseja ignorar e pressione Enter para confirmar sua seleção. Use teclas de direção para navegar e pressionar Espaço para alternar repositórios individuais.
Escolha o modo de execução. Selecione Delegar para Agentes de Nuvem.
Insira o prompt de destino de atualização (por exemplo,
Java 21) ou pressione Enter para aceitar o padrão.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:
Atualize localmente usando um arquivo de configuração do repositório:
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
Atualizar usando agentes de codificação de nuvem:
modernize upgrade "Java 21" --source .github/modernize/repos.json --delegate cloud
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 GitHub autenticação 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 do GitHub Actions e os limites de cota.
- Para .NET Framework, verifique se Windows configuração do executor 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, abra um problema no repositório github-copilot-appmod ou use o formulário de feedback de modernização do GitHub Copilot.