Stapelplan mit dem Modernisierungs-Agenten von GitHub Copilot

Mithilfe eines Batchplans können Sie Modernisierungspläne für mehrere Repositorys mithilfe eines Workflows und eines gemeinsamen Modernisierungsziels generieren. In diesem Artikel wird erläutert, wie Sie konsistente Pläne für mehrere Anwendungen erstellen, bevor Sie mit der Ausführung beginnen.

Mithilfe des Batchplans können Sie folgende Aktionen ausführen:

  • Erstellen Sie Pläne für mehrere Anwendungen in einem geführten Workflow.
  • Legen Sie ein konsistentes Modernisierungsziel repository-übergreifend fest.
  • Verwenden Sie Bewertungsergebnisse als Kontext , um die Planqualität zu verbessern.
  • Überprüfen Sie Pläne vor der Ausführung , und entscheiden Sie, welche Repositorys zuerst modernisiert werden sollen.

Batchplan bietet die folgenden Vorteile:

  • Konsistenz und Kontrolle:

    • Gemeinsame Zielsetzung: Starten Sie mit einer Modernisierungsanweisung über mehrere Repositorys hinweg.
    • Vergleichbare Ergebnisse: Vergleichen Sie Pläne nebeneinander, bevor Sie sie ausführen.
    • Flexible Verfeinerung: Bearbeiten Sie jeden generierten Plan, um repositoryspezifische Anforderungen widerzuspiegeln.
  • Planung in großem Maßstab:

    • Portfoliosichtbarkeit: Verstehen, wie die gleiche Anforderung für alle Anwendungen gilt.
    • Wiederverwendbare Vorbereitung: Nutzen Sie dieselbe Repository-Liste und dieselben Bewertungsergebnisse aus früheren Phasen erneut.
    • Schnellere Entscheidungsfindung: Generieren Sie zuerst Pläne, und führen Sie dann nur die Repositorys aus, die Sie genehmigen.

Voraussetzungen

  • Modernisieren Sie CLI.
  • Zugriff auf alle Repositorys, die Sie planen möchten.
  • GitHub-Authentifizierung konfiguriert (gh auth login).
  • Eine abgeschlossene Batchbewertung (empfohlen), wenn der Agent Bewertungsergebnisse als Planungskontext verwenden soll.

Tipp

Die Batchbewertung ist nicht erforderlich, erzeugt aber in der Regel genauere und umsetzbare Pläne, da der Agent auf erkannte Probleme und Migrationsmöglichkeiten verweisen kann.

Konfigurieren von Repositorys

Der Modernisierungs-Agent unterstützt mehrere Möglichkeiten zum Angeben der Repositorys, die Sie planen möchten:

  • Aktueller Ordner: Erstellen Sie einen Plan für 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.

Format (Array von Repositorys):

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

Jeder Repositoryeintrag unterstützt die folgenden Felder:

Feld Description Erforderlich
name Ein freundlicher Name des Repository (in Berichten und Dashboards verwendet). Yes
url Git Clone URL im HTTPS- oder SSH-Format. Einer von url oder path

Tipp

Sie können dieselbe repos.json Datei für Batchbewertungs-, Batchplan- und Batchupgradeworkflows verwenden.

Der Modernisierungs-Agent erkennt automatisch die Datei , wenn Sie "Aus einer Konfigurationsdatei" im interaktiven Modus auswählen. Sie können auch einen benutzerdefinierten Pfad angeben.

So funktioniert der Batchplan

Der Batchplanungsworkflow:

  1. Repositoryauswahl: Wählen Sie die Repositorys aus, die Sie einbeziehen möchten.
  2. Kontextauswahl: Optional verfügbare Bewertungsberichte als Eingabe verwenden.
  3. Promptdefinition: Beschreiben Sie Ihr Modernisierungsziel einmal und wenden Sie es auf alle Repositories an.
  4. Klarstellung: Beantworten Sie alle Nachverfolgungsfragen des Agenten.
  5. Plangenerierung: Der Agent erstellt einen Plan für jedes ausgewählte Repository.

Jeder generierte Plan wird im Ziel-Repository gespeichert und kann vor der Ausführung überprüft oder bearbeitet werden.

Batchplan ausführen

Nachdem Sie Ihre Repositorys konfiguriert haben, starten Sie den Batchplanungsworkflow.

Interaktiver Modus

  1. Führen Sie den Modernisierungs-Agent aus:

    modernize
    
  2. Wählen Sie im Hauptmenü " Plan" aus.

    ○ How would you like to modernize your app?
    
        Assess
        Analyze modernization readiness across one or multiple applications
      > Plan
        Generate a structured plan to guide the agent
        Execute
        Run the tasks defined in the modernization plan
    
      Or select a quick-start scenario:
    
        Upgrade
            Upgrade runtimes and frameworks across one or multiple applications
    
  3. Wählen Sie aus, wie Ihre Zielrepositorys angegeben werden sollen. Wählen Sie "Aus einer Konfigurationsdatei " aus, um eine repos.json Datei zu verwenden.

    ○ Choose target repositories
    
        1. Current folder
          /Users/username/project
        2. Manual input
          Enter local path or remote URL
      > 3. From a config file
          /path/to/.github/modernize/repos.json
    

    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 planen.

  4. Wenn die repos.json Datei 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.

  5. 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.
  6. Wählen Sie 1. Plan lokal halten, um Pläne auf Ihrem Computer zu generieren, oder wählen Sie 2. An Cloud Agent senden, um sie von einem Cloud-Agent generieren zu lassen. Option 2 ist experimentell.

  7. Geben Sie einen Plannamen ein, oder drücken Sie die EINGABETASTE , um die Standardeinstellung zu verwenden.

  8. Geben Sie Ihr Modernisierungsziel als Eingabeaufforderung ein. Beispiel:

    • upgrade to Spring Boot 3 and prepare for Azure deployment
    • migrate the database to Azure PostgreSQL
    • containerize the application and deploy to Azure Container Apps
  9. Drücken Sie die EINGABETASTE , um die Pläne zu generieren.

  10. Der Agent arbeitet automatisch:

    • Klont jedes ausgewählte Repository oder sendet einen Auftrag für jedes Repository an einen Cloud-Agent.
    • Erzeugt lokal für jedes Repository einen Plan oder in jedem Repository eine PR mit dem Plan.

Nächste Schritte

Überprüfen Sie nach Abschluss des Batchplans die Pläne, und führen Sie sie mithilfe des execute Befehls aus:

Feedback geben

Wenn Sie Feedback zum Batchplan oder zum Modernisierungs-Agent haben, erstellen Sie ein Problem im Github-copilot-appmod-Repository oder verwenden Sie das GitHub Copilot Modernisierungsfeedbackformular.