Skip to main content

Copilot CLI 및 GitHub Actions를 사용하여 작업 자동화

GitHub Copilot 명령 줄 인터페이스 (CLI)를 GitHub Actions 워크플로우와 통합하세요.

누가 이 기능을 사용할 수 있나요?

GitHub Copilot 명령 줄 인터페이스 (CLI)는 모든 Copilot 플랜에서 사용할 수 있습니다. 조직에서 Copilot을 수신하는 경우 조직의 설정에서 부조종사 CLI 정책을 활성화해야 합니다.

GitHub Actions 워크플로 내에서 GitHub Copilot 명령 줄 인터페이스 (CLI)를 활용하면 CI/CD 프로세스에 AI 기반 작업 자동화를 통합할 수 있습니다. 예를 들어 최근 리포지토리 활동을 요약하거나, 보고서를 생성하거나, 프로젝트 콘텐츠를 스캐폴드할 수 있습니다. GitHub Copilot 명령 줄 인터페이스 (CLI)는 다른 CLI 도구와 마찬가지로 작업 실행기에서 실행되므로 작업 중에 설치하고 워크플로 단계에서 호출할 수 있습니다.

워크플로 이해

GitHub Actions 워크플로에서는 실행기에 부조종사 CLI를 설치하고 인증한 다음, 프로그래밍 모드로 실행하여 결과를 처리하는 작업을 정의할 수 있습니다. 프로그래밍 모드는 스크립트 및 자동화를 위해 설계되었으며 대화형이 아닌 프롬프트를 전달할 수 있습니다.

워크플로는 다음 패턴을 따를 수 있습니다.
1. 트리거: 리포지토리 이벤트에 대한 응답으로 또는 수동으로 일정에 따라 워크플로를 시작합니다. 1. 설치: 체크 아웃 코드, 환경 설정. 1. 설치: GitHub Copilot 명령 줄 인터페이스 (CLI)를 실행기에서 설치합니다. 1. 인증: CLI에 리포지토리에 액세스하고 변경하는 데 필요한 권한이 있는지 확인합니다.

  1.           **부조종사 CLI 실행**: 자동화하려는 작업에 대한 설명을 프롬프트로 작성하여 부조종사 CLI를 실행하세요.
    

다음 워크플로는 리포지토리 변경 내용의 일별 요약을 생성하고 요약을 워크플로 로그에 출력합니다.

YAML
name: Daily summary
on:
  workflow_dispatch:
  # Daily at 8:25 UTC
  schedule:
    - cron: '25 8 * * *'
permissions:
  contents: read
jobs:
  daily-summary:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5
        
      - name: Set up Node.js environment
        uses: actions/setup-node@v4

      - name: Install Copilot CLI
        run: npm install -g @github/copilot

      - name: Run Copilot CLI
        env:
          COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
        run: |
          TODAY=$(date +%Y-%m-%d)
          copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today ($TODAY). Include a brief description of what was changed."

Trigger

이 예제에서 워크플로는 매일 일정에 따라 실행되며 수동으로 트리거될 수도 있습니다.

          `The workflow_dispatch` 트리거를 사용하면 작업 탭에서 워크플로를 수동으로 실행할 수 있습니다. 이 기능은 프롬프트 또는 워크플로 구성에 대한 변경 내용을 테스트할 때 유용합니다. 

트리거는 schedule cron 구문을 사용하여 지정된 시간에 워크플로를 자동으로 실행합니다.

YAML
on:
  # Allows manual triggering of this workflow.
  workflow_dispatch:
  # Daily at 8:30 UTC
  schedule:
    - cron: '30 8 * * *'

설정

부조종사 CLI가 리포지토리에 접근하여 실행기에서 작업을 수행할 수 있도록 설정을 구성합니다. 이 방식을 통해 부조종사 CLI는 일별 요약 생성 시 리포지토리 컨텍스트를 분석할 수 있습니다.

블록은 permissions에 부여된 기본 제공 GITHUB_TOKEN의 범위를 정의합니다. 이 워크플로는 리포지토리 데이터를 읽고 요약을 로그에 출력하기 때문에 필요합니다 contents: read.

YAML
permissions:
  contents: read
jobs:
  daily-summary:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5

설치

워크플로에서 명령으로 실행할 수 있도록 실행기에서 부조종사 CLI 를 설치합니다. GitHub Copilot 명령 줄 인터페이스 (CLI)는 지원되는 설치 방법을 통해 설치가 가능합니다. 설치 옵션의 전체 목록은 GitHub Copilot CLI 설치을 참조하세요.

이 예제에서는 npm을 사용하여 GitHub Copilot 명령 줄 인터페이스 (CLI)를 전역적으로 설치합니다.

YAML
- name: Set up Node.js environment
  uses: actions/setup-node@v4

- name: Install Copilot CLI
  run: npm install -g @github/copilot

Authenticate

워크플로에서 부조종사 CLI를 인증하려면 Copilot 요청 권한이 있는 fine-grained personal access token(PAT)를 만듭니다. PAT를 리포지토리 비밀로 저장한 다음 환경 변수를 사용하여 CLI에 전달합니다. CLI에 대한 PAT 생성을 위한 자세한 내용은 personal access token 사용하여 인증하기를 참조하세요.

부조종사 CLI에서는 다양한 인증용 환경 변수를 활용할 수 있습니다. 이 예제에서 워크플로는 부조종사 CLI에 특화된 COPILOT_GITHUB_TOKEN를 사용하여 기본 제공 GITHUB_TOKEN 환경 변수에 대한 혼동을 방지합니다.

YAML
- name: Run Copilot CLI
  env:
   COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}

부조종사 CLI를 실행합니다

자동화 작업에 활용하려면 프로그래밍 모드에서 부조종사 CLI를 실행하세요.

          `copilot -p PROMPT` 는 프로그래밍 방식으로 프롬프트를 실행하고 명령이 완료되면 종료됩니다. 

이 워크플로에서는 부조종사 CLI이 작업 영역 내의 리포지토리 콘텐츠를 참조하여 활용합니다. 이 명령은 표준 출력에 대한 응답을 출력하고 요약은 워크플로 로그에 표시됩니다.

YAML
- name: Run Copilot CLI
  env:
    COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
  run: |
    TODAY=$(date +%Y-%m-%d)
    copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today ($TODAY). Include a brief description of what was changed."

다음 단계:

워크플로가 로그에 요약을 인쇄하는 것을 확인한 후에는 동일한 패턴을 다른 자동화 작업에 적용할 수 있습니다. 먼저 이전에 전달한 프롬프트를 copilot -p PROMPT로 변경한 후, 그 결과를 바탕으로 다음 수행할 작업을 결정합니다.

  • 이후 단계에서 입력으로 사용할 수 있도록 요약을 파일에 씁니다.
  • 팀 채팅에서 문제에 대한 메모 또는 메시지로 요약을 게시합니다.
  • 요청을 요약하고 초안 변경 로그를 출력합니다.

추가 읽기

  •         [AUTOTITLE](/copilot/reference/cli-command-reference)
    
  •         [AUTOTITLE](/copilot/reference/cli-plugin-reference)