Batch-upgrade met de GitHub Copilot moderniseringsagent

Met Batch-upgrade kunt u consistente moderniseringsplannen toepassen op meerdere opslagplaatsen tegelijk. In dit artikel leest u hoe u meerdere toepassingen efficiënt kunt upgraden op ondernemingsniveau.

Met behulp van batchupgrade kunt u het volgende doen:

  • Upgrade meerdere toepassingen tegelijk met hetzelfde upgradedoel.
  • Pas consistente patronen toe met behulp van vergelijkbare upgradepatronen in toepassingen.
  • Gebruik parallelle uitvoering wanneer u de taken aan Cloud Coding Agents delegeert.

Batch-upgrade biedt de volgende voordelen:

  • Consistente uitvoering:

    • Gestandaardiseerde benadering: dezelfde moderniseringspatronen toepassen op alle opslagplaatsen.
    • Verminderde variabiliteit: Zorg voor consistente upgradepaden voor vergelijkbare toepassingen.
    • Herbruikbare strategieën: gebruik organisatiespecifieke vaardigheden in toepassingen.
  • Schaal en efficiëntie:

    • Parallelle verwerking: Gebruik Cloud Coding Agents om meerdere opslagplaatsen tegelijk te verwerken.
    • Geautomatiseerde werkstromen: integreren met CI/CD-pijplijnen voor geplande modernisering.
    • Tijdbesparing: Verminder de totale moderniseringstijd van weken tot uren.

Vereiste voorwaarden

  • De CLI moderniseren.
  • Een voltooide batch-evaluatie (aanbevolen maar niet vereist).
  • Alle opslagplaatsen gebruiken dezelfde programmeertaal (Java of .NET).
  • Toegang tot alle opslagplaatsen die u wilt upgraden.
  • GitHub-authenticatie geconfigureerd (gh auth login).

Belangrijk

Alle opslagplaatsen in een batch-upgrade moeten dezelfde programmeertaal gebruiken. Als een opslagplaats een andere taal gebruikt, markeert de batch-upgrade de opslagplaats als mislukt en slaat deze over.

Opslagplaatsen configureren

De moderniseringsagent ondersteunt meerdere manieren om de opslagplaatsen op te geven die u wilt upgraden:

  • Huidige map: Werk het project bij in uw huidige werkmap.
  • Handmatige invoer: voer lokale mappaden of externe Git-URL's rechtstreeks in.
  • Configuratiebestand voor opslagplaatsen: gebruik een JSON-configuratiebestand waarin alle opslagplaatsen worden vermeld.

Configuratiebestand voor opslagplaats

Voor batchbewerkingen in veel opslagplaatsen maakt u een JSON-configuratiebestand om alle opslagplaatsen weer te geven. Maak het bestand .github/modernize/repos.json bijvoorbeeld in uw werkmap, of geef een aangepast pad op.

Aanbeveling

Voor voorbeelden van opslagplaatsen moet u deze eerst forken en ervoor zorgen dat u beheerdersrechten hebt om de taak te delegeren aan Cloud Coding Agents.

Eenvoudige indeling (matrix van opslagplaatsen):

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

Volledige indeling (met vertakking en lokale paden):

{
  "repos": [
    {
      "name": "PhotoAlbum-Java",
      "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
      "branch": "main"
    },
    {
      "name": "local-project",
      "path": "/absolute/path/to/project"
    }
  ]
}

Elke opslagplaatsvermelding ondersteunt de volgende velden:

Veld Beschrijving Verplicht
name Een beschrijvende naam voor de opslagplaats (gebruikt in rapporten en dashboards). Ja
url Git klonen-URL in HTTPS- of SSH-formaat. Een van url of path
path Absoluut pad naar lokale map. Een van url of path
branch Vertakking die moet worden uitgecheckt na het klonen. No
description Leesbare beschrijving. No

Aanbeveling

U kunt opslagplaatsen van verschillende organisaties opnemen en verschillende verificatiemethoden gebruiken zolang u toegang hebt.

De moderniseringsagent detecteert het repos.json bestand .github/modernize/repos.json automatisch wanneer u Een configuratiebestand selecteert bij interactieve modus. U kunt ook een aangepast pad opgeven.

De uitvoeringsmodus kiezen

Batch-upgrade ondersteunt twee uitvoeringsmodi en twee interactiemethoden:

Uitvoeringsmodi

Lokale uitvoering

  • Geschikt voor: testen, kleinere sets opslagplaatsen (1-5 opslagplaatsen) of wanneer u liever lokaal beheer hebt.
  • Hoe het werkt: verwerkt opslagplaatsen sequentieel op uw lokale computer.
  • Configuratie vereist: Geen, afgezien van de basisvereisten.
  • Ondersteunt: Zowel Git-URL als lokale padopslagplaatsen.

Delegatie van cloudcoderingsagent

  • Geschikt voor: Bewerkingen op ondernemingsniveau, grote portfolio's (5+ opslagplaatsen) of parallelle verwerking.
  • Hoe het werkt: verzendt taken naar GitHub Cloud Coding Agents voor parallelle uitvoering in de cloud.
  • Installatie vereist: MCP-serverconfiguratie in elke opslagplaats (geconfigureerd tijdens de installatie).
  • Supports: Alleen opslagplaatsen met GitHub -URL's (github.com). Lokale paden en niet-GitHub providers worden niet ondersteund.

Belangrijk

Opslagplaatsen voor de overdracht van cloud-coderingsagenten moeten GitHub (github.com) opslagplaats-URL's hebben. Opslagplaatsen die zijn opgegeven met lokale paden of worden gehost op niet-GitHub-providers (GitLab, Azure DevOps) worden overgeslagen tijdens clouddelegering. Lokale uitvoering gebruiken voor deze opslagplaatsen.

Aanbeveling

Door repositories parallel te bewerken, kan de delegatie van de cloud coding agent de totale moderniseringstijd van uren tot minuten verkorten.

Interactiemethoden

Interactieve modus (TUI)

  • Begeleide ervaring met menu's en prompts.
  • Geschikt voor gebruikers die voor het eerst zijn of wanneer u opties wilt bekijken.
  • Ondersteunt zowel lokale als clouduitvoering.

Niet-interactieve modus (CLI/zonder grafische interface)

  • Opdrachtregel gebaseerd, volledig geautomatiseerd.
  • Het meest geschikt voor CI/CD-pijplijnen en automatisering.
  • Ondersteunt zowel lokale als clouduitvoering met vlag --delegate cloud .

Opmerking

U kunt elke uitvoeringsmodus combineren met elke interactiemethode. Voorbeeld:

  • modernize → upgrade selecteren (interactief, lokaal)
  • modernize → upgraden → delegeren naar cloudagents (interactief, cloud) selecteren
  • modernize upgrade "Java 21" --source ./repos.json (niet-interactief, lokaal)
  • modernize upgrade "Java 21" --source ./repos.json --delegate cloud (niet-interactief, cloud)

Hoe batch-upgrade werkt

De werkstroom voor batchupgrades:

  1. Taaldetectie: Hiermee wordt de projecttaal (Java of .NET) automatisch gedetecteerd vanuit de eerste opslagplaats.
  2. Plan maken: hiermee maakt u een upgradeplan op basis van uw prompt of gebruikt u de nieuwste LTS-versies.
  3. Uitvoering: De upgrade wordt toegepast op elke opslagplaats.
  4. Validatie: bouwt en valideert wijzigingen voor elke opslagplaats.

Een batchupgrade uitvoeren

Nadat u uw opslagplaatsen hebt geconfigureerd en een uitvoeringsmodus hebt gekozen, start u de batch-upgrade.

Interactieve modus (lokaal upgraden)

  1. Voer de moderniseringsagent uit:

    modernize
    
  2. Selecteer Upgraden in het hoofdmenu.

    Schermopname van Modernize CLI met het hoofdmenu met de optie Upgrade in de terminal.

  3. Kies hoe u de doelopslagplaatsen opgeeft. Selecteer in een configuratiebestand om een repos.json bestand te gebruiken.

    Schermopname van De CLI moderniseren waarin de selectie van het brontype in de terminal wordt weergegeven.

    Aanbeveling

    U kunt ook handmatige invoer selecteren om lokale paden of externe Git-URL's rechtstreeks in te voeren, of de huidige map om het project in uw huidige map te upgraden.

  4. Als het repos.json bestand wordt gedetecteerd op de standaardlocatie, vult de agent het automatisch in. Anders voert u het pad naar het configuratiebestand in en drukt u op Enter.

  5. Alle opslagplaatsen zijn standaard geselecteerd. Deselecteer de repositories die u wilt overslaan en druk op Enter om uw selectie te bevestigen.

    • Gebruik pijltoetsen om te navigeren en druk op Spatiebalk om afzonderlijke opslagplaatsen in te schakelen.

    Schermopname van Modernize CLI die de lijst Repositories kiezen toont in de terminal.

  6. Kies de uitvoeringsmodus. Selecteer Lokaal upgraden.

    Schermopname van Modernize CLI met de optie Lokaal upgraden in de terminal.

  7. Voer de prompt voor het upgradedoel in (bijvoorbeeld Java 21 of .NET 10) of druk op Enter om de standaardwaarde (nieuwste LTS-versie) te accepteren.

  8. De agent voert automatisch uit:

    • Hiermee maakt u een upgradeplan op basis van uw aanvraag.
    • Het plan wordt opeenvolgend toegepast op elke opslagplaats.
    • Bouwt en valideert elke opslagplaats na wijzigingen.
    • Geeft de voortgang en samenvatting weer voor elke opslagplaats.

    Schermopname van Modernize CLI met de voortgang van de upgrade voor elke opslagplaats in de terminal.

Interactieve modus (delegeren aan Cloud Coding Agents)

Vereisten: MCP-server configureren

Voordat u de upgrade uitvoert, configureert u de GitHub Copilot Modernization MCP Server in elke opslagplaats.

Voor Java toepassingen voegt u deze configuratie toe in de sectie Cloud Coding Agent van uw opslagplaatsinstellingen:

{
  "mcpServers": {
    "app-modernization": {
      "type": "local",
      "command": "npx",
      "tools": [
        "*"
      ],
      "args": [
        "-y",
        "@microsoft/github-copilot-app-modernization-mcp-server"
      ]
    }
  }
}

Schermopname van GitHub waarin het deelvenster instellingen voor de coderingsagent voor de opslagplaats wordt weergegeven, met de sectie MCP-configuratie gemarkeerd.

Steps

  1. Voer de moderniseringsagent uit:

    modernize
    
  2. Selecteer Upgraden in het hoofdmenu.

    Schermopname van Modernize CLI met het hoofdmenu met de optie Upgrade in de terminal.

  3. Kies hoe u de doelopslagplaatsen opgeeft. Selecteer een configuratiebestand.

    Schermopname van De CLI moderniseren waarin de selectie van het brontype in de terminal wordt weergegeven.

  4. Als het repos.json bestand wordt gedetecteerd op de standaardlocatie, vult de agent het automatisch in. Anders voert u het pad naar het configuratiebestand in en drukt u op Enter.

  5. Alle opslagplaatsen zijn standaard geselecteerd. Deselecteer de repositories die u wilt overslaan en druk op Enter om uw selectie te bevestigen. Gebruik pijltoetsen om te navigeren en druk op Spatiebalk om afzonderlijke opslagplaatsen in te schakelen.

    Schermopname van Modernize CLI met de lijst met opslagplaatsen in terminal.

  6. Kies de uitvoeringsmodus. Selecteer Delegeren naar cloud-agents.

    Schermopname van Modernize CLI met de menuoptie Delegate to Cloud Coding Agents in de terminal.

  7. Voer de prompt voor het upgradedoel in (bijvoorbeeld Java 21) of druk op Enter om de standaardwaarde te accepteren.

  8. De agent voert automatisch uit:

    • Hiermee maakt u upgradeplannen voor elke opslagplaats.

    • Verzendt een Cloud Coding Agent-taak voor elke opslagplaats.

    • Voert taken onafhankelijk parallel uit in de cloud.

    • Geeft taak-id's en PR-URL's voor elke opslagplaats weer.

      Schermopname van Modernize CLI waarin de voortgang van het delegeren van upgrades naar Cloud Coding Agents in de terminal wordt weergegeven.

    • Hiermee worden taken gedelegeerd aan AgentHQ voor parallelle uitvoering.

      Schermafbeelding van GitHub met het deelvenster Agents met de upgradetaken die zijn gedelegeerd aan AgentHQ.

    • Houdt de voortgang bij voor elke afzonderlijke taak in realtime.

      Scherm van GitHub met het deelvenster Agents met voortgangstracering voor afzonderlijke upgradetaken voor cloudcoderingsagent.

    • Geeft een upgradeoverzicht weer voor elke voltooide taak.

      Schermafbeelding van GitHub met het deelvenster Agents met het upgradeoverzicht voor afzonderlijke taken van de Cloud Coding Agent.

Niet-interactieve modus (CLI)

Gebruik de modernize upgrade opdracht voor automatisering en CI/CD-integratie:

Voer een upgrade lokaal uit met behulp van een configuratiebestand voor de opslagplaats:

modernize upgrade "Java 21" --source .github/modernize/repos.json

Werk meerdere opslagplaatsen bij door rechtstreeks bronnen op te geven:

modernize upgrade "Java 21" --source https://github.com/org/repo1 --source https://github.com/org/repo2

Upgraden met cloudcoderingsagents:

modernize upgrade "Java 21" --source .github/modernize/repos.json --delegate cloud

Opmerking

Zie de sectie Multi-opslagplaatsconfiguratie in de CLI-opdrachten referentie voor batch niet-interactieve uitvoering en meer CLI-opties.

Resultaten beoordelen

Wanneer de batch-upgrade is voltooid:

  1. Controleer het geaggregeerde rapport dat wordt weergegeven in de terminal.

  2. Wijzigingen in afzonderlijke opslagplaatsen bekijken:

    cd <repository-name>
    git status
    git diff
    
  3. Pull-aanvragen maken voor geslaagde upgrades:

    cd <repository-name>
    gh pr create --title "Upgrade to Java 21" --body "Automated upgrade by modernization agent"
    

Problemen met batchupgrades oplossen

Veelvoorkomende problemen

Fouten bij toegang tot opslagplaatsen:

  • Controleer GitHub verificatie met behulp van gh auth status.
  • Zorg ervoor dat u toegang hebt tot alle opslagplaatsen in repos.json.

Taalafwijkingsfouten:

  • Zorg ervoor dat alle opslagplaatsen in repos.json dezelfde taal gebruiken (Java of .NET).
  • Maak afzonderlijke batchbewerkingen voor verschillende talen.

Kloonfouten:

  • Controleer of de URL's van de opslagplaats in repos.json correct en toegankelijk zijn.
  • Zorg ervoor dat u over de juiste toegangsmachtigingen voor alle opslagplaatsen beschikt.
  • Controleer de netwerkconnectiviteit en VPN-instellingen.

Buildfouten na een upgrade:

  • Bekijk buildfoutberichten in het samengevoegde rapport.
  • Controleer of u andere afhankelijkheden moet bijwerken.
  • Controleer de compatibiliteit van bibliotheken van derden met de nieuwe versie.

Fouten in afzonderlijke opslagplaatsen:

  • Het batchproces wordt voortgezet, zelfs als afzonderlijke opslagplaatsen mislukken.
  • Bekijk het samengevoegde rapport om mislukte opslagplaatsen te identificeren.
  • Controleer de foutenlogboeken op specifieke foutberichten.
  • Mislukte opslagplaatsen afzonderlijk opnieuw proberen.

Fouten in Cloud Coding Agent:

  • Controleer GitHub Actions machtigingen en quotumlimieten.
  • Controleer voor .NET Framework of de Windows-runnerconfiguratie correct is ingesteld.

Volgende stappen 

Nadat u de batchupgrade hebt voltooid, kunt u het volgende doen:

Ga verder met verbeteren:

Meer informatie:

Feedback geven

We waarderen uw invoer! Als u feedback hebt over batchupgrade of de moderniseringsagent, maak dan een probleem op in de github-copilot-appmod-opslagplaats of gebruik de GitHub Copilot feedbackformulier voor modernisering.