다음을 통해 공유


GitHub Copilot 현대화 에이전트 CLI 명령

GitHub Copilot 현대화 에이전트는 애플리케이션 현대화를 위한 대화형 모드와 비대화형 모드를 모두 제공합니다.

명령 모드

대화형 모드

단계별 현대화를 위한 대화형 TUI(텍스트 사용자 인터페이스)를 시작합니다.

modernize

대화형 모드는 다음을 제공합니다.

  • 현대화 워크플로를 통한 메뉴 기반 탐색
  • 시각적 계획 및 진행률 표시기입니다.
  • 구성 옵션에 대한 안내 프롬프트입니다.
  • 다중 리포지토리 선택 인터페이스입니다.

비대화형 모드

자동화 및 스크립팅을 위해 특정 명령을 직접 실행합니다.

modernize <command> [options]

다음과 같은 경우 비대화형 모드를 사용합니다.

  • CI/CD 파이프라인과 통합
  • 일괄 처리 작업 자동화
  • 현대화 워크플로 스크립팅
  • 헤드리스 환경에서 실행.

글로벌 옵션

모든 명령은 다음과 같은 전역 옵션을 지원합니다.

Option 설명
--help, -h 도움말 정보를 표시합니다.
--no-tty 대화형 프롬프트(헤드리스 모드)를 사용하지 않도록 설정합니다.

Commands

평가

평가를 실행하고 포괄적인 분석 보고서를 생성합니다.

문법

modernize assess [options]

옵션

Option 설명 기본값
--source <path> 원본 프로젝트의 경로(상대 또는 절대 로컬 경로)입니다. . (현재 디렉터리)
--output-path <path> 평가 결과에 대한 사용자 지정 출력 경로입니다. .github/modernize/assessment/
--issue-url <url> 평가 요약으로 업데이트할 GitHub 문제 URL입니다. 없음
--multi-repo 다중 리포지토리 평가를 사용하도록 설정합니다. 여러 리포지토리에 대한 첫 번째 수준 하위 디렉터리를 검색합니다. 비활성화
--model <model> 사용할 LLM 모델입니다. claude-sonnet-4.6
--delegate <delegate> 실행 모드: local (이 컴퓨터) 또는 cloud (클라우드 코딩 에이전트). local
--wait 위임된 태스크가 완료되고 결과를 생성할 때까지 기다립니다(유효한 --delegate cloud경우에만). 비활성화
--force 위임을 강제로 다시 시작하여 진행 중인 작업(유효한 경우에만)을 --delegate cloud무시합니다. 비활성화

예제

현재 디렉터리에 대한 기본 평가:

modernize assess

사용자 지정 출력 위치로 평가:

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

결과와 함께 GitHub 문제를 평가하고 업데이트합니다.

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

특정 프로젝트 디렉터리 평가:

modernize assess --source /path/to/project

현재 디렉터리에서 여러 리포지토리를 평가합니다.

modernize assess  --multi-repo

출력

평가는 다음을 생성합니다.

  • 보고서 파일: JSON, MD 및 HTML 형식의 자세한 분석입니다.
  • 요약: 주요 결과 및 권장 사항.
  • 문제 업데이트 (제공하는 --issue-url경우): 요약이 포함된 GitHub 문제 주석입니다.

계획 만들기

현대화 목표를 설명하는 자연어 프롬프트를 기반으로 현대화 계획을 만듭니다.

문법

modernize plan create <prompt> [options]

Arguments

Argument 설명
<prompt> 현대화 목표(필수)에 대한 자연어 설명입니다.

옵션

Option 설명 기본값
--source <path> 애플리케이션 소스 코드의 경로입니다. 현재 디렉터리
--plan-name <name> 현대화 계획의 이름입니다. modernization-plan
--language <lang> 프로그래밍 언어(java또는dotnetpython)입니다. 자동 검색됨
--overwrite 동일한 이름으로 기존 계획을 덮어씁니다. 비활성화
--model <model> 사용할 LLM 모델입니다. claude-sonnet-4.6

예제

마이그레이션 계획 생성:

modernize plan create "migrate from oracle to azure postgresql"

사용자 지정 이름을 사용하여 업그레이드 계획을 생성합니다.

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

배포 계획 생성:

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

전체 옵션 예제:

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

프롬프트 예제

프레임워크 업그레이드:

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

데이터베이스 마이그레이션:

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

클라우드 마이그레이션:

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

배포:

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

출력

이 명령은 다음을 생성합니다.

  • 계획 파일 (.github/modernize/{plan-name}/plan.md): 다음을 비롯한 자세한 현대화 전략:

    • 컨텍스트 및 목표
    • 접근 방식 및 방법론
    • 해명
  • 작업 목록 (.github/modernize/{plan-name}/tasks.json): 다음을 사용하여 실행 작업의 구조적 분석:

    • 작업 설명
    • 사용할 기술
    • 성공 조건

팁 (조언)

생성 후 수동으로 편집 plan.mdtasks.json 하여 실행 전에 접근 방식을 사용자 지정할 수 있습니다.

계획 실행

에서 만든 modernize plan create현대화 계획을 실행합니다.

문법

modernize plan execute [prompt] [options]

Arguments

Argument 설명
[prompt] 실행에 대한 선택적 자연어 지침입니다(예: "테스트 건너뛰기").

옵션

Option 설명 기본값
--source <path> 애플리케이션 소스 코드의 경로입니다. 현재 디렉터리
--plan-name <name> 실행할 계획의 이름입니다. modernization-plan
--language <lang> 프로그래밍 언어(java 또는 dotnet)입니다. 자동 검색됨
--model <model> 사용할 LLM 모델입니다. claude-sonnet-4.6
--delegate <delegate> 실행 모드: local (이 컴퓨터) 또는 cloud (클라우드 코딩 에이전트). local
--force CCA 작업이 진행 중인 경우에도 강제로 실행합니다. 비활성화

예제

대화형으로 최신 계획을 실행합니다.

modernize plan execute

특정 계획을 실행합니다.

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

추가 지침으로 실행합니다.

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

CI/CD에 대한 헤드리스 모드로 실행:

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

실행 동작

실행하는 동안 에이전트는 다음을 수행합니다.

  1. 계획을 로드합니다. 계획 및 작업 목록을 읽습니다. .github/modernization/{plan-name}/

  2. 작업 실행: 작업 목록의 각 작업을 순차적으로 처리합니다.

    • 코드 변환을 적용합니다.
    • 변경 후 빌드의 유효성을 검사합니다.
    • CVE를 검색합니다.
    • 설명이 포함된 메시지를 사용하여 변경 내용을 커밋합니다.
  3. 요약 생성: 모든 변경 내용 및 결과에 대한 보고서를 제공합니다.

출력

  • 커밋 기록: 실행된 각 태스크에 대한 자세한 커밋입니다.
  • 요약 보고서: 변경 내용, 성공 및 발생한 모든 문제에 대한 개요입니다.
  • 빌드 유효성 검사: 애플리케이션이 성공적으로 빌드되었는지 확인합니다.
  • CVE 보고서: 식별되고 해결된 보안 취약성입니다.

upgrade

단일 명령으로 엔드 투 엔드 업그레이드 워크플로(계획 및 실행)를 실행합니다.

문법

modernize upgrade [prompt] [options]

Arguments

Argument 설명
[prompt] 대상 버전(예: Java 17, Spring Boot 3.2.NET 10. 기본값은 최신 LTS입니다.

옵션

Option 설명 기본값
--source <source> 원본 프로젝트의 경로(상대 또는 절대 로컬 경로)입니다. . (현재 디렉터리)
--delegate <delegate> 실행 모드: local (이 컴퓨터) 또는 cloud (클라우드 코딩 에이전트). local
--model <model> 사용할 LLM 모델입니다. claude-sonnet-4.6

예제

현재 디렉터리에서 실행 upgrade 합니다.

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

특정 프로젝트에서 실행 upgrade :

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

클라우드 코딩 에이전트를 사용하여 실행 upgrade 합니다.

modernize upgrade "Java 17" --delegate cloud

help

도움말 및 정보 명령을 제공합니다.

문법

modernize help [command]

Commands

Command 설명
models 사용 가능한 LLM 모델 및 해당 승수를 나열합니다.

예제

사용 가능한 모델 나열:

modernize help models

CLI 구성

현대화 에이전트를 사용하여 JSON 파일 및 환경 변수를 통해 애플리케이션 동작을 사용자 지정할 수 있습니다.

환경 변수

환경 변수를 설정하여 다른 모든 구성 범위를 재정의합니다.

변수 설명 기본값
MODERNIZE_LOG_LEVEL 로깅 수준(none,, error, warninginfo, debugall) info
MODERNIZE_MODEL 사용할 LLM 모델입니다. claude-sonnet-4.6
MODERNIZE_COLLECT_TELEMETRY 원격 분석 수집을 사용하거나 사용하지 않도록 설정합니다. true

Example:

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

사용자 구성

에 사용자별 기본 설정 ~/.modernize/config.json 또는 리포지토리 전체 설정을 저장합니다 .github/modernize/config.json.

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

이 속성은 trusted_folders 대화형 모드에서 LLM을 사용하도록 신뢰할 수 있는 폴더를 지정합니다.

메모

환경 변수는 사용자 구성 및 리포지토리 구성에 이어 가장 높은 우선 순위를 차지합니다. CI/CD 재정의에 환경 변수를 사용하고 개인 기본 설정에 사용자 구성을 사용합니다.

다중 리포지토리 구성

.github/modernize/repos.json 다중 리포지토리 모드를 사용하도록 설정하는 파일을 만듭니다.

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

repos.json 파일이 배치된 후 다음 명령을 사용하여 구성된 모든 리포지토리에서 작동합니다.

모든 리포지토리를 로컬로 평가합니다.

modernize assess

클라우드 코딩 에이전트를 사용하여 모든 리포지토리를 평가합니다.

modernize assess --delegate cloud

클라우드 코딩 에이전트를 사용하여 모든 리포지토리를 업그레이드합니다.

modernize upgrade --delegate cloud

다음 단계