가이드
Claude Code GitHub Actions 설정: 이슈와 PR에서 @claude 사용하기
Claude Code GitHub Actions는 저장소의 워크플로 안에서 Claude Code를 실행하는 GitHub Action입니다. 풀 리퀘스트나 이슈 댓글에서 @claude를 멘션하면 Claude가 코드를 분석하고, 변경을 구현하고, 커밋을 푸시합니다. 이 글은 빠른 설정과 수동 설정, 기본 워크플로, 자주 쓰는 입력값, 누가 실행을 트리거할 수 있는지, 비용과 보안 유의점, 응답하지 않을 때 확인할 것을 단계별로 정리한 사용법입니다. Anthropic의 Claude Code GitHub Actions 문서를 따르며, 2026년 10월 30일에 해당 페이지와 대조해 확인했습니다.
- 빠른 설정: 연결하려는 저장소에서
claude를 열고/install-github-app을 실행한 뒤 안내를 따릅니다. github.com 저장소에서만 동작하며 저장소 관리자(admin) 권한이 필요합니다. - 수동 설정은 세 단계입니다. Claude GitHub App 설치,
ANTHROPIC_API_KEY또는CLAUDE_CODE_OAUTH_TOKEN시크릿 추가,examples/claude.yml을.github/workflows/에 복사. prompt입력이 없는 워크플로는 대화형 모드로 실행되어 댓글의@claude를 기다리고,prompt입력이 있는 워크플로는 멘션을 기다리지 않는 자동화 모드로 실행됩니다.- 자격 증명은 GitHub Secrets에만 보관하고 절대 커밋하지 마세요. 워크플로에는 필요한 권한만 주고, 병합 전에 Claude의 변경을 검토하세요.
- 실행마다 GitHub Actions 사용 시간과 API 토큰이 소모되며,
--max-turns, 타임아웃, 동시 실행 제어로 상한을 둘 수 있습니다.
무엇을 하는가
Claude Code GitHub Action은 저장소의 워크플로 안에서 Claude Code를 실행합니다. 풀 리퀘스트나 이슈 댓글에서 @claude를 멘션하면 Claude가 코드를 분석하고, 변경을 구현하고, 커밋을 푸시합니다. prompt를 지정해 어떤 GitHub 이벤트에서든 자동으로 실행하게 할 수도 있습니다. Anthropic이 나열한 용도는 이슈를 풀 리퀘스트로 바꾸기, 댓글만으로 버그 고치기, 반복 작업 자동화입니다.
Claude Code라는 이름을 쓰는 제품은 여러 가지입니다. 이 글은 저장소의 워크플로 파일로 설정하는 claude-code-action을 다룹니다. 워크플로를 작성하지 않고 모든 풀 리퀘스트에 자동 리뷰를 받고 싶다면, Anthropic의 페이지는 별도 제품인 Code Review를 안내합니다.
설정: 빠른 설정과 수동 설정
어느 쪽이든 저장소 관리자(admin) 권한이 필요합니다.
| 방법 | 할 일 | 언제 쓰나 |
|---|---|---|
| 빠른 설정 | Claude Code에서 /install-github-app을 실행합니다. Claude Code가 GitHub App을 설치하고, 인증 시크릿을 추가하며, 워크플로 풀 리퀘스트를 준비합니다. | Claude Code를 로컬에서 실행할 때. |
| 수동 설정 | 앱 설치, 시크릿 추가, 워크플로 파일 복사를 직접 합니다. | Claude Code를 로컬에서 실행하지 않을 때, 명령어가 실패할 때, 워크플로 파일을 완전히 직접 관리하고 싶을 때. |
빠른 설정
/install-github-app은 github.com 저장소에서만 동작합니다. 저장소의 git remote가 gitlab.com이나 bitbucket.org에 있으면 설정을 시작하지 않고 안내 메시지를 출력한 뒤 종료합니다.
- GitHub CLI를 설치하고
gh auth login으로 인증합니다. Claude Code가 설치 여부를 확인하고, 없으면 경고합니다. - 연결하려는 저장소에서
claude를 열고/install-github-app을 실행한 뒤 안내를 따릅니다. Claude Code가 Claude GitHub App을 설치한 다음, 워크플로용 인증 시크릿을 설정합니다. - 시크릿을 고르는 방식: Claude Code에 이미 API 키가 있으면 그 키를 재사용하고, 저장소에
ANTHROPIC_API_KEY시크릿이 이미 있으면 그것을 유지할지 묻습니다. 그렇지 않으면 Claude 구독으로 장기 토큰을 만들지, API 키를 붙여넣을지 선택합니다. - Claude Code가 자격 증명을 저장소 시크릿으로 저장합니다. 이름은 API 키면
ANTHROPIC_API_KEY, 구독 토큰이면CLAUDE_CODE_OAUTH_TOKEN입니다. - Claude Code가 선택한 워크플로 파일(해당 시크릿을 쓰도록 이미 설정됨)을 브랜치로 푸시하고, 풀 리퀘스트를 바로 만들 수 있는 상태로 브라우저에서 GitHub를 엽니다. 그 풀 리퀘스트를 만들어 병합하면 저장소에서
@claude가 동작합니다.
중간에 멈추려면 Esc를 누릅니다. 진행 중인 단계는 끝까지 실행되고 이후 단계는 시작되지 않습니다. 마지막 메시지에는 푸시된 브랜치나 저장된 시크릿처럼 저장소에서 이미 일어난 일이 나열됩니다. GitHub App을 설치한 뒤 Claude Code는 GitHub Actions 설정을 계속할지 묻습니다. Skip for now를 선택하면 GitHub App만 설치된 상태로 멈추며, 나중에 /install-github-app을 다시 실행해 워크플로와 시크릿 단계를 마칠 수 있습니다.
리뷰 워크플로를 선택하면 Claude는 각 리뷰를 풀 리퀘스트 자체에 게시합니다. 문제를 찾으면 각 문제에 인라인 댓글을 달고, 찾지 못하면 요약 댓글 하나를 남깁니다. 초안(draft) 같은 일부 풀 리퀘스트는 건너뜁니다. v2.1.229 이전에는 Claude가 리뷰를 워크플로 실행 로그에만 기록했습니다.
이전 버전이 생성한 리뷰 워크플로를 업데이트하려면 다음 중 하나를 하세요.
/install-github-app을 다시 실행합니다. 저장소에 이미claude.yml이 있으면 Update workflow file with latest version을 선택합니다. Claude Code가 최신 워크플로 파일을 새 브랜치에 푸시하고 처음 설치할 때와 똑같이 풀 리퀘스트를 엽니다.- 아래 리뷰 워크플로 예시의
--comment인자와claude_args줄을 커밋된 파일에 직접 추가합니다. 이 방법은 파일에 가한 다른 수정을 그대로 유지합니다.
Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry를 사용한다면 Anthropic의 페이지가 별도 문서인 Use Claude Code GitHub Actions with cloud providers로 안내합니다.
수동 설정
1. Claude GitHub App 설치. Claude GitHub App을 저장소에 설치합니다. 이 Action은 앱 권한 중 세 가지를 사용합니다.
- Contents: 읽기 및 쓰기. Claude가 저장소 파일을 수정할 수 있게 합니다.
- Issues: 읽기 및 쓰기. Claude가 이슈에 응답할 수 있게 합니다.
- Pull requests: 읽기 및 쓰기. Claude가 PR을 만들고 변경을 푸시할 수 있게 합니다.
설치 중에는 다른 Claude 기능이 사용하는 권한도 함께 부여합니다. 전체 목록은 아래 "GitHub App 권한"에 있습니다.
2. 인증 시크릿 추가. 인증 방식에 따라 다음 시크릿 중 하나를 저장소에 추가합니다. GitHub의 안내서는 using secrets in GitHub Actions입니다.
ANTHROPIC_API_KEY: Claude Console에서 발급한 Claude API 키.CLAUDE_CODE_OAUTH_TOKEN: Claude 구독으로 인증하는 OAuth 토큰. Pro, Max, Team, Enterprise 요금제에서 사용할 수 있습니다. 로컬에서claude setup-token을 실행해 생성합니다.
워크플로 파일에서는 시크릿을 해당 입력에 전달합니다. API 키는 anthropic_api_key, OAuth 토큰은 claude_code_oauth_token입니다.
3. 워크플로 파일 복사. examples/claude.yml을 저장소의 .github/workflows/ 디렉터리에 복사합니다. 이 파일은 예시일 뿐 아니라 실제로 동작하는 워크플로입니다. 커밋한 그대로라면 누군가 이슈나 풀 리퀘스트에서 @claude를 멘션할 때마다 Claude가 응답하며, ANTHROPIC_API_KEY 시크릿으로 인증합니다. 대신 CLAUDE_CODE_OAUTH_TOKEN을 추가했다면 워크플로의 anthropic_api_key 줄을 claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}으로 바꾸세요.
설정 후에는 이슈나 PR 댓글에서 @claude를 태그해 테스트하세요.
조직에 설정하기
빠른 설정과 수동 설정은 한 번에 저장소 하나를 설정합니다. 조직 전체에 Action을 배포하려면 다음과 같이 합니다.
- Claude GitHub App을 조직 수준에서 한 번 설치하고, 모든 저장소 또는 선택한 목록을 고릅니다.
- 인증 시크릿을 조직 수준 Actions 시크릿으로 저장하면 저장소마다 사본을 둘 필요가 없습니다.
- Action을 실행할 각 저장소에 워크플로 파일을 추가하거나, 잡을 한 번만 재사용 가능한 워크플로(reusable workflow)로 정의해 각 저장소에서 호출하게 합니다.
여러 저장소가 공유하는 시크릿에는 OAuth 토큰이 아니라 Claude Console의 API 키로 인증하세요. OAuth 토큰은 claude setup-token을 실행한 사람의 구독에 묶여 있기 때문입니다. 장기 시크릿을 아예 보관하지 않으려면 workload identity federation을 사용합니다. 이 Action이 워크플로의 GitHub OIDC 토큰을 Claude Console 서비스 계정을 통해 Claude API 접근 권한으로 교환합니다. 입력값은 anthropic_federation_rule_id, anthropic_organization_id, 그리고 선택 사항인 anthropic_service_account_id와 anthropic_workspace_id이며, 워크플로에는 id-token: write 권한이 필요합니다. Console 쪽 설정은 Action의 설정 가이드에 있습니다.
GitHub App 권한
Claude GitHub App은 이 Action, Code Review, 클라우드 세션의 풀 리퀘스트 auto-fix를 비롯해 GitHub와 연동되는 모든 Claude 기능이 공유합니다. GitHub App에는 권한 집합이 하나뿐이므로 이 Action이 쓰지 않는 권한도 일부 포함됩니다. 앱을 설치할 때 다음을 부여합니다.
| 권한 | 접근 수준 |
|---|---|
| Actions | 읽기 및 쓰기 |
| Administration | 읽기 |
| Checks | 읽기 및 쓰기 |
| Contents | 읽기 및 쓰기 |
| Discussions | 읽기 및 쓰기 |
| Issues | 읽기 및 쓰기 |
| Members | 읽기 |
| Merge queues | 읽기 |
| Metadata | 읽기 |
| Pull requests | 읽기 및 쓰기 |
| Repository hooks | 읽기 및 쓰기 |
| Statuses | 읽기 |
| Workflows | 읽기 및 쓰기 |
앱을 설치한다는 것은 전체 권한 집합을 수락한다는 뜻이며, GitHub는 일부만 수락하는 것을 허용하지 않습니다. 조직에서 이 Action이 사용하는 권한만 요구한다면, Action의 설정 가이드를 따라 Contents, Issues, Pull requests 권한만 가진 커스텀 GitHub App을 만드세요. 커스텀 앱은 이 Action만 지원합니다. Code Review와 웹 auto-fix는 여전히 공식 앱이 필요합니다.
기본 워크플로: @claude에 응답하기
이 워크플로는 Action을 대화형 모드로 실행하므로, 누군가 이슈나 PR 댓글에서 @claude를 멘션할 때마다 Claude가 응답합니다.
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
jobs:
claude:
if: contains(github.event.comment.body, '@claude')
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
actions: read
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
이 워크플로에서 보일러플레이트가 아닌 부분은 다음과 같습니다.
id-token: write: Action의 기본 GitHub App 인증에 필요합니다.actions: read: Claude가 PR의 CI 결과를 읽을 수 있게 합니다.actions/checkout: Claude가 작업할 저장소의 로컬 사본을 제공합니다.if:@claude를 멘션하지 않은 댓글에서 러너가 시작되지 않게 합니다. Action도 응답하기 전에 트리거 문구를 직접 확인합니다.
워크플로를 갖췄다면 어떤 이슈나 PR 댓글에서든 @claude를 멘션하고 요청을 적으세요.
@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는 같은 이슈나 PR의 댓글로 답하고, 작업하면서 그 댓글을 업데이트합니다.
대화형 모드, 자동화 모드, 그리고 누가 실행을 트리거할 수 있는가
Action은 워크플로 설정을 보고 실행 방식을 판단합니다.
- 대화형 모드: 워크플로에
prompt입력이 없으면, Claude는 이슈나 풀 리퀘스트 댓글, 풀 리퀘스트 리뷰, 또는 새로 열린 이슈의 본문이나 제목에서 트리거 문구(기본값@claude)를 기다렸다가 그 요청에 응답합니다. 진행 상황과 결과는 트리거한 이슈나 PR의 댓글로 나타납니다. - 자동화 모드: 워크플로에
prompt입력이 있으면, Claude는 멘션을 기다리지 않고 아래 검사만 거쳐 실행됩니다. 기본적으로 결과는 댓글이 아니라 워크플로 실행 로그에 나타납니다. 프롬프트가 지시하고 게시할 수 있는 도구가 있다면 Claude가 이슈나 풀 리퀘스트에 게시할 수 있습니다.
두 모드 모두 Claude가 시작되기 전에 Action이 트리거한 행위자에 대해 두 가지 검사를 하며, 둘 중 하나라도 거부하면 실행이 실패합니다.
- 쓰기 권한: 이슈와 풀 리퀘스트 이벤트에서는 트리거한 사용자에게 저장소 쓰기 권한이 있어야 합니다. 쓰기 권한이 없는 특정 사용자를 허용하려면
allowed_non_write_users를 설정하고 직접 만든github_token입력을 전달하세요.schedule트리거처럼 어떤 사용자도 작성하지 않은 이벤트는 이 검사를 건너뜁니다. - 사람 행위자: 모든 이벤트에서 Action은 봇 행위자를 거부합니다.
allowed_bots에 나열한 경우는 예외이며, 이는 봇이 Claude를 무한 루프로 트리거하는 것을 막아 줍니다. 이 검사는 예약 실행에도 적용되며, GitHub는 예약 실행을 저장소 사용자(보통 워크플로의cron일정을 마지막으로 바꾼 사용자)에게 귀속시킵니다. 그 사용자가 봇이라면allowed_bots에 나열하세요.
자주 쓰는 입력값
가장 많이 쓰는 입력값입니다. 각 항목은 anthropics/claude-code-action 스텝의 with: 키에 대응합니다.
| 파라미터 | 설명 | 필수 |
|---|---|---|
prompt | Claude에 대한 지시. 일반 텍스트 또는 skill 호출. 생략하면 Claude는 대신 트리거 문구에 응답합니다. | 아니요 |
claude_args | Claude Code에 전달하는 CLI 인자. | 아니요 |
anthropic_api_key | Claude API 키. | Claude API 사용 시 필요하며, claude_code_oauth_token이나 workload identity federation을 쓰면 불필요합니다. Bedrock, Agent Platform, Foundry에서는 사용하지 않습니다. |
claude_code_oauth_token | Claude 구독으로 인증하는 OAuth 토큰. claude setup-token으로 생성합니다. | 아니요 |
github_token | GitHub 작업용 토큰. 생략하면 Action이 Claude GitHub App으로 인증합니다. | 아니요 |
plugin_marketplaces | 플러그인 마켓플레이스 Git URL 목록(줄바꿈으로 구분). | 아니요 |
plugins | 실행 전에 설치할 플러그인 이름 목록(줄바꿈으로 구분). | 아니요 |
settings | Claude Code 설정. JSON 문자열 또는 설정 JSON 파일 경로. | 아니요 |
trigger_phrase | Claude가 응답하는 트리거 문구. 기본값: @claude. | 아니요 |
use_bedrock | Claude API 대신 Amazon Bedrock을 사용합니다. | 아니요 |
use_vertex | Claude API 대신 Google Cloud의 Agent Platform을 사용합니다. | 아니요 |
use_foundry | Claude API 대신 Microsoft Foundry를 사용합니다. | 아니요 |
전체 입력값 목록은 Action의 설정 레퍼런스를 참고하세요.
claude_args로 CLI 인자 전달하기
claude_args 파라미터는 모든 Claude Code CLI 인자를 받습니다.
claude_args: "--max-turns 5 --model claude-sonnet-5 --mcp-config /path/to/config.json"
자주 쓰는 인자:
--max-turns: 대화 턴 수를 제한합니다.--model: 사용할 모델. 예:claude-sonnet-5. 이 인자가 없으면 Action은 Claude Code 기본 모델을 사용합니다.--mcp-config: MCP 설정 경로.--allowedTools: 허용할 도구를 쉼표로 구분한 목록.--allowed-tools별칭도 동작합니다.--debug: 디버그 출력을 켭니다.
추가 워크플로 예시
examples 디렉터리에는 여러 시나리오용 바로 쓸 수 있는 워크플로가 있습니다. 이 글의 예시는 API 키 인증을 보여 줍니다. Claude 구독으로 인증한다면 어느 예시든 anthropic_api_key 줄을 claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}으로 바꾸세요.
풀 리퀘스트 자동 리뷰 (skill 실행)
prompt 입력은 일반 텍스트뿐 아니라 skill 호출도 받습니다.
- 저장소의
.claude/skills/디렉터리에 있는 skill이라면,anthropics/claude-code-action스텝보다 앞에서actions/checkout을 실행해 러너에서 skill 파일을 쓸 수 있게 한 뒤/skill-name을prompt로 전달합니다. - 플러그인에 포함된 skill이라면
plugin_marketplaces와plugins입력으로 플러그인을 설치한 뒤, 네임스페이스가 붙은/plugin-name:skill-name을prompt로 전달합니다.plugins입력은plugin-name@marketplace-name을 받으며, 마켓플레이스 이름은 저장소 URL이 아니라 마켓플레이스 자체의 매니페스트에서 가져옵니다.
다음 워크플로는 code-review 플러그인을 설치하고, 풀 리퀘스트가 열리거나 업데이트되거나 다시 열리거나 리뷰 준비 상태로 바뀔 때 그 skill을 실행합니다. 빠른 설정의 리뷰 워크플로와 같은 플러그인을 실행합니다. 프롬프트, 모델, 트리거를 직접 제어하고 싶을 때 이런 워크플로를 쓰세요. 공개 저장소에서는 GitHub가 포크 풀 리퀘스트로 트리거된 실행에 시크릿을 제공하지 않으므로, 리뷰는 같은 저장소의 브랜치에서 온 풀 리퀘스트에서만 실행됩니다.
name: Code Review
on:
pull_request:
types: [opened, synchronize, ready_for_review, reopened]
jobs:
review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
plugin_marketplaces: "https://github.com/anthropics/claude-plugins-official.git"
plugins: "code-review@claude-plugins-official"
prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'
이 워크플로의 두 줄이 리뷰가 어디로 가는지를 결정합니다.
--comment: Claude가 리뷰를 풀 리퀘스트에 게시합니다. 문제를 찾으면 각 문제에 인라인 댓글을 달고, 찾지 못하면 요약 댓글 하나를 남깁니다. 이 인자가 없으면 Claude는 아무것도 게시하지 않으며, 결과는 워크플로 실행 로그에서 읽어야 합니다.claude_args: skill 자체의allowed-toolsfrontmatter가 같은 도구를 명시하더라도 이 줄은 유지하세요. 인라인 댓글을 게시하는 MCP 서버는claude_args의--allowedTools에 명시되어 있을 때만 Action이 시작하기 때문입니다.
Claude는 초안(draft) 및 닫힌 풀 리퀘스트, 자동 생성되었거나 사소한 것처럼 리뷰가 필요 없다고 판단한 풀 리퀘스트, 이미 Claude의 댓글이 있는 풀 리퀘스트를 건너뜁니다.
일정에 맞춰 실행하기
prompt 입력이 있으면 Action은 cron 일정을 포함한 모든 GitHub 이벤트에서 자동화 모드로 실행됩니다. 일반 텍스트 프롬프트에서는 프롬프트에 필요한 도구를 claude_args의 --allowedTools나 settings 입력의 permissions.allow 규칙으로 부여하기 전까지 Claude가 셸이나 GitHub API에 접근할 수 없습니다. 대신 skill을 호출한다면 Claude는 그 skill의 allowed-tools frontmatter가 부여한 도구를 쓸 수 있습니다. GitHub는 예약 워크플로를 기본 브랜치에서만 실행하며, 공개 저장소에서는 저장소 활동이 없는 채로 60일이 지나면 일정을 비활성화합니다.
이 워크플로는 매일 09:00 UTC에 워크플로 실행 로그에 리포트를 생성합니다. claude_args 줄이 모델을 선택하고 GitHub MCP 도구 두 개를 허용합니다. Claude가 그 도구로 GitHub API를 통해 커밋과 이슈를 읽으므로 checkout 스텝은 생략할 수 있습니다.
name: Daily Report
on:
schedule:
- cron: "0 9 * * *"
jobs:
report:
runs-on: ubuntu-latest
permissions:
contents: read
issues: read
id-token: write
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-5-5
--allowedTools "mcp__github__list_commits,mcp__github__list_issues"
CLAUDE.md로 프로젝트 표준 정의하기
저장소 루트에 CLAUDE.md 파일을 만들어 코드 스타일 가이드라인, 리뷰 기준, 프로젝트별 규칙, 선호하는 패턴을 정의하세요. Claude는 PR을 만들고 요청에 응답할 때 이 가이드라인을 따릅니다. 작성 방법은 CLAUDE.md 설정에서 다룹니다.
보안: 자격 증명과 권한
경고: API 키나 OAuth 토큰을 저장소에 직접 커밋하지 마세요. 항상 GitHub Secrets로 저장하고 워크플로에서 참조하세요. 예: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}.
- 워크플로에는 필요한 권한만 부여하고, 병합하기 전에 Claude의 변경을 검토하세요.
- 장기 시크릿을 저장하지 않고 인증하려면 위에서 설명한 workload identity federation을 사용하세요.
- 시크릿을 삭제해도 그 안에 담겨 있던 자격 증명이 무효화되지는 않습니다. API 키를 완전히 폐기하려면 Claude Console에서도 키를 삭제하세요.
- 권한과 인증을 포함한 보안 가이드는 Claude Code Action 보안 문서를 참고하세요. 데이터 처리와 보관에 대해서는 Anthropic이 자사의 데이터 사용 및 보안 페이지를 안내합니다.
도구가 할 수 있는 일을 제어하는 Claude Code의 메커니즘은 권한 모드와 hooks를 참고하세요.
비용과 사용량
실행할 때마다 두 종류의 자원이 소모됩니다.
- GitHub Actions 사용 시간: Action은 GitHub 호스팅 러너에서 실행되며 GitHub Actions 사용 시간을 소모합니다. 요금과 사용 시간 한도는 GitHub의 결제 문서를 참고하세요.
- API 토큰: 상호작용마다 프롬프트와 응답의 길이, 작업의 복잡도, 코드베이스 크기에 따라 토큰이 소모됩니다. 현재 토큰 요금은 Claude 요금 페이지를 참고하세요. OAuth 토큰으로 인증하면 실행은 API 과금 대신 Claude 구독을 사용합니다.
Claude에게 더 명확한 컨텍스트를 주고 실행당 작업량에 상한을 두면 두 종류의 비용을 모두 낮출 수 있습니다.
- Claude가 더 적은 턴으로 끝낼 수 있도록 구체적인
@claude요청을 작성하세요. - 이슈 템플릿으로 컨텍스트를 미리 제공하세요.
- Claude는 실행할 때마다
CLAUDE.md를 읽으므로 간결하게 유지하세요. claude_args에--max-turns를 설정해 반복 횟수를 제한하세요.- 워크플로 수준 타임아웃을 설정해 폭주하는 잡을 막으세요.
- GitHub의 동시 실행(concurrency) 제어로 병렬 실행을 제한하세요.
문제 해결
Claude가 @claude 명령에 응답하지 않을 때
- 저장소에 GitHub App이 설치되어 있는지 확인하세요.
- 저장소에서 워크플로가 활성화되어 있는지 확인하세요.
- API 키나 OAuth 토큰이 저장소 시크릿에 설정되어 있는지 확인하세요.
- 댓글에
/claude나@claude-bot이 아니라@claude가 완전한 단어로 들어 있는지 확인하세요. - 댓글을 단 사용자에게 저장소 쓰기 권한이 있는지 확인하세요. 예외는 위의 "누가 실행을 트리거할 수 있는가"를 참고하세요.
Claude의 커밋에서 CI가 실행되지 않을 때
- GitHub는 기본
GITHUB_TOKEN으로 만든 커밋에서는 워크플로를 트리거하지 않습니다. Action에github_token: ${{ secrets.GITHUB_TOKEN }}을 전달했다면 제거해서 Claude GitHub App으로 인증하게 하거나, 대신 커스텀 앱 토큰을 전달하세요. - CI 워크플로의 트리거에 Claude의 푸시가 만드는 이벤트(
push,pull_request등)가 포함되어 있는지 확인하세요.
인증 오류
- 워크플로를 디버깅하기 전에 로컬에서
claude로 테스트해 API 키나 OAuth 토큰이 유효한지 확인하세요. - Bedrock, Agent Platform, Foundry는 클라우드 제공자 페이지의 문제 해결 섹션을 참고하세요.
더 많은 해결 방법은 Action의 FAQ를 참고하세요.
제거와 베타에서 업그레이드
- 워크플로 파일:
.github/workflows/에서anthropics/claude-code-action을 사용하는 워크플로를 삭제하세요. 빠른 설정을 썼다면claude.yml을, 리뷰 워크플로를 선택했다면claude-code-review.yml도 찾아 보세요. - 시크릿: 저장소에서
ANTHROPIC_API_KEY또는CLAUDE_CODE_OAUTH_TOKEN시크릿을 삭제하세요. 여러 저장소가 공유했다면 조직 수준 Actions 시크릿에서도 삭제하세요. - GitHub App: 저장소 또는 조직 설정의 GitHub Apps에서 Claude GitHub App을 제거하세요. 단, Code Review나 웹 auto-fix 같은 다른 Claude 기능에 쓰지 않을 때만 제거하세요.
- 워크플로가 아직
anthropics/claude-code-action@beta를 참조한다면 v1로 업데이트하세요.uses줄의@beta를@v1으로 바꾸고, Action이 이제 모드를 자동으로 감지하므로mode입력을 제거하고,direct_prompt를prompt로 바꾸고,max_turns와model같은 CLI 옵션은claude_args로 옮기세요.
FAQ
@claude를 멘션했는데 아무 일도 일어나지 않습니다. 무엇부터 확인해야 하나요?
이 순서로 확인하세요. 저장소에 GitHub App이 설치되어 있는지, 워크플로가 활성화되어 있는지, 저장소 시크릿에 API 키나 OAuth 토큰이 설정되어 있는지, 댓글에서 @claude가 완전한 단어인지(/claude나 @claude-bot이 아닌지), 댓글을 단 사용자에게 쓰기 권한이 있는지. 봇 행위자는 allowed_bots에 나열하지 않으면 거부됩니다.
API 키와 OAuth 토큰 중 무엇을 써야 하나요?
둘 다 가능합니다. ANTHROPIC_API_KEY는 Claude Console API 키이고, CLAUDE_CODE_OAUTH_TOKEN은 Pro, Max, Team, Enterprise 요금제의 Claude 구독으로 인증합니다. OAuth 토큰을 쓰면 실행은 API 과금 대신 구독을 사용합니다. 조직의 여러 저장소가 공유하는 시크릿에는 Anthropic의 페이지가 API 키를 쓰라고 안내합니다. OAuth 토큰은 claude setup-token을 실행한 사람의 구독에 묶여 있기 때문입니다.
이 Action을 릴레이나 커스텀 base URL로 향하게 할 수 있나요?
Anthropic의 페이지에는 커스텀 base URL이나 게이트웨이 옵션이 문서화되어 있지 않으므로, 이 글은 그에 대해 아무 주장도 하지 않습니다. 페이지는 두 가지 경로를 설명합니다. 기본적으로 Claude API를 직접 호출하는 방식(API 키 또는 OAuth 토큰)과, use_bedrock, use_vertex, use_foundry로 본인의 클라우드 계정을 거치는 방식입니다. 본인 컴퓨터에 Claude Code 자체를 설정하는 방법은 Claude Code 설정에 있습니다.
출처
- Claude Code GitHub Actions (설정, 워크플로 예시, 입력값, 권한, 비용, 문제 해결, 2026년 10월 30일 확인)