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.
Mit dem Batchupgrade können Sie konsistente Modernisierungspläne für mehrere Repositorys gleichzeitig anwenden. In diesem Artikel wird gezeigt, wie Sie mehrere Anwendungen effizient im Unternehmensmaßstab aktualisieren.
Mithilfe des Batchupgrades können Sie folgende Aktionen ausführen:
- Führen Sie ein gleichzeitiges Upgrade mehrerer Anwendungen mithilfe desselben Upgradeziels durch.
- Wenden Sie konsistente Muster mithilfe ähnlicher Upgrademuster für alle Anwendungen an.
- Nutzen Sie die parallele Ausführung beim Delegieren an Cloud Coding Agents.
Batchupgrade bietet die folgenden Vorteile:
Konsistente Ausführung:
- Standardisierter Ansatz: Wenden Sie die gleichen Modernisierungsmuster für alle Repositorys an.
- Reduzierte Variabilität: Stellen Sie konsistente Upgradepfade für ähnliche Anwendungen sicher.
- Wiederverwendbare Strategien: Verwenden Sie organisationsspezifische Fähigkeiten in allen Anwendungen.
Skalierung und Effizienz:
- Parallele Verarbeitung: Verwenden Sie Cloud Coding Agents, um mehrere Repositorys gleichzeitig zu verarbeiten.
- Automatisierte Workflows: Integration mit CI/CD-Pipelines für die geplante Modernisierung.
- Zeitersparnis: Reduzieren Sie die Gesamtmodernisierungszeit von Wochen auf Stunden.
Voraussetzungen
- Modernisieren Sie CLI.
- Eine abgeschlossene Batchbewertung (empfohlen, aber nicht erforderlich).
- Alle Repositorys verwenden dieselbe Programmiersprache (Java oder .NET).
- Zugriff auf alle Repositorys, die Sie aktualisieren möchten.
- GitHub Authentifizierung konfiguriert (
gh auth login).
Von Bedeutung
Alle Repositorys in einem Batchupgrade müssen dieselbe Programmiersprache verwenden. Wenn ein Repository eine andere Sprache verwendet, kennzeichnet das Batchupgrade das Repository als fehlgeschlagen und überspringt es.
Konfigurieren von Repositorys
Der Modernisierungs-Agent unterstützt mehrere Möglichkeiten zum Angeben der Repositorys, die Sie aktualisieren möchten:
- Aktueller Ordner: Aktualisieren Sie das Projekt in Ihrem aktuellen Arbeitsverzeichnis.
- Manuelle Eingabe: Geben Sie lokale Verzeichnispfade oder Git-Remote-URLs direkt ein.
- Repositorykonfigurationsdatei: Verwenden Sie eine JSON-Konfigurationsdatei, die alle Repositorys auflistet.
Konfigurationsdatei für das Repository
Erstellen Sie für Batchvorgänge in vielen Repositorys eine JSON-Konfigurationsdatei, um alle Repositorys auflisten zu können. Erstellen Sie es .github/modernize/repos.json beispielsweise in Ihrem Arbeitsverzeichnis, oder geben Sie einen benutzerdefinierten Pfad an.
Tipp
Für Beispielrepositorys müssen Sie sie zuerst verzweigen und sicherstellen, dass Sie über Administratorberechtigungen verfügen, um den Auftrag an Cloud Coding Agents zu delegieren.
Einfaches Format (Array von Repositorys):
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "ZavaSocialFrontEnd",
"url": "https://github.com/Azure-Samples/ZavaSocialFrontEnd"
}
]
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 freundlicher Name des Repository (in Berichten und Dashboards verwendet). | Ja |
url |
Git Clone URL im HTTPS- oder SSH-Format. | Einer von url oder path |
path |
Absoluter lokaler Verzeichnispfad. | Einer von url oder path |
branch |
Branch zum Auschecken nach dem Klonen. | No |
description |
Menschenlesbare Beschreibung. | No |
Tipp
Sie können Repositorys aus verschiedenen Organisationen einschließen und unterschiedliche Authentifizierungsmethoden verwenden, solange Sie Zugriff haben.
Der Modernisierungs-Agent erkennt automatisch die
Auswählen des Ausführungsmodus
Batchupgrade unterstützt zwei Ausführungsmodi und zwei Interaktionsmethoden:
Ausführungsmodi
Lokale Ausführung
- Am besten geeignet für: Testen, kleinere Repositorys (1-5 Repositorys) oder wenn Sie die lokale Steuerung bevorzugen.
- Funktionsweise: Verarbeitet Repositorys sequenziell auf Ihrem lokalen Computer.
- Setup erforderlich: Keine über die grundlegenden Voraussetzungen hinaus.
- Unterstützt: Sowohl Git-URL- als auch lokale Pfad-Repositories.
Cloud Coding Agent-Delegierung
- Am besten geeignet für: Unternehmensweite Vorgänge, große Portfolios (5+ Repos) oder parallele Verarbeitung.
- Wie es funktioniert: Sendet Aufgaben an GitHub Cloud Coding Agents für die parallele Ausführung in der Cloud.
- Setup erforderlich: MCP-Serverkonfiguration in jedem Repository (konfiguriert während des Setups).
- Supports: Nur Repositorys mit GitHub-URLs (github.com). Lokale Pfade und Nicht-GitHub-Anbieter werden nicht unterstützt.
Von Bedeutung
Für die Delegierung von Cloud Coding Agenten müssen Repositorys über GitHub (github.com) Repository-URLs verfügen. Repositorys, die mit lokalen Pfaden angegeben oder auf nicht GitHub Anbietern (GitLab, Azure DevOps) gehostet werden, werden während der Clouddelegierung übersprungen. Verwenden Sie die lokale Ausführung für diese Repositorys.
Tipp
Durch die parallele Verarbeitung von Repositorys kann die Cloud Coding Agent-Delegierung die Gesamtmodernisierungszeit von Stunden zu Minuten reduzieren.
Interaktionsmethoden
Interaktiver Modus (TUI)
- Geführte Erfahrung mit Menüs und Eingabeaufforderungen.
- Am besten geeignet für Benutzer zum ersten Mal oder wenn Sie Optionen überprüfen möchten.
- Unterstützt sowohl die lokale als auch die Cloudausführung.
Nicht-interaktiver Modus (CLI/headless)
- Befehlszeilenbasiert, vollständig automatisiert.
- Am besten geeignet für CI/CD-Pipelines und Automatisierung.
- Unterstützt sowohl die lokale als auch die Cloudausführung mit
--delegate cloudFlag.
Hinweis
Sie können jeden Ausführungsmodus mit jeder Interaktionsmethode kombinieren. Beispiel:
-
modernize→ "Upgrade" auswählen (interaktiv, lokal) -
modernize→ wählen Sie "Upgrade → Delegate to Cloud Agents" (interaktiv, Cloud) aus. -
modernize upgrade "Java 21" --source ./repos.json(nicht interaktiv, lokal) -
modernize upgrade "Java 21" --source ./repos.json --delegate cloud(nicht interaktiv, Cloud)
Funktionsweise des Batchupgrades
Der Stapel-Upgrade-Workflow:
- Language detection: Erkennt automatisch die Projektsprache (Java oder .NET) aus dem ersten Repository.
- Planerstellung: Erstellt einen Upgradeplan basierend auf Ihrer Eingabeaufforderung oder verwendet die neuesten LTS-Versionen.
- Ausführung: Wendet das Upgrade auf jedes Repository an.
- Überprüfung: Erstellt und überprüft Änderungen für jedes Repository.
Batchupgrade ausführen
Nachdem Sie Ihre Repositorys konfiguriert und einen Ausführungsmodus ausgewählt haben, starten Sie das Batchupgrade.
Interaktiver Modus (lokal aktualisieren)
Führen Sie den Modernisierungs-Agent aus:
modernizeWählen Sie im Hauptmenü "Upgrade" aus.
Wählen Sie aus, wie Ihre Zielrepositorys angegeben werden sollen. Wählen Sie "Aus einer Konfigurationsdatei " aus, um eine
repos.jsonDatei zu verwenden.Tipp
Sie können auch manuelle Eingaben auswählen, um lokale Pfade oder Remote-Git-URLs direkt einzugeben, oder den aktuellen Ordner , um das Projekt in Ihrem aktuellen Verzeichnis zu aktualisieren.
Wenn die
repos.jsonDatei am Standardspeicherort erkannt wird, füllt der Agent sie automatisch aus. Geben Sie andernfalls den Pfad zu Ihrer Konfigurationsdatei ein, und drücken Sie die EINGABETASTE.Alle Repositorys sind standardmäßig ausgewählt. Deaktivieren Sie alle Repositorys, die Sie überspringen möchten, und drücken Sie dann die EINGABETASTE , um Ihre Auswahl zu bestätigen.
- Verwenden Sie pfeiltasten , um zu navigieren und die LEERTASTE zu drücken, um einzelne Repositorys umzuschalten.
Wählen Sie den Ausführungsmodus aus. Wählen Sie "Lokal aktualisieren" aus.
Geben Sie die Upgradezielaufforderung ein (z. B.
Java 21oder.NET 10), oder drücken Sie Enter, um die Standardversion (neueste LTS-Version) zu akzeptieren.Der Agent arbeitet automatisch:
- Erstellt einen Upgradeplan basierend auf Ihrer Anforderung.
- Wendet den Plan auf jedes Repository sequenziell an.
- Erstellt und überprüft jedes Repository nach Änderungen.
- Zeigt Fortschritt und Zusammenfassung für jedes Repository an.
Interaktiver Modus (Delegieren an Cloud Coding Agents)
Voraussetzungen: Konfigurieren des MCP-Servers
Konfigurieren Sie vor dem Ausführen des Upgrades den GitHub Copilot Modernisierungs-MCP-Server in jedem Repository.
Zu Java Anwendungen fügen Sie diese Konfiguration im Abschnitt "Cloud Coding Agent" Ihrer Repositoryeinstellungen hinzu:
{
"mcpServers": {
"app-modernization": {
"type": "local",
"command": "npx",
"tools": [
"*"
],
"args": [
"-y",
"@microsoft/github-copilot-app-modernization-mcp-server"
]
}
}
}
Schritte
Führen Sie den Modernisierungs-Agent aus:
modernizeWählen Sie im Hauptmenü "Upgrade" aus.
Wählen Sie aus, wie Ihre Zielrepositorys angegeben werden sollen. Wählen Sie aus einer Konfigurationsdatei aus.
Wenn die
repos.jsonDatei am Standardspeicherort erkannt wird, füllt der Agent sie automatisch aus. Geben Sie andernfalls den Pfad zu Ihrer Konfigurationsdatei ein, und drücken Sie die EINGABETASTE.Alle Repositorys sind standardmäßig ausgewählt. Deaktivieren Sie alle Repositorys, die Sie überspringen möchten, und drücken Sie dann die EINGABETASTE , um Ihre Auswahl zu bestätigen. Verwenden Sie pfeiltasten, um zu navigieren und die LEERTASTE zu drücken, um einzelne Repositorys umzuschalten.
Wählen Sie den Ausführungsmodus aus. Wählen Sie "An Cloud-Agents delegieren" aus.
Geben Sie die Aktualisierungszielaufforderung ein (z. B.
Java 21), oder drücken Sie Enter, um die Standardeinstellung zu übernehmen.Der Agent arbeitet automatisch:
Erstellt Upgradepläne für jedes Repository.
Sendet einen Cloud Coding Agent-Auftrag für jedes Repository.
Führt Aufträge unabhängig parallel in der Cloud aus.
Zeigt Auftrags-IDs und PR-URLs für jedes Repository an.
Delegiert Aufgaben für die parallele Ausführung an AgentHQ.
Verfolgt den Fortschritt für jeden einzelnen Vorgang in Echtzeit.
Zeigt die Upgradezusammenfassung für jede abgeschlossene Aufgabe an.
Nicht interaktiver Modus (CLI)
Verwenden Sie für die Automatisierungs- und CI/CD-Integration den modernize upgrade Befehl:
Führen Sie ein lokales Upgrade mit einer Repositorykonfigurationsdatei 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
Upgrade mit Cloud Coding Agents:
modernize upgrade "Java 21" --source .github/modernize/repos.json --delegate cloud
Hinweis
Informationen zur Batchkopflose Ausführung und weitere CLI-Optionen finden Sie im Abschnitt "Konfiguration mehrerer Repositorys " in der CLI-Befehlsreferenz.
Überprüfen der Ergebnisse
Nach Abschluss des Batchupgrades:
Überprüfen Sie den aggregierten Bericht , der im Terminal angezeigt wird.
Überprüfen sie einzelne Repositoryänderungen:
cd <repository-name> git status git diffErstellen von Pullanforderungen für erfolgreiche Upgrades:
cd <repository-name> gh pr create --title "Upgrade to Java 21" --body "Automated upgrade by modernization agent"
Problembehandlung bei Batchupgrades
Häufige Probleme
Fehler beim Repositoryzugriff:
- Überprüfen Sie GitHub Authentifizierung mithilfe von
gh auth status. - Stellen Sie sicher, dass Sie Zugriff auf alle Repositorys haben in
repos.json.
Fehler bei der Sprachübereinstimmung:
- Stellen Sie sicher, dass alle Repositorys in
repos.jsondieselbe Sprache verwenden (Java oder .NET). - Erstellen Sie separate Batchvorgänge für verschiedene Sprachen.
Klonfehler:
- Überprüfen Sie, ob die Repository-URLs in
repos.jsonkorrekt und zugänglich sind. - Stellen Sie sicher, dass Sie über die richtigen Zugriffsberechtigungen für alle Repositorys verfügen.
- Überprüfen Sie die Netzwerkkonnektivität und VPN-Einstellungen.
Buildfehler nach dem Upgrade:
- Überprüfen Sie Buildfehlermeldungen im aggregierten Bericht.
- Überprüfen Sie, ob Sie andere Abhängigkeiten aktualisieren müssen.
- Überprüfen Sie die Kompatibilität von Drittanbieterbibliotheken mit der neuen Version.
Einzelne Repositoryfehler:
- Der Batchvorgang wird auch dann fortgesetzt, wenn einzelne Repositorys fehlschlagen.
- Überprüfen Sie den aggregierten Bericht, um fehlerhafte Repositorys zu identifizieren.
- Überprüfen Sie Fehlerprotokolle auf bestimmte Fehlermeldungen.
- Wiederholen Sie fehlgeschlagene Repositorys einzeln.
Cloud Coding Agent-Fehler:
- Überprüfen Sie GitHub Actions Berechtigungen und Kontingentbeschränkungen.
- Stellen Sie für .NET Framework sicher, dass Windows Runner-Konfiguration ordnungsgemäß festgelegt ist.
Nächste Schritte
Nach Abschluss des Batchupgrades können Sie:
Weiter verbessern:
- Führen Sie die Batchbewertung aus– Überprüfen Sie Verbesserungen, und identifizieren Sie neue Möglichkeiten.
- Erstellen Sie benutzerdefinierte Fähigkeiten für organisationsspezifische Muster – Erfassen Sie erfolgreiche Muster für die Wiederverwendung.
Weitere Informationen:
Feedback geben
Wir schätzen Ihre Eingabe! Wenn Sie Feedback zum Batchupgrade oder zum Modernisierungs-Agent haben, erstellen Sie ein Problem im Github-copilot-appmod-Repository oder verwenden Sie das GitHub Copilot Modernisierungsfeedbackformular.