GitHub Copilot příkazy rozhraní příkazového řádku agenta modernizace

Agent modernizace GitHub Copilot poskytuje interaktivní i neinteraktivní režimy pro modernizaci aplikací.

Režimy příkazů

Interaktivní režim

Spuštění interaktivního textového uživatelského rozhraní (TUI) pro modernizaci s asistencí:

modernize

Interaktivní režim poskytuje:

  • Navigace řízená nabídkou prostřednictvím pracovního postupu modernizace
  • Flexibilní výběr zdroje: aktuální složka, ruční vstup (místní cesty nebo adresy URL Gitu) nebo konfigurační soubory úložiště.
  • Vizuální indikátory plánu a průběhu
  • Výzvy s asistencí pro možnosti konfigurace, včetně domén posouzení a parametrů
  • Rozhraní pro výběr více úložišť

Neinteraktivní režim

Spouštění konkrétních příkazů přímo pro automatizaci a skriptování:

modernize <command> [options]

Použít neinteraktivní režim, pokud:

  • Integrace s kanály CI/CD
  • Automatizace dávkových operací
  • Skriptování pracovních postupů modernizace
  • Provoz v bezobsadových prostředích.

Globální možnosti

Všechny příkazy podporují tyto globální možnosti:

Možnost Description
--help, -h Zobrazí informace nápovědy.
--no-tty Zakáže interaktivní výzvy (bezobsadový režim).

Příkazy

Posoudit

Spustí posouzení a vygeneruje komplexní sestavu analýzy.

Syntaxe

modernize assess [options]

Možnosti

Možnost Description Výchozí
--source <source> Zdroj k vyhodnocení (opakovatelný). Přijímá místní cesty, adresy URL Gitu nebo cestu ke konfiguračnímu souboru JSON. K určení několika úložišť použijte více --source příznaků. . (aktuální adresář)
--output-path <path> Vlastní výstupní cesta pro výsledky posouzení. .github/modernize/assessment/
--issue-url <url> Adresa URL problému GitHub, která se má aktualizovat souhrnem posouzení. None
--format <format> Výstupní formát pro sestavy posouzení: html nebo markdown. html
--assess-config <path> Cesta k souboru YAML konfigurace posouzení, který přepíše výchozí parametry posouzení, jako je cílový modul runtime, výpočetní služby a pokrytí analýzy. Automaticky zjištěné nebo výchozí hodnoty
--model <model> Model LLM, který se má použít. claude-sonnet-4.6
--delegate <delegate> Režim spuštění: local (tento počítač) nebo cloud (agent cloud coding). local
--wait Čeká, až se delegované úkoly dokončí a vygenerují výsledky (platné pouze s --delegate cloud). Disabled
--force Vynutí restartování delegování, ignorování probíhajících úkolů (platné pouze s --delegate cloud). Disabled

Příklady

Základní posouzení aktuálního adresáře:

modernize assess

Posouzení s využitím vlastního umístění výstupu:

modernize assess --output-path ./reports/assessment

Posouzení a aktualizace GitHub problému s výsledky:

modernize assess --issue-url https://github.com/org/repo/issues/123

Posouzení konkrétního adresáře projektu:

modernize assess --source /path/to/project

Posouzení více úložišť pomocí konfiguračního souboru:

modernize assess --source .github/modernize/repos.json

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

modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2

Vyhodnocení a výstup sestav ve formátu Markdownu:

modernize assess --format markdown

Výstup

Posouzení vygeneruje:

  • Soubory sestav: Podrobná analýza ve formátech JSON, MD a HTML.
  • Shrnutí: Klíčová zjištění a doporučení.
  • aktualizace Issue (pokud zadáte --issue-url): GitHub komentář k problému se souhrnem.

vytvoření plánu

Vytvoří plán modernizace na základě výzvy přirozeného jazyka popisující vaše cíle modernizace.

Syntaxe

modernize plan create <prompt> [options]

Argumenty

Argument Description
<prompt> Popis cílů modernizace v přirozeném jazyce (povinné).

Možnosti

Možnost Description Výchozí
--source <path> Cesta ke zdrojovému kódu aplikace. Aktuální adresář
--plan-name <name> Název plánu modernizace. modernization-plan
--language <lang> Programovací jazyk (java, dotnetnebo python). Automaticky zjištěno
--overwrite Přepíše existující plán se stejným názvem. Disabled
--model <model> Model LLM, který se má použít. claude-sonnet-4.6

Příklady

Vygenerujte plán migrace:

modernize plan create "migrate from oracle to azure postgresql"

Vygenerujte plán upgradu s vlastním názvem:

modernize plan create "upgrade to spring boot 3" --plan-name spring-boot-upgrade

Vygenerování plánu nasazení:

modernize plan create "deploy the app to azure container apps" --plan-name deploy-to-aca

Příklad úplných možností:

modernize plan create "upgrade to .NET 8" \
    --source /path/to/project \
    --plan-name dotnet8-upgrade \
    --language dotnet \
    --issue-url https://github.com/org/repo/issues/456

Příklady výzvy

Upgrady architektury:

  • upgrade to spring boot 3
  • upgrade to .NET 10
  • upgrade to JDK 21
  • migrate from spring boot 2 to spring boot 3

Migrace databází:

  • migrate from oracle to azure postgresql
  • migrate from SQL Server to azure cosmos db
  • switch from MySQL to azure database for mysql

Migrace do cloudu:

  • migrate from on-premises to azure
  • containerize and deploy to azure container apps
  • migrate from rabbitmq to azure service bus

Nasazení:

  • deploy to azure app service
  • deploy to azure kubernetes service
  • set up CI/CD pipeline for azure

Výstup

Příkaz vygeneruje:

  • Plán souboru (.github/modernize/{plan-name}/plan.md): Podrobná strategie modernizace, včetně:

    • Kontext a cíle
    • Přístup a metodologie
    • Objasnění
  • Seznam úkolů (.github/modernize/{plan-name}/tasks.json): Strukturovaný rozpis spustitelných úloh s:

    • Popisy úkolů
    • Dovednosti k používání
    • Kritéria úspěchu

Návod

Přístup před provedením můžete před provedením upravit ručně plan.md a tasks.json po jejich generování.

provedení plánu

Spustí plán modernizace vytvořený nástrojem modernize plan create.

Syntaxe

modernize plan execute [prompt] [options]

Argumenty

Argument Description
[prompt] Volitelné pokyny pro provádění v přirozeném jazyce (například "přeskočit testy").

Možnosti

Možnost Description Výchozí
--source <path> Cesta ke zdrojovému kódu aplikace. Aktuální adresář
--plan-name <name> Název plánu, který se má provést. modernization-plan
--language <lang> Programovací jazyk (java nebo dotnet). Automaticky zjištěno
--model <model> Model LLM, který se má použít. claude-sonnet-4.6
--delegate <delegate> Režim spuštění: local (tento počítač) nebo cloud (agent cloud coding). local
--force Vynutí provádění i v případě, že probíhá úloha CCA. Disabled

Příklady

Spusťte nejnovější plán interaktivně:

modernize plan execute

Provedení konkrétního plánu:

modernize plan execute --plan-name spring-boot-upgrade

Proveďte s dalšími pokyny:

modernize plan execute "skip the test" --plan-name spring-boot-upgrade

Spuštění v bezobsadovém režimu pro CI/CD:

modernize plan execute --plan-name spring-boot-upgrade --no-tty

Chování při spuštění

Během provádění agent:

  1. Načte plán: Přečte plán a seznam úkolů z .github/modernization/{plan-name}/

  2. Provádí úlohy: Zpracovává jednotlivé úkoly v seznamu úkolů postupně:

    • Použije transformace kódu.
    • Ověří sestavení po změnách.
    • Vyhledá cves.
    • Potvrdí změny s popisnými zprávami.
  3. Generuje souhrn: Poskytuje sestavu všech změn a výsledků.

Výstup

  • Historie potvrzení: Podrobná potvrzení pro každou spuštěnou úlohu.
  • Souhrnná sestava: Přehled změn, úspěchů a problémů, ke kterým došlo.
  • Ověření sestavení: Potvrzení úspěšného sestavení aplikace
  • ZPRÁVA CVE: Zjištěná a vyřešená ohrožení zabezpečení

inovace

Spustí kompletní pracovní postup upgradu – plán a spuštění – v jednom příkazu.

Syntaxe

modernize upgrade [prompt] [options]

Argumenty

Argument Description
[prompt] Cílová verze, například Java 17, Spring Boot 3.2, .NET 10. Výchozí hodnota je nejnovější verze LTS.

Možnosti

Možnost Description Výchozí
--source <source> Zdroj k upgradu (opakovatelný). Přijímá místní cesty, adresy URL Gitu nebo cestu ke konfiguračnímu souboru JSON. K určení několika úložišť použijte více --source příznaků. . (aktuální adresář)
--delegate <delegate> Režim spuštění: local (tento počítač) nebo cloud (agent cloud coding). local
--model <model> Model LLM, který se má použít. claude-sonnet-4.6

Příklady

Spusťte upgrade v aktuálním adresáři:

modernize upgrade "Java 17"
modernize upgrade ".NET 10"

Spusťte upgrade konkrétní projekt:

modernize upgrade "Java 17" --source /path/to/project

Spusťte upgrade pomocí agenta cloudového kódování:

modernize upgrade "Java 17" --delegate cloud

Upgradujte více úložišť pomocí konfiguračního souboru:

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

help

Poskytuje příkazy nápovědy a informací.

Syntaxe

modernize help [command]

Příkazy

Command Description
models Uvádí dostupné modely LLM a jejich násobitele.

Příklady

Seznam dostupných modelů:

modernize help models

Konfigurace rozhraní příkazového řádku

Pomocí agenta modernizace můžete přizpůsobit chování aplikace prostřednictvím souborů JSON a proměnných prostředí.

Proměnné prostředí

Nastavte proměnné prostředí tak, aby přepsaly všechny ostatní obory konfigurace:

Proměnná Description Výchozí
MODERNIZE_LOG_LEVEL Úroveň protokolování (none, error, warninginfo, debug) all info
MODERNIZE_MODEL Model LLM, který se má použít. claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY Povolte nebo zakažte shromažďování telemetrie. true

Příklad:

export MODERNIZE_LOG_LEVEL=debug
export MODERNIZE_MODEL=claude-sonnet-4.6
modernize assess

Konfigurace uživatele

Uložte předvolby specifické pro uživatele v ~/.modernize/config.json nastaveních nebo v nastaveních .github/modernize/config.jsonpro celé úložiště .

{
  "model": "claude-sonnet-4.6",
  "log_level": "info",
  "trusted_folders": [
    "/path/to/trusted/project",
  ]
}

Vlastnost trusted_folders určuje složky, které jsou důvěryhodné pro použití LLM v interaktivním režimu.

Poznámka:

Proměnné prostředí mají nejvyšší prioritu, po které následuje konfigurace uživatele, a pak konfigurace úložiště. Použijte proměnné prostředí pro přepsání CI/CD a konfiguraci uživatele pro osobní předvolby.

Konfigurace s více úložišti

Rozhraní příkazového řádku můžete poskytnout více zdrojů několika způsoby:

  • Konfigurační soubor úložiště: Vytvořte soubor se seznamem .github/modernize/repos.json všech úložišť a pak ho --sourcepředejte .
  • Více --source příznaků: Zadejte místní cesty nebo adresy URL Gitu přímo na příkazovém řádku.
  • Interaktivní režim: Výběr zdrojů prostřednictvím TUI (aktuální složka, ruční vstup nebo konfigurace úložiště)

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

Vytvořte .github/modernize/repos.json soubor pro definování seznamu úložišť. Konfigurace podporuje dva formáty:

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

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

Ú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 Popisný název úložiště Ano
url Adresa URL klonu Gitu (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, která se má po klonování rezervovat. Ne
description Popis čitelný pro člověka. Ne

Úplný formát seskupováním aplikací (volitelné, pro uspořádané vytváření sestav):

Do logických aplikací můžete přidat apps[] oddíl pro seskupení úložišť. Když jsou definované aplikace, agregovaná sestava uspořádá výsledky podle aplikace a podporuje distribuci sestav.

{
  "repos": [
    {
      "name": "PhotoAlbum-Java",
      "url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
      "branch": "main"
    },
    {
      "name": "PhotoAlbum",
      "url": "https://github.com/Azure-Samples/PhotoAlbum.git"
    }
  ],
  "apps": [
    {
      "identifier": "photo-app",
      "description": "Photo management application",
      "repos": ["PhotoAlbum-Java"],
      "output": {
        "type": "local",
        "path": "/path/to/reports/photo-app"
      }
    }
  ]
}

Každá položka aplikace podporuje:

Pole Description Povinné
identifier Jedinečný zobrazovaný název aplikace Ano
description Popis čitelný pro člověka. Ne
repos Seznam názvů úložiště, které patří do této aplikace Ano
output Kde distribuovat sestavu posouzení této aplikace po generování Ne

Pole output podporuje následující typy distribuce:

Typ Description Povinná pole
local Zkopírujte sestavy do místního adresáře. path
git Nasdílení sestav do úložiště Git Formát adresy URL: https://github.com/org/repo.git#branch:path. url

Důležité

Delegování agenta cloud coding (--delegate cloud) vyžaduje, aby úložiště měla adresy URL úložiště GitHub (github.com. Úložiště místních cest a poskytovatelé jiných než GitHub (GitLab, Azure DevOps) nejsou pro delegování cloudu podporované a přeskočeny.

Pak použijte --source k předání cesty ke konfiguračnímu souboru:

Posouzení všech úložišť místně:

modernize assess --source .github/modernize/repos.json

Posouzení všech úložišť pomocí agenta cloudového kódování:

modernize assess --source .github/modernize/repos.json --delegate cloud

Upgradujte všechna úložiště pomocí agenta cloudového kódování:

modernize upgrade --source .github/modernize/repos.json --delegate cloud

Více zdrojů na příkazovém řádku

Můžete také zadat více zdrojů přímo:

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

Další kroky