Udostępnij za pośrednictwem


Polecenia interfejsu wiersza polecenia agenta modernizacji narzędzia Copilot w usłudze GitHub

Agent modernizacji Copilot w usłudze GitHub zapewnia zarówno interakcyjne, jak i nieinterakcyjne tryby modernizacji aplikacji.

Tryby poleceń

Tryb interaktywny

Uruchom interaktywny interfejs użytkownika tekstu (TUI) na potrzeby modernizacji z przewodnikiem:

modernize

Tryb interaktywny zapewnia:

  • Nawigacja oparta na menu za pośrednictwem przepływu pracy modernizacji.
  • Wizualne wskaźniki planowania i postępu.
  • Monity z przewodnikiem dotyczące opcji konfiguracji.
  • Interfejs wyboru wielu repozytoriów.

Tryb nieinterakcyjny

Wykonaj określone polecenia bezpośrednio na potrzeby automatyzacji i skryptów:

modernize <command> [options]

Użyj trybu nieinterakcyjnego, gdy:

  • Integracja z potokami ciągłej integracji/ciągłego wdrażania.
  • Automatyzowanie operacji wsadowych.
  • Skrypty przepływów pracy modernizacji.
  • Działa w środowiskach bezgłowych.

Opcje globalne

Wszystkie polecenia obsługują następujące opcje globalne:

Option Opis
--help, -h Wyświetla informacje pomocy.
--no-tty Wyłącza interakcyjne monity (tryb bezgłowy).

Commands

Ocenić

Uruchamia ocenę i generuje kompleksowy raport analizy.

Składnia

modernize assess [options]

Opcje

Option Opis Wartość domyślna
--source <path> Ścieżka do projektu źródłowego (względna lub bezwzględna ścieżka lokalna). . (bieżący katalog)
--output-path <path> Niestandardowa ścieżka wyjściowa dla wyników oceny. .github/modernize/assessment/
--issue-url <url> Adres URL problemu usługi GitHub do zaktualizowania za pomocą podsumowania oceny. Żadne
--multi-repo Umożliwia ocenę wielu repozytoriów. Skanuje podkatalogi pierwszego poziomu dla wielu repozytoriów. Wyłączony
--model <model> Model LLM do użycia. claude-sonnet-4.6
--delegate <delegate> Tryb wykonywania: local (ten komputer) lub cloud (Agent kodowania w chmurze). local
--wait Czeka na ukończenie delegowanych zadań i wygenerowanie wyników (tylko prawidłowe za pomocą polecenia --delegate cloud). Wyłączony
--force Wymusza ponowne uruchomienie delegowania, ignorując bieżące zadania (ważne tylko w przypadku --delegate cloudpolecenia ). Wyłączony

Examples

Podstawowa ocena bieżącego katalogu:

modernize assess

Ocena przy użyciu niestandardowej lokalizacji wyjściowej:

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

Oceń i zaktualizuj problem z usługą GitHub z wynikami:

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

Ocena określonego katalogu projektu:

modernize assess --source /path/to/project

Ocena wielu repozytoriów w bieżącym katalogu:

modernize assess  --multi-repo

Wynik

Ocena generuje:

  • Pliki raportów: szczegółowa analiza w formatach JSON, MD i HTML.
  • Podsumowanie: Kluczowe ustalenia i zalecenia.
  • Aktualizacje problemów (jeśli podasz): komentarz dotyczący problemu w usłudze --issue-urlGitHub z podsumowaniem.

tworzenie planu

Tworzy plan modernizacji na podstawie wiersza polecenia języka naturalnego opisującego cele modernizacji.

Składnia

modernize plan create <prompt> [options]

Arguments

Argument Opis
<prompt> Opis języka naturalnego celów modernizacji (wymagany).

Opcje

Option Opis Wartość domyślna
--source <path> Ścieżka do kodu źródłowego aplikacji. Bieżący katalog
--plan-name <name> Nazwa planu modernizacji. modernization-plan
--language <lang> Język programowania (java, dotnet, lub python). Wykryte automatycznie
--overwrite Zastępuje istniejący plan o tej samej nazwie. Wyłączony
--model <model> Model LLM do użycia. claude-sonnet-4.6

Examples

Generowanie planu migracji:

modernize plan create "migrate from oracle to azure postgresql"

Wygeneruj plan uaktualniania o niestandardowej nazwie:

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

Wygeneruj plan wdrożenia:

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

Przykład pełnych opcji:

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

Przykłady monitów

Uaktualnienia struktury:

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

Migracje baz danych:

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

Migracje do chmury:

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

Wdrażania:

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

Wynik

Polecenie generuje:

  • Plik planu (.github/modernize/{plan-name}/plan.md): szczegółowa strategia modernizacji, w tym:

    • Kontekst i cele
    • Podejście i metodologia
    • Wyjaśnienia
  • Lista zadań (.github/modernize/{plan-name}/tasks.json): ustrukturyzowany podział zadań wykonywalnych z:

    • Opisy zadań
    • Umiejętności do wykorzystania
    • Kryteria powodzenia

Wskazówka

Aby dostosować podejście przed wykonaniem, można ręcznie edytować metody plan.md i tasks.json po nim.

wykonanie planu

Wykonuje plan modernizacji utworzony przez modernize plan createprogram .

Składnia

modernize plan execute [prompt] [options]

Arguments

Argument Opis
[prompt] Opcjonalne instrukcje języka naturalnego dotyczące wykonywania (na przykład "pomiń testy").

Opcje

Option Opis Wartość domyślna
--source <path> Ścieżka do kodu źródłowego aplikacji. Bieżący katalog
--plan-name <name> Nazwa planu do wykonania. modernization-plan
--language <lang> Język programowania (java lub dotnet). Wykryte automatycznie
--model <model> Model LLM do użycia. claude-sonnet-4.6
--delegate <delegate> Tryb wykonywania: local (ten komputer) lub cloud (Agent kodowania w chmurze). local
--force Wymusza wykonywanie nawet wtedy, gdy zadanie CCA jest w toku. Wyłączony

Examples

Wykonaj najnowszy plan interaktywnie:

modernize plan execute

Wykonaj określony plan:

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

Wykonaj z dodatkowymi instrukcjami:

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

Wykonaj w trybie bezgłówkowym dla ciągłej integracji/ciągłego wdrażania:

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

Zachowanie wykonywania

Podczas wykonywania agent:

  1. Ładuje plan: odczytuje listę planów i zadań z .github/modernization/{plan-name}/

  2. Wykonuje zadania: Przetwarza każde zadanie na liście zadań sekwencyjnie:

    • Stosuje przekształcenia kodu.
    • Weryfikuje kompilacje po zmianach.
    • Skanuje pod kątem CVE.
    • Zatwierdza zmiany z opisowymi komunikatami.
  3. Generuje podsumowanie: zawiera raport wszystkich zmian i wyników.

Wynik

  • Historia zatwierdzeń: szczegółowe zatwierdzenia dla każdego wykonanego zadania.
  • Raport podsumowujący: Omówienie zmian, sukcesów i napotkanych problemów.
  • Weryfikacja kompilacji: potwierdzenie pomyślnego skompilowania aplikacji.
  • Raport CVE: Zidentyfikowane i rozwiązane luki w zabezpieczeniach.

aktualizować

Uruchamia pełny przepływ pracy uaktualniania — planowanie i wykonywanie — w jednym poleceniu.

Składnia

modernize upgrade [prompt] [options]

Arguments

Argument Opis
[prompt] Wersja docelowa, taka jak Java 17, Spring Boot 3.2, .NET 10. Domyślnie jest to najnowsza wersja LTS.

Opcje

Option Opis Wartość domyślna
--source <source> Ścieżka do projektu źródłowego (względna lub bezwzględna ścieżka lokalna). . (bieżący katalog)
--delegate <delegate> Tryb wykonywania: local (ten komputer) lub cloud (Agent kodowania w chmurze). local
--model <model> Model LLM do użycia. claude-sonnet-4.6

Examples

Uruchom polecenie upgrade w bieżącym katalogu:

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

Uruchom w upgrade określonym projekcie:

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

Uruchom upgrade polecenie przy użyciu agenta kodowania w chmurze:

modernize upgrade "Java 17" --delegate cloud

help

Udostępnia polecenia pomocy i informacji.

Składnia

modernize help [command]

Commands

Polecenie Opis
models Wyświetla listę dostępnych modeli LLM i ich mnożników.

Examples

Lista dostępnych modeli:

modernize help models

Konfigurowanie interfejsu wiersza polecenia

Za pomocą agenta modernizacji można dostosować zachowanie aplikacji za pomocą plików JSON i zmiennych środowiskowych.

Zmienne środowiskowe

Ustaw zmienne środowiskowe, aby zastąpić wszystkie inne zakresy konfiguracji:

Variable Opis Wartość domyślna
MODERNIZE_LOG_LEVEL Poziom rejestrowania (none, error, , warninginfo, , debug, all) info
MODERNIZE_MODEL Model LLM do użycia. claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY Włączanie lub wyłączanie zbierania danych telemetrycznych. true

Przykład:

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

Konfiguracja użytkownika

Przechowuj preferencje specyficzne dla użytkownika w ~/.modernize/config.json ustawieniach lub w całym repozytorium w programie .github/modernize/config.json.

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

Właściwość trusted_folders określa foldery, które są zaufane do korzystania z usługi LLM w trybie interaktywnym.

Uwaga / Notatka

Zmienne środowiskowe mają najwyższy priorytet, a następnie konfigurację użytkownika, a następnie konfigurację repozytorium. Użyj zmiennych środowiskowych dla przesłonięć ciągłej integracji/ciągłego wdrażania i konfiguracji użytkownika dla preferencji osobistych.

Konfiguracja wielu repozytoriów

Utwórz plik, .github/modernize/repos.json aby włączyć tryb wielu repozytoriów:

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

Po zainstalowaniu repos.json pliku użyj następujących poleceń, aby obsługiwać wszystkie skonfigurowane repozytoria:

Ocena wszystkich repozytoriów lokalnie:

modernize assess

Oceń wszystkie repozytoria przy użyciu agenta kodowania w chmurze:

modernize assess --delegate cloud

Uaktualnij wszystkie repozytoria przy użyciu agenta kodowania w chmurze:

modernize upgrade --delegate cloud

Następne kroki