Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
- Flexible Quellauswahl: aktueller Ordner, manuelle Eingabe (lokale Pfade oder Git-URLs) oder Repositorykonfigurationsdateien.
- Visuelle Plan- und Fortschrittsindikatoren.
- Geführte Eingabeaufforderungen für Konfigurationsoptionen, einschließlich Bewertungsdomänen und Parametern.
- 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 <source> |
Zu bewertende Quelle (wiederholbar). Akzeptiert lokale Pfade, Git-URLs oder einen JSON-Konfigurationsdateipfad. Verwenden Sie mehrere --source Flags, um mehrere Repositorys anzugeben. |
. (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 |
--format <format> |
Ausgabeformat für Bewertungsberichte: html oder markdown. |
html |
--assess-config <path> |
Pfad zu einer YAML-Datei zur Bewertungskonfiguration, die Standardbewertungsparameter außer Kraft setzt, z. B. Ziellaufzeit, Computedienste und Analyseabdeckung. | Automatisch ermittelte oder Standardeinstellungen |
--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 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 mithilfe einer Konfigurationsdatei:
modernize assess --source .github/modernize/repos.json
Bewerten Sie mehrere Repositorys, indem Sie Quellen direkt angeben:
modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
Bewerten und Ausgeben von Berichten im Markdown-Format:
modernize assess --format markdown
Output
Die Bewertung generiert Folgendes:
- Berichtsdateien: Detaillierte Analyse in JSON-, MD- und HTML-Formaten.
- Zusammenfassung: Wichtige Ergebnisse und Empfehlungen.
-
Issue updates (wenn Sie
--issue-urlbereitstellen): 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 3upgrade to .NET 10upgrade to JDK 21migrate from spring boot 2 to spring boot 3
Datenbankmigrationen:
migrate from oracle to azure postgresqlmigrate from SQL Server to azure cosmos dbswitch from MySQL to azure database for mysql
Cloudmigrationen:
migrate from on-premises to azurecontainerize and deploy to azure container appsmigrate from rabbitmq to azure service bus
Einsatz:
deploy to azure app servicedeploy to azure kubernetes serviceset 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:
Lädt den Plan: Liest die Plan- und Aufgabenliste aus
.github/modernization/{plan-name}/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.
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, z. B. Java 17, Spring Boot 3.2, .NET 10. Standardmäßig wird das neueste LTS verwendet. |
Options
| Auswahl | Beschreibung | Vorgabe |
|---|---|---|
--source <source> |
Quelle zum Upgrade (wiederholbar). Akzeptiert lokale Pfade, Git-URLs oder einen JSON-Konfigurationsdateipfad. Verwenden Sie mehrere --source Flags, um mehrere Repositorys anzugeben. |
. (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
Führen Sie ein Upgrade mehrerer Repositorys mithilfe einer Konfigurationsdatei durch:
modernize upgrade "Java 21" --source .github/modernize/repos.json
Aktualisieren Sie mehrere Repositorys, indem Sie Quellen direkt angeben:
modernize upgrade "Java 21" --source https://github.com/org/repo1 --source https://github.com/org/repo2
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
Sie können der CLI mehrere Quellen auf verschiedene Arten bereitstellen:
-
Repository-Konfigurationsdatei: Erstellen Sie eine
.github/modernize/repos.jsonDatei, die alle Repositorys auflistet, und übergeben Sie sie mit--source. -
Mehrere
--sourceFlags: Geben Sie lokale Pfade oder Git-URLs direkt in der Befehlszeile an. - Interaktiver Modus: Wählen Sie Quellen über die TUI aus (aktueller Ordner, manuelle Eingabe oder Repository-Konfiguration).
Repositorykonfigurationsdatei
Erstellen Sie eine .github/modernize/repos.json Datei, um Ihre Repositoryliste zu definieren. Die Konfiguration unterstützt zwei Formate:
Einfaches Format (Array von Repositorys):
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "PhotoAlbum",
"url": "https://github.com/Azure-Samples/PhotoAlbum.git"
}
]
Vollständiges Format (mit Verzweigungs- und lokalen Pfaden):
{
"repos": [
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
"branch": "main"
},
{
"name": "local-project",
"path": "/absolute/path/to/project"
}
]
}
Jeder Repositoryeintrag unterstützt die folgenden Felder:
| Feld | Beschreibung | Erforderlich |
|---|---|---|
name |
Ein Anzeigename für das Repository. | Ja |
url |
Git Clone URL (HTTPS oder SSH). | Einer von url oder path |
path |
Absoluter lokaler Verzeichnispfad. | Einer von url oder path |
branch |
Verzweigung, um nach dem Klonen auszuchecken. | No |
description |
Menschenlesbare Beschreibung. | No |
Vollständiges Format mit App-Gruppierung (optional, für organisierte Berichte):
Sie können einen apps[] Abschnitt zu Gruppenrepositorys zu logischen Anwendungen hinzufügen. Wenn Apps definiert sind, organisiert der aggregierte Bericht Ergebnisse nach Anwendung und unterstützt die Berichtsverteilung.
{
"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"
}
}
]
}
Jeder App-Eintrag unterstützt Folgendes:
| Feld | Beschreibung | Erforderlich |
|---|---|---|
identifier |
Eindeutiger Anzeigename der Anwendung. | Ja |
description |
Menschenlesbare Beschreibung. | No |
repos |
Liste der Repositorynamen, die zu dieser App gehören. | Ja |
output |
Wo der Bewertungsbericht dieser App nach der Generierung verteilt werden soll. | No |
Das output Feld unterstützt die folgenden Verteilungstypen:
| Typ | Beschreibung | Pflichtfelder |
|---|---|---|
local |
Kopieren Sie Berichte in ein lokales Verzeichnis. | path |
git |
Pushberichte an ein Git-Repository. URL-Format: https://github.com/org/repo.git#branch:path. |
url |
Von Bedeutung
Für die Delegierung des Cloud Coding Agent (--delegate cloud) müssen Repositorys GitHub (github.com) Repository-URLs besitzen. Lokale Pfadrepositorys und Nicht-GitHub-Anbieter (GitLab, Azure DevOps) werden für die Clouddelegierung nicht unterstützt und übersprungen.
Übergeben Sie --source dann den Konfigurationsdateipfad:
Bewerten aller Repositorys lokal:
modernize assess --source .github/modernize/repos.json
Bewerten Sie alle Repositorys mithilfe des Cloud Coding-Agents:
modernize assess --source .github/modernize/repos.json --delegate cloud
Aktualisieren Sie alle Repositorys mithilfe des Cloud Coding-Agents:
modernize upgrade --source .github/modernize/repos.json --delegate cloud
Mehrere Quellen in der Befehlszeile
Sie können auch mehrere Quellen direkt angeben:
modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
modernize upgrade "Java 21" --source ./project-a --source ./project-b