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

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 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> 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.json file che elenca tutti i repository e quindi passarlo con --source.
  • Più --source flag: 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.
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.
description Descrizione leggibile dagli umani No
repos Elenco dei nomi dei repository che appartengono a questa app.
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

Passaggi successivi