Bagikan melalui


Perintah CLI agen modernisasi GitHub Copilot

Agen modernisasi GitHub Copilot menyediakan mode interaktif dan non-interaktif untuk modernisasi aplikasi.

Mode perintah

Mode interaktif

Luncurkan Antarmuka Pengguna Teks interaktif (TUI) untuk modernisasi terpandu:

modernize

Mode interaktif menyediakan:

  • Navigasi berbasis menu melalui alur kerja modernisasi.
  • Rencana visual dan indikator kemajuan.
  • Permintaan terpandu untuk opsi konfigurasi.
  • Antarmuka pemilihan multi-repositori.

Mode non-interaktif

Jalankan perintah tertentu secara langsung untuk otomatisasi dan pembuatan skrip:

modernize <command> [options]

Gunakan mode non-interaktif saat:

  • Mengintegrasikan dengan alur CI/CD.
  • Mengotomatiskan operasi batch.
  • Alur kerja modernisasi skrip.
  • Berjalan di lingkungan tanpa kepala.

Opsi global

Semua perintah mendukung opsi global ini:

Option Deskripsi
--help, -h Menampilkan informasi bantuan.
--no-tty Menonaktifkan perintah interaktif (mode tanpa kepala).

Perintah

Menilai

Menjalankan penilaian dan menghasilkan laporan analisis komprehensif.

Sintaksis

modernize assess [options]

Opsi

Option Deskripsi Default
--source <path> Jalur ke proyek sumber (jalur lokal relatif atau absolut). . (direktori saat ini)
--output-path <path> Jalur output kustom untuk hasil penilaian. .github/modernize/assessment/
--issue-url <url> URL masalah GitHub untuk diperbarui dengan ringkasan penilaian. Tidak
--multi-repo Mengaktifkan penilaian multi-repositori. Memindai subdirektori tingkat pertama untuk beberapa repositori. Nonaktif
--model <model> Model LLM yang akan digunakan. claude-sonnet-4.6
--delegate <delegate> Mode eksekusi: local (komputer ini) atau cloud (Cloud Coding Agent). local
--wait Menunggu tugas yang didelegasikan selesai dan menghasilkan hasil (hanya valid dengan --delegate cloud). Nonaktif
--force Memaksa memulai ulang delegasi, mengabaikan tugas yang sedang berlangsung (hanya valid dengan --delegate cloud). Nonaktif

Examples

Penilaian dasar direktori saat ini:

modernize assess

Menilai dengan lokasi output kustom:

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

Menilai dan memperbarui masalah GitHub dengan hasil:

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

Menilai direktori proyek tertentu:

modernize assess --source /path/to/project

Menilai beberapa repositori dalam direktori saat ini:

modernize assess  --multi-repo

Hasil

Penilaian menghasilkan:

  • File laporan: Analisis terperinci dalam format JSON, MD, dan HTML.
  • Ringkasan: Temuan dan rekomendasi utama.
  • Pembaruan masalah (jika Anda memberikan --issue-url): Komentar masalah GitHub dengan ringkasan.

pembuatan paket

Membuat rencana modernisasi berdasarkan permintaan bahasa alami yang menjelaskan tujuan modernisasi Anda.

Sintaksis

modernize plan create <prompt> [options]

Argumen

Argumen Deskripsi
<prompt> Deskripsi bahasa alami tentang tujuan modernisasi (diperlukan).

Opsi

Option Deskripsi Default
--source <path> Jalur ke kode sumber aplikasi. Direktori saat ini
--plan-name <name> Nama untuk rencana modernisasi. modernization-plan
--language <lang> Bahasa pemrograman (java, dotnet, atau python). Terdeteksi otomatis
--overwrite Menimpa paket yang ada dengan nama yang sama. Nonaktif
--model <model> Model LLM yang akan digunakan. claude-sonnet-4.6

Examples

Buat rencana migrasi:

modernize plan create "migrate from oracle to azure postgresql"

Hasilkan paket peningkatan dengan nama kustom:

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

Buat rencana penyebaran:

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

Contoh opsi lengkap:

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

Contoh perintah

Peningkatan kerangka kerja:

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

Migrasi database:

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

Migrasi cloud:

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

Penyebaran:

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

Hasil

Perintah menghasilkan:

  • Rencanakan file (.github/modernize/{plan-name}/plan.md): Strategi modernisasi terperinci termasuk:

    • Konteks dan tujuan
    • Pendekatan dan metodologi
    • Klarifikasi
  • Daftar tugas (.github/modernize/{plan-name}/tasks.json): Perincian terstruktur tugas yang dapat dieksekusi dengan:

    • Deskripsi tugas
    • Keterampilan yang akan digunakan
    • Kriteria keberhasilan

Petunjuk / Saran

Anda dapat mengedit secara manual dan plan.mdtasks.json setelah pembuatan untuk menyesuaikan pendekatan sebelum eksekusi.

rencana eksekusi

Menjalankan rencana modernisasi yang dibuat oleh modernize plan create.

Sintaksis

modernize plan execute [prompt] [options]

Argumen

Argumen Deskripsi
[prompt] Instruksi bahasa alami opsional untuk eksekusi (misalnya, "lewati pengujian").

Opsi

Option Deskripsi Default
--source <path> Jalur ke kode sumber aplikasi. Direktori saat ini
--plan-name <name> Nama rencana yang akan dijalankan. modernization-plan
--language <lang> Bahasa pemrograman (java atau dotnet). Terdeteksi otomatis
--model <model> Model LLM yang akan digunakan. claude-sonnet-4.6
--delegate <delegate> Mode eksekusi: local (komputer ini) atau cloud (Cloud Coding Agent). local
--force Memaksa eksekusi bahkan ketika pekerjaan CCA sedang berlangsung. Nonaktif

Examples

Jalankan rencana terbaru secara interaktif:

modernize plan execute

Jalankan rencana tertentu:

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

Jalankan dengan instruksi tambahan:

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

Jalankan dalam mode tanpa kepala untuk CI/CD:

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

Perilaku eksekusi

Selama eksekusi, agen:

  1. Memuat paket: Membaca daftar rencana dan tugas dari .github/modernization/{plan-name}/

  2. Menjalankan tugas: Memproses setiap tugas dalam daftar tugas secara berurutan:

    • Menerapkan transformasi kode.
    • Memvalidasi build setelah perubahan.
    • Memindai CVE.
    • Menerapkan perubahan dengan pesan deskriptif.
  3. Menghasilkan ringkasan: Menyediakan laporan semua perubahan dan hasil.

Hasil

  • Riwayat penerapan: Penerapan terperinci untuk setiap tugas yang dijalankan.
  • Laporan ringkasan: Gambaran umum perubahan, keberhasilan, dan masalah apa pun yang dihadapi.
  • Validasi build: Konfirmasi bahwa aplikasi berhasil dibangun.
  • Laporan CVE: Kerentanan keamanan diidentifikasi dan ditangani.

mutakhirkan

Menjalankan alur kerja peningkatan end-to-end - rencanakan, dan jalankan - dalam satu perintah.

Sintaksis

modernize upgrade [prompt] [options]

Argumen

Argumen Deskripsi
[prompt] Versi target, seperti Java 17, , Spring Boot 3.2.NET 10. Default ke LTS terbaru.

Opsi

Option Deskripsi Default
--source <source> Jalur ke proyek sumber (jalur lokal relatif atau absolut). . (direktori saat ini)
--delegate <delegate> Mode eksekusi: local (komputer ini) atau cloud (Cloud Coding Agent). local
--model <model> Model LLM yang akan digunakan. claude-sonnet-4.6

Examples

Jalankan upgrade pada direktori saat ini:

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

Jalankan upgrade pada proyek tertentu:

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

Jalankan upgrade dengan menggunakan Cloud Coding Agent:

modernize upgrade "Java 17" --delegate cloud

help

Menyediakan perintah bantuan dan informasi.

Sintaksis

modernize help [command]

Perintah

Perintah Deskripsi
models Mencantumkan model LLM yang tersedia dan multipliernya.

Examples

Mencantumkan model yang tersedia:

modernize help models

Mengonfigurasi CLI

Dengan menggunakan agen modernisasi, Anda dapat menyesuaikan perilaku aplikasi melalui file JSON dan variabel lingkungan.

Variabel lingkungan

Atur variabel lingkungan untuk mengambil alih semua cakupan konfigurasi lainnya:

Variabel Deskripsi Default
MODERNIZE_LOG_LEVEL Tingkat pengelogan (none, error, warning, info, debug, all) info
MODERNIZE_MODEL Model LLM yang akan digunakan. claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY Aktifkan atau nonaktifkan koleksi telemetri. true

Contoh:

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

Konfigurasi pengguna

Simpan preferensi khusus pengguna di ~/.modernize/config.json pengaturan di seluruh repositori atau di .github/modernize/config.json.

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

Properti trusted_folders menentukan folder yang dipercaya untuk menggunakan LLM dalam mode interaktif.

Nota

Variabel lingkungan lebih diutamakan, diikuti oleh konfigurasi pengguna, lalu konfigurasi repositori. Gunakan variabel lingkungan untuk penggantian CI/CD dan konfigurasi pengguna untuk preferensi pribadi.

Konfigurasi multi-repositori

Buat .github/modernize/repos.json file untuk mengaktifkan mode multi-repositori:

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

repos.json Setelah file diberlakukan, gunakan perintah berikut untuk beroperasi di semua repositori yang dikonfigurasi:

Menilai semua repositori secara lokal:

modernize assess

Menilai semua repositori dengan menggunakan Cloud Coding Agent:

modernize assess --delegate cloud

Tingkatkan semua repositori dengan menggunakan Cloud Coding Agent:

modernize upgrade --delegate cloud

Langkah berikutnya