Hromadná aktualizace pomocí modernizačního agenta GitHub Copilot

Batch upgrade umožňuje aplikovat konzistentní plány modernizace současně napříč několika úložišti. V tomto článku se dozvíte, jak efektivně upgradovat více aplikací v podnikovém měřítku.

Pomocí dávkového upgradu můžete:

  • Současně upgradujte více aplikací pomocí stejného cíle upgradu.
  • Použití konzistentních vzorů pomocí podobných vzorů upgradu napříč aplikacemi
  • Při delegování na cloudové agenty využijte paralelní spouštění.

Upgrade služby Batch poskytuje následující výhody:

  • Konzistentní provádění:

    • Standardizovaný přístup: Použijte stejné vzory modernizace ve všech úložištích.
    • Omezená variabilita: Zajistěte konzistentní cesty upgradu pro podobné aplikace.
    • Opakovaně použitelné strategie: Používejte dovednosti specifické pro organizaci napříč aplikacemi.
  • Efektivita a škálování:

    • Paralelní zpracování: Použití cloudových agentů ke zpracování více úložišť současně.
    • Automatizované pracovní postupy: Integrace s kanály CI/CD pro plánovanou modernizaci
    • Úspora času: Zkracujte celkovou dobu modernizace z týdnů na hodiny.

Předpoklady

Důležité

Všechna úložiště v dávkovém upgradu musí používat stejný programovací jazyk. Pokud úložiště používá jiný jazyk, upgrade dávky označí úložiště jako neúspěšné a přeskočí ho.

Konfigurace úložišť

Agent modernizace podporuje několik způsobů, jak určit úložiště, která chcete upgradovat:

  • Aktuální složka: Upgradujte projekt v aktuálním pracovním adresáři.
  • Ruční vstup: Zadejte cesty k místnímu adresáři nebo vzdálené adresy URL Gitu přímo.
  • Konfigurační soubor úložiště: Použijte konfigurační soubor JSON, který obsahuje seznam všech úložišť.

Konfigurační soubor úložiště

Pro dávkové operace v mnoha úložištích vytvořte konfigurační soubor JSON pro výpis všech úložišť. Můžete ho například vytvořit v .github/modernize/repos.json pracovním adresáři nebo zadat vlastní cestu.

Návod

V případě ukázkových úložišť je nejprve vytvořte forkem a ujistěte se, že máte oprávnění správce delegovat úlohu na cloudové agenty.

Jednoduchý formát (pole úložišť):

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

Úplný formát (s větvemi a místními cestami):

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

Každá položka úložiště podporuje následující pole:

Pole Description Povinné
name Přátelský název úložiště (používaný v sestavách a řídicích panelech) Ano
url Adresa URL pro klonování v Gitu ve formátu HTTPS nebo SSH Jedna z url nebo path
path Absolutní cesta k místnímu adresáři Jedna z url nebo path
branch Větev, na kterou se přepnout po klonování. Ne
description Popis čitelný pro člověka. Ne

Návod

Můžete zahrnout úložiště z různých organizací a používat různé metody ověřování, pokud máte přístup.

Agent modernizace automaticky rozpozná soubor repos.json na .github/modernize/repos.json, když vyberete možnost Z konfiguračního souboru v interaktivním režimu. Můžete také zadat vlastní cestu.

Volba režimu provádění

Upgrade služby Batch podporuje dva režimy spuštění a dvě metody interakce:

Režimy provádění

Místní spuštění

  • Nejvhodnější pro: Testování, menší sady úložišť (1–5 úložišť) nebo pokud dáváte přednost místnímu řízení.
  • Jak to funguje: Zpracovává úložiště postupně na místním počítači.
  • Vyžaduje se nastavení: Žádné nad rámec základních požadavků.
  • Podporuje: Jak Git URL, tak lokální cesta úložiště.

Delegování cloudového agenta

  • Nejvhodnější pro: operace na podnikové úrovni, velké portfolia (5 a více úložišť) nebo paralelní zpracování.
  • Pokud to funguje: Odesílá úlohy do GitHub cloudových agentů pro paralelní spouštění v cloudu.
  • Vyžaduje se nastavení: Konfigurace serveru MCP v každém úložišti (nakonfigurovaná během instalace).
  • Supports: Pouze úložiště s adresami URL GitHub (github.com). Místní cesty a poskytovatelé jiní než GitHub nejsou podporováni.

Důležité

Delegování cloudového agenta vyžaduje, aby repozitáře měly adresy URL repozitářů GitHub (github.com). Během převodu do cloudu se přeskočí úložiště, která jsou zadána s místními cestami nebo hostovaná u poskytovatelů jiných než GitHub (například GitLab, Azure DevOps). Pro tato úložiště použijte lokální spuštění.

Návod

Paralelním zpracováním úložišť může delegování cloudového agenta zkrátit celkovou dobu modernizace z hodin na minuty.

Metody interakce

Interaktivní režim (TUI)

  • Řízená zkušenost s nabídkami a výzvami
  • Nejvhodnější pro první uživatele nebo pro kontrolu možností.
  • Podporuje místní i cloudové spouštění.

Neinteraktivní režim (rozhraní příkazového řádku nebo bezobsadové)

  • Plně automatizované založené na příkazovém řádku.
  • Nejvhodnější pro kanály CI/CD a automatizaci.
  • Podporuje místní i cloudové spouštění s příznakem --delegate cloud .

Poznámka:

Můžete kombinovat jakýkoli režim provádění s libovolnou metodou interakce. Například:

  • modernize → vyberte Upgradovat (interaktivní, místní)
  • modernize → vyberte Upgrade>Delegovat na cloudové agenty (interaktivní, cloud)
  • modernize upgrade "Java 21" --source ./repos.json (neinteraktivní, místní)
  • modernize upgrade "Java 21" --source ./repos.json --delegate cloud (neinteraktivní, cloud)

Jak funguje hromadná aktualizace

Pracovní postup dávkového upgradu:

  1. detekce Language: Automaticky rozpozná jazyk projektu (Java nebo .NET) z prvního úložiště.
  2. Vytvoření plánu: Vytvoří plán upgradu na základě výzvy nebo používá nejnovější verze LTS.
  3. Provedení: Použije upgrade na každé úložiště.
  4. Ověření: Sestaví a ověří změny pro každé úložiště.

Spuštění dávkového upgradu

Jakmile nakonfigurujete úložiště a zvolíte režim spuštění, spusťte dávkový upgrade.

Interaktivní režim (lokální upgrade)

  1. Spusťte agenta modernizace:

    modernize
    
  2. V hlavní nabídce vyberte Upgradovat .

    ○ 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. Zvolte, jak zadat cílová úložiště. Vyberte Z konfiguračního souboru pro použití souboru repos.json.

    ○ 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
    

    Návod

    Můžete také vybrat ruční vstup a zadat místní cesty nebo vzdálené adresy URL Gitu přímo nebo aktuální složku a upgradovat projekt v aktuálním adresáři.

  4. repos.json Pokud je soubor zjištěn ve výchozím umístění, agent ho automaticky vyplní. V opačném případě zadejte cestu ke konfiguračnímu souboru a stiskněte Enter.

  5. Ve výchozím nastavení jsou vybraná všechna úložiště. Zrušte výběr všech úložišť, která chcete přeskočit, a stisknutím klávesy Enter potvrďte výběr.

    • Pomocí kláves se šipkami můžete procházet a stisknutím mezerník přepínat jednotlivá úložiště.

    Snímek obrazovky Modernize CLI, který zobrazuje seznam úložišť k výběru v terminálu.

  6. Zvolte režim provádění. Vyberte Upgradovat místně.

    Snímek obrazovky Modernize CLI, která zobrazuje možnost „Lokální upgrade“ v terminálu.

  7. Zadejte výzvu k cíli upgradu (například Java 21 nebo .NET 10) nebo stiskněte Enter a přijměte výchozí (nejnovější verzi LTS).

  8. Agent automaticky:

    • Vytvoří plán upgradu na základě vaší žádosti.
    • Plán se použije pro každé úložiště postupně.
    • Sestaví a ověří každé úložiště po změnách.
    • Zobrazí průběh a souhrn jednotlivých úložišť.

    Snímek obrazovky s modernizací rozhraní příkazového řádku, který ukazuje průběh upgradu pro každé úložiště v terminálu

Interaktivní režim (delegování na cloudové agenty)

Požadavky: Konfigurace serveru MCP

Před spuštěním upgradu nakonfigurujte GitHub Copilot Modernization MCP server v každém úložišti.

Pro aplikace Java přidejte tuto konfiguraci do části Cloud agent nastavení úložiště:

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

Snímek obrazovky z GitHubu, který zobrazuje panel nastavení cloudového agenta úložiště se zvýrazněným oddílem konfigurace MCP.

Kroky

  1. Spusťte agenta modernizace:

    modernize
    
  2. V hlavní nabídce vyberte Upgradovat .

    ○ 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. Zvolte, jak zadat cílová úložiště. Vyberte z konfiguračního souboru.

    ○ 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
    
  4. repos.json Pokud je soubor zjištěn ve výchozím umístění, agent ho automaticky vyplní. V opačném případě zadejte cestu ke konfiguračnímu souboru a stiskněte Enter.

  5. Ve výchozím nastavení jsou vybraná všechna úložiště. Zrušte výběr všech úložišť, která chcete přeskočit, a stisknutím klávesy Enter potvrďte výběr. Pomocí kláves se šipkami můžete procházet a stisknutím mezerník přepínat jednotlivá úložiště.

    Snímek obrazovky nástroje Modernize CLI, který zobrazuje seznam úložišť v terminálu.

  6. Zvolte režim provádění. Vyberte Delegovat na cloudové agenty.

    Snímek obrazovky nástroje Modernize CLI, na kterém je v terminálu zobrazena položka nabídky „Předat cloudovým agentům“.

  7. Zadejte výzvu k cíli upgradu (například Java 21) nebo stisknutím klávesy Enter přijměte výchozí hodnotu.

  8. Agent automaticky:

    • Vytvoří plány upgradu pro každé úložiště.

    • Odešle úlohu cloudového agenta pro každé úložiště.

    • Spouští úlohy nezávisle na sobě paralelně v cloudu.

    • Zobrazí ID úloh a adresy URL žádostí o přijetí změn pro každé úložiště.

      Snímek obrazovky s modernizací rozhraní příkazového řádku, který ukazuje průběh delegování upgradů na cloudové agenty v terminálu

    • Deleguje úlohy do AgentHQ k paralelnímu spuštění.

      Screenshot GitHub, které zobrazuje podokno Agenti s úlohami upgradu delegovanými na AgentHQ.

    • Sleduje průběh jednotlivých úkolů v reálném čase.

      Screenshot GitHub, které zobrazuje podokno Agenti se sledováním průběhu pro jednotlivé úlohy upgradu cloudového agenta.

    • Zobrazí souhrn upgradu pro každý dokončený úkol.

      Screenshot GitHub, které zobrazuje podokno Agenti se souhrnem upgradu pro jednotlivé úlohy cloudového agenta.

Neinteraktivní režim (CLI)

Pro automatizaci a integraci CI/CD použijte modernize upgrade příkaz:

Místní upgrade pomocí konfiguračního souboru úložiště:

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

Upgradujte více úložišť tak, že přímo zadáte zdroje:

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

Upgrade pomocí cloudových agentů:

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

Poznámka:

Informace o dávkovém bezhlavém spuštění a dalších možnostech rozhraní příkazového řádku najdete v části Konfigurace více úložišť v referenční příručce příkazů CLI.

Kontrola výsledků

Po dokončení hromadné aktualizace:

  1. Zkontrolujte souhrnnou zprávu zobrazenou v terminálu.

  2. Kontrola změn jednotlivých úložišť:

    cd <repository-name>
    git status
    git diff
    
  3. Vytvořte pull requesty pro úspěšné upgrady:

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

Řešení potíží s dávkovými upgrady

Běžné problémy

Chyby přístupu k úložišti:

  • Pomocí příkazu gh auth status ověřte ověřování GitHub.
  • Ujistěte se, že máte přístup ke všem úložištím v adresáři repos.json.

Chyby neshod jazyka:

  • Ujistěte se, že všechna úložiště v repos.json používají stejný jazyk (Java nebo .NET).
  • Vytvořte samostatné dávkové operace pro různé jazyky.

Selhání klonování:

  • Ověřte, že adresy URL úložiště v repos.json jsou správné a přístupné.
  • Ujistěte se, že máte správná přístupová oprávnění ke všem úložištím.
  • Zkontrolujte připojení k síti a nastavení sítě VPN.

Selhání sestavení po upgradu:

  • Zkontrolujte chybové zprávy sestavení v agregovaném reportu.
  • Zkontrolujte, jestli potřebujete aktualizovat další závislosti.
  • Ověřte kompatibilitu knihoven třetích stran s novou verzí.

Selhání jednotlivých úložišť:

  • Dávkový proces pokračuje i v případě selhání jednotlivých úložišť.
  • Zkontrolujte agregovanou sestavu a identifikujte neúspěšná úložiště.
  • Zkontrolujte v protokolech chyb konkrétní chybové zprávy.
  • Opakujte neúspěšná úložiště jednotlivě.

Selhání cloudového agenta:

  • Zkontrolujte GitHub Actions oprávnění a omezení kvót.
  • Pro .NET Framework se ujistěte, že je správně nastavená konfigurace spouštěče Windows.

Další kroky

Po dokončení dávkového upgradu můžete:

Pokračovat v vylepšování:

Další informace:

Poskytnout zpětnou vazbu

Vážíme si vašeho vstupu! Pokud máte zpětnou vazbu k dávkovému upgradu nebo agentovi modernizace, vytvořte issue v úložišti github-copilot-appmod nebo použijte formulář zpětné vazby na modernizaci GitHub Copilot.