Peningkatan batch menggunakan agen modernisasi GitHub Copilot

Peningkatan batch memungkinkan Anda menerapkan rencana modernisasi yang konsisten di beberapa repositori secara bersamaan. Artikel ini menunjukkan kepada Anda cara meningkatkan beberapa aplikasi secara efisien dalam skala perusahaan.

Dengan menggunakan upgrade batch, Anda dapat:

  • Tingkatkan beberapa aplikasi secara bersamaan dengan menggunakan target peningkatan yang sama.
  • Terapkan pola yang konsisten dengan menggunakan pola peningkatan serupa di seluruh aplikasi.
  • Manfaatkan eksekusi paralel saat mendelegasikan ke agen cloud.

Pemutakhiran batch memberikan manfaat berikut:

  • Eksekusi yang konsisten:

    • Pendekatan standar: Terapkan pola modernisasi yang sama di semua repositori.
    • Vaabilitas yang berkurang: Pastikan jalur peningkatan yang konsisten untuk aplikasi serupa.
    • Strategi yang dapat digunakan kembali: Gunakan keterampilan khusus organisasi di seluruh aplikasi.
  • Skala dan efisiensi:

    • Pemrosesan paralel: Gunakan agen cloud untuk memproses beberapa repositori secara bersamaan.
    • Alur kerja otomatis: Integrasikan dengan alur CI/CD untuk modernisasi terjadwal.
    • Penghematan waktu: Kurangi total waktu modernisasi dari minggu ke jam.

Prasyarat

  • Modernisasi CLI.
  • Penilaian batch lengkap (disarankan tetapi tidak diperlukan).
  • Semua repositori menggunakan bahasa pemrograman yang sama (Java atau .NET).
  • Akses ke semua repositori yang ingin Anda tingkatkan.
  • autentikasi GitHub dikonfigurasi (gh auth login).

Penting

Semua repositori dalam peningkatan batch harus menggunakan bahasa pemrograman yang sama. Jika repositori menggunakan bahasa yang berbeda, peningkatan batch menandai repositori sebagai gagal dan melewatinya.

Konfigurasikan repositori

Agen modernisasi mendukung beberapa cara untuk menentukan repositori yang ingin Anda tingkatkan:

  • Folder saat ini: Tingkatkan proyek di direktori kerja Anda saat ini.
  • Input manual: Masukkan jalur direktori lokal atau URL Git jarak jauh secara langsung.
  • File konfigurasi repositori: Gunakan file konfigurasi JSON yang mencantumkan semua repositori.

File konfigurasi repositori

Untuk operasi batch di banyak repositori, buat file konfigurasi JSON untuk mencantumkan semua repositori. Misalnya, buat di .github/modernize/repos.json direktori kerja Anda, atau berikan jalur kustom.

Petunjuk / Saran

Untuk repositori sampel, fork terlebih dahulu dan pastikan Anda memiliki izin admin untuk mendelegasikan pekerjaan ke agen cloud.

Format sederhana (larik repositori):

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

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 (digunakan dalam laporan dan dasbor). Yes
url URL kloning Git dalam format HTTPS atau SSH. Salah satu url atau path
path Jalur direktori lokal absolut. Salah satu url atau path
branch Cabang yang akan dipilih setelah melakukan kloning. No
description Deskripsi yang dapat dibaca manusia. No

Petunjuk / Saran

Anda dapat menyertakan repositori dari organisasi yang berbeda dan menggunakan metode autentikasi yang berbeda selama Anda memiliki akses.

Agen modernisasi secara otomatis mendeteksi repos.json file pada .github/modernize/repos.json ketika Anda memilih Dari file konfigurasi dalam mode interaktif. Anda juga dapat menyediakan jalur kustom.

Pilih mode eksekusi Anda

Peningkatan batch mendukung dua mode eksekusi dan dua metode interaksi:

Mode eksekusi

Eksekusi lokal

  • Terbaik untuk: Pengujian, set repositori yang lebih kecil (repositori 1-5), atau ketika Anda lebih suka kontrol lokal.
  • Cara kerjanya: Memproses repositori secara berurutan di komputer lokal Anda.
  • Penyiapan diperlukan: Tidak ada yang melebihi prasyarat dasar.
  • Dukungan: URL Git dan repositori jalur lokal.

Delegasi agen cloud

  • Terbaik untuk: Operasi skala perusahaan, portofolio besar (5+ repos), atau pemrosesan paralel.
  • Cara kerjanya: Mengirimkan tugas ke GitHub agen cloud untuk eksekusi paralel di cloud.
  • Diperlukan penyiapan: Konfigurasi server MCP di setiap repositori (dikonfigurasi selama penyiapan).
  • Dukungan: Hanya repositori dengan URL GitHub (github.com). Jalur lokal dan penyedia non-GitHub tidak didukung.

Penting

Delegasi agen cloud mengharuskan repositori memiliki URL repositori GitHub (github.com). Repositori yang ditentukan dengan jalur lokal atau dihosting di penyedia non-GitHub (GitLab, Azure DevOps) dilewati selama delegasi cloud. Gunakan eksekusi lokal untuk repositori tersebut.

Petunjuk / Saran

Dengan memproses repositori secara paralel, delegasi agen cloud dapat mengurangi total waktu modernisasi dari jam ke menit.

Metode interaksi

Mode interaktif (TUI)

  • Pengalaman terpandu dengan menu dan petunjuk.
  • Terbaik untuk pengguna pertama kali atau saat Anda ingin meninjau opsi.
  • Mendukung eksekusi lokal dan cloud.

Mode non-interaktif (CLI/tanpa kepala)

  • Berbasis baris perintah, sepenuhnya otomatis.
  • Terbaik untuk alur dan otomatisasi CI/CD.
  • Mendukung eksekusi lokal dan cloud dengan flag --delegate cloud.

Nota

Anda dapat menggabungkan mode eksekusi apa pun dengan metode interaksi apa pun. Contohnya:

  • modernize → pilih Tingkatkan (interaktif, lokal)
  • modernize → pilih Tingkatkan>Delegasi ke Agen Cloud (interaktif, cloud)
  • modernize upgrade "Java 21" --source ./repos.json (non-interaktif, lokal)
  • modernize upgrade "Java 21" --source ./repos.json --delegate cloud (non-interaktif, cloud)

Cara kerja pembaruan batch

Alur kerja peningkatan sebuah batch:

  1. deteksi Language: Secara otomatis mendeteksi bahasa proyek (Java atau .NET) dari repositori pertama.
  2. Pembuatan paket: Membuat paket peningkatan berdasarkan permintaan Anda atau menggunakan versi LTS terbaru.
  3. Eksekusi: Menerapkan peningkatan ke setiap repositori.
  4. Validasi: Membangun dan memvalidasi perubahan untuk setiap repositori.

Jalankan peningkatan batch

Setelah Anda mengonfigurasi repositori dan memilih mode eksekusi, mulailah peningkatan batch.

Mode interaktif (tingkatkan secara lokal)

  1. Jalankan agen modernisasi:

    modernize
    
  2. Pilih Tingkatkan dari menu utama.

    ○ How would you like to modernize your app?
    
        Assess
        Analyze modernization readiness across one or multiple applications
        Plan
        Generate a structured plan to guide the agent
        Execute
        Run the tasks defined in the modernization plan
    
      Or select a quick-start scenario:
    
      > Upgrade
        Upgrade runtimes and frameworks across one or multiple applications
    
  3. Pilih cara menentukan repositori target Anda. Pilih Dari file konfigurasi untuk menggunakan repos.json file.

    ○ Choose target repositories
    
       1. Current folder
         /Users/username/project
       2. Manual input
         Enter local path or remote URL
     > 3. From a config file
         /path/to/.github/modernize/repos.json
    

    Petunjuk / Saran

    Anda juga dapat memilih Input manual untuk memasukkan jalur lokal atau URL Git jarak jauh secara langsung, atau Folder saat ini untuk meningkatkan proyek di direktori Anda saat ini.

  4. repos.json Jika file terdeteksi di lokasi default, agen secara otomatis mengisinya. Jika tidak, masukkan jalur ke file konfigurasi Anda dan tekan Enter.

  5. Semua repositori dipilih secara default. Batal pilih repositori apa pun yang ingin Anda lewati, lalu tekan Enter untuk mengonfirmasi pilihan Anda.

    • Gunakan tombol panah untuk menavigasi dan menekan Spasi untuk mengalihkan repositori individual.

    Cuplikan layar Modernisasi CLI yang memperlihatkan daftar Pilih repositori di terminal.

  6. Pilih mode eksekusi. Pilih Tingkatkan secara lokal.

    Cuplikan layar Modernisasi CLI yang memperlihatkan opsi menu Tingkatkan secara lokal di terminal.

  7. Masukkan permintaan target peningkatan (misalnya, Java 21 atau .NET 10) atau tekan Enter untuk menerima default (versi LTS terbaru).

  8. Agen secara otomatis:

    • Membuat paket peningkatan berdasarkan permintaan Anda.
    • Menerapkan rencana ke setiap repositori secara berurutan.
    • Membangun dan memvalidasi setiap repositori setelah perubahan.
    • Menampilkan kemajuan dan ringkasan untuk setiap repositori.

    Cuplikan layar Modernisasi CLI yang menunjukkan kemajuan peningkatan untuk setiap repositori di terminal.

Mode interaktif (mendelegasikan ke agen cloud)

Prasyarat: Mengonfigurasi server MCP

Sebelum menjalankan peningkatan, konfigurasikan Server MCP Modernisasi GitHub Copilot di setiap repositori.

Untuk aplikasi Java, tambahkan konfigurasi ini di bagian agen Cloud pengaturan repositori Anda:

{
  "mcpServers": {
    "app-modernization": {
      "type": "local",
      "command": "npx",
      "tools": [
        "*"
      ],
      "args": [
        "-y",
        "@microsoft/github-copilot-app-modernization-mcp-server"
      ]
    }
  }
}

Screenshot GitHub yang memperlihatkan panel pengaturan agen Cloud repositori dengan bagian konfigurasi MCP disorot.

Steps

  1. Jalankan agen modernisasi:

    modernize
    
  2. Pilih Tingkatkan dari menu utama.

    ○ How would you like to modernize your app?
    
        Assess
        Analyze modernization readiness across one or multiple applications
        Plan
        Generate a structured plan to guide the agent
        Execute
        Run the tasks defined in the modernization plan
    
      Or select a quick-start scenario:
    
      > Upgrade
        Upgrade runtimes and frameworks across one or multiple applications
    
  3. Pilih cara menentukan repositori target Anda. Pilih Dari file konfigurasi.

    ○ Choose target repositories
    
        1. Current folder
          /Users/username/project
        2. Manual input
          Enter local path or remote URL
      > 3. From a config file
          /path/to/.github/modernize/repos.json
    
  4. repos.json Jika file terdeteksi di lokasi default, agen secara otomatis mengisinya. Jika tidak, masukkan jalur ke file konfigurasi Anda dan tekan Enter.

  5. Semua repositori dipilih secara default. Batal pilih repositori apa pun yang ingin Anda lewati, lalu tekan Enter untuk mengonfirmasi pilihan Anda. Gunakan tombol panah untuk menavigasi dan menekan Spasi untuk mengalihkan repositori individual.

    Cuplikan layar Modernisasi CLI yang memperlihatkan daftar repositori di terminal.

  6. Pilih mode eksekusi. Pilih Delegasikan ke Agen Cloud.

    Cuplikan layar Modernisasi CLI yang memperlihatkan opsi menu Delegasi ke Agen Cloud di terminal.

  7. Masukkan permintaan target peningkatan (misalnya, Java 21) atau tekan Enter untuk menerima default.

  8. Agen secara otomatis:

    • Membuat rencana peningkatan untuk setiap repositori.

    • Mengirim tugas agen cloud untuk setiap repositori.

    • Menjalankan pekerjaan secara independen secara paralel di cloud.

    • Menampilkan ID pekerjaan dan URL PR untuk setiap repositori.

      Cuplikan layar Modernisasi CLI yang menunjukkan kemajuan mendelegasikan peningkatan ke agen cloud di terminal.

    • Mendelegasikan tugas ke AgentHQ untuk eksekusi paralel.

      Screenshot GitHub yang memperlihatkan panel Agen dengan tugas pemutakhiran yang didelegasikan ke AgentHQ.

    • Melacak kemajuan untuk setiap tugas individual secara real-time.

      Tangkapan layar GitHub yang menampilkan panel Agents dengan pelacakan kemajuan untuk setiap tugas peningkatan agen cloud.

    • Menampilkan ringkasan pemutakhiran untuk setiap tugas yang telah selesai.

      Screenshot GitHub yang memperlihatkan panel Agen dengan ringkasan peningkatan untuk tugas agen cloud individual.

Mode non-interaktif (CLI)

Untuk otomatisasi dan integrasi CI/CD, gunakan modernize upgrade perintah :

Tingkatkan secara lokal menggunakan file konfigurasi repositori:

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

Pemutakhiran menggunakan agen cloud:

modernize upgrade "Java 21" --source .github/modernize/repos.json --delegate cloud

Nota

Untuk eksekusi tanpa kepala batch dan opsi CLI lainnya, lihat bagian Konfigurasi multi-repositori di referensi perintah CLI.

Meninjau hasil

Ketika peningkatan batch selesai:

  1. Periksa laporan agregat yang ditampilkan di terminal.

  2. Tinjau perubahan repositori individual:

    cd <repository-name>
    git status
    git diff
    
  3. Buat permintaan pull untuk peningkatan yang berhasil:

    cd <repository-name>
    gh pr create --title "Upgrade to Java 21" --body "Automated upgrade by modernization agent"
    

Pemecahan masalah pembaruan batch

Masalah umum

Kesalahan akses repositori:

  • Verifikasi autentikasi GitHub dengan menggunakan gh auth status.
  • Pastikan Anda memiliki akses ke semua repositori di repos.json.

Kesalahan ketidakcocokan bahasa:

  • Pastikan semua repositori di repos.json menggunakan bahasa yang sama (Java atau .NET).
  • Buat operasi batch terpisah untuk bahasa yang berbeda.

Kegagalan kloning:

  • Verifikasi URL repositori di repos.json sudah benar dan dapat diakses.
  • Pastikan Anda memiliki izin akses yang tepat ke semua repositori.
  • Periksa konektivitas jaringan dan pengaturan VPN.

Kegagalan build setelah peningkatan:

  • Tinjau pesan kesalahan build dalam laporan agregat.
  • Periksa apakah Anda perlu memperbarui dependensi lain.
  • Verifikasi kompatibilitas pustaka pihak ketiga dengan versi baru.

Kegagalan repositori individu:

  • Proses batch berlanjut bahkan jika repositori individual gagal.
  • Tinjau laporan agregat untuk mengidentifikasi repositori yang gagal.
  • Periksa log kesalahan untuk pesan kesalahan tertentu.
  • Coba lagi repositori yang gagal satu per satu.

Kegagalan agen cloud:

  • Periksa izin GitHub Actions dan batas kuota.
  • Untuk .NET Framework, pastikan konfigurasi runner Windows diatur dengan benar.

Langkah berikutnya

Setelah menyelesaikan peningkatan batch, Anda dapat:

Terus tingkatkan:

Pelajari selengkapnya:

Berikan umpan balik

Kami menghargai input Anda! Jika Anda memiliki umpan balik tentang peningkatan batch atau agen Modernisasi, buat masalah di repositori github-copilot-appmod atau gunakan formulir umpan balik modernisasi GitHub Copilot.