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 3upgrade to .NET 10upgrade to JDK 21migrate from spring boot 2 to spring boot 3
데이터베이스 마이그레이션:
migrate from oracle to azure postgresqlmigrate from SQL Server to azure cosmos dbswitch from MySQL to azure database for mysql
클라우드 마이그레이션:
migrate from on-premises to azurecontainerize and deploy to azure container appsmigrate from rabbitmq to azure service bus
배포:
deploy to azure app servicedeploy to azure kubernetes serviceset 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
실행 동작
실행하는 동안 에이전트는 다음을 수행합니다.
계획을 로드합니다. 계획 및 작업 목록을 읽습니다.
.github/modernization/{plan-name}/작업 실행: 작업 목록의 각 작업을 순차적으로 처리합니다.
- 코드 변환을 적용합니다.
- 변경 후 빌드의 유효성을 검사합니다.
- CVE를 검색합니다.
- 설명이 포함된 메시지를 사용하여 변경 내용을 커밋합니다.
요약 생성: 모든 변경 내용 및 결과에 대한 보고서를 제공합니다.
출력
- 커밋 기록: 실행된 각 태스크에 대한 자세한 커밋입니다.
- 요약 보고서: 변경 내용, 성공 및 발생한 모든 문제에 대한 개요입니다.
- 빌드 유효성 검사: 애플리케이션이 성공적으로 빌드되었는지 확인합니다.
- 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