Skip to main content

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

          GitHub Copilot CLI을(를) GitHub Actions 워크플로에 통합합니다.

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

GitHub Copilot CLI 는 모든 Copilot 계획에서 사용할 수 있습니다. 조직으로부터 Copilot를 수신하는 경우, 조직의 설정에서 Copilot CLI 정책이 사용하도록 설정되어야 합니다.

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

작업 워크플로에서 Copilot CLI 사용하기

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

워크플로는 다음 패턴을 따를 수 있습니다. 1. 트리거: 리포지토리 이벤트에 대한 응답으로 또는 수동으로 일정에 따라 워크플로를 시작합니다. 1. 설치: 체크 아웃 코드, 환경 설정. 1. 설치: 실행기에 GitHub Copilot CLI 설치합니다. 1. Authenticate: CLI가 리포지토리에 액세스하고 변경을 수행할 수 있는 필요한 권한을 가지고 있는지 확인합니다. 1. 실행 Copilot CLI: 자동화하려는 작업을 설명하는 프롬프트를 사용하여 호출 Copilot CLI 합니다.

예시 워크플로

다음 워크플로는 현재 리포지토리의 기본 분기에서 변경한 내용에 대한 세부 정보를 생성하고 이러한 세부 정보를 워크플로 실행에 대한 요약으로 표시합니다.

YAML
name: Daily summary
on:
  workflow_dispatch:
  # Run this workflow daily at 5:30pm UTC
  schedule:
    - cron: '30 17 * * *'
permissions:
  contents: read
jobs:
  daily-summary:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5
        with:
          fetch-depth: 0

      - 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: |
          copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
          cat summary.md >> "$GITHUB_STEP_SUMMARY"

다음 섹션에서는 이 워크플로의 각 부분을 설명합니다.

Trigger

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

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

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

YAML
on:
  # Allows manual triggering of this workflow
  workflow_dispatch:
  # Run this workflow daily at 11:55pm UTC
  schedule:
    - cron: '55 23 * * *'

설치

리포지토리에 액세스하고 Actions 실행기에서 실행할 수 있도록 Copilot CLI 작업을 설정합니다. 이렇게 하면 일별 요약을 생성할 때 리포지토리 컨텍스트를 분석할 수 Copilot CLI 있습니다.

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

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

설치하다

          Copilot CLI을(를) 실행기에 설치하여 워크플로가 이를 명령으로 호출할 수 있도록 합니다. 지원되는 설치 방법을 사용하여 설치 GitHub Copilot CLI 할 수 있습니다. 설치 옵션의 전체 목록은 [AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-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

Actions 실행기에서 실행할 수 있도록 Copilot CLI 하려면 유효한 GitHub 라이선스로 Copilot 사용자 계정을 인증해야 합니다.

          **단계 1: "Copilot 요청" 권한으로 personal access token PAT를 생성하십시오.**
  1. 자신의 설정에서 fine-grained personal access token을 생성하려면 다음으로 이동하십시오: github.com/settings/personal-access-tokens/new.

  2. Copilot 요청 권한이 있는 새 PAT를 생성합니다.

  3. 토큰 값을 복사합니다.

           **2단계: PAT를 작업 리포지토리 비밀로 저장합니다.**
    
  4. 리포지토리에서 설정 > 비밀 및 변수 > 작업 으로 이동하고 새 리포지토리 비밀을 클릭합니다.

  5. 워크플로에서 사용할 이름을 비밀에 지정합니다. 이 예제에서는 비밀의 이름으로 사용합니다 PERSONAL_ACCESS_TOKEN .

  6. 토큰 값을 "비밀" 필드에 붙여넣고 비밀 추가를 클릭합니다.

워크플로는 리포지토리 비밀 값을 사용하여 특수 환경 변수를 설정합니다. Copilot CLI 는 인증을 위한 몇 가지 특수 환경 변수를 지원합니다. 이 예시에서 워크플로는 Copilot CLI에 특화된 COPILOT_GITHUB_TOKEN를 사용하여, 내장된 GITHUB_TOKEN 환경 변수와 함께 다른 곳에서 사용할 수 있는 것과 다른 사용 권한을 Copilot에 설정할 수 있도록 합니다.

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

          Copilot CLI을 실행합니다.

CLI를 프로그래밍 방식으로 실행하고 명령이 완료되면 종료하는 데 사용합니다 copilot -p PROMPT [OPTIONS] .

CLI는 작업 워크플로 실행에 대한 로그에 기록되는 표준 출력에 대한 응답을 출력합니다. 그러나 변경 내용에 대한 세부 정보를 보다 쉽게 액세스할 수 있도록 이 예제에서는 워크플로 실행에 대한 요약에 이 정보를 추가합니다.

YAML
  run: |
    copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
    cat summary.md >> "$GITHUB_STEP_SUMMARY"

이 예제에서는 CLI 프롬프트 후 몇 가지 옵션을 사용합니다.

  •         `--allow-tool='shell(git:*)'` 에서는 Copilot Git 명령을 실행하여 리포지토리 기록을 분석할 수 있습니다. 이는 최근 변경 내용의 요약을 생성하는 데 필요합니다.
    
  •         `--allow-tool='write'` 에서는 Copilot 생성된 요약을 실행기에서 파일에 쓸 수 있습니다.
    
  •         `--no-ask-user` 는 CLI가 사용자 입력을 요청하는 것을 방지합니다. 이는 추가 입력 요청에 응답할 사용자가 없는 자동화된 워크플로에서 실행할 때 중요합니다.
    

다음 단계

워크플로에서 변경 내용 요약을 생성하는지 확인한 후에는 동일한 패턴을 다른 자동화 작업에 적용할 수 있습니다. 먼저 copilot -p PROMPT에 전달한 프롬프트를 변경하고, 그런 다음 출력 결과를 가지고 무엇을 해야 할지 결정합니다. 예를 들어 다음을 수행할 수 있습니다.

  • 하루의 변경 내용과 함께 리포지토리에서 변경 로그 파일을 업데이트하는 끌어오기 요청을 만듭니다.
  • 요약을 리포지토리 유지 관리자에게 전자 메일로 보냅니다.

추가 읽기

  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference)
    
  •         [AUTOTITLE](/actions)
    
  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically)