Claude Code GitHub Actions
Claude Code GitHub Actions를 사용하여 개발 워크플로우에 Claude Code를 통합하는 방법을 알아보세요
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
명령이 실패하거나 수동 설정을 선호하는 경우, 다음 수동 설정 지침을 따르세요:
- Claude GitHub 앱을 설치하세요: https://github.com/apps/claude
- ANTHROPIC_API_KEY를 저장소 시크릿에 추가하세요 (GitHub Actions에서 시크릿 사용 방법 알아보기)
- 워크플로우 파일을 복사하세요: examples/claude.yml에서 저장소의
.github/workflows/
로
빠른 시작 또는 수동 설정을 완료한 후, 이슈나 PR 댓글에서 @claude
를 태그하여
액션을 테스트하세요!
베타에서 업그레이드
Claude Code GitHub Actions v1.0은 베타 버전에서 v1.0으로 업그레이드하기 위해 워크플로우 파일을 업데이트해야 하는 중대한 변경사항을 도입합니다.
현재 Claude Code GitHub Actions의 베타 버전을 사용하고 있다면, GA 버전을 사용하도록 워크플로우를 업데이트하는 것을 권장합니다. 새 버전은 자동 모드 감지와 같은 강력한 새 기능을 추가하면서 구성을 단순화합니다.
필수 변경사항
모든 베타 사용자는 업그레이드하기 위해 워크플로우 파일에 다음 변경사항을 적용해야 합니다:
- 액션 버전 업데이트:
@beta
를@v1
로 변경 - 모드 구성 제거:
mode: "tag"
또는mode: "agent"
삭제 (이제 자동 감지됨) - 프롬프트 입력 업데이트:
direct_prompt
를prompt
로 교체 - CLI 옵션 이동:
max_turns
,model
,custom_instructions
등을claude_args
로 변환
중대한 변경사항 참조
이전 베타 입력 | 새로운 v1.0 입력 |
---|---|
mode | (제거됨 - 자동 감지) |
direct_prompt | prompt |
override_prompt | GitHub 변수가 포함된 prompt |
custom_instructions | claude_args: --system-prompt |
max_turns | claude_args: --max-turns |
model | claude_args: --model |
allowed_tools | claude_args: --allowedTools |
disallowed_tools | claude_args: --disallowedTools |
claude_env | settings JSON 형식 |
이전과 이후 예제
베타 버전:
GA 버전 (v1.0):
액션은 이제 구성에 따라 대화형 모드(@claude
멘션에 응답)에서 실행할지 자동화 모드(프롬프트와 함께 즉시 실행)에서 실행할지 자동으로 감지합니다.
사용 사례 예제
Claude Code GitHub Actions는 다양한 작업에 도움을 줄 수 있습니다. examples 디렉토리에는 다양한 시나리오에 대한 즉시 사용 가능한 워크플로우가 포함되어 있습니다.
기본 워크플로우
슬래시 명령 사용
프롬프트를 사용한 사용자 정의 자동화
일반적인 사용 사례
이슈나 PR 댓글에서:
Claude는 자동으로 컨텍스트를 분석하고 적절하게 응답합니다.
모범 사례
CLAUDE.md 구성
저장소 루트에 CLAUDE.md
파일을 생성하여 코드 스타일 가이드라인, 리뷰 기준, 프로젝트별 규칙, 선호하는 패턴을 정의하세요. 이 파일은 Claude가 프로젝트 표준을 이해하는 데 도움을 줍니다.
보안 고려사항
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은 통합된 매개변수로 구성을 단순화합니다:
주요 기능:
- 통합 프롬프트 인터페이스 - 모든 지침에
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의 경우:
- Vertex AI가 활성화된 Google Cloud 프로젝트
- GitHub Actions용으로 구성된 Workload Identity Federation
- 필요한 권한이 있는 서비스 계정
- GitHub 앱(권장) 또는 기본 GITHUB_TOKEN 사용
AWS Bedrock의 경우:
- Amazon Bedrock이 활성화된 AWS 계정
- AWS에서 구성된 GitHub OIDC Identity Provider
- Bedrock 권한이 있는 IAM 역할
- GitHub 앱(권장) 또는 기본 GITHUB_TOKEN 사용
사용자 정의 GitHub 앱 생성 (3P 공급자에게 권장)
Vertex AI나 Bedrock과 같은 3P 공급자를 사용할 때 최상의 제어와 보안을 위해 자체 GitHub 앱을 생성하는 것을 권장합니다:
- https://github.com/settings/apps/new로 이동
- 기본 정보를 입력:
- GitHub App name: 고유한 이름 선택 (예: “YourOrg Claude Assistant”)
- Homepage URL: 조직의 웹사이트 또는 저장소 URL
- 앱 설정 구성:
- Webhooks: “Active” 체크 해제 (이 통합에는 필요하지 않음)
- 필요한 권한 설정:
- Repository permissions:
- Contents: Read & Write
- Issues: Read & Write
- Pull requests: Read & Write
- Repository permissions:
- “Create GitHub App” 클릭
- 생성 후 “Generate a private key”를 클릭하고 다운로드된
.pem
파일을 저장 - 앱 설정 페이지에서 App ID를 기록
- 저장소에 앱 설치:
- 앱의 설정 페이지에서 왼쪽 사이드바의 “Install App” 클릭
- 계정 또는 조직 선택
- “Only select repositories”를 선택하고 특정 저장소 선택
- “Install” 클릭
- 개인 키를 저장소의 시크릿으로 추가:
- 저장소의 Settings → Secrets and variables → Actions로 이동
.pem
파일의 내용으로APP_PRIVATE_KEY
라는 새 시크릿 생성
- App ID를 시크릿으로 추가:
- GitHub 앱의 ID로
APP_ID
라는 새 시크릿 생성
이 앱은 워크플로우에서 인증 토큰을 생성하기 위해 actions/create-github-app-token 액션과 함께 사용됩니다.
Anthropic API 또는 자체 Github 앱을 설정하고 싶지 않은 경우의 대안: 공식 Anthropic 앱 사용:
- https://github.com/apps/claude에서 설치
- 인증을 위한 추가 구성 불필요
클라우드 공급자 인증 구성
클라우드 공급자를 선택하고 보안 인증을 설정하세요:
필수 시크릿 추가
저장소에 다음 시크릿을 추가하세요 (Settings → Secrets and variables → Actions):
Anthropic API (직접)의 경우:
-
API 인증용:
ANTHROPIC_API_KEY
: console.anthropic.com의 Anthropic API 키
-
GitHub 앱용 (자체 앱을 사용하는 경우):
APP_ID
: GitHub 앱의 IDAPP_PRIVATE_KEY
: 개인 키 (.pem) 내용
Google Cloud Vertex AI의 경우
-
GCP 인증용:
GCP_WORKLOAD_IDENTITY_PROVIDER
GCP_SERVICE_ACCOUNT
-
GitHub 앱용 (자체 앱을 사용하는 경우):
APP_ID
: GitHub 앱의 IDAPP_PRIVATE_KEY
: 개인 키 (.pem) 내용
AWS Bedrock의 경우
-
AWS 인증용:
AWS_ROLE_TO_ASSUME
-
GitHub 앱용 (자체 앱을 사용하는 경우):
APP_ID
: GitHub 앱의 IDAPP_PRIVATE_KEY
: 개인 키 (.pem) 내용
워크플로우 파일 생성
클라우드 공급자와 통합되는 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은 단순화된 구성을 사용합니다:
매개변수 | 설명 | 필수 |
---|---|---|
prompt | Claude를 위한 지침 (텍스트 또는 슬래시 명령) | 아니오* |
claude_args | Claude Code에 전달되는 CLI 인수 | 아니오 |
anthropic_api_key | Anthropic API 키 | 예** |
github_token | API 액세스용 GitHub 토큰 | 아니오 |
trigger_phrase | 사용자 정의 트리거 구문 (기본값: “@claude”) | 아니오 |
use_bedrock | Anthropic API 대신 AWS Bedrock 사용 | 아니오 |
use_vertex | Anthropic API 대신 Google Vertex AI 사용 | 아니오 |
*프롬프트는 선택사항 - 이슈/PR 댓글에서 생략하면 Claude가 트리거 구문에 응답
**직접 Anthropic API에는 필수, Bedrock/Vertex에는 불필요
claude_args 사용
claude_args
매개변수는 모든 Claude Code CLI 인수를 허용합니다:
일반적인 인수:
--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의 동작을 두 가지 방법으로 구성할 수 있습니다:
- CLAUDE.md: 저장소 루트의
CLAUDE.md
파일에서 코딩 표준, 리뷰 기준, 프로젝트별 규칙을 정의하세요. Claude는 PR을 생성하고 요청에 응답할 때 이러한 가이드라인을 따릅니다. 자세한 내용은 Memory 문서를 확인하세요. - 사용자 정의 프롬프트: 워크플로우 파일의
prompt
매개변수를 사용하여 워크플로우별 지침을 제공하세요. 이를 통해 다양한 워크플로우나 작업에 대해 Claude의 동작을 사용자 정의할 수 있습니다.
Claude는 PR을 생성하고 요청에 응답할 때 이러한 가이드라인을 따릅니다.