Condividi tramite


Comandi dell'interfaccia della riga di comando dell'agente di modernizzazione di GitHub Copilot

L'agente di modernizzazione copilot di GitHub offre 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.
  • Indicatori di piano visivo e di avanzamento.
  • Richieste guidate per le opzioni di configurazione.
  • 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 <path> Percorso del progetto di origine (percorso locale relativo o assoluto). . (directory corrente)
--output-path <path> Percorso di output personalizzato per i risultati della valutazione. .github/modernize/assessment/
--issue-url <url> URL del problema di GitHub da aggiornare con il riepilogo della valutazione. Nessuno
--multi-repo Abilita la valutazione multi-repository. Analizza le sottodirectory di primo livello per più repository. Disattivato
--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 il problema di GitHub 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 nella directory corrente:

modernize assess  --multi-repo

Risultato

La valutazione genera:

  • File di report: analisi dettagliata in formati JSON, MD e HTML.
  • Riepilogo: risultati chiave e raccomandazioni.
  • Aggiornare i problemi (se si specifica --issue-url): commento sul problema di GitHub 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 3
  • upgrade to .NET 10
  • upgrade to JDK 21
  • migrate from spring boot 2 to spring boot 3

Migrazioni di database:

  • migrate from oracle to azure postgresql
  • migrate from SQL Server to azure cosmos db
  • switch from MySQL to azure database for mysql

Migrazioni cloud:

  • migrate from on-premises to azure
  • containerize and deploy to azure container apps
  • migrate from rabbitmq to azure service bus

Spiegamento:

  • deploy to azure app service
  • deploy to azure kubernetes service
  • set 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:

  1. Carica il piano: legge il piano e l'elenco di attività da .github/modernization/{plan-name}/

  2. 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.
  3. 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> Percorso del progetto di origine (percorso locale relativo o assoluto). . (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

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

Creare un .github/modernize/repos.json file per abilitare la modalità multi-repository:

[
  {
    "name": "PhotoAlbum-Java",
    "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
  },
  {
    "name": "PhotoAlbum",
    "url": "https://github.com/Azure-Samples/PhotoAlbum.git"
  }
]

Al termine del repos.json file, usare i comandi seguenti per operare in tutti i repository configurati:

Valutare tutti i repository in locale:

modernize assess

Valutare tutti i repository usando l'agente di codifica cloud:

modernize assess --delegate cloud

Aggiornare tutti i repository usando l'agente di codifica cloud:

modernize upgrade --delegate cloud

Passaggi successivi