@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 앱을 설치하고 시크릿을 추가하려면 저장소 관리자여야 합니다
- GitHub 앱은 Contents, Issues 및 Pull requests에 대한 읽기 및 쓰기 권한을 요청합니다
- 이 빠른 시작 방법은 직접 Claude API 사용자만 사용할 수 있습니다. AWS Bedrock 또는 Google Vertex AI를 사용 중인 경우 AWS Bedrock & Google Vertex AI 사용 섹션을 참조하세요.
수동 설정
/install-github-app 명령이 실패하거나 수동 설정을 선호하는 경우 다음 수동 설정 지침을 따르세요:
-
Claude GitHub 앱을 저장소에 설치합니다: https://github.com/apps/claude
Claude GitHub 앱에는 다음 저장소 권한이 필요합니다:
- Contents: 읽기 및 쓰기 (저장소 파일 수정)
- Issues: 읽기 및 쓰기 (이슈에 응답)
- Pull requests: 읽기 및 쓰기 (PR 생성 및 변경 사항 푸시)
- ANTHROPIC_API_KEY를 저장소 시크릿에 추가합니다 (GitHub Actions에서 시크릿을 사용하는 방법 알아보기)
-
워크플로우 파일을 복사합니다 examples/claude.yml에서 저장소의
.github/workflows/로
빠른 시작 또는 수동 설정을 완료한 후 이슈 또는 PR 댓글에서
@claude를 태그하여 작업을 테스트하세요!베타에서 업그레이드
Claude Code GitHub Actions v1.0은 베타 버전에서 v1.0으로 업그레이드하기 위해 워크플로우 파일을 업데이트해야 하는 주요 변경 사항을 도입합니다.
필수 변경 사항
모든 베타 사용자는 업그레이드하기 위해 워크플로우 파일에 다음 변경 사항을 적용해야 합니다:- 작업 버전 업데이트:
@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 | prompt (GitHub 변수 포함) |
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 형식 |
이전 및 이후 예제
베타 버전:작업은 이제 구성에 따라 대화형 모드 (
@claude 언급에 응답) 또는 자동화 모드 (프롬프트로 즉시 실행)에서 실행할지 자동으로 감지합니다.예제 사용 사례
Claude Code GitHub Actions는 다양한 작업에 도움이 될 수 있습니다. 예제 디렉토리에는 다양한 시나리오에 대한 즉시 사용 가능한 워크플로우가 포함되어 있습니다.기본 워크플로우
슬래시 명령 사용
프롬프트를 사용한 사용자 정의 자동화
일반적인 사용 사례
이슈 또는 PR 댓글에서:모범 사례
CLAUDE.md 구성
저장소 루트에CLAUDE.md 파일을 생성하여 코드 스타일 지침, 검토 기준, 프로젝트별 규칙 및 선호하는 패턴을 정의합니다. 이 파일은 Claude의 프로젝트 표준 이해를 안내합니다.
보안 고려 사항
API 키를 저장소에 직접 커밋하지 마세요!
- API 키를
ANTHROPIC_API_KEY라는 저장소 시크릿으로 추가합니다 - 워크플로우에서 참조합니다:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} - 작업 권한을 필요한 것으로만 제한합니다
- 병합하기 전에 Claude의 제안을 검토합니다
${{ secrets.ANTHROPIC_API_KEY }})를 사용하고 워크플로우 파일에 API 키를 직접 하드코딩하지 마세요.
성능 최적화
이슈 템플릿을 사용하여 컨텍스트를 제공하고,CLAUDE.md를 간결하고 집중된 상태로 유지하고, 워크플로우에 적절한 타임아웃을 구성합니다.
CI 비용
Claude Code GitHub Actions를 사용할 때 관련 비용을 주의하세요: GitHub Actions 비용:- Claude Code는 GitHub 호스팅 러너에서 실행되며, 이는 GitHub Actions 분을 소비합니다
- 자세한 가격 책정 및 분 제한은 GitHub의 청구 설명서를 참조하세요
- 각 Claude 상호 작용은 프롬프트 및 응답의 길이에 따라 API 토큰을 소비합니다
- 토큰 사용량은 작업 복잡도 및 코드베이스 크기에 따라 다릅니다
- 현재 토큰 요금은 Claude의 가격 책정 페이지를 참조하세요
- 특정
@claude명령을 사용하여 불필요한 API 호출을 줄입니다 claude_args에서 적절한--max-turns를 구성하여 과도한 반복을 방지합니다- 워크플로우 수준 타임아웃을 설정하여 실행 중인 작업을 방지합니다
- GitHub의 동시성 제어를 사용하여 병렬 실행을 제한하는 것을 고려합니다
구성 예제
Claude Code Action v1은 통합 매개변수로 구성을 단순화합니다:- 통합 프롬프트 인터페이스 - 모든 지침에
prompt사용 - 슬래시 명령 -
/review또는/fix와 같은 사전 구축된 프롬프트 - CLI 통과 -
claude_args를 통한 모든 Claude Code CLI 인수 - 유연한 트리거 - 모든 GitHub 이벤트와 함께 작동
이슈 또는 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 사용
1
사용자 정의 GitHub 앱 생성 (3P 공급자에 권장)
Vertex AI 또는 Bedrock과 같은 3P 공급자를 사용할 때 최상의 제어 및 보안을 위해 자신의 GitHub 앱을 생성하는 것을 권장합니다:Claude API의 경우 또는 자신의 Github 앱을 설정하지 않으려는 경우의 대안: 공식 Anthropic 앱을 사용합니다:
- https://github.com/settings/apps/new로 이동합니다
- 기본 정보를 입력합니다:
- GitHub 앱 이름: 고유한 이름을 선택합니다 (예: “YourOrg Claude Assistant”)
- 홈페이지 URL: 조직의 웹사이트 또는 저장소 URL
- 앱 설정을 구성합니다:
- Webhooks: “Active” 선택 해제 (이 통합에는 필요하지 않음)
- 필수 권한을 설정합니다:
- 저장소 권한:
- Contents: 읽기 및 쓰기
- Issues: 읽기 및 쓰기
- Pull requests: 읽기 및 쓰기
- 저장소 권한:
- “GitHub 앱 생성”을 클릭합니다
- 생성 후 “개인 키 생성”을 클릭하고 다운로드한
.pem파일을 저장합니다 - 앱 설정 페이지에서 앱 ID를 기록합니다
- 저장소에 앱을 설치합니다:
- 앱의 설정 페이지에서 왼쪽 사이드바의 “앱 설치”를 클릭합니다
- 계정 또는 조직을 선택합니다
- “선택한 저장소만”을 선택하고 특정 저장소를 선택합니다
- “설치”를 클릭합니다
- 개인 키를 저장소 시크릿으로 추가합니다:
- 저장소의 설정 → 시크릿 및 변수 → Actions로 이동합니다
.pem파일의 내용으로APP_PRIVATE_KEY라는 새 시크릿을 생성합니다
- 앱 ID를 시크릿으로 추가합니다:
- GitHub 앱의 ID로
APP_ID라는 새 시크릿을 생성합니다
이 앱은 actions/create-github-app-token 작업과 함께 사용되어 워크플로우에서 인증 토큰을 생성합니다.
- 다음에서 설치합니다: https://github.com/apps/claude
- 인증을 위한 추가 구성이 필요하지 않습니다
2
클라우드 공급자 인증 구성
클라우드 공급자를 선택하고 안전한 인증을 설정합니다:
AWS Bedrock
AWS Bedrock
GitHub Actions가 자격 증명을 저장하지 않고 안전하게 인증할 수 있도록 AWS를 구성합니다.자세한 OIDC 설정 지침은 AWS 설명서를 참조하세요.
보안 참고: 저장소별 구성을 사용하고 필요한 최소 권한만 부여합니다.필수 설정:
-
Amazon Bedrock 활성화:
- Amazon Bedrock에서 Claude 모델에 대한 액세스 요청
- 교차 지역 모델의 경우 모든 필수 지역에서 액세스 요청
-
GitHub OIDC Identity Provider 설정:
- 공급자 URL:
https://token.actions.githubusercontent.com - 대상:
sts.amazonaws.com
- 공급자 URL:
-
GitHub Actions용 IAM 역할 생성:
- 신뢰할 수 있는 엔티티 유형: 웹 ID
- ID 공급자:
token.actions.githubusercontent.com - 권한:
AmazonBedrockFullAccess정책 - 특정 저장소에 대한 신뢰 정책 구성
- AWS_ROLE_TO_ASSUME: 생성한 IAM 역할의 ARN
OIDC는 정적 AWS 액세스 키를 사용하는 것보다 더 안전합니다. 자격 증명이 임시이고 자동으로 회전되기 때문입니다.
Google Vertex AI
Google Vertex AI
GitHub Actions가 자격 증명을 저장하지 않고 안전하게 인증할 수 있도록 Google Cloud를 구성합니다.자세한 설정 지침은 Google Cloud Workload Identity Federation 설명서를 참조하세요.
보안 참고: 저장소별 구성을 사용하고 필요한 최소 권한만 부여합니다.필수 설정:
-
Google Cloud 프로젝트에서 API 활성화:
- IAM Credentials API
- Security Token Service (STS) API
- Vertex AI API
-
Workload Identity Federation 리소스 생성:
- Workload Identity Pool 생성
- 다음을 사용하여 GitHub OIDC 공급자 추가:
- 발급자:
https://token.actions.githubusercontent.com - 저장소 및 소유자에 대한 속성 매핑
- 보안 권장: 저장소별 속성 조건 사용
- 발급자:
-
서비스 계정 생성:
Vertex AI User역할만 부여- 보안 권장: 저장소당 전용 서비스 계정 생성
-
IAM 바인딩 구성:
- Workload Identity Pool이 서비스 계정을 가장하도록 허용
- 보안 권장: 저장소별 주체 집합 사용
- GCP_WORKLOAD_IDENTITY_PROVIDER: 전체 공급자 리소스 이름
- GCP_SERVICE_ACCOUNT: 서비스 계정 이메일 주소
Workload Identity Federation은 다운로드 가능한 서비스 계정 키의 필요성을 제거하여 보안을 개선합니다.
3
필수 시크릿 추가
저장소에 다음 시크릿을 추가합니다 (설정 → 시크릿 및 변수 → Actions):
Claude API (직접)의 경우:
-
API 인증의 경우:
ANTHROPIC_API_KEY: console.anthropic.com의 Claude API 키
-
GitHub 앱 (자신의 앱을 사용하는 경우)의 경우:
APP_ID: GitHub 앱의 IDAPP_PRIVATE_KEY: 개인 키 (.pem) 내용
Google Cloud Vertex AI의 경우
-
GCP 인증의 경우:
GCP_WORKLOAD_IDENTITY_PROVIDERGCP_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) 내용
4
워크플로우 파일 생성
클라우드 공급자와 통합되는 GitHub Actions 워크플로우 파일을 생성합니다. 아래 예제는 AWS Bedrock 및 Google Vertex AI 모두에 대한 완전한 구성을 보여줍니다:
AWS Bedrock 워크플로우
AWS Bedrock 워크플로우
전제 조건:
- Claude 모델 권한이 있는 AWS Bedrock 액세스 활성화
- AWS에서 OIDC ID 공급자로 구성된 GitHub
- GitHub Actions를 신뢰하는 Bedrock 권한이 있는 IAM 역할
| 시크릿 이름 | 설명 |
|---|---|
AWS_ROLE_TO_ASSUME | Bedrock 액세스용 IAM 역할의 ARN |
APP_ID | GitHub 앱 ID (앱 설정에서) |
APP_PRIVATE_KEY | GitHub 앱에 대해 생성한 개인 키 |
Bedrock의 모델 ID 형식에는 지역 접두사 (예:
us.anthropic.claude...) 및 버전 접미사가 포함됩니다.Google Vertex AI 워크플로우
Google Vertex AI 워크플로우
전제 조건:
- GCP 프로젝트에서 Vertex AI API 활성화
- GitHub에 대해 구성된 Workload Identity Federation
- Vertex AI 권한이 있는 서비스 계정
| 시크릿 이름 | 설명 |
|---|---|
GCP_WORKLOAD_IDENTITY_PROVIDER | Workload Identity Provider 리소스 이름 |
GCP_SERVICE_ACCOUNT | Vertex AI 액세스 권한이 있는 서비스 계정 이메일 |
APP_ID | GitHub 앱 ID (앱 설정에서) |
APP_PRIVATE_KEY | GitHub 앱에 대해 생성한 개인 키 |
프로젝트 ID는 Google Cloud 인증 단계에서 자동으로 검색되므로 하드코딩할 필요가 없습니다.
문제 해결
Claude가 @claude 명령에 응답하지 않음
GitHub 앱이 올바르게 설치되었는지 확인하고, 워크플로우가 활성화되었는지 확인하고, API 키가 저장소 시크릿에 설정되었는지 확인하고, 댓글에@claude (not /claude)가 포함되어 있는지 확인합니다.
Claude의 커밋에서 CI가 실행되지 않음
Actions 사용자가 아닌 GitHub 앱 또는 사용자 정의 앱을 사용하고 있는지 확인하고, 워크플로우 트리거에 필요한 이벤트가 포함되어 있는지 확인하고, 앱 권한에 CI 트리거가 포함되어 있는지 확인합니다.인증 오류
API 키가 유효하고 충분한 권한이 있는지 확인합니다. Bedrock/Vertex의 경우 자격 증명 구성을 확인하고 시크릿이 워크플로우에서 올바르게 명명되었는지 확인합니다.고급 구성
작업 매개변수
Claude Code Action v1은 단순화된 구성을 사용합니다:| 매개변수 | 설명 | 필수 |
|---|---|---|
prompt | Claude에 대한 지침 (텍스트 또는 슬래시 명령) | 아니오* |
claude_args | Claude Code에 전달된 CLI 인수 | 아니오 |
anthropic_api_key | Claude API 키 | 예** |
github_token | API 액세스용 GitHub 토큰 | 아니오 |
trigger_phrase | 사용자 정의 트리거 구문 (기본값: “@claude”) | 아니오 |
use_bedrock | Claude API 대신 AWS Bedrock 사용 | 아니오 |
use_vertex | Claude API 대신 Google Vertex AI 사용 | 아니오 |
**직접 Claude API에 필수이며, Bedrock/Vertex에는 필수가 아닙니다
claude_args 사용
claude_args 매개변수는 모든 Claude Code CLI 인수를 허용합니다:
--max-turns: 최대 대화 턴 (기본값: 10)--model: 사용할 모델 (예:claude-sonnet-4-5-20250929)--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의 동작 사용자 정의
두 가지 방법으로 Claude의 동작을 구성할 수 있습니다:- CLAUDE.md: 저장소 루트에
CLAUDE.md파일에서 코딩 표준, 검토 기준 및 프로젝트별 규칙을 정의합니다. Claude는 PR을 생성하고 요청에 응답할 때 이러한 지침을 따릅니다. 자세한 내용은 Memory 설명서를 확인하세요. - 사용자 정의 프롬프트: 워크플로우 파일의
prompt매개변수를 사용하여 워크플로우별 지침을 제공합니다. 이를 통해 다양한 워크플로우 또는 작업에 대해 Claude의 동작을 사용자 정의할 수 있습니다.