Claude Code GitHub Actions는 GitHub 워크플로우에 AI 기반 자동화를 제공합니다. PR이나 이슈에서 간단한 @claude 멘션만으로 Claude가 코드를 분석하고, 풀 리퀘스트를 생성하며, 기능을 구현하고, 버그를 수정할 수 있습니다 - 모두 프로젝트 표준을 따르면서 말입니다.
Claude Code GitHub Actions는 Claude Code SDK 위에 구축되어 있으며, 이는 Claude Code를 애플리케이션에 프로그래밍 방식으로 통합할 수 있게 해줍니다. SDK를 사용하여 GitHub Actions를 넘어서는 사용자 정의 자동화 워크플로우를 구축할 수 있습니다.

Claude Code GitHub Actions를 사용하는 이유는?

  • 즉시 PR 생성: 필요한 것을 설명하면 Claude가 모든 필요한 변경사항이 포함된 완전한 PR을 생성합니다
  • 자동화된 코드 구현: 단일 명령으로 이슈를 작동하는 코드로 변환합니다
  • 표준 준수: Claude는 CLAUDE.md 가이드라인과 기존 코드 패턴을 존중합니다
  • 간단한 설정: 설치 프로그램과 API 키로 몇 분 안에 시작할 수 있습니다
  • 기본적으로 안전: 코드는 Github의 러너에 유지됩니다

Claude가 할 수 있는 일은?

Claude Code는 코드 작업 방식을 변화시키는 강력한 GitHub Action을 제공합니다:

Claude Code Action

이 GitHub Action을 사용하면 GitHub Actions 워크플로우 내에서 Claude Code를 실행할 수 있습니다. 이를 사용하여 Claude Code 위에 사용자 정의 워크플로우를 구축할 수 있습니다. 저장소 보기 →

설정

빠른 설정

이 액션을 설정하는 가장 쉬운 방법은 터미널에서 Claude Code를 통하는 것입니다. claude를 열고 /install-github-app을 실행하기만 하면 됩니다. 이 명령은 GitHub 앱 설정과 필요한 시크릿 설정을 안내합니다.
  • GitHub 앱을 설치하고 시크릿을 추가하려면 저장소 관리자여야 합니다 - 이 빠른 시작 방법은 직접 Anthropic API 사용자에게만 제공됩니다. AWS Bedrock이나 Google Vertex AI를 사용하는 경우 AWS Bedrock & Google Vertex AI와 함께 사용 섹션을 참조하세요.

수동 설정

/install-github-app 명령이 실패하거나 수동 설정을 선호하는 경우, 다음 수동 설정 지침을 따르세요:
  1. Claude GitHub 앱을 설치하세요: https://github.com/apps/claude
  2. ANTHROPIC_API_KEY를 저장소 시크릿에 추가하세요 (GitHub Actions에서 시크릿 사용 방법 알아보기)
  3. 워크플로우 파일을 복사하세요: examples/claude.yml에서 저장소의 .github/workflows/
빠른 시작 또는 수동 설정을 완료한 후, 이슈나 PR 댓글에서 @claude를 태그하여 액션을 테스트하세요!

베타에서 업그레이드

Claude Code GitHub Actions v1.0은 베타 버전에서 v1.0으로 업그레이드하기 위해 워크플로우 파일을 업데이트해야 하는 중대한 변경사항을 도입합니다.
현재 Claude Code GitHub Actions의 베타 버전을 사용하고 있다면, GA 버전을 사용하도록 워크플로우를 업데이트하는 것을 권장합니다. 새 버전은 자동 모드 감지와 같은 강력한 새 기능을 추가하면서 구성을 단순화합니다.

필수 변경사항

모든 베타 사용자는 업그레이드하기 위해 워크플로우 파일에 다음 변경사항을 적용해야 합니다:
  1. 액션 버전 업데이트: @beta@v1로 변경
  2. 모드 구성 제거: mode: "tag" 또는 mode: "agent" 삭제 (이제 자동 감지됨)
  3. 프롬프트 입력 업데이트: direct_promptprompt로 교체
  4. CLI 옵션 이동: max_turns, model, custom_instructions 등을 claude_args로 변환

중대한 변경사항 참조

이전 베타 입력새로운 v1.0 입력
mode(제거됨 - 자동 감지)
direct_promptprompt
override_promptGitHub 변수가 포함된 prompt
custom_instructionsclaude_args: --system-prompt
max_turnsclaude_args: --max-turns
modelclaude_args: --model
allowed_toolsclaude_args: --allowedTools
disallowed_toolsclaude_args: --disallowedTools
claude_envsettings JSON 형식

이전과 이후 예제

베타 버전:
- uses: anthropics/claude-code-action@beta
  with:
    mode: "tag"
    direct_prompt: "Review this PR for security issues"
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    custom_instructions: "Follow our coding standards"
    max_turns: "10"
    model: "claude-3-5-sonnet-20241022"
GA 버전 (v1.0):
- uses: anthropics/claude-code-action@v1
  with:
    prompt: "Review this PR for security issues"
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    claude_args: |
      --system-prompt "Follow our coding standards"
      --max-turns 10
      --model claude-sonnet-4-20250514
액션은 이제 구성에 따라 대화형 모드(@claude 멘션에 응답)에서 실행할지 자동화 모드(프롬프트와 함께 즉시 실행)에서 실행할지 자동으로 감지합니다.

사용 사례 예제

Claude Code GitHub Actions는 다양한 작업에 도움을 줄 수 있습니다. examples 디렉토리에는 다양한 시나리오에 대한 즉시 사용 가능한 워크플로우가 포함되어 있습니다.

기본 워크플로우

name: Claude Code
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
jobs:
  claude:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          # 댓글의 @claude 멘션에 응답

슬래시 명령 사용

name: Code Review
on:
  pull_request:
    types: [opened, synchronize]
jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: "/review"
          claude_args: "--max-turns 5"

프롬프트를 사용한 사용자 정의 자동화

name: Daily Report
on:
  schedule:
    - cron: "0 9 * * *"
jobs:
  report:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: "Generate a summary of yesterday's commits and open issues"
          claude_args: "--model claude-opus-4-1-20250805"

일반적인 사용 사례

이슈나 PR 댓글에서:
@claude implement this feature based on the issue description
@claude how should I implement user authentication for this endpoint?
@claude fix the TypeError in the user dashboard component
Claude는 자동으로 컨텍스트를 분석하고 적절하게 응답합니다.

모범 사례

CLAUDE.md 구성

저장소 루트에 CLAUDE.md 파일을 생성하여 코드 스타일 가이드라인, 리뷰 기준, 프로젝트별 규칙, 선호하는 패턴을 정의하세요. 이 파일은 Claude가 프로젝트 표준을 이해하는 데 도움을 줍니다.

보안 고려사항

API 키를 저장소에 직접 커밋하지 마세요!
API 키에는 항상 GitHub Secrets를 사용하세요:
  • API 키를 ANTHROPIC_API_KEY라는 이름의 저장소 시크릿으로 추가
  • 워크플로우에서 참조: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
  • 액션 권한을 필요한 것으로만 제한
  • 병합하기 전에 Claude의 제안을 검토
워크플로우 파일에 API 키를 직접 하드코딩하지 말고 항상 GitHub Secrets(예: ${{ secrets.ANTHROPIC_API_KEY }})를 사용하세요.

성능 최적화

컨텍스트를 제공하기 위해 이슈 템플릿을 사용하고, CLAUDE.md를 간결하고 집중적으로 유지하며, 워크플로우에 적절한 타임아웃을 구성하세요.

CI 비용

Claude Code GitHub Actions를 사용할 때 관련 비용을 인지하세요: GitHub Actions 비용:
  • Claude Code는 GitHub 호스팅 러너에서 실행되어 GitHub Actions 분을 소비합니다
  • 자세한 가격 및 분 제한은 GitHub의 청구 문서를 참조하세요
API 비용:
  • 각 Claude 상호작용은 프롬프트와 응답의 길이에 따라 API 토큰을 소비합니다
  • 토큰 사용량은 작업 복잡성과 코드베이스 크기에 따라 달라집니다
  • 현재 토큰 요율은 Claude의 가격 페이지를 참조하세요
비용 최적화 팁:
  • 불필요한 API 호출을 줄이기 위해 구체적인 @claude 명령을 사용하세요
  • 과도한 반복을 방지하기 위해 claude_args에서 적절한 --max-turns를 구성하세요
  • 폭주하는 작업을 방지하기 위해 워크플로우 수준 타임아웃을 설정하세요
  • 병렬 실행을 제한하기 위해 GitHub의 동시성 제어 사용을 고려하세요

구성 예제

Claude Code Action v1은 통합된 매개변수로 구성을 단순화합니다:
- uses: anthropics/claude-code-action@v1
  with:
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    prompt: "Your instructions here" # 선택사항
    claude_args: "--max-turns 5" # 선택적 CLI 인수
주요 기능:
  • 통합 프롬프트 인터페이스 - 모든 지침에 prompt 사용
  • 슬래시 명령 - /review 또는 /fix와 같은 사전 구축된 프롬프트
  • CLI 패스스루 - claude_args를 통한 모든 Claude Code CLI 인수
  • 유연한 트리거 - 모든 GitHub 이벤트와 작동
완전한 워크플로우 파일은 examples 디렉토리를 방문하세요.
이슈나 PR 댓글에 응답할 때 Claude는 자동으로 @claude 멘션에 응답합니다. 다른 이벤트의 경우 prompt 매개변수를 사용하여 지침을 제공하세요.

AWS Bedrock & Google Vertex AI와 함께 사용

엔터프라이즈 환경에서는 자체 클라우드 인프라와 함께 Claude Code GitHub Actions를 사용할 수 있습니다. 이 접근 방식은 동일한 기능을 유지하면서 데이터 거주지와 청구에 대한 제어권을 제공합니다.

전제 조건

클라우드 공급자와 함께 Claude Code GitHub Actions를 설정하기 전에 다음이 필요합니다:

Google Cloud Vertex AI의 경우:

  1. Vertex AI가 활성화된 Google Cloud 프로젝트
  2. GitHub Actions용으로 구성된 Workload Identity Federation
  3. 필요한 권한이 있는 서비스 계정
  4. GitHub 앱(권장) 또는 기본 GITHUB_TOKEN 사용

AWS Bedrock의 경우:

  1. Amazon Bedrock이 활성화된 AWS 계정
  2. AWS에서 구성된 GitHub OIDC Identity Provider
  3. Bedrock 권한이 있는 IAM 역할
  4. GitHub 앱(권장) 또는 기본 GITHUB_TOKEN 사용
1

사용자 정의 GitHub 앱 생성 (3P 공급자에게 권장)

Vertex AI나 Bedrock과 같은 3P 공급자를 사용할 때 최상의 제어와 보안을 위해 자체 GitHub 앱을 생성하는 것을 권장합니다:
  1. https://github.com/settings/apps/new로 이동
  2. 기본 정보를 입력:
    • GitHub App name: 고유한 이름 선택 (예: “YourOrg Claude Assistant”)
    • Homepage URL: 조직의 웹사이트 또는 저장소 URL
  3. 앱 설정 구성:
    • Webhooks: “Active” 체크 해제 (이 통합에는 필요하지 않음)
  4. 필요한 권한 설정:
    • Repository permissions:
      • Contents: Read & Write
      • Issues: Read & Write
      • Pull requests: Read & Write
  5. “Create GitHub App” 클릭
  6. 생성 후 “Generate a private key”를 클릭하고 다운로드된 .pem 파일을 저장
  7. 앱 설정 페이지에서 App ID를 기록
  8. 저장소에 앱 설치:
    • 앱의 설정 페이지에서 왼쪽 사이드바의 “Install App” 클릭
    • 계정 또는 조직 선택
    • “Only select repositories”를 선택하고 특정 저장소 선택
    • “Install” 클릭
  9. 개인 키를 저장소의 시크릿으로 추가:
    • 저장소의 Settings → Secrets and variables → Actions로 이동
    • .pem 파일의 내용으로 APP_PRIVATE_KEY라는 새 시크릿 생성
  10. App ID를 시크릿으로 추가:
  • GitHub 앱의 ID로 APP_ID라는 새 시크릿 생성
이 앱은 워크플로우에서 인증 토큰을 생성하기 위해 actions/create-github-app-token 액션과 함께 사용됩니다.
Anthropic API 또는 자체 Github 앱을 설정하고 싶지 않은 경우의 대안: 공식 Anthropic 앱 사용:
  1. https://github.com/apps/claude에서 설치
  2. 인증을 위한 추가 구성 불필요
2

클라우드 공급자 인증 구성

클라우드 공급자를 선택하고 보안 인증을 설정하세요:
3

필수 시크릿 추가

저장소에 다음 시크릿을 추가하세요 (Settings → Secrets and variables → Actions):

Anthropic API (직접)의 경우:

  1. API 인증용:
  2. GitHub 앱용 (자체 앱을 사용하는 경우):
    • APP_ID: GitHub 앱의 ID
    • APP_PRIVATE_KEY: 개인 키 (.pem) 내용

Google Cloud Vertex AI의 경우

  1. GCP 인증용:
    • GCP_WORKLOAD_IDENTITY_PROVIDER
    • GCP_SERVICE_ACCOUNT
  2. GitHub 앱용 (자체 앱을 사용하는 경우):
    • APP_ID: GitHub 앱의 ID
    • APP_PRIVATE_KEY: 개인 키 (.pem) 내용

AWS Bedrock의 경우

  1. AWS 인증용:
    • AWS_ROLE_TO_ASSUME
  2. GitHub 앱용 (자체 앱을 사용하는 경우):
    • APP_ID: GitHub 앱의 ID
    • APP_PRIVATE_KEY: 개인 키 (.pem) 내용
4

워크플로우 파일 생성

클라우드 공급자와 통합되는 GitHub Actions 워크플로우 파일을 생성하세요. 아래 예제는 AWS Bedrock과 Google Vertex AI 모두에 대한 완전한 구성을 보여줍니다:

문제 해결

Claude가 @claude 명령에 응답하지 않음

GitHub 앱이 올바르게 설치되었는지 확인하고, 워크플로우가 활성화되어 있는지 확인하며, API 키가 저장소 시크릿에 설정되어 있는지 확인하고, 댓글에 @claude가 포함되어 있는지 확인하세요 (/claude가 아님).

Claude의 커밋에서 CI가 실행되지 않음

GitHub 앱 또는 사용자 정의 앱을 사용하고 있는지 확인하고 (Actions 사용자가 아님), 워크플로우 트리거에 필요한 이벤트가 포함되어 있는지 확인하며, 앱 권한에 CI 트리거가 포함되어 있는지 확인하세요.

인증 오류

API 키가 유효하고 충분한 권한이 있는지 확인하세요. Bedrock/Vertex의 경우 자격 증명 구성을 확인하고 워크플로우에서 시크릿 이름이 올바른지 확인하세요.

고급 구성

액션 매개변수

Claude Code Action v1은 단순화된 구성을 사용합니다:
매개변수설명필수
promptClaude를 위한 지침 (텍스트 또는 슬래시 명령)아니오*
claude_argsClaude Code에 전달되는 CLI 인수아니오
anthropic_api_keyAnthropic API 키예**
github_tokenAPI 액세스용 GitHub 토큰아니오
trigger_phrase사용자 정의 트리거 구문 (기본값: “@claude”)아니오
use_bedrockAnthropic API 대신 AWS Bedrock 사용아니오
use_vertexAnthropic API 대신 Google Vertex AI 사용아니오
*프롬프트는 선택사항 - 이슈/PR 댓글에서 생략하면 Claude가 트리거 구문에 응답
**직접 Anthropic API에는 필수, Bedrock/Vertex에는 불필요

claude_args 사용

claude_args 매개변수는 모든 Claude Code CLI 인수를 허용합니다:
claude_args: "--max-turns 5 --model claude-sonnet-4-20250514 --mcp-config /path/to/config.json"
일반적인 인수:
  • --max-turns: 최대 대화 턴 수 (기본값: 10)
  • --model: 사용할 모델 (예: claude-sonnet-4-20250514)
  • --mcp-config: MCP 구성 경로
  • --allowed-tools: 허용된 도구의 쉼표로 구분된 목록
  • --debug: 디버그 출력 활성화

대안적인 통합 방법

/install-github-app 명령이 권장 접근 방식이지만 다음과 같은 방법도 있습니다:
  • 사용자 정의 GitHub 앱: 브랜드 사용자 이름이나 사용자 정의 인증 플로우가 필요한 조직용. 필요한 권한(contents, issues, pull requests)으로 자체 GitHub 앱을 생성하고 워크플로우에서 토큰을 생성하기 위해 actions/create-github-app-token 액션을 사용하세요.
  • 수동 GitHub Actions: 최대 유연성을 위한 직접 워크플로우 구성
  • MCP 구성: Model Context Protocol 서버의 동적 로딩
자세한 문서는 Claude Code Action 저장소를 참조하세요.

Claude의 동작 사용자 정의

Claude의 동작을 두 가지 방법으로 구성할 수 있습니다:
  1. CLAUDE.md: 저장소 루트의 CLAUDE.md 파일에서 코딩 표준, 리뷰 기준, 프로젝트별 규칙을 정의하세요. Claude는 PR을 생성하고 요청에 응답할 때 이러한 가이드라인을 따릅니다. 자세한 내용은 Memory 문서를 확인하세요.
  2. 사용자 정의 프롬프트: 워크플로우 파일의 prompt 매개변수를 사용하여 워크플로우별 지침을 제공하세요. 이를 통해 다양한 워크플로우나 작업에 대해 Claude의 동작을 사용자 정의할 수 있습니다.
Claude는 PR을 생성하고 요청에 응답할 때 이러한 가이드라인을 따릅니다.