Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'aggiornamento batch consente di applicare piani di modernizzazione coerenti tra più repository contemporaneamente. Questo articolo illustra come aggiornare più applicazioni in modo efficiente su scala aziendale.
Usando l'aggiornamento batch, è possibile:
- Aggiornare più applicazioni contemporaneamente usando la stessa destinazione di aggiornamento.
- Applicare modelli coerenti usando modelli di aggiornamento simili tra le applicazioni.
- Sfruttare l'esecuzione parallela quando si delega agli agenti di codifica cloud.
L'aggiornamento batch offre i vantaggi seguenti:
Esecuzione coerente:
- Approccio standardizzato: applicare gli stessi modelli di modernizzazione in tutti i repository.
- Riduzione della variabilità: garantire percorsi di aggiornamento coerenti per applicazioni simili.
- Strategie riutilizzabili: usare competenze specifiche dell'organizzazione in tutte le applicazioni.
Scalabilità ed efficienza:
- Elaborazione parallela: usare agenti di codifica cloud per elaborare più repository contemporaneamente.
- Flussi di lavoro automatizzati: integrazione con pipeline CI/CD per la modernizzazione pianificata.
- Risparmio di tempo: ridurre il tempo totale di modernizzazione da settimane a ore.
Prerequisiti
- Modernizzare la CLI.
- Valutazione batch completata (scelta consigliata ma non obbligatoria).
- Tutti i repository usano lo stesso linguaggio di programmazione (Java o .NET).
- Accesso a tutti i repository da aggiornare.
- Autenticazione di GitHub configurata (
gh auth login).
Importante
Tutti i repository in un aggiornamento batch devono usare lo stesso linguaggio di programmazione. Se un repository usa un linguaggio diverso, l'aggiornamento batch contrassegna il repository come non riuscito e lo ignora.
Configurare gli archivi
Per abilitare l'aggiornamento batch, creare un .github/modernize/repos.json file nella directory di lavoro in cui sono elencati tutti i repository da aggiornare.
Suggerimento
Per i repository di esempio, creare prima una copia tramite fork e assicurarsi di disporre dell'autorizzazione di amministratore per delegare il processo agli agenti di codifica cloud.
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "ZavaSocialFrontEnd",
"url": "https://github.com/Azure-Samples/ZavaSocialFrontEnd"
}
]
Configurazione del repository
Ogni voce richiede:
- name: nome descrittivo per il repository (usato nei report e nei dashboard).
- url: URL di clonazione Git (formato HTTPS).
Suggerimento
È possibile includere repository di organizzazioni diverse e usare metodi di autenticazione diversi purché si abbia accesso.
Percorso del file
È necessario inserire il repos.json file in .github/modernize/repos.json.
L'agente di modernizzazione rileva automaticamente questo file durante l'esecuzione di operazioni batch.
Scegliere la modalità di esecuzione
L'aggiornamento batch supporta due modalità di esecuzione e due metodi di interazione:
Modalità di esecuzione
Esecuzione locale
- Ideale per: test, set di repository più piccoli (1-5 repository) o quando si preferisce il controllo locale.
- Come funziona: elabora i repository in sequenza nel computer locale.
- Configurazione richiesta: nessuna oltre i prerequisiti di base.
Delega dell'agente di codifica cloud
- Ideale per: operazioni su scala aziendale, portfolio di grandi dimensioni (5+ repository) o elaborazione parallela.
- Come funziona: invia attività agli agenti di codifica cloud GitHub per l'esecuzione parallela nel cloud.
- Installazione richiesta: configurazione del server MCP in ogni repository (configurata durante l'installazione).
Suggerimento
Elaborando i repository in parallelo, la delega dell'agente di codifica cloud può ridurre il tempo totale di modernizzazione da ore a minuti.
Metodi di interazione
Modalità interattiva (TUI)
- Esperienza guidata con i menu e i messaggi di comando.
- Ideale per gli utenti per la prima volta o quando si desidera esaminare le opzioni.
- Supporta sia l'esecuzione locale che quella cloud.
Modalità non interattiva (interfaccia della riga di comando/headless)
- Basato sulla riga di comando, completamente automatizzato.
- Ideale per le pipeline CI/CD e l'automazione.
- Supporta sia l'esecuzione locale che quella cloud con
--delegate cloudflag.
Annotazioni
È possibile combinare qualsiasi modalità di esecuzione con qualsiasi metodo di interazione. Per esempio:
-
modernize(interattivo, locale) -
modernize→ selezionare Agenti di codifica cloud (interattivo, cloud) -
modernize upgrade "Java 21"(non interattivo, locale) -
modernize upgrade "Java 21" --delegate cloud(non interattivo, cloud)
Come funziona l'aggiornamento a lotti
Il flusso di lavoro di aggiornamento batch:
- Rilevamento del linguaggio: rileva automaticamente il linguaggio del progetto (Java o .NET) dal primo repository.
- Creazione del piano: crea un piano di aggiornamento sulla base del tuo input o usa le versioni LTS più recenti.
- Esecuzione: applica l'aggiornamento a ogni repository.
- Convalida: compila e convalida le modifiche per ogni repository.
Eseguire l'aggiornamento batch
Dopo aver configurato i repository e aver scelto una modalità di esecuzione, avviare l'aggiornamento batch.
Modalità interattiva (aggiornamento locale)
Eseguire l'agente di modernizzazione:
modernizeL'agente rileva il
repos.jsonfile e visualizza l'elenco dei repository:Selezionare i repository da aggiornare e premere
Enterper confermare la selezione.-
Premi
Ctrl+Aper selezionare tutti i repository. -
In alternativa, usare i tasti di direzione per spostarsi e premere
Enterper selezionare singoli repository.
-
Premi
Selezionare 2. Eseguire l'aggiornamento dal menu principale.
Per eseguire l'aggiornamento, selezionare 1. Eseguire l'aggiornamento in locale.
L'agente opera automaticamente:
- Crea un piano di aggiornamento in base alla richiesta.
- Applica il piano a ogni repository in sequenza.
- Compila e convalida ogni repository dopo le modifiche.
- Visualizza lo stato di avanzamento e il riepilogo per ogni repository.
Modalità interattiva (delega agli agenti di codifica cloud)
Prerequisiti: Configurare il server MCP
Prima di eseguire l'aggiornamento, configurare il server MCP per la modernizzazione di GitHub Copilot in ogni repository.
Per le applicazioni Java, aggiungere questa configurazione nella sezione Cloud Coding Agent delle impostazioni del repository:
{
"mcpServers": {
"app-modernization": {
"type": "local",
"command": "npx",
"tools": [
"*"
],
"args": [
"-y",
"@microsoft/github-copilot-app-modernization-mcp-server"
]
}
}
}
Gradi
Eseguire l'agente di modernizzazione:
modernizeL'agente rileva il
repos.jsonfile e visualizza l'elenco dei repository:Selezionare i repository da aggiornare e premere
Enterper confermare la selezione.-
Premi
Ctrl+Aper selezionare tutti i repository. -
In alternativa, usare i tasti di direzione per spostarsi e premere
Enterper selezionare singoli repository.
-
Premi
Selezionare 2. Eseguire l'aggiornamento dal menu principale.
Per eseguire l'aggiornamento, selezionare 2. Delegare agli agenti di codifica cloud.
L'agente opera automaticamente:
Crea piani di aggiornamento per ogni repository.
Invia un job dell'agente di codifica cloud per ogni repository.
Esegue processi in modo indipendente in parallelo nel cloud.
Visualizza gli ID di lavoro e gli URL delle richieste pull per ogni repository.
Delega le attività a AgentHQ per l'esecuzione parallela.
Tiene traccia dello stato di avanzamento per ogni singola attività in tempo reale.
Visualizza il riepilogo dell'aggiornamento per ogni attività completata.
Modalità non interattiva (interfaccia della riga di comando)
Per l'automazione e l'integrazione CI/CD, usare il modernize upgrade comando :
Eseguire l'aggiornamento in locale:
modernize upgrade "Java 21"
Eseguire l'aggiornamento con gli agenti di codifica cloud:
modernize upgrade "Java 21" --delegate cloud
Il comando rileva automaticamente il repos.json file ed elabora tutti i repository.
Annotazioni
Per l'esecuzione batch in modalità headless e ulteriori opzioni CLI, consultare la sezione Configurazione multi-repository nelle informazioni di riferimento sui comandi della riga di comando.
Verificare i risultati
Al termine dell'aggiornamento batch:
Controllare il report aggregato visualizzato nel terminale.
Esaminare le modifiche dei singoli repository:
cd <repository-name> git status git diffCreare richieste pull per gli aggiornamenti riusciti:
cd <repository-name> gh pr create --title "Upgrade to Java 21" --body "Automated upgrade by modernization agent"
Risoluzione dei problemi relativi agli aggiornamenti batch
Problemi comuni
Errori di accesso al repository:
- Verificare l'autenticazione di GitHub usando
gh auth status. - Assicurarsi di avere accesso a tutti i repository in
repos.json.
Errori di mancata corrispondenza della lingua:
- Assicurarsi che tutti i repository in
repos.jsonusino lo stesso linguaggio (Java o .NET). - Creare operazioni batch separate per linguaggi diversi.
Errori di clonazione:
- Verificare che gli URL del repository in
repos.jsonsiano corretti e accessibili. - Assicurarsi di disporre delle autorizzazioni di accesso appropriate per tutti i repository.
- Controllare la connettività di rete e le impostazioni VPN.
Errori di compilazione dopo l'aggiornamento:
- Esaminare i messaggi di errore di compilazione nel report aggregato.
- Controllare se è necessario aggiornare altre dipendenze.
- Verificare la compatibilità delle librerie di terze parti con la nuova versione.
Singoli errori del repository:
- Il processo batch continua anche se i singoli repository hanno esito negativo.
- Controllare il report aggregato per identificare i repository falliti.
- Controllare i log degli errori per individuare messaggi di errore specifici.
- Riprovare singolarmente i repository falliti.
Errori dell'agente di codifica cloud:
- Controllare le autorizzazioni e i limiti di quota di GitHub Actions.
- Per .NET Framework, assicurarsi che la configurazione di Windows Runner sia impostata correttamente.
Passaggi successivi
Dopo aver completato l'aggiornamento batch, è possibile:
Continuare a migliorare:
- Eseguire la valutazione batch : rivaluta per verificare i miglioramenti e identificare le nuove opportunità.
- Creare competenze personalizzate per modelli specifici dell'organizzazione : acquisire modelli riusciti per il riutilizzo.
Altre informazioni:
Inviare commenti
Valiamo l'input! Se si hanno commenti e suggerimenti sull'aggiornamento batch o sull'agente di modernizzazione, creare un problema nel repository github-copilot-appmod o usare il modulo di feedback sulla modernizzazione di GitHub Copilot.