modernleştirme aracısı CLI komutlarını GitHub Copilot

GitHub Copilot modernleştirme aracısı, uygulama modernleştirmesi için hem etkileşimli hem de etkileşimli olmayan modlar sağlar.

Komut modları

Etkileşimli mod

Destekli modernleştirme için etkileşimli Metin Kullanıcı Arabirimi'ni (TUI) başlatın:

modernize

Etkileşimli mod aşağıdakileri sağlar:

  • Modernleştirme iş akışında menü tabanlı gezinti.
  • Esnek kaynak seçimi: geçerli klasör, el ile giriş (yerel yollar veya Git URL'leri) veya depo yapılandırma dosyaları.
  • Görsel plan ve ilerleme göstergeleri.
  • Değerlendirme etki alanları ve parametreler de dahil olmak üzere yapılandırma seçenekleri için kılavuzlu istemler.
  • Çok depolu seçim arabirimi.

Etkileşimli olmayan mod

Otomasyon ve betik oluşturma için belirli komutları doğrudan yürütebilirsiniz:

modernize <command> [options]

Aşağıdaki durumlarda etkileşimli olmayan modu kullanın:

  • CI/CD işlem hatları ile tümleştirme.
  • Toplu işlemleri otomatikleştirme.
  • Betik oluşturma modernleştirme iş akışları.
  • Başsız ortamlarda çalıştırma.

Genel seçenekler

Tüm komutlar şu genel seçenekleri destekler:

Seçenek Açıklama
--help, -h Yardım bilgilerini görüntüler.
--no-tty Etkileşimli istemleri (başsız mod) devre dışı bırakır.

Commands

Değerlendirmek

Bir değerlendirme çalıştırır ve kapsamlı bir analiz raporu oluşturur.

Sözdizimi

modernize assess [options]

Options

Seçenek Açıklama Varsayılan
--source <source> Değerlendirilecek kaynak (yinelenebilir). Yerel yolları, Git URL'lerini veya JSON yapılandırma dosya yolunu kabul eder. Birden çok depo belirtmek için birden çok --source bayrak kullanın. . (geçerli dizin)
--output-path <path> Değerlendirme sonuçları için özel çıkış yolu. .github/modernize/assessment/
--issue-url <url> Değerlendirme özetiyle güncelleştirilecek GitHub sorun URL'si. Hiçbiri
--format <format> Değerlendirme raporları için çıkış biçimi: html veya markdown. html
--assess-config <path> Hedef çalışma zamanı, işlem hizmetleri ve analiz kapsamı gibi varsayılan değerlendirme parametrelerini geçersiz kılan bir değerlendirme yapılandırması YAML dosyasının yolu. Otomatik olarak bulunan veya varsayılan değerler
--model <model> Kullanılacak LLM modeli. claude-sonnet-4.6
--delegate <delegate> Yürütme modu: local (bu makine) veya cloud (Bulut Kodlama Aracısı). local
--wait Temsilci atanan görevlerin tamamlanmasını ve sonuç oluşturmasını bekler (yalnızca ile --delegate cloudgeçerlidir). Disabled
--force Devam eden görevleri yoksayarak temsilci seçmeyi yeniden başlatmaya zorlar (yalnızca ile --delegate cloudgeçerlidir). Disabled

Örnekler

Geçerli dizinin temel değerlendirmesi:

modernize assess

Özel çıkış konumuyla değerlendirme:

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

Sonuçlarla ilgili GitHub sorunu değerlendirin ve güncelleştirin:

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

Belirli proje dizinini değerlendirin:

modernize assess --source /path/to/project

Yapılandırma dosyası kullanarak birden çok depo değerlendirme:

modernize assess --source .github/modernize/repos.json

Kaynakları doğrudan belirterek birden çok depoyı değerlendirin:

modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2

Raporları markdown biçiminde değerlendirin ve çıktı alın:

modernize assess --format markdown

Çıkış

Değerlendirme aşağıdakini oluşturur:

  • Rapor dosyaları: JSON, MD ve HTML biçimlerinde ayrıntılı analiz.
  • Özet: Önemli bulgular ve öneriler.
  • güncelleştirmeleri yayımlar (--issue-url sağlarsanız): özetle birlikte sorun açıklaması GitHub.

plan oluşturma

Modernleştirme hedeflerinizi açıklayan doğal dil istemini temel alan bir modernleştirme planı oluşturur.

Sözdizimi

modernize plan create <prompt> [options]

Argümanlar

Argument Açıklama
<prompt> Modernizasyon hedeflerinin doğal dille açıklaması (gerekli).

Options

Seçenek Açıklama Varsayılan
--source <path> Uygulama kaynak kodunun yolu. Geçerli dizin
--plan-name <name> Modernleştirme planının adı. modernization-plan
--language <lang> Programlama dili (java, dotnetveya python). Otomatik algılandı
--overwrite Aynı ada sahip mevcut bir planın üzerine yazar. Disabled
--model <model> Kullanılacak LLM modeli. claude-sonnet-4.6

Örnekler

Geçiş planı oluşturma:

modernize plan create "migrate from oracle to azure postgresql"

Özel adla bir yükseltme planı oluşturun:

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

Dağıtım planı oluşturma:

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

Tam seçenekler örneği:

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

İstem örnekleri

Çerçeve yükseltmeleri:

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

Veritabanı geçişleri:

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

Bulut geçişleri:

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

Dağıtım:

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

Çıkış

komutu şunu oluşturur:

  • Plan dosyası (.github/modernize/{plan-name}/plan.md): Ayrıntılı modernleştirme stratejisi:

    • Bağlam ve hedefler
    • Yaklaşım ve metodoloji
    • Açıklamalar
  • Görev listesi (.github/modernize/{plan-name}/tasks.json): Yürütülebilir görevlerin yapılandırılmış dökümü:

    • Görev açıklamaları
    • Kullanılacak beceriler
    • Başarı ölçütleri

Tavsiye

Yürütmeden önce yaklaşımı özelleştirmek için hem hem de plan.mdtasks.json oluşturma sonrasında el ile düzenleyebilirsiniz.

plan yürütme

tarafından modernize plan createoluşturulan bir modernleştirme planını yürütür.

Sözdizimi

modernize plan execute [prompt] [options]

Argümanlar

Argument Açıklama
[prompt] Yürütme için isteğe bağlı doğal dil yönergeleri (örneğin, "testleri atla").

Options

Seçenek Açıklama Varsayılan
--source <path> Uygulama kaynak kodunun yolu. Geçerli dizin
--plan-name <name> Yürütülecek planın adı. modernization-plan
--language <lang> Programlama dili (java veya dotnet). Otomatik algılandı
--model <model> Kullanılacak LLM modeli. claude-sonnet-4.6
--delegate <delegate> Yürütme modu: local (bu makine) veya cloud (Bulut Kodlama Aracısı). local
--force CCA işi devam ederken bile yürütmeyi zorlar. Disabled

Örnekler

En son planı etkileşimli olarak yürüt:

modernize plan execute

Belirli bir planı yürütme:

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

Ek yönergelerle yürütme:

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

CI/CD için başsız modda yürütme:

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

Yürütme davranışı

Yürütme sırasında aracı:

  1. Planı yükler: Planı ve görev listesini şu kaynaktan okur: .github/modernization/{plan-name}/

  2. Görevleri yürütür: Görev listesindeki her görevi sırayla işler:

    • Kod dönüşümlerini uygular.
    • Değişikliklerden sonra derlemeleri doğrular.
    • CVE'leri tarar.
    • Açıklayıcı iletilerle değişiklikleri işler.
  3. Özet oluşturur: Tüm değişiklikleri ve sonuçları içeren bir rapor sağlar.

Çıkış

  • İşleme geçmişi: Yürütülen her görev için ayrıntılı işlemeler.
  • Özet raporu: Değişikliklere, başarılara ve karşılaşılan sorunlara genel bakış.
  • Derleme doğrulaması: Uygulamanın başarıyla derlendiğini onaylar.
  • CVE raporu: Tanımlanan ve giderilen güvenlik açıkları.

upgrade

Tek bir komutta uçtan uca bir yükseltme iş akışı (planlama ve yürütme) çalıştırır.

Sözdizimi

modernize upgrade [prompt] [options]

Argümanlar

Argument Açıklama
[prompt] Java 17, Spring Boot 3.2, .NET 10 gibi hedef sürüm. Varsayılan olarak en son LTS'yi kullanır.

Options

Seçenek Açıklama Varsayılan
--source <source> Yükseltecek kaynak (yinelenebilir). Yerel yolları, Git URL'lerini veya JSON yapılandırma dosya yolunu kabul eder. Birden çok depo belirtmek için birden çok --source bayrak kullanın. . (geçerli dizin)
--delegate <delegate> Yürütme modu: local (bu makine) veya cloud (Bulut Kodlama Aracısı). local
--model <model> Kullanılacak LLM modeli. claude-sonnet-4.6

Örnekler

Geçerli dizinde komutunu çalıştırın upgrade :

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

Belirli bir projede çalıştır upgrade :

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

Bulut Kodlama Aracısı'nı kullanarak çalıştırın upgrade :

modernize upgrade "Java 17" --delegate cloud

Bir yapılandırma dosyası kullanarak birden çok depoya yükseltme:

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

help

Yardım ve bilgi komutları sağlar.

Sözdizimi

modernize help [command]

Commands

Command Açıklama
models Kullanılabilir LLM modellerini ve çarpanlarını listeler.

Örnekler

Kullanılabilir modelleri listeleyin:

modernize help models

CLI'yi yapılandırma

Modernleştirme aracısını kullanarak JSON dosyaları ve ortam değişkenleri aracılığıyla uygulama davranışını özelleştirebilirsiniz.

Ortam değişkenleri

Ortam değişkenlerini diğer tüm yapılandırma kapsamlarını geçersiz kacak şekilde ayarlayın:

Variable Açıklama Varsayılan
MODERNIZE_LOG_LEVEL Günlük düzeyi (none, error, warning, info, debug, ) all info
MODERNIZE_MODEL Kullanılacak LLM modeli. claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY Telemetri koleksiyonunu etkinleştirin veya devre dışı bırakın. true

Örnek:

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

Kullanıcı yapılandırması

kullanıcıya özgü tercihleri veya ~/.modernize/config.json depo genelindeki ayarları içinde depolayın .github/modernize/config.json.

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

özelliği, trusted_folders LLM'yi etkileşimli modda kullanmak için güvenilen klasörleri belirtir.

Uyarı

Ortam değişkenleri en yüksek önceliğe, ardından kullanıcı yapılandırmasına ve ardından depo yapılandırmasına sahiptir. CI/CD geçersiz kılmaları için ortam değişkenlerini ve kişisel tercihler için kullanıcı yapılandırmasını kullanın.

Çok depolu yapılandırma

CLI'ya çeşitli yollarla birden çok kaynak sağlayabilirsiniz:

  • Depo yapılandırma dosyası: Tüm depoları listeleyen bir .github/modernize/repos.json dosya oluşturun ve ile geçirin --source.
  • Birden çok --source bayrak: Yerel yolları veya Git URL'lerini doğrudan komut satırında belirtin.
  • Etkileşimli mod: TUI aracılığıyla kaynakları seçin (geçerli klasör, el ile giriş veya depo yapılandırması).

Depo yapılandırma dosyası

Depo listenizi tanımlamak için bir .github/modernize/repos.json dosya oluşturun. Yapılandırma iki biçimi destekler:

Basit biçim (depo dizisi):

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

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. Evet
url Git kopyalama URL'si (HTTPS veya SSH). Veya'nın url biri path
path Mutlak yerel dizin yolu. Veya'nın url biri path
branch Kopyalamadan sonra kullanıma almak için dal. Hayır
description İnsan tarafından okunabilen bir açıklama. Hayır

Uygulama gruplandırma ile tam biçim (isteğe bağlı, düzenli raporlama için):

Depoları mantıksal uygulamalar halinde gruplandırmak için bölüm apps[] ekleyebilirsiniz. Uygulamalar tanımlandığında, toplanan rapor sonuçları uygulamaya göre düzenler ve rapor dağıtımını destekler.

{
  "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"
      }
    }
  ]
}

Her uygulama girişi şu desteği destekler:

Alan Açıklama Zorunlu
identifier Uygulamanın benzersiz görünen adı. Evet
description İnsan tarafından okunabilen bir açıklama. Hayır
repos Bu uygulamaya ait depo adlarının listesi. Evet
output Bu uygulamanın değerlendirme raporunun nesilden sonra dağıtıldığı yer. Hayır

alanı output aşağıdaki dağıtım türlerini destekler:

Türü Açıklama Gerekli alanlar
local Raporları yerel bir dizine kopyalayın. path
git Raporları git deposuna gönderme. URL biçimi: https://github.com/org/repo.git#branch:path. url

Önemli

Bulut Kodlama Aracısı temsilcisi (--delegate cloud), depoların GitHub (github.com) depo URL'lerine sahip olmasını gerektirir. Yerel yol depoları ve GitHub olmayan sağlayıcılar (GitLab, Azure DevOps) bulut temsilcisi için desteklenmez ve atlanır.

Ardından yapılandırma dosyası yolunu geçirmek için kullanın --source :

Tüm depoları yerel olarak değerlendirin:

modernize assess --source .github/modernize/repos.json

Bulut Kodlama Aracısı'nı kullanarak tüm depoları değerlendirin:

modernize assess --source .github/modernize/repos.json --delegate cloud

Bulut Kodlama Aracısı'nı kullanarak tüm depoları yükseltin:

modernize upgrade --source .github/modernize/repos.json --delegate cloud

Komut satırında birden çok kaynak

Doğrudan birden çok kaynak da belirtebilirsiniz:

modernize assess --source https://github.com/org/repo1 --source https://github.com/org/repo2
modernize upgrade "Java 21" --source ./project-a --source ./project-b

Sonraki Adımlar