Delen via


CLI-opdrachten voor GitHub Copilot moderniseringsagent

De GitHub Copilot moderniseringsagent biedt interactieve en niet-interactieve modi voor het moderniseren van toepassingen.

Opdrachtmodi

Interactieve modus

Start de interactieve Text User Interface (TUI) voor begeleide modernisering:

modernize

De interactieve modus biedt:

  • Menugestuurde navigatie via de moderniseringswerkstroom.
  • Flexibele bronselectie: huidige map, handmatige invoer (lokale paden of Git-URL's) of configuratiebestanden voor opslagplaatsen.
  • Visuele planning en voortgangsindicatoren.
  • Begeleide prompts voor configuratieopties, waaronder evaluatiedomeinen en parameters.
  • Selectie-interface voor meerdere opslagplaatsen.

Niet-interactieve modus

Voer specifieke opdrachten rechtstreeks uit voor automatisering en scripting:

modernize <command> [options]

Gebruik niet-interactieve modus wanneer:

  • Integreren met CI/CD-pijplijnen.
  • Batchbewerkingen automatiseren.
  • Werkstromen voor modernisering van scripts.
  • Wordt uitgevoerd in headless omgevingen.

Algemene opties

Alle opdrachten ondersteunen deze algemene opties:

Option Beschrijving
--help, -h Geeft help-informatie weer.
--no-tty Hiermee schakelt u interactieve prompts (headless modus) uit.

Commands

Beoordelen

Voert een evaluatie uit en genereert een uitgebreid analyserapport.

Syntaxis

modernize assess [options]

Opties

Option Beschrijving Verstek
--source <source> Bron die moet worden beoordeeld (herhaalbaar). Accepteert lokale paden, Git-URL's of een JSON-configuratiebestandspad. Gebruik meerdere --source vlaggen om verschillende opslagplaatsen op te geven. . (huidige map)
--output-path <path> Een aangepast uitvoerpad voor evaluatieresultaten. .github/modernize/assessment/
--issue-url <url> Een GitHub probleem-URL om bij te werken met de evaluatiesamenvatting. Geen
--format <format> Uitvoerindeling voor evaluatierapporten: html of markdown. html
--assess-config <path> Pad naar een YAML-bestand voor evaluatieconfiguratie dat standaardevaluatieparameters overschrijft, zoals doelruntime, compute-services en analysedekking. Automatisch gedetecteerde of standaardinstellingen
--model <model> Het LLM-model dat moet worden gebruikt. claude-sonnet-4.6
--delegate <delegate> De uitvoeringsmodus: local (deze computer) of cloud (Cloud Coding Agent). local
--wait Wacht totdat de gedelegeerde taken zijn voltooid en resultaten genereren (alleen geldig met --delegate cloud). Disabled
--force Dwingt delegering opnieuw op, waarbij lopende taken worden genegeerd (alleen geldig met --delegate cloud). Disabled

Examples

Basisevaluatie van de huidige map:

modernize assess

Evalueren met aangepaste uitvoerlocatie:

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

Evalueer en werk GitHub probleem met resultaten bij:

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

Specifieke projectmap evalueren:

modernize assess --source /path/to/project

Meerdere opslagplaatsen evalueren met behulp van een configuratiebestand:

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

Evalueer meerdere opslagplaatsen door rechtstreeks bronnen op te geven:

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

Rapporten evalueren en uitvoeren in markdown-indeling:

modernize assess --format markdown

Uitvoer

De evaluatie genereert:

  • Rapportbestanden: Gedetailleerde analyse in JSON-, MD- en HTML-indelingen.
  • Samenvatting: Belangrijke bevindingen en aanbevelingen.
  • Issue updates (als u --issue-url opgeeft): GitHub opmerking met samenvatting uitgeven.

plan maken

Hiermee maakt u een moderniseringsplan op basis van een prompt in natuurlijke taal waarin uw moderniseringsdoelen worden beschreven.

Syntaxis

modernize plan create <prompt> [options]

Argumenten

Argument Beschrijving
<prompt> Een beschrijving van de moderniseringsdoelen (vereist) in natuurlijke taal.

Opties

Option Beschrijving Verstek
--source <path> Het pad naar de broncode van de toepassing. Huidige map
--plan-name <name> De naam voor het moderniseringsplan. modernization-plan
--language <lang> De programmeertaal (java, dotnetof python). Automatisch gedetecteerd
--overwrite Hiermee overschrijft u een bestaand plan met dezelfde naam. Disabled
--model <model> Het LLM-model dat moet worden gebruikt. claude-sonnet-4.6

Examples

Een migratieplan genereren:

modernize plan create "migrate from oracle to azure postgresql"

Genereer een upgradeplan met een aangepaste naam:

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

Een implementatieplan genereren:

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

Voorbeeld van volledige opties:

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

Promptvoorbeelden

Framework-upgrades:

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

Databasemigraties:

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

Cloudmigraties:

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

Implementatie:

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

Uitvoer

Met de opdracht wordt het volgende gegenereerd:

  • Planbestand (.github/modernize/{plan-name}/plan.md): Gedetailleerde moderniseringsstrategie, waaronder:

    • Context en doelstellingen
    • Benadering en methodologie
    • Verduidelijkingen
  • Takenlijst (.github/modernize/{plan-name}/tasks.json): Gestructureerde uitsplitsing van uitvoerbare taken met:

    • Taakbeschrijvingen
    • Vaardigheden om te gebruiken
    • Succescriteria

Aanbeveling

U kunt zowel plan.mdtasks.json als na generatie handmatig bewerken om de aanpak aan te passen vóór de uitvoering.

plan uitvoeren

Hiermee wordt een moderniseringsplan uitgevoerd dat is gemaakt door modernize plan create.

Syntaxis

modernize plan execute [prompt] [options]

Argumenten

Argument Beschrijving
[prompt] De optionele instructies voor natuurlijke taal voor uitvoering (bijvoorbeeld 'tests overslaan').

Opties

Option Beschrijving Verstek
--source <path> Het pad naar de broncode van de toepassing. Huidige map
--plan-name <name> De naam van het plan dat moet worden uitgevoerd. modernization-plan
--language <lang> De programmeertaal (java of dotnet). Automatisch gedetecteerd
--model <model> Het LLM-model dat moet worden gebruikt. claude-sonnet-4.6
--delegate <delegate> De uitvoeringsmodus: local (deze computer) of cloud (Cloud Coding Agent). local
--force Dwingt uitvoering af, zelfs wanneer een CCA-taak wordt uitgevoerd. Disabled

Examples

Voer het meest recente plan interactief uit:

modernize plan execute

Voer een specifiek plan uit:

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

Voer uit met extra instructies:

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

Uitvoeren in headless-modus voor CI/CD:

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

Uitvoeringsgedrag

Tijdens de uitvoering is de agent:

  1. Laadt het plan: leest het plan en de takenlijst uit .github/modernization/{plan-name}/

  2. Hiermee worden taken uitgevoerd: verwerkt elke taak in de takenlijst opeenvolgend:

    • Codetransformaties toepassen.
    • Valideert builds na wijzigingen.
    • Scant op CV's.
    • Wijzigingen doorvoeren met beschrijvende berichten.
  3. Hiermee wordt een samenvatting gegenereerd: geeft een rapport weer van alle wijzigingen en resultaten.

Uitvoer

  • Doorvoergeschiedenis: gedetailleerde doorvoeringen voor elke taak die wordt uitgevoerd.
  • Overzichtsrapport: Overzicht van wijzigingen, successen en eventuele problemen.
  • Buildvalidatie: Bevestiging dat de toepassing is gebouwd.
  • CVE-rapport: Beveiligingsproblemen geïdentificeerd en aangepakt.

bijwerking

Voert een end-to-end-upgradewerkstroom uit - plan en voer deze uit - in één opdracht.

Syntaxis

modernize upgrade [prompt] [options]

Argumenten

Argument Beschrijving
[prompt] De doelversie, zoals Java 17, Spring Boot 3.2, .NET 10. Standaard ingesteld op de nieuwste LTS.

Opties

Option Beschrijving Verstek
--source <source> Bron om te upgraden (herhaalbaar). Accepteert lokale paden, Git-URL's of een JSON-configuratiebestandspad. Gebruik meerdere --source vlaggen om verschillende opslagplaatsen op te geven. . (huidige map)
--delegate <delegate> De uitvoeringsmodus: local (deze computer) of cloud (Cloud Coding Agent). local
--model <model> Het LLM-model dat moet worden gebruikt. claude-sonnet-4.6

Examples

Uitvoeren upgrade op de huidige map:

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

Uitvoeren upgrade op een specifiek project:

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

Uitvoeren upgrade met behulp van de Cloud Coding Agent:

modernize upgrade "Java 17" --delegate cloud

Meerdere opslagplaatsen upgraden met behulp van een configuratiebestand:

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

help

Biedt help- en informatieopdrachten.

Syntaxis

modernize help [command]

Commands

Opdracht Beschrijving
models Toont beschikbare LLM-modellen en hun vermenigvuldigers.

Examples

Beschikbare modellen weergeven:

modernize help models

De CLI configureren

Met behulp van de moderniseringsagent kunt u toepassingsgedrag aanpassen via JSON-bestanden en omgevingsvariabelen.

Omgevingsvariabelen

Stel omgevingsvariabelen in om alle andere configuratiebereiken te overschrijven:

Variable Beschrijving Verstek
MODERNIZE_LOG_LEVEL Het logboekregistratieniveau (none, error, warning, info, ) debugall info
MODERNIZE_MODEL Het LLM-model dat moet worden gebruikt. claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY Telemetrieverzameling in- of uitschakelen. true

Voorbeeld:

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

Gebruikersconfiguratie

Gebruikersspecifieke voorkeuren opslaan in ~/.modernize/config.json of instellingen voor de hele opslagplaats in .github/modernize/config.json.

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

De trusted_folders eigenschap geeft de mappen op die worden vertrouwd voor het gebruik van LLM in de interactieve modus.

Opmerking

Omgevingsvariabelen hebben de hoogste prioriteit, gevolgd door gebruikersconfiguratie en vervolgens opslagplaatsconfiguratie. Gebruik omgevingsvariabelen voor CI/CD-onderdrukkingen en gebruikersconfiguratie voor persoonlijke voorkeuren.

Configuratie van meerdere opslagplaatsen

U kunt op verschillende manieren meerdere bronnen aan de CLI opgeven:

  • Configuratiebestand voor opslagplaats: maak een .github/modernize/repos.json bestand met alle opslagplaatsen en geef het vervolgens door met --source.
  • Meerdere --source vlaggen: geef lokale paden of Git-URL's rechtstreeks op de opdrachtregel op.
  • Interactieve modus: Selecteer bronnen via de TUI (huidige map, handmatige invoer of opslagplaatsconfiguratie).

Configuratiebestand voor opslagplaats

Maak een .github/modernize/repos.json bestand om de lijst met opslagplaatsen te definiëren. De configuratie ondersteunt twee indelingen:

Eenvoudige indeling (matrix van opslagplaatsen):

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

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. Ja
url Git kloon-URL (HTTPS of SSH). 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

Volledige indeling met app-groepering (optioneel, voor georganiseerde rapportage):

U kunt een apps[] sectie toevoegen om opslagplaatsen te groeperen in logische toepassingen. Wanneer apps zijn gedefinieerd, organiseert het samengevoegde rapport resultaten per toepassing en ondersteunt rapportdistributie.

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

Elke app-vermelding ondersteunt:

Veld Beschrijving Verplicht
identifier Unieke weergavenaam van de toepassing. Ja
description Leesbare beschrijving. No
repos Lijst met namen van opslagplaatsen die deel uitmaken van deze app. Ja
output Waar u het evaluatierapport van deze app na het genereren kunt distribueren. No

Het output veld ondersteunt de volgende distributietypen:

Typ Beschrijving Vereiste velden
local Rapporten kopiëren naar een lokale map. path
git Push rapporten naar een Git-opslagplaats. URL-indeling: https://github.com/org/repo.git#branch:path. url

Belangrijk

Cloud Coding Agent-delegatie (--delegate cloud) vereist dat opslagplaatsen GitHub (github.com) opslagplaats-URL's hebben. Opslagplaatsen voor lokale paden en niet-GitHub-providers (GitLab, Azure DevOps) worden niet ondersteund voor clouddelegering en worden overgeslagen.

Gebruik vervolgens --source om het pad naar het configuratiebestand door te geven:

Alle opslagplaatsen lokaal evalueren:

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

Evalueer alle opslagplaatsen met behulp van de Cloud Coding Agent:

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

Werk alle opslagplaatsen bij met behulp van de Cloud Coding Agent:

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

Meerdere bronnen op de opdrachtregel

U kunt ook meerdere bronnen rechtstreeks opgeven:

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

Volgende stappen