본문으로 건너뛰기
개발자 리소스
개발자 리소스

Claude Code GitHub Actions

RunAPI 시크릿, 모델, 권한, 트리거, 최소 워크플로로 Claude Code GitHub Actions를 구성합니다.

개요

공식 anthropics/claude-code-action은 GitHub Actions 워크플로에서 Claude Code를 실행합니다. 이 가이드는 RunAPI 키를 GitHub Secret으로 저장하고, 민감하지 않은 Base URL을 Claude Code 설정에 지정하며, 모델을 선택하고, 승인된 @claude 댓글에 응답합니다.

시작하기 전에

  • Claude GitHub App을 설치하고, Actions 시크릿을 생성하며, 워크플로우를 추가하려면 리포지토리 관리자 권한이 필요합니다.
  • 인증 가이드에서 표준 RunAPI API 키를 생성하십시오.
  • 모델 카탈로그에서 Anthropic Messages를 지원하는 모델 식별자를 복사하십시오.
  • Claude Code GitHub Actions 설정과 조직의 워크플로우 정책을 검토하십시오.

설치

대상 저장소의 Claude Code에서 /install-github-app을 실행하고 프롬프트에 따라 GitHub App을 설치하세요. Anthropic 자격 증명을 생성하라는 메시지가 나타나면 저장하기 전에 중단하세요. 이 가이드에서는 RunAPI 저장소 또는 조직 시크릿을 대신 사용합니다.

Claude GitHub App을 설치한 후 아래 워크플로우를 .github/workflows/claude.yml에 추가하세요.

RunAPI 구성

RUNAPI_API_KEY라는 저장소 또는 조직 Actions 시크릿을 만듭니다. 이를 action의 secret 입력을 통해서만 전달합니다:

YAML
anthropic_api_key: ${{ secrets.RUNAPI_API_KEY }}

워크플로우 파일이나 액션의 settings JSON에 키를 넣지 마세요. 액션은 설정을 별도로 처리하며, 민감하지 않은 Base URL만 해당 위치에 속합니다.

다음의 최소 대화형 워크플로는 새 이슈 및 풀 리퀘스트 리뷰 댓글을 수신합니다:

YAML
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.RUNAPI_API_KEY }}
          settings: |
            {
              "env": {
                "ANTHROPIC_BASE_URL": "https://runapi.ai"
              }
            }
          claude_args: "--model YOUR_RUNAPI_MODEL_ID"

시크릿

GitHub은 포크 풀 리퀘스트 또는 Dependabot 이벤트로 트리거된 워크플로에는 일반 Actions 시크릿을 전달하지 않습니다. 실행에 자격 증명이 없는 경우, RunAPI 키를 교체하기 전에 이벤트 소스를 확인하세요. 저장소 및 조직 범위에 대해서는 GitHub의 Actions 시크릿 가이드를 사용하세요.

권한

  • contents: write는 액션이 코드 변경 사항을 커밋할 수 있도록 합니다.
  • pull-requests: writeissues: write는 트리거된 대화를 읽고 답변할 수 있도록 합니다.
  • id-token: write는 액션의 기본 GitHub App 인증을 지원합니다.
  • actions: read는 워크플로우 결과를 검사할 수 있도록 합니다.

write-all 대신 이 명시적 권한을 사용하세요. 워크플로에 필요하지 않은 기능은 제거하세요.

트리거 이벤트

issue_comment는 이슈 및 풀 리퀘스트 대화의 댓글을 포함하며, pull_request_review_comment는 diff 줄에 대한 댓글을 포함합니다. issue_comment가 워크플로를 트리거하려면 기본 브랜치에 워크플로 파일이 존재해야 합니다. 또한 이 액션은 실행을 시작한 사람을 확인합니다. 공식 보안 동작을 권위 있는 참조로 사용하세요.

모델 선택

claude_argsYOUR_RUNAPI_MODEL_ID모델 카탈로그의 정확한 식별자로 교체하세요. settings.env 외부에서 모델을 선택하면 워크플로우에서 선택한 모델이 액션 설정에 표시됩니다.

확인

  1. 값을 출력하지 않고 RUNAPI_API_KEY 시크릿이 존재하는지 확인하십시오.
  2. 워크플로우를 기본 브랜치에 병합하고 Actions가 활성화되어 있는지 확인하십시오.
  3. 리포지토리 쓰기 권한이 있는 계정에서 이슈 댓글에 @claude describe this repository in one sentence를 추가하십시오.
  4. 워크플로우 실행을 열고, 액션이 성공하는지 확인하며, Claude가 동일한 이슈에 답변하는지 검증하십시오.

문제 해결

  • 워크플로가 시작되지 않음: 파일이 기본 브랜치에 있는지, 댓글 이벤트가 일치하는지, Actions가 활성화되어 있는지 확인하세요.
  • 작업이 건너뛰어짐: 댓글에 @claude가 포함되어 있고 작성자에게 필요한 저장소 접근 권한이 있는지 확인하세요.
  • 인증 실패: 워크플로가 secrets.RUNAPI_API_KEY를 참조하는지 확인하고, 필요하면 인증 가이드를 통해 키를 교체하세요.
  • 포크 풀 리퀘스트가 키를 사용할 수 없음: GitHub는 의도적으로 포크에서 트리거된 실행에서 일반 시크릿을 제공하지 않습니다. 시크릿을 리터럴 값으로 대체하지 마세요.
  • 모델을 사용할 수 없음: Model Catalog에서 정확한 식별자를 복사하세요.
  • Claude의 커밋이 다른 워크플로를 시작하지 않음: 공식 액션의 GitHub token troubleshooting을 검토하세요.

다음 단계

프로토콜 동작은 LLM API quickstart를, 요청 필드는 Anthropic Messages API Reference를 참조하세요. 더 많은 트리거와 액션 입력은 공식 예제구성 레퍼런스를 사용하세요.