Batchuppgradering med GitHub Copilot moderniseringsagent

Med batchuppgradering kan du tillämpa konsekventa moderniseringsplaner på flera lagringsplatser samtidigt. Den här artikeln visar hur du uppgraderar flera program effektivt i företagsskala.

Genom att använda batchuppgradering kan du:

  • Uppgradera flera program samtidigt med samma uppgraderingsmål.
  • Använd konsekventa mönster med hjälp av liknande uppgraderingsmönster i olika program.
  • Utnyttja parallell körning när du delegerar till molnkodningsagenter.

Batch-uppgradering ger följande fördelar:

  • Konsekvent utförande

    • Standardiserad metod: Använd samma moderniseringsmönster på alla lagringsplatser.
    • Minskad variabilitet: Säkerställ konsekventa uppgraderingsvägar för liknande program.
    • Återanvändbara strategier: Använd organisationsspecifika kunskaper i olika program.
  • Skala och effektivitet:

    • Parallell bearbetning: Använd molnkodningsagenter för att bearbeta flera lagringsplatser samtidigt.
    • Automatiserade arbetsflöden: Integrera med CI/CD-pipelines för schemalagd modernisering.
    • Tidsbesparingar: Minska den totala moderniseringstiden från veckor till timmar.

Förutsättningar

  • Modernisera CLI.
  • En slutförd batchutvärdering (rekommenderas men krävs inte).
  • Alla lagringsplatser använder samma programmeringsspråk (Java eller .NET).
  • Åtkomst till alla lagringsplatser som du vill uppgradera.
  • GitHub-autentisering konfigurerad (gh auth login).

Viktigt!

Alla lagringsplatser i en batchuppgradering måste använda samma programmeringsspråk. Om en lagringsplats använder ett annat språk markerar batchuppgradering lagringsplatsen som misslyckad och hoppar över den.

Konfigurera lagringsplatser

Moderniseringsagenten har stöd för flera sätt att ange de lagringsplatser som du vill uppgradera:

  • Aktuell mapp: Uppgradera projektet i den aktuella arbetskatalogen.
  • Manuell inmatning: Ange lokala katalogsökvägar eller git-fjärr-URL:er direkt.
  • Databaskonfigurationsfil: Använd en JSON-konfigurationsfil som visar alla lagringsplatser.

Databaskonfigurationsfil

För batchåtgärder över många lagringsplatser skapar du en JSON-konfigurationsfil för att visa en lista över alla lagringsplatser. Du kan till exempel skapa det .github/modernize/repos.json i din arbetskatalog eller ange en anpassad sökväg.

Tips/Råd

För exempellagringsplatser förgrenar du dem först och kontrollerar att du har administratörsbehörighet för att delegera jobbet till Molnkodningsagenter.

Enkelt format (matris med lagringsplatser):

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

Fullständigt format (med gren- och lokala sökvägar):

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

Varje lagringsplatspost stöder följande fält:

Fält Beskrivning Obligatoriskt
name Ett eget namn för lagringsplatsen (används i rapporter och instrumentpaneler). Ja
url Git-klon-URL i HTTPS- eller SSH-format. En av url eller path
path Absolut lokal katalogsökväg. En av url eller path
branch Förgrena för att checka ut efter kloning. No
description Beskrivning som kan läsas av människor. No

Tips/Råd

Du kan inkludera lagringsplatser från olika organisationer och använda olika autentiseringsmetoder så länge du har åtkomst.

Moderniseringsagenten identifierar automatiskt repos.json-filen vid .github/modernize/repos.json när du väljer Från en konfigfil i interaktivt läge. Du kan också ange en anpassad sökväg.

Välj körningsläge

Batch-uppgradering stöder två körningslägen och två interaktionsmetoder:

Körningslägen

Lokal körning

  • Bäst för: Testning, mindre uppsättningar lagringsplatser (1–5 lagringsplatser) eller när du föredrar lokal kontroll.
  • Så här fungerar det: Bearbetar lagringsplatser sekventiellt på din lokala dator.
  • Konfigurering krävs: Ingen utöver de grundläggande förutsättningarna.
  • Stöder: Både Git-URL och lokala sökvägslagringsplatser.

Delegering av molnkodningsagent

  • Bäst för: Åtgärder i företagsskala, stora portföljer (5+ lagringsplatser) eller parallell bearbetning.
  • Hur det fungerar: Skickar uppgifter till GitHub Molnkodningsagenter för parallell körning i molnet.
  • Installation krävs: MCP-serverkonfiguration på varje lagringsplats (konfigurerad under installationen).
  • Supports: Endast lagringsplatser med url:er för GitHub (github.com). Lokala sökvägar och icke-GitHub leverantörer stöds inte.

Viktigt!

Cloud Coding Agent-delegering kräver att lagringsplatser har url:er för GitHub (github.com) lagringsplats. Databaser som anges med lokala sökvägar eller som finns på icke-GitHub leverantörer (GitLab, Azure DevOps) utelämnas vid molndelegering. Använd lokal exekvering för dessa lagringsplatser.

Tips/Råd

Genom att bearbeta lagringsplatser parallellt kan Cloud Coding Agent-delegering minska den totala moderniseringstiden från timmar till minuter.

Interaktionsmetoder

Interaktivt läge (TUI)

  • Guidad upplevelse med menyer och uppmaningar.
  • Bäst för förstagångsanvändare eller när du vill granska alternativ.
  • Stöder både lokal körning och molnkörning.

Icke-interaktivt läge (CLI/huvudlöst)

  • Kommandoradsbaserad, helt automatiserad.
  • Bäst för CI/CD-leveranskedjor och automatisering.
  • Stöder både lokal körning och molnkörning med --delegate cloud flagga.

Anmärkning

Du kan kombinera valfritt körningsläge med valfri interaktionsmetod. Som exempel:

  • modernize → välja Uppgradera (interaktiv, lokal)
  • modernize → välja Uppgradera → Delegera till molnagenter (interaktivt, moln)
  • modernize upgrade "Java 21" --source ./repos.json (icke-interaktiv, lokal)
  • modernize upgrade "Java 21" --source ./repos.json --delegate cloud (icke-interaktivt, moln)

Så här fungerar batchuppgradering

Arbetsflödet för batchuppgradering:

  1. Language detection: Identifierar automatiskt projektspråket (Java eller .NET) från den första lagringsplatsen.
  2. Skapa plan: Skapar en uppgraderingsplan baserat på din fråga eller använder de senaste LTS-versionerna.
  3. Körning: Tillämpar uppgraderingen på varje lagringsplats.
  4. Validering: Skapar och validerar ändringar för varje lagringsplats.

Kör batchuppgradering

När du har konfigurerat dina lagringsplatser och valt ett körningsläge startar du batchuppgradering.

Interaktivt läge (uppgradera lokalt)

  1. Kör moderniseringsagenten:

    modernize
    
  2. Välj Uppgradera på huvudmenyn.

    Skärmbild av Modernisera CLI som visar huvudmenyn med alternativet Uppgradera i terminalen.

  3. Välj hur du vill ange dina mållagringsplatser. Välj Från en konfigurationsfil för att använda en repos.json fil.

    Skärmbild av Modernisera CLI som visar val av källtyp i terminalen.

    Tips/Råd

    Du kan också välja Manuella indata för att ange lokala sökvägar eller fjärranslutna Git-URL:er direkt, eller aktuell mapp för att uppgradera projektet i den aktuella katalogen.

  4. repos.json Om filen identifieras på standardplatsen fyller agenten automatiskt i den. Annars anger du sökvägen till konfigurationsfilen och trycker på Retur.

  5. Alla lagringsplatser är markerade som standard. Avmarkera alla lagringsplatser som du vill hoppa över och tryck sedan på Retur för att bekräfta ditt val.

    • Använd piltangenterna för att navigera och tryck på Blanksteg för att växla enskilda lagringsutrymmen.

    Skärmbild av Modernisera CLI som visar listan Välj lagringsplatser i terminalen.

  6. Välj körningsläge. Välj Uppgradera lokalt.

    Skärmbild av Modernisera CLI som visar alternativet Uppgradera lokalt i terminalen.

  7. Ange kommandotolken för uppgraderingsmål (till exempel Java 21 eller .NET 10) eller tryck på Enter för att acceptera standardvärdet (den senaste LTS-versionen).

  8. Agenten utför automatiskt följande:

    • Skapar en uppgraderingsplan baserat på din begäran.
    • Tillämpar planen på varje lagringsplats sekventiellt.
    • Skapar och validerar varje lagringsplats efter ändringar.
    • Visar förlopp och sammanfattning för varje lagringsplats.

    Skärmbild av Modernisera CLI som visar uppgraderingsförloppet för varje lagringsplats i terminalen.

Interaktivt läge (delegera till molnkodningsagenter)

Förutsättningar: Konfigurera MCP-server

Innan du kör uppgraderingen konfigurerar du GitHub Copilot Modernization MCP Server i varje arkiv.

För Java program lägger du till den här konfigurationen i avsnittet Molnkodningsagent i lagringsplatsens inställningar:

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

Skärmbild av GitHub som visar inställningsfönstret kodningsagent för lagringsplats med avsnittet MCP-konfiguration markerat.

Instruktioner

  1. Kör moderniseringsagenten:

    modernize
    
  2. Välj Uppgradera på huvudmenyn.

    Skärmbild av Modernisera CLI som visar huvudmenyn med alternativet Uppgradera i terminalen.

  3. Välj hur du vill ange dina mållagringsplatser. Välj Från en konfigurationsfil.

    Skärmbild av Modernisera CLI som visar val av källtyp i terminalen.

  4. repos.json Om filen identifieras på standardplatsen fyller agenten automatiskt i den. Annars anger du sökvägen till konfigurationsfilen och trycker på Retur.

  5. Alla lagringsplatser är markerade som standard. Avmarkera alla lagringsplatser som du vill hoppa över och tryck sedan på Retur för att bekräfta ditt val. Använd piltangenterna för att navigera och trycka på Blanksteg för att växla mellan enskilda lagringsplatser.

    Skärmbild av Modernisera CLI som visar lagringsplatsens lista i terminalen.

  6. Välj körningsläge. Välj Delegera till molnagenter.

    Skärmbild av Modernisera CLI som visar menyalternativet Delegera till molnkodningsagenter i terminalen.

  7. Ange uppgraderingsmålprompten (till exempel Java 21) eller tryck på Enter för att acceptera standardvärdet.

  8. Agenten utför automatiskt följande:

    • Skapar uppgraderingsplaner för varje lagringsplats.

    • Skickar ett Cloud Coding Agent-jobb för varje lagringsplats.

    • Kör jobb separat parallellt i molnet.

    • Visar jobb-ID:er och PR-URL:er för varje lagringsplats.

      Skärmbild av Modernisera CLI som visar förloppet för delegering av uppgraderingar till molnkodningsagenter i terminalen.

    • Delegerar uppgifter till AgentHQ för att köra parallellt.

      Skärmbild av GitHub som visar fönstret Agenter med uppgraderingsuppgifterna delegerade till AgentHQ.

    • Spårar förloppet för varje enskild aktivitet i realtid.

      Skärmbild av GitHub som visar fönstret Agenter med förloppsspårning för enskilda uppgraderingsuppgifter för Molnkodningsagent.

    • Visar uppgraderingssammanfattning för varje slutförd uppgift.

      Skärmbild av GitHub som visar fönstret Agenter med uppgraderingssammanfattningen för enskilda Cloud Coding Agent-uppgifter.

Icke-interaktivt läge (CLI)

Använd kommandot för automatisering och CI/CD-integrering modernize upgrade :

Uppgradera lokalt med hjälp av en databaskonfigurationsfil:

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

Uppgradera flera lagringsplatser genom att ange källor direkt:

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

Uppgradera med hjälp av molnkodningsagenter:

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

Anmärkning

För körning i batchläge utan användargränssnitt och fler CLI-alternativ, se avsnittet Konfiguration för flera arkiv i CLI-kommandoreferensen.

Granska resultat

När batchuppgradningen är klar:

  1. Kontrollera den aggregerade rapporten som visas i terminalen.

  2. Granska ändringar i enskilda kodförråd:

    cd <repository-name>
    git status
    git diff
    
  3. Skapa pull-begäranden för lyckade uppgraderingar:

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

Felsökning för batchuppgraderingar

Vanliga problem

Fel vid åtkomst till lagringsplats:

  • Verifiera GitHub autentisering med hjälp av gh auth status.
  • Kontrollera att du har åtkomst till alla lagringsplatser i repos.json.

Språkmatchningsfel:

  • Kontrollera att alla lagringsplatser i repos.json använder samma språk (Java eller .NET).
  • Skapa separata batchåtgärder för olika språk.

Klonfel:

  • Kontrollera att url:erna för lagringsplatsen är repos.json korrekta och tillgängliga.
  • Kontrollera att du har rätt åtkomstbehörigheter till alla lagringsplatser.
  • Kontrollera nätverksanslutningen och VPN-inställningarna.

Byggfel efter uppgradering:

  • Granska byggfelmeddelanden i den aggregerade rapporten.
  • Kontrollera om du behöver uppdatera andra beroenden.
  • Kontrollera kompatibiliteten för bibliotek från tredje part med den nya versionen.

Fel på enskilda lagringsplatser:

  • Batchprocessen fortsätter även om enskilda lagringsplatser misslyckas.
  • Granska den aggregerade rapporten för att identifiera misslyckade lagringsplatser.
  • Kontrollera om det finns specifika felmeddelanden i felloggarna.
  • Försök igen med att återställa misslyckade repositories individuellt.

Fel i Cloud Coding Agent:

  • Kontrollera GitHub Actions behörigheter och kvotgränser.
  • För .NET Framework kontrollerar du att Windows runner-konfigurationen är korrekt inställd.

Nästa steg

När du har slutfört batchuppgraderingen kan du:

Fortsätt att förbättra:

Läs mer:

Lämna feedback

Vi värdesätter dina indata! Om du har feedback om batchuppgradering eller moderniseringsagenten skapa ett problem på github-copilot-appmod-lagringsplatsen eller använd GitHub Copilot formuläret för moderniseringsfeedback.