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'agente di modernizzazione GitHub Copilot fornisce modalità interattive e non interattive per la modernizzazione delle applicazioni.
Modalità di comando
Modalità interattiva
Avviare l'interfaccia utente testo interattiva (TUI) per la modernizzazione guidata:
modernize
La modalità interattiva offre:
- Spostamento basato su menu tramite il flusso di lavoro di modernizzazione.
- Selezione di origine flessibile: cartella corrente, input manuale (percorsi locali o URL Git) o file di configurazione del repository.
- Indicatori di piano visivo e di avanzamento.
- Richieste guidate per le opzioni di configurazione, inclusi i domini di valutazione e i parametri.
- Interfaccia di selezione multi-repository.
Modalità non interattiva
Eseguire comandi specifici direttamente per l'automazione e lo scripting:
modernize <command> [options]
Usare la modalità non interattiva quando:
- Integrazione con pipeline CI/CD.
- Automazione delle operazioni batch.
- Creare script per i flussi di lavoro di modernizzazione.
- Esecuzione in ambienti headless.
Opzioni globali
Tutti i comandi supportano queste opzioni globali:
| Opzione | Descrizione |
|---|---|
--help, -h |
Visualizza le informazioni della Guida. |
--no-tty |
Disabilita le richieste interattive (modalità headless). |
Comandi
Valutare
Esegue una valutazione e genera un report di analisi completo.
Sintassi
modernize assess [options]
Options
| Opzione | Descrizione | Impostazione predefinita |
|---|---|---|
--source <source> |
Origine da valutare (ripetibile). Accetta percorsi locali, URL Git o un percorso di file di configurazione JSON. Usare più --source flag per specificare diversi repository. |
. (directory corrente) |
--output-path <path> |
Percorso di output personalizzato per i risultati della valutazione. | .github/modernize/assessment/ |
--issue-url <url> |
URL del problema GitHub da aggiornare con il riepilogo della valutazione. | Nessuno |
--format <format> |
Formato di output per i report di valutazione: html o markdown. |
html |
--assess-config <path> |
Percorso di un file YAML di configurazione della valutazione che esegue l'override dei parametri di valutazione predefiniti, ad esempio runtime di destinazione, servizi di calcolo e copertura dell'analisi. | Individuazione automatica o impostazioni predefinite |
--model <model> |
Modello LLM da usare. | claude-sonnet-4.6 |
--delegate <delegate> |
Modalità di esecuzione: local (computer) o cloud (agente di codifica cloud). |
local |
--wait |
Attende il completamento e la generazione dei risultati delle attività delegate (valido solo con --delegate cloud). |
Disattivato |
--force |
Forza la delega di riavvio, ignorando le attività in corso (valido solo con --delegate cloud). |
Disattivato |
Examples
Valutazione di base della directory corrente:
modernize assess
Valutare con la posizione di output personalizzata:
modernize assess --output-path ./reports/assessment
Valutare e aggiornare GitHub problema con i risultati:
modernize assess --issue-url https://github.com/org/repo/issues/123
Valutare una directory di progetto specifica:
modernize assess --source /path/to/project
Valutare più repository usando un file di configurazione:
modernize assess --source .github/modernize/repos.json
Valutare più repository specificando direttamente le origini:
modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
Valutare e restituire report in formato markdown:
modernize assess --format markdown
Risultato
La valutazione genera:
- File di report: analisi dettagliata in formati JSON, MD e HTML.
- Riepilogo: risultati chiave e raccomandazioni.
-
Issue updates (se si specifica
--issue-url): GitHub commento del problema con riepilogo.
plan create
Crea un piano di modernizzazione basato su una richiesta di linguaggio naturale che descrive gli obiettivi di modernizzazione.
Sintassi
modernize plan create <prompt> [options]
Arguments
| Argomentazione | Descrizione |
|---|---|
<prompt> |
Descrizione in linguaggio naturale degli obiettivi di modernizzazione (obbligatorio). |
Options
| Opzione | Descrizione | Impostazione predefinita |
|---|---|---|
--source <path> |
Percorso del codice sorgente dell'applicazione. | Directory corrente |
--plan-name <name> |
Nome del piano di modernizzazione. | modernization-plan |
--language <lang> |
Linguaggio di programmazione (java, dotneto python). |
Rilevato automaticamente |
--overwrite |
Sovrascrive un piano esistente con lo stesso nome. | Disattivato |
--model <model> |
Modello LLM da usare. | claude-sonnet-4.6 |
Examples
Generare un piano di migrazione:
modernize plan create "migrate from oracle to azure postgresql"
Generare un piano di aggiornamento con il nome personalizzato:
modernize plan create "upgrade to spring boot 3" --plan-name spring-boot-upgrade
Generare un piano di distribuzione:
modernize plan create "deploy the app to azure container apps" --plan-name deploy-to-aca
Esempio di opzioni complete:
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
Esempi di prompt
Aggiornamenti del framework:
upgrade to spring boot 3upgrade to .NET 10upgrade to JDK 21migrate from spring boot 2 to spring boot 3
Migrazioni di database:
migrate from oracle to azure postgresqlmigrate from SQL Server to azure cosmos dbswitch from MySQL to azure database for mysql
Migrazioni cloud:
migrate from on-premises to azurecontainerize and deploy to azure container appsmigrate from rabbitmq to azure service bus
Spiegamento:
deploy to azure app servicedeploy to azure kubernetes serviceset up CI/CD pipeline for azure
Risultato
Il comando genera:
File di piano (
.github/modernize/{plan-name}/plan.md): strategia di modernizzazione dettagliata, tra cui:- Contesto e obiettivi
- Approccio e metodologia
- Chiarimenti
Elenco attività (
.github/modernize/{plan-name}/tasks.json): suddivisione strutturata delle attività eseguibili con:- Descrizioni delle attività
- Competenze da usare
- Criteri di esito positivo
Suggerimento
È possibile modificare manualmente sia che plan.mdtasks.json dopo la generazione per personalizzare l'approccio prima dell'esecuzione.
pianificare l'esecuzione
Esegue un piano di modernizzazione creato da modernize plan create.
Sintassi
modernize plan execute [prompt] [options]
Arguments
| Argomentazione | Descrizione |
|---|---|
[prompt] |
Istruzioni facoltative del linguaggio naturale per l'esecuzione, ad esempio "skip test". |
Options
| Opzione | Descrizione | Impostazione predefinita |
|---|---|---|
--source <path> |
Percorso del codice sorgente dell'applicazione. | Directory corrente |
--plan-name <name> |
Nome del piano da eseguire. | modernization-plan |
--language <lang> |
Linguaggio di programmazione (java o dotnet). |
Rilevato automaticamente |
--model <model> |
Modello LLM da usare. | claude-sonnet-4.6 |
--delegate <delegate> |
Modalità di esecuzione: local (computer) o cloud (agente di codifica cloud). |
local |
--force |
Forza l'esecuzione anche quando è in corso un processo CCA. | Disattivato |
Examples
Eseguire il piano più recente in modo interattivo:
modernize plan execute
Eseguire un piano specifico:
modernize plan execute --plan-name spring-boot-upgrade
Eseguire con istruzioni aggiuntive:
modernize plan execute "skip the test" --plan-name spring-boot-upgrade
Eseguire in modalità headless per CI/CD:
modernize plan execute --plan-name spring-boot-upgrade --no-tty
Comportamento di esecuzione
Durante l'esecuzione, l'agente:
Carica il piano: legge il piano e l'elenco di attività da
.github/modernization/{plan-name}/Esegue attività: elabora ogni attività nell'elenco di attività in sequenza:
- Applica trasformazioni del codice.
- Convalida le compilazioni dopo le modifiche.
- Esegue l'analisi delle cve.
- Esegue il commit delle modifiche con messaggi descrittivi.
Genera riepilogo: fornisce un report di tutte le modifiche e i risultati.
Risultato
- Cronologia commit: commit dettagliati per ogni attività eseguita.
- Report riepilogo: panoramica delle modifiche, delle operazioni riuscite e degli eventuali problemi riscontrati.
- Convalida della compilazione: conferma che l'applicazione viene compilata correttamente.
- Report CVE: vulnerabilità di sicurezza identificate e risolte.
aggiornamento di a
Esegue un flusso di lavoro di aggiornamento end-to-end, ovvero piano ed esecuzione, in un singolo comando.
Sintassi
modernize upgrade [prompt] [options]
Arguments
| Argomentazione | Descrizione |
|---|---|
[prompt] |
Versione di destinazione, ad esempio Java 17, Spring Boot 3.2, .NET 10. Il valore predefinito è LTS più recente. |
Options
| Opzione | Descrizione | Impostazione predefinita |
|---|---|---|
--source <source> |
Origine da aggiornare (ripetibile). Accetta percorsi locali, URL Git o un percorso di file di configurazione JSON. Usare più --source flag per specificare diversi repository. |
. (directory corrente) |
--delegate <delegate> |
Modalità di esecuzione: local (computer) o cloud (agente di codifica cloud). |
local |
--model <model> |
Modello LLM da usare. | claude-sonnet-4.6 |
Examples
Eseguire upgrade nella directory corrente:
modernize upgrade "Java 17"
modernize upgrade ".NET 10"
Esecuzione upgrade in un progetto specifico:
modernize upgrade "Java 17" --source /path/to/project
Eseguire upgrade usando l'agente di codifica cloud:
modernize upgrade "Java 17" --delegate cloud
Aggiornare più repository usando un file di configurazione:
modernize upgrade "Java 21" --source .github/modernize/repos.json
Aggiornare più repository specificando direttamente le origini:
modernize upgrade "Java 21" --source https://github.com/org/repo1 --source https://github.com/org/repo2
help
Fornisce comandi della Guida e delle informazioni.
Sintassi
modernize help [command]
Comandi
| Comando | Descrizione |
|---|---|
models |
Elenca i modelli LLM disponibili e i relativi moltiplicatori. |
Examples
Elencare i modelli disponibili:
modernize help models
Configurare l'interfaccia della riga di comando
Usando l'agente di modernizzazione, è possibile personalizzare il comportamento dell'applicazione tramite file JSON e variabili di ambiente.
Variabili di ambiente
Impostare le variabili di ambiente per eseguire l'override di tutti gli altri ambiti di configurazione:
| Variabile | Descrizione | Impostazione predefinita |
|---|---|---|
MODERNIZE_LOG_LEVEL |
Livello di registrazione (none, error, warninginfo, debug, , ) all |
info |
MODERNIZE_MODEL |
Modello LLM da usare. | claude-sonnet-4.6 |
MODERNIZE_COLLECT_TELEMETRY |
Abilitare o disabilitare la raccolta di dati di telemetria. | true |
Esempio:
export MODERNIZE_LOG_LEVEL=debug
export MODERNIZE_MODEL=claude-sonnet-4.6
modernize assess
Configurazioni degli utenti
Archiviare le preferenze specifiche dell'utente nelle ~/.modernize/config.json impostazioni a livello di repository o in .github/modernize/config.json.
{
"model": "claude-sonnet-4.6",
"log_level": "info",
"trusted_folders": [
"/path/to/trusted/project",
]
}
La trusted_folders proprietà specifica le cartelle attendibili per l'uso di LLM in modalità interattiva.
Annotazioni
Le variabili di ambiente hanno la precedenza più alta, seguita dalla configurazione utente e quindi dalla configurazione del repository. Usare le variabili di ambiente per le sostituzioni CI/CD e la configurazione utente per le preferenze personali.
Configurazione multi-repository
È possibile fornire più origini all'interfaccia della riga di comando in diversi modi:
-
File di configurazione del repository: creare un
.github/modernize/repos.jsonfile che elenca tutti i repository e quindi passarlo con--source. -
Più
--sourceflag: specificare percorsi locali o URL Git direttamente nella riga di comando. - Modalità interattiva: selezionare le origini tramite tui (cartella corrente, input manuale o configurazione del repository).
File di configurazione del repository
Creare un .github/modernize/repos.json file per definire l'elenco di repository. La configurazione supporta due formati:
Formato semplice (matrice di repository):
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "PhotoAlbum",
"url": "https://github.com/Azure-Samples/PhotoAlbum.git"
}
]
Formato completo (con rami e percorsi locali):
{
"repos": [
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
"branch": "main"
},
{
"name": "local-project",
"path": "/absolute/path/to/project"
}
]
}
Ogni voce del repository supporta i campi seguenti:
| Campo | Descrizione | Obbligatorio |
|---|---|---|
name |
Nome descrittivo per il repository. | Sì |
url |
URL clone Git (HTTPS o SSH). | Uno di url o path |
path |
Percorso della directory locale assoluto. | Uno di url o path |
branch |
Ramo da controllare dopo la clonazione. | No |
description |
Descrizione leggibile dagli umani | No |
Formato completo con raggruppamento di app (facoltativo, per la creazione di report organizzati):
È possibile aggiungere una apps[] sezione per raggruppare i repository in applicazioni logiche. Quando vengono definite le app, il report aggregato organizza i risultati in base all'applicazione e supporta la distribuzione dei report.
{
"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"
}
}
]
}
Ogni voce dell'app supporta:
| Campo | Descrizione | Obbligatorio |
|---|---|---|
identifier |
Nome visualizzato univoco dell'applicazione. | Sì |
description |
Descrizione leggibile dagli umani | No |
repos |
Elenco dei nomi dei repository che appartengono a questa app. | Sì |
output |
Dove distribuire il report di valutazione dell'app dopo la generazione. | No |
Il output campo supporta i tipi di distribuzione seguenti:
| Tipo | Descrizione | Campi obbligatori |
|---|---|---|
local |
Copiare i report in una directory locale. | path |
git |
Eseguire il push dei report in un repository Git. Formato URL: https://github.com/org/repo.git#branch:path. |
url |
Importante
La delega dell'agente di codifica cloud (--delegate cloud) richiede che i repository abbiano url del repository GitHub (github.com. I repository di percorsi locali e i provider non GitHub (GitLab, Azure DevOps) non sono supportati per la delega cloud e vengono ignorati.
--source Usare quindi per passare il percorso del file di configurazione:
Valutare tutti i repository in locale:
modernize assess --source .github/modernize/repos.json
Valutare tutti i repository usando l'agente di codifica cloud:
modernize assess --source .github/modernize/repos.json --delegate cloud
Aggiornare tutti i repository usando l'agente di codifica cloud:
modernize upgrade --source .github/modernize/repos.json --delegate cloud
Più origini nella riga di comando
È anche possibile specificare più origini direttamente:
modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
modernize upgrade "Java 21" --source ./project-a --source ./project-b