참고
이 기능은 공개 미리 보기에 있으며 변경될 수 있습니다.
이 문서에서는 GitHub Copilot CLI 및 GitHub Copilot app에서 동적 워크플로를 만들고, 사용하고, 공유하는 방법을 설명합니다.
동적 워크플로가 무엇이며 어떻게 작동하는지에 대한 개요는 동적 워크플로을 참조하세요.
전제 조건
동적 워크플로를 Copilot CLI사용하려면 명령줄 옵션을 사용하여 CLI --experimental 를 실행하거나 대화형 세션에서 사용하여 실험적 기능을 사용하도록 /experimental on 설정해야 합니다.
사용 가능한 동적 워크플로에 대해 알아보기
현재 세션에서 하나 이상의 동적 워크플로에 이미 액세스할 수 있습니다. 예를 들어, 개인 확장 프로그램이나 현재 작업 중인 리포지토리의 확장 프로그램을 통해 그럴 수 있습니다. 그렇다면 프롬프트에 해당 이름을 언급해 그것을 사용할 수 있습니다.
동적 워크플로를 사용할 수 있는지 확인하려면 요청 Copilot하기만 하면 됩니다. 다음은 그 예입니다.
What dynamic workflows are available?
What dynamic workflows are available?
동적 워크플로를 사용할 수 있는 경우 Copilot에게 하나를 설명해 달라고 요청할 수 있습니다. 다음은 그 예입니다.
Tell me more about the java-security-checks dynamic workflow.
Tell me more about the java-security-checks dynamic workflow.
아직 동적 워크플로가 없는 경우 만들 수 있습니다. 동적 워크플로 만들기를 참조하세요.
동적 워크플로 실행
-
Copilot 세션에서 Copilot에 동적 워크플로를 실행해 달라고 요청하는 자연어 프롬프트를 입력합니다.
워크플로에 등록된 이름을 사용하고, 필요한 입력을 제공하세요. 예를 들어, 보안 검토를 수행하는 동적 워크플로는 일반적으로 어떤 파일을 대상으로 실행할지 지정하도록 요구합니다. 이 경우 다음과 같은 프롬프트를 입력할 수 있습니다.
Copilot prompt Run the java-security-checks dynamic workflow on the java files in the current directory, with an AI credit limit of 500.
Run the java-security-checks dynamic workflow on the java files in the current directory, with an AI credit limit of 500.중요
동적 워크플로에 대한 제한을 설정하는 것은 선택 사항이지만 리소스 사용량을 제어하고 과도한 소비를 방지하는 데 도움이 되므로 권장됩니다 AI credits. 설정할 수 있는 제한에 대한 자세한 내용은 동적 워크플로을 참고하세요.
-
현재 권한 승인 설정에 따라 Copilot에서 동적 워크플로가 실행되기 전에 승인을 요청합니다. 예선택합니다.
확장에서 슬래시 명령이나 Copilot app의 캔버스 컨트롤과 같이 워크플로를 시작하는 다른 방법을 제공하는 경우, 해당 확장의 지침을 따르세요.
명령줄에서 동적 워크플로 실행
-
터미널에서
copilot workflow run WORKFLOW-NAME [OPTIONS]명령 Copilot CLI을 사용하여 기존의 동적 워크플로를 실행합니다.워크플로는 개인 확장, 프로젝트 확장 또는 설치된 플러그인을 통해 사용할 수 있어야 합니다. 워크플로를 채팅 세션에서 만든 경우 먼저 해당 확장 프로그램을 그 세션 외부에서도 사용할 수 있게 하세요. 동적 워크플로 재사용 및 공유를 참조하십시오.
워크플로에 대한 입력을 JSON으로 제공하는 데 사용합니다
--args.중요
이 명령은 터미널에서 실행하는 경우에도 권한 승인 프롬프트를 표시하지 않습니다. 워크플로 에이전트가 시작하기 전에 필요한 사용 권한(예: )을
--allow-tool부여합니다--allow-url. 자동으로 승인할 수 없는 요청은 거부됩니다. 자세한 내용은 GitHub Copilot CLI 프로그래밍 방식 참조을(를) 참조하세요.예를 들어,
directory라는 워크플로가java-security-checks입력을 받아 파일을 읽기 위한 권한이 필요하다고 가정해 보겠습니다:Shell copilot workflow run java-security-checks \ --args '{"directories":["java/src","java/tests"]}' \ --allow-tool=readcopilot workflow run java-security-checks \ --args '{"directories":["java/src","java/tests"]}' \ --allow-tool=read워크플로 이름, 입력 필드 및 사용 권한을 워크플로와 일치하도록 바꿉니다. 워크플로에 입력이 필요하지 않은 경우
--args를 생략합니다.또는 파일에 JSON 입력을 넣고 해당 경로
@에 다음 접두사를 추가합니다.Shell copilot workflow run java-security-checks \ --args @workflow-input.json \ --allow-tool=read
copilot workflow run java-security-checks \ --args @workflow-input.json \ --allow-tool=read -
워크플로가 보고하는 단계 및 진행 메시지를 확인합니다. 완료되면 명령이 결과를 반환하고 종료하는 경우 결과를 출력합니다. 완료되기 전에 일시 중지되거나 중지되면, 명령은 해당 실행의 상태와 실행 ID를 보고합니다. 실행을 중단하려면 Ctrl+C를 누릅니다.
워크플로의 구성된 제한 및 개인 기본 제한은 여전히 적용됩니다. 동적 워크플로을(를) 참조하세요.
파일에 결과 저장
워크플로의 반환 값을 터미널에 출력하는 대신 JSON 파일에 쓰려면 --result-file를 추가합니다. 진행 메시지는 계속 표시됩니다.
copilot workflow run java-security-checks \ --args @workflow-input.json \ --result-file security-results.json \ --allow-tool=read
copilot workflow run java-security-checks \
--args @workflow-input.json \
--result-file security-results.json \
--allow-tool=read
파일에는 반환된 값만 포함되며 진행 상황 메시지나 실행 상세 정보는 포함되지 않습니다. 상대 경로는 명령을 실행한 디렉터리를 기준으로 확인됩니다.
이 파일은 워크플로가 성공적으로 완료되고 결과를 반환하는 경우에만 작성됩니다. 기존 파일은 새 결과물이 성공적으로 작성된 후에만 대체됩니다. 일시 중지, 실패 또는 중단된 실행은 기존의 모든 파일을 변경하지 않은 상태로 유지합니다.
스크립트에서 워크플로를 실행하기
스크립트 및 CI/CD 파이프라인의 경우 명령을 실행하기 전에 인증 및 권한을 구성합니다.
COPILOT_GITHUB_TOKEN와 같은 인증 환경 변수를 사용할 수 있습니다.
GitHub Copilot CLI 명령 참조을(를) 참조하세요.
작업 디렉터리가 아직 신뢰되지 않은 경우 프로젝트 확장을 로드하려면 해당 호출에 대해 GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS=true를 설정하세요. 이렇게 하면 리포지토리 확장 코드가 실행될 수 있습니다. 신뢰할 수 있는 코드에만 사용하세요. 워크플로의 에이전트에 필요한 도구 권한을 여전히 부여해야 합니다.
진행률 출력을 억제하려면 --silent를 사용하십시오. 워크플로 이름, 실행 ID, 상태 및 반환된 결과를 포함하는 JSON 레코드를 받으려면 --output-format json을(를) 추가합니다:
copilot --allow-tool=read workflow run java-security-checks \ --args @workflow-input.json \ --silent --output-format json
copilot --allow-tool=read workflow run java-security-checks \
--args @workflow-input.json \
--silent --output-format json
동적 워크플로 만들기
기본적으로 Copilot 현재 세션의 확장에 워크플로를 만듭니다. 대신 개인 또는 프로젝트 확장에서 워크플로를 만들도록 요청할 수 있습니다.
-
워크플로로 수행하려는 작업, 필요한 단계의 순서, 어떤 부분에 에이전트를 사용해야 하는지, 그리고 제한 사항을 설명하세요. 다음은 그 예입니다.
Copilot prompt Create a dynamic workflow named review-changed that lists changed files, asks an agent to review them, and summarizes the findings.
Create a dynamic workflow named review-changed that lists changed files, asks an agent to review them, and summarizes the findings.참고
워크플로 Copilot 의 이름을 제공하지 않으면 작성 중에 이름을 선택합니다.
-
현재 권한 승인 설정에 따라 Copilot가 새 동적 워크플로를 작성하도록 허용하라는 요청을 받게 됩니다. 예선택합니다.
Copilot 동적 워크플로를 생성하고 등록하는 과정에서 추가 승인을 요청할 수 있습니다.
- 작성 프로세스가 완료되면 워크플로가 성공적으로 생성되고 등록되었는지 확인합니다. 이렇게 하려면 Copilot에게 사용할 수 있는 동적 워크플로가 무엇인지 물어봅니다.
워크플로를 만들고 등록해도 실행이 시작되지 않습니다. 이를 사용하려면 동적 워크플로 실행을 참조하세요.
Copilot의 안내에 따라 확장 프로그램을 직접 작성할 수도 있습니다. 기본 제공 안내를 읽으려면 다음과 같이 물어보세요:
Show me the guidance for writing dynamic workflows.
Show me the guidance for writing dynamic workflows.
동적 워크플로 재사용 및 공유
동적 워크플로는 Copilot 확장으로 구현됩니다. 기본적으로 Copilot에 워크플로 생성을 요청하면 그 확장 프로그램은 해당 세션에서만 사용할 수 있습니다. 워크플로는 개인 확장 프로그램이나 프로젝트 확장 프로그램에 이미 저장되어 있을 수도 있습니다.
현재 세션에서 만든 워크플로를 다시 사용하거나 공유하려면 워크플로의 확장을 개인 확장 디렉터리 또는 저장소의 확장 디렉터리에 복사하세요. 이 작업은 실행 기록이나 저장된 진행 상태가 아니라 정의만 복사합니다.
-
공유하려는 동적 워크플로의 경로를 알려달라고 요청 Copilot 합니다. 다음은 그 예입니다.
Copilot prompt Tell me the path to the java-security-checks dynamic workflow.
Tell me the path to the java-security-checks dynamic workflow.
Copilot는 다음과 같은 경로를 반환합니다: /Users/yourname/.copilot/session-state/d58ba0bf-78fa-4172-b277-c18ba400e7c6/extensions/java-security-checks/extension.mjs
-
모든 세션에서 이 동적 워크플로를 사용할 수 있도록 하려면
~/.copilot/extensions/파일이 포함된 디렉터리를extension.mjs디렉터리에 복사합니다.이 작업을 수행하도록 요청할 Copilot 수 있습니다. 다음은 그 예입니다.
Copilot prompt Copy the java-security-checks workflow to my personal extensions directory.
Copy the java-security-checks workflow to my personal extensions directory. -
또는 리포지토리에서 작업하는 모든 사용자와 동적 워크플로를 공유하려면
.github/extensions/파일이 포함된 디렉터리를 리포지토리의 로컬 복사본에 있는extension.mjs디렉터리로 복사합니다.다시 말하지만, 이 작업을 수행하도록 요청할 Copilot 수 있습니다. 예를 들어 현재 동적 워크플로를 사용할 수 있도록 하려는 리포지토리에서 작업하는 경우:
Copilot prompt Copy the java-security-checks workflow to the current repository's extensions directory.
Copy the java-security-checks workflow to the current repository's extensions directory.이 변경 사항이 리포지토리에 병합되면 팀원은 로컬 사본을 업데이트하고 확장 프로그램을 로드한 다음 워크플로를 사용할 수 있습니다.
-
새 세션을 시작하거나 기존 세션을 재시작하세요. 세션 로딩이 완료되면 Copilot에게 사용 가능한 동적 워크플로 목록을 나열해 달라고 요청하여 이제 워크플로를 사용할 수 있는지 확인합니다.
플러그 인에 동적 워크플로 배포
플러그 인은 사용자 지정 Copilot 기능을 배포하는 방법을 제공합니다. 플러그인을 사용하여 동적 워크플로를 Copilot CLI 및 GitHub Copilot app에 추가할 수 있습니다.
자세한 내용은 에 대한 플러그 인 만들기 GitHub Copilot CLI을(를) 참조하세요.
동적 워크플로를 포함하는 플러그인을 만든 후 플러그인 마켓플레이스에 게시하면, 사람들이 이를 찾아 설치할 수 있습니다. 에 대한 플러그 인 찾기 및 설치 GitHub Copilot CLI을(를) 참조하세요.
동적 워크플로 실행 모니터링 및 관리
실행 진행 상황과 AI credits 사용량은 물론, 워크플로가 보고하는 모든 단계와 하위 에이전트도 모니터링할 수 있습니다. 완료된 실행을 확인하고, 활성 실행을 일시 중지 또는 취소하고, 제한에 도달했을 때 일시 중지했거나 중지된 실행을 다시 시작할 수도 있습니다.
위치 Copilot CLI:
-
대화형 세션에서
/workflows를 입력합니다.현재 실행 중이며 최근에 완료된 동적 워크플로 실행이 나열됩니다.
-
화살표 키를 사용하여 선택 항목을 이동한 다음 Enter 키를 눌러 실행 상세 정보를 엽니다.
세부 정보에는 실행이 활성 상태였던 시간, 워크플로에서 보고한 현재 단계, 현재 활성 상태인 하위 에이전트 수, 생성된 총 하위 에이전트 수 및 지금까지 사용된 AI credits 수가 포함됩니다.
-
실행 중에는 P 키를 눌러 일시 중지하고 X를 눌러 실행을 취소합니다.
** Copilot app에서:**
참고
실행 모니터링은 로컬 세션에서만 사용할 수 있습니다.
현재 세션에서 동적 워크플로를 실행 중이거나 이미 실행한 경우, 프롬프트 입력 상자 위에 워크플로 버튼이 표시됩니다.
-
워크플로 단추를 클릭합니다.
활성 실행을 나열하고 다시 시작할 준비가 된 실행 및 최근에 완료된 실행을 나열하는 팝업이 표시됩니다.
-
팝업에서 워크플로 실행을 클릭합니다.
선택한 워크플로 실행의 세부 정보를 보여 주는 패널이 표시됩니다.
세부 정보에는 실행이 활성 상태였던 기간, 워크플로에서 보고한 현재 단계, 현재 활성 상태인 하위 에이전트 수, 생성된 하위 에이전트의 총수, 그리고 지금까지 사용된 AI credits 수가 포함됩니다.
-
활성 실행을 중지하려면 [취소]를 클릭합니다. 나중에 다시 시작되도록 일시 중지하려면 일시 중지를 클릭합니다.
OTel을 사용하여 동적 워크플로 모니터링
OTel(OpenTelemetry)을 사용하도록 설정한 경우 추적에서 워크플로 작업을 검사할 수 있습니다. 워크플로는 invoke_workflow 실행하거나 다시 시작할 때마다 해당 에이전트의 활동이 연결된 범위를 만듭니다.
구성의 Copilot CLI경우 GitHub Copilot CLI 명령 참조을 참조하세요.
실행 다시 실행
일시 중지된 실행 또는 다시 시작 가능으로 나열될 때 한도에서 중지된 실행을 다시 시작할 수 있습니다. 워크플로는 새 실행을 시작하는 대신 완료된 단계 및 스바겐트의 저장된 결과를 다시 사용할 수 있습니다. 저장되지 않은 작업은 다시 실행해야 할 수 있습니다.
한도에 도달한 실행을 다시 시작하면 해당 제한에 대해 더 높은 합계를 설정합니다. 실행이 중지되기 전의 사용량은 여전히 새 합계에 계산됩니다.
취소된 실행은 다시 시작될 수 없습니다.
In Copilot CLI:
- 대화형 세션에서 .를 입력합니다
/workflows. - 화살표 키를 사용하여 선택을 다시 시작할 일시 중지 또는 중지된 실행으로 이동합니다.
- 실행을 재개하려면 R 키를 누르세요.
- 메시지가 표시되면 도달한 제한을 늘리고 새 합계를 확인합니다.
에서 :Copilot app
-
일시 중지되거나 중지된 동적 워크플로 실행이 포함된 세션에서 프롬프트 상자 바로 위에 있는 워크플로 단추를 클릭합니다.
모든 다시 시작 가능한 실행은 "다시 시작 준비 완료" 섹션에 나열됩니다.
-
다시 시작할 실행을 클릭합니다.
-
측면 패널에서 다시 시작을 클릭합니다. 실행이 제한에 도달한 경우 제한을 사용하여 다시 시작을 클릭합니다. 대신 프롬프트에 따라 더 높은 합계를 설정하고 다시 시작합니다.
동적 워크플로 실행 예약하기
또는 /after 명령을 사용하여 /every 다른 프롬프트와 마찬가지로 현재 Copilot CLI 세션에서 동적 워크플로 실행을 예약할 수 있습니다. 다음은 그 예입니다.
/every 1d run the changed-files-report dynamic workflow on the 'main' branch, limiting it to 200 AI credits
/every 1d run the changed-files-report dynamic workflow on the 'main' branch, limiting it to 200 AI credits
자세한 내용은 GitHub Copilot CLI에서 프롬프트 예약을(를) 참조하세요.