CLI-kommandon för GitHub Copilot moderniseringsagent

GitHub Copilot-moderniseringsagenten tillhandahåller både interaktiva och icke-interaktiva lägen för programmodernisering.

Kommandolägen

Interaktivt läge

Starta det interaktiva användargränssnittet för text (TUI) för guidad modernisering:

modernize

Det interaktiva läget tillhandahåller:

  • Menydriven navigering via moderniseringsarbetsflödet.
  • Val av flexibel källa: aktuell mapp, manuella indata (lokala sökvägar eller Git-URL:er) eller konfigurationsfiler för lagringsplats.
  • Indikatorer för visuell plan och förlopp.
  • Guidade frågor om konfigurationsalternativ, inklusive utvärderingsdomäner och parametrar.
  • Gränssnitt för val av flera lagringsplatser.

Icke-interaktivt läge

Kör specifika kommandon direkt för automatisering och skriptkörning:

modernize <command> [options]

Använd icke-interaktivt läge när:

  • Integrera med CI/CD-pipelines.
  • Automatisera batchåtgärder.
  • Arbetsflöden för skriptmodernisering.
  • Körs i huvudlösa miljöer.

Globala alternativ

Alla kommandon har stöd för följande globala alternativ:

Option Beskrivning
--help, -h Visar hjälpinformation.
--no-tty Inaktiverar interaktiva frågor (huvudlöst läge).

Kommandon

värdera

Kör en utvärdering och genererar en omfattande analysrapport.

Syntax

modernize assess [options]

Alternativ

Option Beskrivning Standardinställning
--source <source> Källa att utvärdera (repeterbar). Accepterar lokala sökvägar, Git-URL:er eller en JSON-konfigurationsfilsökväg. Använd flera --source flaggor för att ange flera lagringsplatser. . (aktuell katalog)
--output-path <path> En anpassad utdatasökväg för utvärderingsresultat. .github/modernize/assessment/
--issue-url <url> En GitHub problem-URL som ska uppdateras med utvärderingssammanfattningen. Ingen
--format <format> Utdataformat för utvärderingsrapporter: html eller markdown. html
--assess-config <path> Sökväg till en YAML-fil för utvärderingskonfiguration som åsidosätter standardutvärderingsparametrar som målkörning, beräkningstjänster och analystäckning. Identifieras automatiskt eller standardvärden
--model <model> DEN LLM-modell som ska användas. claude-sonnet-4.6
--delegate <delegate> Körningsläget: local (den här datorn) eller cloud (Cloud Coding Agent). local
--wait Väntar på att de delegerade uppgifterna ska slutföras och generera resultat (endast giltiga med --delegate cloud). Inaktiverad
--force Tvingar omstart av delegering och ignorerar pågående uppgifter (endast giltiga med --delegate cloud). Inaktiverad

Exempel

Grundläggande utvärdering av aktuell katalog:

modernize assess

Utvärdera med anpassad utdataplats:

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

Utvärdera och uppdatera GitHub problem med resultat:

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

Utvärdera en specifik projektkatalog:

modernize assess --source /path/to/project

Utvärdera flera lagringsplatser med hjälp av en konfigurationsfil:

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

Utvärdera flera lagringsplatser genom att ange källor direkt:

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

Utvärdera och mata ut rapporter i markdown-format:

modernize assess --format markdown

Resultat

Utvärderingen genererar:

  • Rapportfiler: Detaljerad analys i JSON-, MD- och HTML-format.
  • Sammanfattning: Viktiga resultat och rekommendationer.
  • Issue-uppdateringar (om du anger --issue-url): GitHub problemkommentera med sammanfattning.

planera skapande

Skapar en moderniseringsplan baserat på en fråga om naturligt språk som beskriver dina moderniseringsmål.

Syntax

modernize plan create <prompt> [options]

Arguments

Argument Beskrivning
<prompt> En beskrivning av moderniseringsmålen (krävs).

Alternativ

Option Beskrivning Standardinställning
--source <path> Sökvägen till programmets källkod. Aktuell katalog
--plan-name <name> Namnet på moderniseringsplanen. modernization-plan
--language <lang> Programmeringsspråket (java, dotneteller python). Identifieras automatiskt
--overwrite Skriver över en befintlig plan med samma namn. Inaktiverad
--model <model> DEN LLM-modell som ska användas. claude-sonnet-4.6

Exempel

Generera en migreringsplan:

modernize plan create "migrate from oracle to azure postgresql"

Generera en uppgraderingsplan med anpassat namn:

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

Generera en distributionsplan:

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

Exempel på fullständiga alternativ:

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

Exempel på fråga

Ramverksuppgraderingar:

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

Databasmigreringar:

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

Molnmigreringar:

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

Deployering:

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

Resultat

Kommandot genererar:

  • Planfil (.github/modernize/{plan-name}/plan.md): Detaljerad moderniseringsstrategi, inklusive:

    • Kontext och mål
    • Metod och metodik
    • Förtydliganden
  • Uppgiftslista (.github/modernize/{plan-name}/tasks.json): Strukturerad uppdelning av körbara uppgifter med:

    • Aktivitetsbeskrivningar
    • Kunskaper att använda
    • Framgångsvillkor

Tips/Råd

Du kan redigera både plan.md och tasks.json efter generation manuellt för att anpassa metoden före körning.

planera körning

Kör en moderniseringsplan som skapats av modernize plan create.

Syntax

modernize plan execute [prompt] [options]

Arguments

Argument Beskrivning
[prompt] Valfria instruktioner för naturligt språk för körning (till exempel "hoppa över tester").

Alternativ

Option Beskrivning Standardinställning
--source <path> Sökvägen till programmets källkod. Aktuell katalog
--plan-name <name> Namnet på planen som ska köras. modernization-plan
--language <lang> Programmeringsspråket (java eller dotnet). Identifieras automatiskt
--model <model> DEN LLM-modell som ska användas. claude-sonnet-4.6
--delegate <delegate> Körningsläget: local (den här datorn) eller cloud (Cloud Coding Agent). local
--force Tvingar fram körning även när ett CCA-jobb pågår. Inaktiverad

Exempel

Kör den senaste planen interaktivt:

modernize plan execute

Kör en specifik plan:

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

Kör med extra instruktioner:

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

Kör i huvudlöst läge för CI/CD:

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

Körningsbeteende

Under körningen:

  1. Läser in planen: Läser planen och uppgiftslistan från .github/modernization/{plan-name}/

  2. Kör uppgifter: Bearbetar varje uppgift i uppgiftslistan sekventiellt:

    • Tillämpar kodtransformeringar.
    • Validerar byggen efter ändringar.
    • Söker efter CVE:er.
    • Genomför ändringar med beskrivande meddelanden.
  3. Genererar sammanfattning: Ger en rapport över alla ändringar och resultat.

Resultat

  • Incheckningshistorik: Detaljerade incheckningar för varje aktivitet som körs.
  • Sammanfattningsrapport: Översikt över ändringar, framgångar och eventuella problem som påträffas.
  • Byggvalidering: Bekräfta att programmet har skapats.
  • CVE-rapport: Säkerhetsrisker som identifieras och åtgärdas.

upgrade

Kör ett uppgraderingsarbetsflöde från slutpunkt till slutpunkt – planera och köra – i ett enda kommando.

Syntax

modernize upgrade [prompt] [options]

Arguments

Argument Beskrivning
[prompt] Målversionen, till exempel Java 17, Spring Boot 3.2, .NET 10. Standardvärdet är den senaste LTS.

Alternativ

Option Beskrivning Standardinställning
--source <source> Källa för uppgradering (repeterbar). Accepterar lokala sökvägar, Git-URL:er eller en JSON-konfigurationsfilsökväg. Använd flera --source flaggor för att ange flera lagringsplatser. . (aktuell katalog)
--delegate <delegate> Körningsläget: local (den här datorn) eller cloud (Cloud Coding Agent). local
--model <model> DEN LLM-modell som ska användas. claude-sonnet-4.6

Exempel

Kör upgrade i den aktuella katalogen:

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

Kör upgrade i ett specifikt projekt:

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

Kör upgrade med hjälp av Cloud Coding Agent:

modernize upgrade "Java 17" --delegate cloud

Uppgradera flera lagringsplatser med hjälp av en konfigurationsfil:

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

help

Innehåller hjälp- och informationskommandon.

Syntax

modernize help [command]

Kommandon

Kommando Beskrivning
models Visar tillgängliga LLM-modeller och deras multiplikatorer.

Exempel

Lista tillgängliga modeller:

modernize help models

Konfigurera CLI

Med hjälp av moderniseringsagenten kan du anpassa programmets beteende via JSON-filer och miljövariabler.

Miljövariabler

Ange miljövariabler som åsidosätter alla andra konfigurationsomfång:

Variabel Beskrivning Standardinställning
MODERNIZE_LOG_LEVEL Loggningsnivån (none, , errorwarning, info, , debug) all info
MODERNIZE_MODEL DEN LLM-modell som ska användas. claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY Aktivera eller inaktivera telemetrisamling. true

Exempel:

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

Användarkonfiguration

Lagra användarspecifika inställningar i ~/.modernize/config.json eller lagringsplatsomfattande inställningar i .github/modernize/config.json.

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

Egenskapen trusted_folders anger de mappar som är betrodda att använda LLM i interaktivt läge.

Anmärkning

Miljövariabler har högsta prioritet, följt av användarkonfiguration och sedan lagringsplatskonfiguration. Använd miljövariabler för CI/CD-åsidosättningar och användarkonfiguration för personliga inställningar.

Konfiguration av flera lagringsplatser

Du kan tillhandahålla flera källor till CLI på flera sätt:

  • Databaskonfigurationsfil: Skapa en .github/modernize/repos.json fil som visar alla lagringsplatser och skicka den sedan med --source.
  • Flera --source flaggor: Ange lokala sökvägar eller Git-URL:er direkt på kommandoraden.
  • Interaktivt läge: Välj källor via TUI (aktuell mapp, manuell indata eller lagringsplatskonfiguration).

Databaskonfigurationsfil

Skapa en .github/modernize/repos.json fil för att definiera lagringsplatsens lista. Konfigurationen stöder två format:

Enkelt format (matris med lagringsplatser):

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

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. Ja
url Url för Git-klon (HTTPS eller SSH). 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

Fullständigt format med appgruppering (valfritt, för organiserad rapportering):

Du kan lägga till ett apps[] avsnitt för att gruppera lagringsplatser i logiska program. När appar definieras ordnar den aggregerade rapporten resultat efter program och stöder rapportdistribution.

{
  "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"
      }
    }
  ]
}

Varje apppost stöder:

Fält Beskrivning Obligatoriskt
identifier Unikt visningsnamn för programmet. Ja
description Beskrivning som kan läsas av människor. No
repos Lista över lagringsplatsnamn som tillhör den här appen. Ja
output Var appens utvärderingsrapport ska distribueras efter generering. No

Fältet output stöder följande distributionstyper:

Type Beskrivning Obligatoriska fält
local Kopiera rapporter till en lokal katalog. path
git Skicka rapporter till en Git-lagringsplats. URL-format: https://github.com/org/repo.git#branch:path. url

Viktigt!

Cloud Coding Agent-delegering (--delegate cloud) kräver att lagringsplatser har GitHub (github.com) url:er för lagringsplatser. Lokala sökvägsdatabaser och icke-GitHub providers (GitLab, Azure DevOps) stöds inte för molndelegering och hoppas över.

Använd --source sedan för att skicka konfigurationsfilens sökväg:

Utvärdera alla lagringsplatser lokalt:

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

Utvärdera alla lagringsplatser med hjälp av Cloud Coding Agent:

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

Uppgradera alla lagringsplatser med hjälp av Cloud Coding Agent:

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

Flera källor på kommandoraden

Du kan också ange flera källor direkt:

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

Nästa steg