Freigeben über


Cli-Befehle des GitHub Copilot-Modernisierungs-Agents

Der GitHub Copilot-Modernisierungs-Agent bietet interaktive und nicht interaktive Modi für die Anwendungsmodernisierung.

Befehlsmodi

Interaktiver Modus

Starten Sie die interaktive Text-Benutzeroberfläche (TUI) zur geführten Modernisierung:

modernize

Der interaktive Modus bietet Folgendes:

  • Menügesteuerte Navigation über den Modernisierungsworkflow.
  • Visuelle Plan- und Fortschrittsindikatoren.
  • Geführte Eingabeaufforderungen für Konfigurationsoptionen.
  • Multi-Repository-Auswahlschnittstelle.

Nicht interaktiver Modus

Führen Sie bestimmte Befehle direkt für Automatisierung und Skripting aus:

modernize <command> [options]

Verwenden Sie den nicht interaktiven Modus, wenn:

  • Integration in CI/CD-Pipelines.
  • Automatisieren von Batchvorgängen.
  • Skript-Modernisierungsworkflows.
  • Wird in headless Umgebungen ausgeführt.

Globale Optionen

Alle Befehle unterstützen diese globalen Optionen:

Auswahl Beschreibung
--help, -h Zeigt Hilfeinformationen an.
--no-tty Deaktiviert interaktive Eingabeaufforderungen (Headless Mode).

Befehle

Bewerten

Führt eine Bewertung aus und generiert einen umfassenden Analysebericht.

Syntax

modernize assess [options]

Options

Auswahl Beschreibung Vorgabe
--source <path> Der Pfad zum Quellprojekt (relativer oder absoluter lokaler Pfad). . (aktuelles Verzeichnis)
--output-path <path> Ein benutzerdefinierter Ausgabepfad für Bewertungsergebnisse. .github/modernize/assessment/
--issue-url <url> Eine GitHub-Problem-URL, die mit der Bewertungszusammenfassung aktualisiert werden soll. Nichts
--multi-repo Ermöglicht die Bewertung von Multi-Repositorys. Scannt Unterverzeichnisse der ersten Ebene nach mehreren Repositorys. Deaktiviert
--model <model> Das zu verwendende LLM-Modell. claude-sonnet-4.6
--delegate <delegate> Der Ausführungsmodus: local (dieser Computer) oder cloud (Cloud Coding Agent). local
--wait Wartet auf den Abschluss der delegierten Aufgaben und generiert Ergebnisse (gilt nur für --delegate cloud). Deaktiviert
--force Erzwingt den Neustart der Delegierung, wobei laufende Vorgänge ignoriert werden (gilt nur für --delegate cloud). Deaktiviert

Beispiele

Grundlegende Bewertung des aktuellen Verzeichnisses:

modernize assess

Bewerten mit benutzerdefiniertem Ausgabespeicherort:

modernize assess --output-path ./reports/assessment

Bewerten und Aktualisieren des GitHub-Problems mit Ergebnissen:

modernize assess --issue-url https://github.com/org/repo/issues/123

Bewerten eines bestimmten Projektverzeichnisses:

modernize assess --source /path/to/project

Bewerten mehrerer Repositorys im aktuellen Verzeichnis:

modernize assess  --multi-repo

Output

Die Bewertung generiert Folgendes:

  • Berichtsdateien: Detaillierte Analyse in JSON-, MD- und HTML-Formaten.
  • Zusammenfassung: Wichtige Ergebnisse und Empfehlungen.
  • Problemaktualisierungen (wenn Sie bereitstellen --issue-url): GitHub-Problemkommentar mit Zusammenfassung.

Plan erstellen

Erstellt einen Modernisierungsplan basierend auf einer Aufforderung in natürlicher Sprache, die Ihre Modernisierungsziele beschreibt.

Syntax

modernize plan create <prompt> [options]

Argumente

Argument Beschreibung
<prompt> Eine natursprachliche Beschreibung der Modernisierungsziele (erforderlich).

Options

Auswahl Beschreibung Vorgabe
--source <path> Der Pfad zum Anwendungsquellcode. Aktuelles Verzeichnis
--plan-name <name> Der Name für den Modernisierungsplan. modernization-plan
--language <lang> Die Programmiersprache (java, dotnetoder python). Automatisch erkannt
--overwrite Überschreibt einen vorhandenen Plan mit demselben Namen. Deaktiviert
--model <model> Das zu verwendende LLM-Modell. claude-sonnet-4.6

Beispiele

Generieren Eines Migrationsplans:

modernize plan create "migrate from oracle to azure postgresql"

Generieren Sie einen Upgradeplan mit benutzerdefiniertem Namen:

modernize plan create "upgrade to spring boot 3" --plan-name spring-boot-upgrade

Generieren Eines Bereitstellungsplans:

modernize plan create "deploy the app to azure container apps" --plan-name deploy-to-aca

Beispiel für vollständige Optionen:

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

Beispiele für Eingabeaufforderungen

Framework-Upgrades:

  • upgrade to spring boot 3
  • upgrade to .NET 10
  • upgrade to JDK 21
  • migrate from spring boot 2 to spring boot 3

Datenbankmigrationen:

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

Cloudmigrationen:

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

Einsatz:

  • deploy to azure app service
  • deploy to azure kubernetes service
  • set up CI/CD pipeline for azure

Output

Der Befehl generiert Folgendes:

  • Plandatei (.github/modernize/{plan-name}/plan.md): Detaillierte Modernisierungsstrategie, einschließlich:

    • Kontext und Ziele
    • Ansatz und Methodik
    • Klarstellungen
  • Aufgabenliste (.github/modernize/{plan-name}/tasks.json): Strukturierte Aufschlüsselung ausführbarer Aufgaben mit:

    • Aufgabenbeschreibungen
    • Zu verwendende Fähigkeiten
    • Erfolgskriterien

Tipp

Sie können den plan.md Ansatz vor der Ausführung manuell und tasks.json nach der Generierung anpassen.

Planausführung

Führt einen modernisierungsplan aus, der von modernize plan create.

Syntax

modernize plan execute [prompt] [options]

Argumente

Argument Beschreibung
[prompt] Die optionalen Anweisungen in natürlicher Sprache für die Ausführung (z. B. "Überspringen von Tests").

Options

Auswahl Beschreibung Vorgabe
--source <path> Der Pfad zum Anwendungsquellcode. Aktuelles Verzeichnis
--plan-name <name> Der Name des auszuführenden Plans. modernization-plan
--language <lang> Die Programmiersprache (java oder dotnet). Automatisch erkannt
--model <model> Das zu verwendende LLM-Modell. claude-sonnet-4.6
--delegate <delegate> Der Ausführungsmodus: local (dieser Computer) oder cloud (Cloud Coding Agent). local
--force Erzwingt die Ausführung, auch wenn ein CCA-Auftrag ausgeführt wird. Deaktiviert

Beispiele

Führen Sie den neuesten Plan interaktiv aus:

modernize plan execute

Ausführen eines bestimmten Plans:

modernize plan execute --plan-name spring-boot-upgrade

Ausführen mit zusätzlichen Anweisungen:

modernize plan execute "skip the test" --plan-name spring-boot-upgrade

Wird im Headless-Modus für CI/CD ausgeführt:

modernize plan execute --plan-name spring-boot-upgrade --no-tty

Ausführungsverhalten

Während der Ausführung:

  1. Lädt den Plan: Liest die Plan- und Aufgabenliste aus .github/modernization/{plan-name}/

  2. Führt Aufgaben aus: Verarbeitet jede Aufgabe in der Aufgabenliste sequenziell:

    • Wendet Codetransformationen an.
    • Überprüft Builds nach Änderungen.
    • Sucht nach CVEs.
    • Führt Änderungen mit beschreibenden Nachrichten durch.
  3. Generiert zusammenfassung: Stellt einen Bericht aller Änderungen und Ergebnisse bereit.

Output

  • Commitverlauf: Detaillierte Commits für jede ausgeführte Aufgabe.
  • Zusammenfassungsbericht: Übersicht über Änderungen, Erfolge und alle aufgetretenen Probleme.
  • Buildüberprüfung: Bestätigung, dass die Anwendung erfolgreich erstellt wurde.
  • CVE-Bericht: Sicherheitsrisiken identifiziert und behoben.

upgrade

Führt einen End-to-End-Upgrade-Workflow – Plan und Ausführung – in einem einzigen Befehl aus.

Syntax

modernize upgrade [prompt] [options]

Argumente

Argument Beschreibung
[prompt] Die Zielversion, zJava 17. B. , Spring Boot 3.2.NET 10. Standardmäßig wird das neueste LTS verwendet.

Options

Auswahl Beschreibung Vorgabe
--source <source> Der Pfad zum Quellprojekt (relativer oder absoluter lokaler Pfad). . (aktuelles Verzeichnis)
--delegate <delegate> Der Ausführungsmodus: local (dieser Computer) oder cloud (Cloud Coding Agent). local
--model <model> Das zu verwendende LLM-Modell. claude-sonnet-4.6

Beispiele

Führen Sie die Ausführung upgrade im aktuellen Verzeichnis aus:

modernize upgrade "Java 17"
modernize upgrade ".NET 10"

Ausführen upgrade für ein bestimmtes Projekt:

modernize upgrade "Java 17" --source /path/to/project

Ausführen upgrade mithilfe des Cloud Coding-Agents:

modernize upgrade "Java 17" --delegate cloud

help

Stellt Hilfe- und Informationsbefehle bereit.

Syntax

modernize help [command]

Befehle

Befehl Beschreibung
models Listet verfügbare LLM-Modelle und deren Multiplikatoren auf.

Beispiele

Verfügbare Modelle auflisten:

modernize help models

Konfigurieren der CLI

Mithilfe des Modernisierungs-Agents können Sie das Anwendungsverhalten über JSON-Dateien und Umgebungsvariablen anpassen.

Umgebungsvariablen

Legen Sie Umgebungsvariablen fest, um alle anderen Konfigurationsbereiche außer Kraft zu setzen:

Variable Beschreibung Vorgabe
MODERNIZE_LOG_LEVEL Protokollierungsebene (none, error, warning, info, , debug) all info
MODERNIZE_MODEL Das zu verwendende LLM-Modell. claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY Aktivieren oder Deaktivieren der Telemetriesammlung. true

Beispiel:

export MODERNIZE_LOG_LEVEL=debug
export MODERNIZE_MODEL=claude-sonnet-4.6
modernize assess

Benutzerkonfiguration

Speichern Sie benutzerspezifische Einstellungen in ~/.modernize/config.json oder repositoryweite Einstellungen in .github/modernize/config.json.

{
  "model": "claude-sonnet-4.6",
  "log_level": "info",
  "trusted_folders": [
    "/path/to/trusted/project",
  ]
}

Die trusted_folders Eigenschaft gibt die Ordner an, die für die Verwendung von LLM im interaktiven Modus vertrauenswürdig sind.

Hinweis

Umgebungsvariablen haben die höchste Priorität, gefolgt von der Benutzerkonfiguration und dann die Repositorykonfiguration. Verwenden Sie Umgebungsvariablen für CI/CD-Außerkraftsetzungen und Benutzerkonfigurationen für persönliche Einstellungen.

Konfiguration für mehrere Repositorys

Erstellen Sie eine .github/modernize/repos.json Datei, um den Modus für mehrere Repositorys zu aktivieren:

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

Nachdem die repos.json Datei vorhanden ist, verwenden Sie die folgenden Befehle, um in allen konfigurierten Repositorys zu arbeiten:

Bewerten aller Repositorys lokal:

modernize assess

Bewerten Sie alle Repositorys mithilfe des Cloud Coding-Agents:

modernize assess --delegate cloud

Aktualisieren Sie alle Repositorys mithilfe des Cloud Coding-Agents:

modernize upgrade --delegate cloud

Nächste Schritte