Aracılığıyla paylaş


GitHub Copilot modernizasyon aracısı ile toplu yükseltme

Toplu yükseltme, aynı anda birden çok depoya tutarlı modernleştirme planları uygulamanızı sağlar. Bu makalede, kurumsal ölçekte birden çok uygulamayı verimli bir şekilde yükseltme işlemi gösterilmektedir.

Toplu yükseltmeyi kullanarak şunları yapabilirsiniz:

  • Aynı yükseltme hedefini kullanarak birden çok uygulamayı aynı anda yükseltin.
  • Uygulamalar arasında benzer yükseltme desenleri kullanarak tutarlılığı sağlayın.
  • Bulut Kodlama Aracıları'na görev devri yaparken paralel yürütmeden yararlanın.

Toplu yükseltme aşağıdaki avantajları sağlar:

  • Tutarlı yürütme:

    • Standartlaştırılmış yaklaşım: Tüm depolara aynı modernleştirme desenlerini uygulayın.
    • Azaltılmış değişkenlik: Benzer uygulamalar için tutarlı yükseltme yollarından emin olun.
    • Yeniden kullanılabilir stratejiler: Uygulamalar arasında kuruluşa özgü becerileri kullanın.
  • Ölçek ve verimlilik:

    • Paralel işleme: Birden çok depoları aynı anda işlemek için Bulut Kodlama Aracılarını kullanın.
    • Otomatik iş akışları: Zamanlanmış modernleştirme için CI/CD işlem hatlarıyla tümleştirme.
    • Zaman tasarrufu: Toplam modernizasyon süresini haftalardan saatlere düşürün.

Önkoşullar

  • CLI'i modernleştirin.
  • Tamamlanmış bir toplu iş değerlendirmesi (önerilir ancak gerekli değildir).
  • Tüm depolar aynı programlama dilini (Java veya .NET) kullanır.
  • Yükseltmek istediğiniz tüm depolara erişim.
  • GitHub kimlik doğrulaması yapılandırıldı (gh auth login ).

Önemli

Toplu yükseltmedeki tüm depolar aynı programlama dilini kullanmalıdır. Depo farklı bir dil kullanıyorsa toplu yükseltme, depoyu başarısız olarak işaretler ve atlar.

Depoları yapılandırma

Toplu yükseltmeyi etkinleştirmek için, çalışma dizininizde yükseltmek istediğiniz tüm depoları listeleyen bir .github/modernize/repos.json dosya oluşturun.

Bahşiş

Örnek depolar için, önce bunları fork edin ve işi Bulut Kod Ajanları'na devretmek için yönetici iznine sahip olduğunuzdan emin olun.

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

Depo yapılandırması

Her giriş şunları gerektirir:

  • name: Depo için kolay bir ad (raporlarda ve panolarda kullanılır).
  • url: Git kopyası URL'si (HTTPS biçimi).

Bahşiş

Farklı kuruluşlardan depolar ekleyebilir ve erişiminiz olduğu sürece farklı kimlik doğrulama yöntemleri kullanabilirsiniz.

Dosya konumu

repos.json dosyasını .github/modernize/repos.json konumuna yerleştirmek zorundasınız.

Modernleştirme aracısı toplu işlemler çalıştırılırken bu dosyayı otomatik olarak algılar.

Yürütme modunuzu seçin

Toplu yükseltme iki yürütme modunu ve iki etkileşim yöntemini destekler:

Yürütme modları

Yerel yürütme

  • En iyi yöntem: Test, daha küçük depo kümeleri (1-5 depo) veya yerel denetimi tercih ettiğinizde.
  • Nasıl çalışır: Depoları yerel makinenizde sıralı olarak işler.
  • Kurulum gerekli: Temel önkoşulların ötesinde bir şey gerekmemektedir.

Bulut Kodlama Aracısı yetkilendirmesi

  • En iyi yöntem: Kurumsal ölçekli işlemler, büyük portföyler (5+ depo) veya paralel işleme.
  • Nasıl çalışır: Bulutta paralel yürütme için GitHub Bulut Kodlama Aracılarına görevler gönderir.
  • Kurulum gerekli: Her depoda (kurulum sırasında yapılandırılan) MCP sunucu yapılandırması.

Bahşiş

Bulut Kodlama Aracısı temsilcisi, depoları paralel olarak işleyerek toplam modernizasyon süresini saatlerden dakikalara düşürebilir.

Etkileşim yöntemleri

Etkileşimli mod (TUI)

  • Menüler ve istemlerle ilgili kılavuzlu deneyim.
  • İlk kez kullananlar veya seçenekleri gözden geçirmek istediğinizde en iyi seçenek.
  • Hem yerel hem de bulut yürütmeyi destekler.

Etkileşimli olmayan mod (CLI/başsız)

  • Komut satırı tabanlı, tam otomatik.
  • CI/CD işlem hatları ve otomasyon için en iyi yöntemdir.
  • Bayrağıyla --delegate cloud hem yerel hem de bulut yürütmeyi destekler.

Uyarı

Herhangi bir yürütme modunu herhangi bir etkileşim yöntemiyle birleştirebilirsiniz. Örneğin:

  • modernize (etkileşimli, yerel)
  • modernize Bulut Kodlama Aracıları'→ seçin (etkileşimli, bulut)
  • modernize upgrade "Java 21" (etkileşimli olmayan, yerel)
  • modernize upgrade "Java 21" --delegate cloud (etkileşimli olmayan, bulut)

Toplu yükseltme nasıl çalışır?

Toplu yükseltme iş akışı:

  1. Dil algılama: proje dilini (Java veya .NET) ilk depodan otomatik olarak algılar.
  2. Plan oluşturma: İsteminize göre bir yükseltme planı oluşturur veya en son LTS sürümlerini kullanır.
  3. Yürütme: Yükseltmeyi her depoya uygular.
  4. Doğrulama: Her depo için değişiklikleri derler ve doğrular.

Toplu yükseltmeyi çalıştırma

Depolarınızı yapılandırdıktan ve yürütme modunu seçtikten sonra toplu yükseltmeyi başlatın.

Etkileşimli mod (yerel olarak yükseltme)

  1. Modernleştirme aracısını çalıştırın:

    modernize
    
  2. Aracı dosyayı algılar repos.json ve depo listesini görüntüler:

    Terminalde Depo seç listesini gösteren CLI'yi Modernleştir'in ekran görüntüsü.

  3. Yükseltmek için depoları seçin ve seçiminizi onaylamak için Enter tuşuna basın.

    • Tüm havuzları seçmek için Ctrl+A tuşuna basın.
    • İsterseniz ok tuşlarını kullanarak tek tek depoları seçebilir ve bu tuşlara basabilirsiniz Enter .
  4. 2'yi seçin. Ana menüden yükseltin.

    Terminalde Çalışma Zamanını Yükselt & Çerçeve menü seçeneğini gösteren CLI'yi modernleştirin ekran görüntüsü.

  5. Yükseltmeyi çalıştırmak için 1'i seçin. Yerel olarak yükseltin.

    Terminalde Yerel olarak yükselt menü seçeneğini gösteren CLI'yi modernleştirin ekran görüntüsü.

  6. Aracı otomatik olarak çalışır:

    • İsteğinize göre bir yükseltme planı oluşturur.
    • Planı her depoya sırayla uygular.
    • Değişikliklerden sonra her bir depo oluşturur ve doğrular.
    • Her deponun ilerleme durumunu ve özetini görüntüler.

    Terminaldeki her depo için yükseltme ilerleme durumunu gösteren CLI'yi modernleştirin ekran görüntüsü.

Etkileşimli mod (Bulut Kodlama Aracılarına temsilci seçme)

Önkoşullar: MCP sunucusunu yapılandırma

Yükseltmeyi çalıştırmadan önce her depoda GitHub Copilot Modernizasyon MCP Sunucusu'nu yapılandırın.

Java uygulamaları için bu yapılandırmayı depo ayarlarınızın Bulut Kodlama Aracısı bölümüne ekleyin:

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

MCP yapılandırma bölümünün vurgulandığı depo Kodlama aracısı ayarları bölmesini gösteren GitHub'ın ekran görüntüsü.

Adımlar

  1. Modernleştirme aracısını çalıştırın:

    modernize
    
  2. Aracı dosyayı algılar repos.json ve depo listesini görüntüler:

    Terminaldeki depo listesini gösteren CLI'yi modernleştirin ekran görüntüsü.

  3. Yükseltmek için depoları seçin ve seçiminizi onaylamak için Enter tuşuna basın.

    • Tüm havuzları seçmek için Ctrl+A tuşuna basın.
    • İsterseniz ok tuşlarını kullanarak tek tek depoları seçebilir ve bu tuşlara basabilirsiniz Enter .
  4. 2'yi seçin. Ana menüden yükseltin.

  5. Yükseltmeyi çalıştırmak için 2. Bulut Kodlama Aracıları ile Devret'i seçin.

    Terminalde Bulut Kodlama Aracılarına Temsilci Seç menü seçeneğini gösteren CLI'yi Modernleştirin ekran görüntüsü.

  6. Aracı otomatik olarak çalışır:

    • Her depo için yükseltme planları oluşturur.

    • Her bir depo için bir Bulut Kodlama Aracısı işi gönderir.

    • İşleri bulutta bağımsız bir şekilde paralel çalıştırır.

    • Her depo için iş kimliklerini ve PR URL'lerini görüntüler.

      Terminalde Bulut Kodlama Aracılarına yükseltmeleri atama işleminin ilerleme durumunu gösteren CLI'yi Modernleştirin ekran görüntüsü.

    • Görevleri paralel yürütme için AgentHQ'ye devreder.

      AgentHQ'ye atanan yükseltme görevlerinin bulunduğu Aracılar bölmesini gösteren GitHub'ın ekran görüntüsü.

    • Tek tek her görevin ilerleme durumunu gerçek zamanlı olarak izler.

      Tek tek Bulut Kodlama Aracısı yükseltme görevleri için ilerleme izleme içeren Aracılar bölmesini gösteren GitHub'ın ekran görüntüsü.

    • Tamamlanan her görev için yükseltme özetini görüntüler.

      Tek tek Bulut Kodlama Aracısı görevlerinin yükseltme özetini içeren Aracılar bölmesini gösteren GitHub'ın ekran görüntüsü.

Etkileşimli olmayan mod (CLI)

Otomasyon ve CI/CD tümleştirmesi için komutunu modernize upgrade kullanın:

Yerel olarak yükseltin:

modernize upgrade "Java 21"

Bulut Kodlama Aracılarını kullanarak yükseltme:

modernize upgrade "Java 21" --delegate cloud

Komut repos.json dosyasını otomatik olarak tespit eder ve tüm depoları işler.

Uyarı

Toplu başlıksız yürütme ve daha fazla CLI seçeneği için, CLI komutları başvurusundaki Çok depolu yapılandırma bölümüne bakın.

Sonuçları gözden geçirme

Toplu yükseltme tamamlandığında:

  1. Terminalde görüntülenen toplu raporu denetleyin.

  2. Tek tek depo değişikliklerini gözden geçirin:

    cd <repository-name>
    git status
    git diff
    
  3. Başarılı yükseltmeler için çekme istekleri oluşturun:

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

Toplu yükseltme sorunlarını giderme

Sık karşılaşılan sorunlar

Depo erişim hataları:

  • kullanarak gh auth statusGitHub kimlik doğrulamayı doğrulayın.
  • içindeki repos.jsontüm depolara erişiminiz olduğundan emin olun.

Dil uyuşmazlığı hataları

  • içindeki repos.json tüm depoların aynı dili (Java veya .NET) kullandığından emin olun.
  • Farklı diller için ayrı toplu işlemler oluşturun.

Kopyalama hataları:

  • repos.json içindeki depo URL'lerinin doğru ve erişilebilir olduğunu doğrulayın.
  • Tüm depolar için uygun erişim izinlerine sahip olduğunuzdan emin olun.
  • Ağ bağlantısını ve VPN ayarlarını denetleyin.

Yükseltmeden sonra derleme hataları:

  • Toplanan rapordaki derleme hata iletilerini gözden geçirin.
  • Diğer bağımlılıkları güncelleştirmeniz gerekip gerekmediğini denetleyin.
  • Üçüncü taraf kitaplıklarının yeni sürümle uyumluluğunu doğrulayın.

Tek tek depo hataları:

  • Tek tek depolar başarısız olsa bile toplu işlem devam eder.
  • Başarısız depoları belirlemek için toplanan raporu gözden geçirin.
  • Belirli hata iletileri için hata günlüklerini denetleyin.
  • Başarısız depoları ayrı ayrı yeniden deneyin.

Bulut Kodlama Aracısı hataları:

  • GitHub Actions izinlerini ve kota sınırlarını denetleyin.
  • .NET Framework için Windows çalıştırıcı yapılandırmasının düzgün ayarlandığından emin olun.

Sonraki Adımlar

Toplu yükseltmeyi tamamladıktan sonra şunları yapabilirsiniz:

Geliştirmeye devam edin:

Daha fazla bilgi edinin:

Geri bildirimde bulunun

Girdinize değer veririz! Toplu yükseltme veya Modernleştirme aracısı hakkında geri bildiriminiz varsa github-copilot-appmod deposunda bir sorun oluşturun veya GitHub Copilot modernleştirme geri bildirim formunu kullanın.