Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
Modernleştirme aracısı, yükseltmek istediğiniz depoları belirtmek için birden çok yolu destekler:
- Geçerli klasör: Projeyi geçerli çalışma dizininizde yükseltin.
- El ile giriş: Yerel dizin yollarını veya uzak Git URL'lerini doğrudan girin.
- Depo yapılandırma dosyası: Tüm depoları listeleyen bir JSON yapılandırma dosyası kullanın.
Depo yapılandırma dosyası
Birçok depoda toplu işlemler için, tüm depoları listelemek için bir JSON yapılandırma dosyası oluşturun. Örneğin, çalışma dizininizde .github/modernize/repos.json konumunda oluşturun veya özel bir yol sağlayın.
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.
Basit biçim (depo dizisi):
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "ZavaSocialFrontEnd",
"url": "https://github.com/Azure-Samples/ZavaSocialFrontEnd"
}
]
Tam biçim (dal ve yerel yollarla):
{
"repos": [
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
"branch": "main"
},
{
"name": "local-project",
"path": "/absolute/path/to/project"
}
]
}
Her depo girişi aşağıdaki alanları destekler:
| Alan | Açıklama | Zorunlu |
|---|---|---|
name |
Depo için kolay bir ad (raporlarda ve panolarda kullanılır). | Evet |
url |
HTTPS veya SSH biçiminde Git kopyası URL'si. |
url veya path'den biri |
path |
Mutlak yerel dizin yolu. | Ya url ya da path birisi |
branch |
Kopyalamadan sonra geçilecek dal. | Hayır |
description |
İnsan tarafından okunabilen bir açıklama. | Hayır |
Bahşiş
Farklı kuruluşlardan depolar ekleyebilir ve erişiminiz olduğu sürece farklı kimlik doğrulama yöntemleri kullanabilirsiniz.
Modernleştirme aracısı, etkileşimli modda bir yapılandırma dosyasından seçtiğinizde repos.json dosyasını .github/modernize/repos.json otomatik olarak algılar. Özel bir yol da sağlayabilirsiniz.
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.
- Destekler: Hem Git URL'si hem de yerel yol depoları.
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 görevleri GitHub Bulut Kodlama Aracılarına gönderir.
- Kurulum gerekli: Her depoda (kurulum sırasında yapılandırılan) MCP sunucu yapılandırması.
- Destekler: Yalnızca GitHub (github.com) URL'leri olan depolar. Yerel yollar ve GitHub olmayan sağlayıcılar desteklenmez.
Önemli
Bulut Kodlama Agent delegasyonu, depoların GitHub (github.com) depo URL'lerine sahip olmasını gerektirir. Yerel yollarla belirtilen veya GitHub olmayan sağlayıcılarda (GitLab, Azure DevOps) barındırılan depolar, bulut devretme işlemi sırasında atlanır. Bu depolar için yerel yürütmeyi kullanın.
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 cloudhem 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:
-
modernizeYükselt'i (etkileşimli, yerel) → seçin -
modernize→ Yükselt → Bulut Aracılarına Temsilci (etkileşimli, bulut) seçeneğini belirleyin -
modernize upgrade "Java 21" --source ./repos.json(etkileşimli olmayan, yerel) -
modernize upgrade "Java 21" --source ./repos.json --delegate cloud(etkileşimli olmayan, bulut)
Toplu yükseltme nasıl çalışır?
Toplu yükseltme iş akışı:
- Language algılama: proje dilini (Java veya .NET) ilk depodan otomatik olarak algılar.
- Plan oluşturma: İsteminize göre bir yükseltme planı oluşturur veya en son LTS sürümlerini kullanır.
- Yürütme: Yükseltmeyi her depoya uygular.
- 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)
Modernleştirme aracısını çalıştırın:
modernizeAna menüden Yükselt'i seçin.
Hedef depolarınızı nasıl belirleyeceğinizi seçin. Dosya kullanmak için Yapılandırma dosyasından'ı
repos.jsonseçin.Bahşiş
Yerel yolları veya uzak Git URL'lerini doğrudan girmek için El ile giriş'i veya projeyi geçerli dizininize yükseltmek için Geçerli klasör'ü de seçebilirsiniz.
repos.jsonDosya varsayılan konumda algılanırsa aracı dosyayı otomatik olarak doldurur. Aksi takdirde, yapılandırma dosyanızın yolunu girin ve Enter tuşuna basın.Tüm depolar varsayılan olarak seçilidir. Atlamak istediğiniz depoların seçimini kaldırın ve seçiminizi onaylamak için Enter tuşuna basın.
- Gezinmek için ok tuşlarını kullanın ve tek tek depoları açıp kapatmak için Boşluk Tuşu'na basın.
Yürütme modunu seçin. Yerel olarak yükselt'i seçin.
Yükseltme hedefi istemini (örneğin,
Java 21veya.NET 10) girin veya varsayılanı (en son LTS sürümü) kabul etmek için Enter tuşuna basın.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.
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 Modernleştirme 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"
]
}
}
}
Adımlar
Modernleştirme aracısını çalıştırın:
modernizeAna menüden Yükselt'i seçin.
Hedef depolarınızı nasıl belirleyeceğinizi seçin. Yapılandırma dosyasından seçin.
repos.jsonDosya varsayılan konumda algılanırsa aracı dosyayı otomatik olarak doldurur. Aksi takdirde, yapılandırma dosyanızın yolunu girin ve Enter tuşuna basın.Tüm depolar varsayılan olarak seçilidir. Atlamak istediğiniz depoların seçimini kaldırın ve seçiminizi onaylamak için Enter tuşuna basın. Tek tek depolar arasında geçiş yapmak için ok tuşlarını kullanarak gezin ve Space tuşuna basın.
Yürütme modunu seçin. Bulut Ajanlarına Temsilci Ata seçin.
Yükseltme hedefi istemini girin (örneğin,
Java 21) veya varsayılanı kabul etmek için Enter tuşuna basın.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.
Görevleri paralel yürütme için AgentHQ'ye devreder.
Tek tek her görevin ilerleme durumunu gerçek zamanlı olarak izler.
Tamamlanan her görev için yükseltme özetini görüntüler.
Etkileşimli olmayan mod (CLI)
Otomasyon ve CI/CD tümleştirmesi için komutunu modernize upgrade kullanın:
Depo yapılandırma dosyasını kullanarak yerel olarak yükseltin:
modernize upgrade "Java 21" --source .github/modernize/repos.json
Kaynakları doğrudan belirterek birden çok depoya yükseltme:
modernize upgrade "Java 21" --source https://github.com/org/repo1 --source https://github.com/org/repo2
Bulut Kodlama Aracılarını kullanarak yükseltme:
modernize upgrade "Java 21" --source .github/modernize/repos.json --delegate cloud
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:
Terminalde görüntülenen toplu raporu denetleyin.
Tek tek depo değişikliklerini gözden geçirin:
cd <repository-name> git status git diffBaş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ı:
-
gh auth statuskullanarak GitHub kimlik doğrulamayı doğrulayın. - içindeki
repos.jsontüm depolara erişiminiz olduğundan emin olun.
Dil uyuşmazlığı hataları
-
repos.json'daki 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.jsoniç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:
- Toplu değerlendirmeyi çalıştırma - İyileştirmeleri doğrulamak ve yeni fırsatları belirlemek için yeniden değerlendirmeler.
- Kuruluşa özgü desenler için özel beceriler oluşturma - Yeniden kullanım için başarılı desenleri yakalayın.
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.