Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.
- Pilihan sumber fleksibel: folder saat ini, input manual (jalur lokal atau URL Git), atau file konfigurasi repositori.
- Rencana visual dan indikator kemajuan.
- Permintaan terpandu untuk opsi konfigurasi, termasuk domain penilaian dan parameter.
- 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 <source> |
Sumber untuk dinilai (dapat diulang). Menerima jalur lokal, URL Git, atau jalur file konfigurasi JSON. Gunakan beberapa --source bendera untuk menentukan beberapa repositori. |
. (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 |
--format <format> |
Format output untuk laporan penilaian: html atau markdown. |
html |
--assess-config <path> |
Jalur ke file YAML konfigurasi penilaian. Mengambil alih parameter penilaian default seperti versi JDK target, layanan komputasi, dan preferensi migrasi. Untuk informasi selengkapnya, lihat Penilaian batch. | Tidak |
--model <model> |
Model LLM yang akan digunakan. | claude-sonnet-4.6 |
--delegate <delegate> |
Mode eksekusi: local (komputer ini) atau cloud (agen cloud). |
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 dengan konfigurasi kustom:
modernize assess --assess-config ./my-assessment-config.yml
Menilai beberapa repositori dengan menggunakan file konfigurasi:
modernize assess --source .github/modernize/repos.json
Menilai beberapa repositori dengan menentukan sumber secara langsung:
modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
Menilai dan menghasilkan laporan dalam format markdown:
modernize assess --format markdown
Hasil
Penilaian menghasilkan:
- File laporan: Analisis terperinci dalam format JSON, MD, dan HTML.
- Ringkasan: Temuan dan rekomendasi utama.
- pembaruan Issue (jika Anda memberikan
--issue-url): GitHub komentar masalah 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 |
--assess-file-path <path> |
Jalur ke file laporan penilaian yang ada untuk digunakan sebagai konteks pembuatan rencana. Memungkinkan rencana didasarkan pada temuan penilaian. | Tidak |
--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
Hasilkan rencana berdasarkan laporan penilaian:
modernize plan create "migrate to Azure PostgreSQL" \
--assess-file-path .github/modernize/assessment/assessment-report.json \
--plan-name postgres-migration
Contoh perintah
Peningkatan kerangka kerja:
upgrade to spring boot 3upgrade to .NET 10upgrade to JDK 21migrate from spring boot 2 to spring boot 3
Migrasi database:
migrate from oracle to azure postgresqlmigrate from SQL Server to azure cosmos dbswitch from MySQL to azure database for mysql
Migrasi cloud:
migrate from on-premises to azurecontainerize and deploy to azure container appsmigrate from rabbitmq to azure service bus
Penyebaran:
deploy to azure app servicedeploy to azure kubernetes serviceset 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"). Default untuk "jalankan rencana" jika tidak ditentukan. |
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 (agen cloud). |
local |
--force |
Memaksa eksekusi bahkan ketika pekerjaan agen cloud sedang berlangsung. Hanya valid dengan --delegate cloud. |
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
Paksa eksekusi pada agen cloud meskipun pekerjaan sedang berjalan:
modernize plan execute --delegate cloud --force --plan-name spring-boot-upgrade
Nota
Opsi --force hanya dapat digunakan dengan delegasi agen cloud (--delegate cloud).
Jalankan dalam mode tanpa kepala untuk CI/CD:
modernize plan execute --plan-name spring-boot-upgrade --no-tty
Perilaku eksekusi
Selama eksekusi, agen:
Memuat paket: Membaca daftar rencana dan tugas dari
.github/modernization/{plan-name}/Menjalankan tugas: Memproses setiap tugas dalam daftar tugas secara berurutan:
- Menerapkan transformasi kode.
- Memvalidasi build setelah perubahan.
- Memindai CVE.
- Menerapkan perubahan dengan pesan deskriptif.
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 (misalnya, Java 17, Spring Boot 3.2, .NET 10). Opsional - default ke LTS terbaru jika tidak ditentukan. |
Opsi
| Option | Deskripsi | Default |
|---|---|---|
--source <source> |
Sumber untuk ditingkatkan (dapat diulang). Menerima jalur lokal, URL Git, atau jalur file konfigurasi JSON. Gunakan beberapa --source bendera untuk menentukan beberapa repositori. |
. (direktori saat ini) |
--delegate <delegate> |
Mode eksekusi: local (komputer ini) atau cloud (agen cloud). |
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 agen cloud:
modernize upgrade "Java 17" --delegate cloud
Tingkatkan beberapa repositori dengan menggunakan file konfigurasi:
modernize upgrade "Java 21" --source .github/modernize/repos.json
Tingkatkan beberapa repositori dengan menentukan sumber secara langsung:
modernize upgrade "Java 21" --source https://github.com/org/repo1 --source https://github.com/org/repo2
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
Anda dapat menyediakan beberapa sumber ke CLI dengan beberapa cara:
-
File konfigurasi repositori: Buat file yang mencantumkan
.github/modernize/repos.jsonsemua repositori, lalu teruskan dengan--source. -
Beberapa
--sourcebendera: Tentukan jalur lokal atau URL Git langsung di baris perintah. - Mode interaktif: Pilih sumber melalui TUI (folder saat ini, input manual, atau konfigurasi repositori).
File konfigurasi repositori
Buat .github/modernize/repos.json file untuk menentukan daftar repositori Anda. Konfigurasi mendukung dua format:
Format sederhana (array repositori):
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "PhotoAlbum",
"url": "https://github.com/Azure-Samples/PhotoAlbum.git"
}
]
Format lengkap (dengan jalur cabang dan lokal):
{
"repos": [
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
"branch": "main"
},
{
"name": "local-project",
"path": "/absolute/path/to/project"
}
]
}
Setiap entri repositori mendukung bidang berikut:
| Ladang | Deskripsi | Required |
|---|---|---|
name |
Nama yang mudah diingat untuk repositori. | Yes |
url |
URL klon git (HTTPS atau SSH). | Salah satu atau urlpath |
path |
Jalur direktori lokal absolut. | Salah satu atau urlpath |
branch |
Cabang untuk memeriksa setelah kloning. | No |
description |
Deskripsi yang dapat dibaca manusia. | No |
Format lengkap dengan pengelompokan aplikasi (opsional, untuk pelaporan terorganisir):
Anda dapat menambahkan apps[] bagian ke repositori grup ke dalam aplikasi logis. Saat aplikasi ditentukan, laporan agregat mengatur hasil berdasarkan aplikasi dan mendukung distribusi laporan.
{
"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"
}
}
]
}
Setiap entri aplikasi mendukung:
| Ladang | Deskripsi | Required |
|---|---|---|
identifier |
Nama tampilan unik aplikasi. | Yes |
description |
Deskripsi yang dapat dibaca manusia. | No |
repos |
Daftar nama repositori milik aplikasi ini. | Yes |
output |
Tempat mendistribusikan laporan penilaian aplikasi ini setelah pembuatan. | No |
Bidang output mendukung jenis distribusi berikut:
| Tipe | Deskripsi | Bidang yang wajib diisi |
|---|---|---|
local |
Salin laporan ke direktori lokal. | path |
git |
Mendorong laporan ke repositori Git. Format URL: https://github.com/org/repo.git#branch:path. |
url |
Penting
Delegasi agen cloud (--delegate cloud) mengharuskan repositori memiliki URL repositori GitHub (github.com). Repositori jalur lokal dan penyedia non-GitHub (GitLab, Azure DevOps) tidak didukung untuk delegasi cloud dan dilewati.
Kemudian gunakan --source untuk meneruskan jalur file konfigurasi:
Menilai semua repositori secara lokal:
modernize assess --source .github/modernize/repos.json
Menilai semua repositori dengan menggunakan agen cloud:
modernize assess --source .github/modernize/repos.json --delegate cloud
Tingkatkan semua repositori dengan menggunakan agen cloud:
modernize upgrade --source .github/modernize/repos.json --delegate cloud
Beberapa sumber pada baris perintah
Anda juga dapat menentukan beberapa sumber secara langsung:
modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
modernize upgrade "Java 21" --source ./project-a --source ./project-b