@claude를 멘션하여 Claude가 코드를 분석하고, 변경 사항을 구현하고, 커밋을 푸시하도록 합니다. Claude Code GitHub Action에 프롬프트를 제공하여 모든 GitHub 이벤트에서 자동으로 실행되도록 할 수도 있습니다. 이슈를 풀 리퀘스트로 변환하거나, 댓글에서 버그를 수정하거나, 반복되는 작업을 자동화하는 데 사용합니다.
여러 제품이 Claude Code 이름을 공유합니다. 이 페이지는 저장소의 워크플로우 파일로 구성하는 claude-code-action 워크플로우 통합을 다룹니다. 관련 제품의 경우 다음을 참조하십시오:
- Code Review: 워크플로우를 작성하지 않고 모든 풀 리퀘스트에서 자동 리뷰
- 클라우드의 Claude Code: 클라우드 인프라에서 실행되는 Claude Code 세션
- Claude Agent SDK: GitHub Actions 외부의 사용자 정의 자동화. Claude Code GitHub Action은 SDK를 기반으로 구축됩니다
- GitHub Enterprise Server: 자체 호스팅 GitHub를 사용한 Claude Code
설정
Claude Code GitHub Action은 다음 두 가지 방법 중 하나로 설정할 수 있습니다.- 빠른 설정: Claude Code에서
/install-github-app을 실행합니다. Claude Code가 GitHub App을 설치하고, 인증 시크릿을 추가하고, 워크플로 풀 리퀘스트를 준비합니다 - 수동 설정: 앱을 설치하고, 시크릿을 추가하고, 워크플로 파일을 저장소에 직접 복사합니다. 로컬에서 Claude Code를 실행하지 않는 경우, 명령이 실패하는 경우, 또는 워크플로 파일을 완전히 제어하려는 경우에 이 방법을 사용합니다
빠른 설정
/install-github-app은 github.com 저장소에서만 작동합니다. 저장소의 git remote가 gitlab.com 또는 bitbucket.org에 있는 경우, 이 명령은 설정을 시작하는 대신 안내 메시지를 출력하고 종료됩니다. GitLab 파이프라인에서 Claude Code를 실행하려면 Claude Code GitLab CI/CD를 참조하세요.
시작하기 전에 GitHub CLI를 설치하고 gh auth login으로 인증합니다. Claude Code는 GitHub CLI가 있는지 확인하고, 없으면 경고를 표시합니다.
연결하려는 저장소에서 claude를 열고 /install-github-app을 실행한 다음 안내를 따릅니다. Claude Code는 Claude GitHub App을 설치한 다음 워크플로용 인증 시크릿을 설정합니다.
- Claude Code에 이미 API 키가 있으면 해당 키를 재사용하며, 저장소에
ANTHROPIC_API_KEY시크릿이 이미 설정되어 있으면 이를 유지할지 묻습니다 - 그렇지 않으면 Claude 구독으로 장기 토큰을 생성할지, API 키를 붙여 넣을지 선택합니다
ANTHROPIC_API_KEY, 구독 토큰의 경우 CLAUDE_CODE_OAUTH_TOKEN이라는 이름을 사용합니다.
그런 다음 Claude Code는 선택한 워크플로 파일이 포함된 브랜치를 푸시하고(해당 시크릿을 사용하도록 이미 설정됨), 풀 리퀘스트를 생성할 준비가 된 상태로 브라우저에서 GitHub를 엽니다. 해당 풀 리퀘스트를 생성하고 병합하면 저장소에서 @claude가 작동합니다.
설정 도중에 중단하려면 Esc를 누릅니다. 이미 진행 중인 단계는 완료되고, 이후 단계는 시작되지 않습니다. 종료 메시지에는 푸시된 브랜치나 저장된 시크릿 등 저장소에서 이미 수행된 작업이 나열됩니다.
리뷰 워크플로를 선택하면 Claude는 각 리뷰를 풀 리퀘스트 자체에 게시합니다. 발견한 각 이슈에 대해 인라인 코멘트로 게시하거나, 아무것도 발견하지 못한 경우 하나의 요약 코멘트로 게시합니다. Claude는 초안 등 일부 풀 리퀘스트를 건너뜁니다. 리뷰 워크플로 예제는 동일한 스킬을 사용하며 해당 풀 리퀘스트 유형을 나열합니다. v2.1.229 이전에는 Claude가 리뷰를 워크플로 실행 로그에만 기록했습니다.
이전 버전에서 생성된 리뷰 워크플로를 업데이트하려면 다음 중 하나를 수행합니다.
/install-github-app을 다시 실행합니다. 저장소에 이미claude.yml이 있으면 Update workflow file with latest version을 선택합니다. Claude Code는 최초 설치와 마찬가지로 워크플로 파일의 새 사본을 새 브랜치에 푸시하고 풀 리퀘스트를 엽니다.- 리뷰 워크플로 예제의
--comment인수와claude_args줄을 체크인된 파일에 직접 추가합니다. 이 방법을 사용하면 파일에 적용한 다른 수정 사항이 유지됩니다.
/install-github-app을 다시 실행하여 워크플로 및 시크릿 단계를 완료할 수 있습니다.
- GitHub App을 설치하면 여러 권한을 부여하게 됩니다. 전체 권한 목록은 GitHub App 권한을 참조하세요
- 빠른 설정은 Claude API 및 Claude 구독과 함께 작동합니다. Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry를 사용하는 경우 클라우드 제공업체와 함께 Claude Code GitHub Actions 사용하기를 참조하세요
수동 설정
/install-github-app을 실행하지 않고 Claude Code GitHub Action을 구성하려면 앱을 설치하고, 시크릿을 추가하고, 워크플로 파일을 직접 복사합니다.
1
Claude GitHub App 설치
저장소에 Claude GitHub App을 설치합니다. Claude Code GitHub Action은 앱의 다음 세 가지 권한을 사용합니다.
- Contents: 읽기 및 쓰기. Claude가 저장소 파일을 수정할 수 있습니다
- Issues: 읽기 및 쓰기. Claude가 이슈에 응답할 수 있습니다
- Pull requests: 읽기 및 쓰기. Claude가 PR을 생성하고 변경 사항을 푸시할 수 있습니다
2
인증 시크릿 추가
인증 방식에 따라 다음 시크릿 중 하나를 저장소에 추가합니다. GitHub의 GitHub Actions에서 시크릿 사용하기 가이드를 참조하세요.
ANTHROPIC_API_KEY: Claude Console에서 발급한 Claude API 키CLAUDE_CODE_OAUTH_TOKEN: Claude 구독으로 인증하는 OAuth 토큰으로, Pro, Max, Ultra, Team, Enterprise 플랜에서 사용할 수 있습니다. 로컬에서claude setup-token을 실행하여 생성합니다. 장기 토큰 생성하기를 참조하세요
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 }}으로 변경합니다.조직 단위로 설정하기
빠른 설정이나 수동 설정에서는 한 번에 하나의 저장소를 구성합니다. 조직 전체에 Claude Code GitHub Action을 배포하려면 다음을 수행합니다.- 조직 수준에서 Claude GitHub App을 한 번 설치하고, 모든 저장소 또는 선택한 저장소 목록을 지정합니다
- 각 저장소에 별도의 사본이 필요하지 않도록 인증 시크릿을 조직 수준 Actions 시크릿으로 저장합니다
- Claude Code GitHub Action을 실행할 각 저장소에 워크플로 파일을 추가하거나, 각 저장소가 호출하는 재사용 가능한 워크플로로 작업을 한 번 정의합니다
claude setup-token을 실행한 사람의 구독에 연결되기 때문입니다.
장기 시크릿을 아예 저장하지 않으려면 워크로드 ID 페더레이션을 통해 인증합니다. 이 방식에서는 Claude Code GitHub Action이 워크플로의 GitHub OpenID Connect(OIDC) 토큰을 Claude Console 서비스 계정을 통해 Claude API 액세스로 교환합니다. 다음 입력을 설정합니다.
anthropic_federation_rule_id: 페더레이션 규칙 ID,fdrl_...anthropic_organization_id: Anthropic 조직 IDanthropic_service_account_id: 서비스 계정 ID,svac_.... Console에서 생성하는 페더레이션 규칙이 이미 서비스 계정을 대상으로 하므로 선택 사항입니다anthropic_workspace_id: 워크스페이스 ID,wrkspc_.... 페더레이션 규칙이 단일 워크스페이스를 대상으로 하는 경우 선택 사항입니다
id-token: write 권한을 부여합니다. 자체 github_token을 전달하는 경우에도 Claude Code GitHub Action은 페더레이션 교환에 이 권한이 필요합니다. Console 측 구성은 Claude Code GitHub Action 설정 가이드를 참조하세요.
보안 검토에서 데이터 처리 및 보존에 관한 질문은 데이터 사용 및 보안을 참조하세요.
제거
Claude Code GitHub Action을 제거하려면 설치 환경에 해당하는 각 설정 요소를 되돌립니다.- 워크플로 파일:
.github/workflows/에서anthropics/claude-code-action을 사용하는 워크플로를 삭제합니다. 빠른 설정을 사용했다면claude.yml을 찾고, 리뷰 워크플로를 선택했다면claude-code-review.yml도 찾습니다. 워크플로를 삭제하면 Claude Code GitHub Action이 더 이상 실행되지 않습니다 - 시크릿: 저장소에서
ANTHROPIC_API_KEY또는CLAUDE_CODE_OAUTH_TOKEN시크릿을 삭제하고, 여러 저장소에서 공유한 경우 조직 수준 Actions 시크릿에서도 삭제합니다. 시크릿을 삭제해도 그 안에 있던 자격 증명은 유효한 상태로 남습니다. API 키를 완전히 폐기하려면 Claude Console에서도 키를 삭제합니다 - GitHub App: 저장소 또는 조직 설정의 GitHub Apps에서 Claude GitHub App을 제거합니다. 단, Code Review나 웹 자동 수정 등 다른 Claude 기능에 사용하지 않는 경우에만 제거합니다
AWS_ROLE_TO_ASSUME, GCP_* 시크릿, AZURE_* 시크릿 등 제공업체 시크릿도 삭제하고, 커스텀 GitHub App과 함께 해당 APP_ID 및 APP_PRIVATE_KEY 시크릿도 제거합니다.
GitHub App 권한
Claude GitHub App은 Claude Code GitHub Action, Code Review, 클라우드 세션의 풀 리퀘스트 자동 수정 등 GitHub와 통합되는 모든 Claude 기능에서 공유됩니다. GitHub App에는 모든 기능을 포괄하는 단일 권한 세트가 있으므로, 이 세트에는 Claude Code GitHub Action이 사용하지 않는 일부 권한도 포함됩니다. 앱을 설치하면 다음 권한을 부여하게 됩니다.
권한 세트는 이를 사용하는 기능보다 먼저 변경될 수도 있습니다. 앱이 이전에 없던 권한을 요청하면 GitHub는 계정 소유자(조직 설치의 경우 조직 소유자)에게 승인을 요청하며, 승인될 때까지 설치는 기존 권한을 유지합니다. 예를 들어 Actions 액세스가 읽기에서 쓰기로 변경되면 앱은 실행과 로그를 보는 것뿐만 아니라 워크플로를 다시 실행할 수 있게 되므로, GitHub는 소유자에게 변경 승인을 요청합니다.
앱을 설치하면 전체 권한 세트를 수락하게 됩니다. GitHub에서는 일부만 수락할 수 없습니다. 조직에서 Claude Code GitHub Action이 사용하는 권한만 허용해야 하는 경우, Claude Code GitHub Action 설정 가이드에 따라 Contents, Issues, Pull requests 권한만 가진 커스텀 GitHub App을 대신 생성합니다. 커스텀 앱은 Claude Code GitHub Action만 지원합니다. Code Review와 웹 자동 수정에는 여전히 공식 앱이 필요합니다.
Claude Code GitHub Action이 이러한 권한으로 Claude가 수행할 수 있는 작업을 어떻게 제한하는지에 대한 자세한 내용은 보안 문서를 참조하세요.
대화형 및 자동화 모드
Claude Code GitHub Action은 워크플로우 구성에서 실행 방법을 감지합니다:- 대화형 모드: 워크플로우가
prompt입력을 제공하지 않으면 Claude는 트리거 구문인@claude(기본값)를 이슈나 풀 리퀘스트 댓글, 풀 리퀨스트 리뷰 또는 새로 열린 이슈의 본문이나 제목에서 기다린 후 해당 요청에 응답합니다. 진행 상황과 결과는 트리거 이슈나 PR의 댓글로 나타납니다. - 자동화 모드: 워크플로우가
prompt입력을 제공하면 Claude는 실행을 트리거할 수 있는 사람에 대한 확인만 받아 대기 없이 실행됩니다. 기본적으로 결과는 댓글이 아닌 워크플로우 실행 로그에 나타납니다. Claude는 프롬프트가 지시할 때 그리고 코드 리뷰 예제와 같이 게시할 수 있는 도구가 있을 때 이슈나 풀 리퀘스트에 게시할 수 있습니다.
실행을 트리거할 수 있는 사람
두 모드 모두에서 Claude Code GitHub Action은 Claude가 시작하기 전에 트리거 행위자에 대해 두 가지 확인을 실행합니다. 어느 확인이든 거부하면 실행이 실패합니다:- 쓰기 액세스: 이슈 및 풀 리퀘스트 이벤트에서 트리거 사용자는 저장소에 대한 쓰기 액세스 권한이 있어야 합니다. 쓰기 액세스 없이 특정 사용자를 허용하려면
allowed_non_write_users를 설정하고 자신의github_token입력을 전달합니다.schedule트리거와 같이 사용자가 작성하지 않은 이벤트는 이 확인을 건너뜁니다. - 인간 행위자: 모든 이벤트에서 Claude Code GitHub Action은
allowed_bots에 나열하지 않는 한 봇 행위자를 거부합니다. 이는 봇이 루프에서 Claude를 트리거하는 것을 방지합니다. 이 확인은 GitHub가 저장소 사용자(일반적으로 워크플로우의cron일정을 마지막으로 변경한 사용자)에 귀속시키는 예약된 실행에도 적용됩니다. 해당 사용자가 봇이면allowed_bots에 나열합니다.
예제 사용 사례
examples 디렉토리에는 다양한 시나리오에 대한 즉시 사용 가능한 워크플로우가 포함되어 있습니다. 이 페이지의 예제는 API 키 인증을 보여줍니다. Claude 구독으로 인증하는 경우 모든 예제의anthropic_api_key 줄을 claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}으로 바꿉니다.
@claude 멘션에 응답
이 워크플로우는 Claude Code GitHub Action을 대화형 모드에서 실행합니다. Claude는 누군가 이슈나 PR 댓글에서@claude를 멘션할 때마다 응답합니다.
id-token: write: Claude Code GitHub Action의 기본 GitHub App 인증에 필요합니다actions: read: Claude가 PR에서 CI 결과를 읽을 수 있게 합니다actions/checkout: Claude에게 작업할 저장소의 로컬 복사본을 제공합니다if:@claude를 멘션하지 않는 댓글에서 러너가 시작되지 않도록 합니다. Claude Code GitHub Action도 응답하기 전에 트리거 구문 자체를 확인합니다
@claude를 멘션하고 요청을 합니다:
스킬 실행
prompt 입력은 일반 텍스트뿐만 아니라 스킬 호출도 허용합니다:
- 저장소의
.claude/skills/디렉토리에 있는 스킬의 경우anthropics/claude-code-action단계 전에actions/checkout을 실행하여 스킬 파일을 러너에서 사용할 수 있게 한 후/skill-name을prompt로 전달합니다. - 플러그인에 패키징된 스킬의 경우
plugin_marketplaces및plugins입력으로 플러그인을 설치한 후 네임스페이스가 지정된/plugin-name:skill-name을prompt로 전달합니다.plugins입력은plugin-name@marketplace-name을 사용합니다. 마켓플레이스 이름은 저장소 URL이 아닌 마켓플레이스 자체의 매니페스트에서 나옵니다.
code-review 플러그인을 설치하고 풀 리퀘스트가 열리거나, 업데이트되거나, 다시 열리거나, 리뷰 준비로 표시될 때 해당 스킬을 실행합니다. 빠른 설정의 리뷰 워크플로우와 동일한 플러그인을 실행합니다. 프롬프트, 모델 및 트리거를 직접 제어하려는 경우 이와 같은 워크플로우를 사용합니다. 워크플로우 파일을 유지하지 않고 자동 리뷰의 경우 Code Review를 참조하십시오. 공개 저장소에서 GitHub는 포크 풀 리퀘스트로 트리거된 실행에서 시크릿을 보류하므로 리뷰는 동일한 저장소의 브랜치에서 풀 리퀘스트에서만 실행됩니다.
--comment: Claude가 풀 리퀘스트에 리뷰를 게시합니다. 발견한 각 이슈에 대한 인라인 댓글로 또는 발견하지 못한 경우 하나의 요약 댓글로 게시합니다. 없으면 Claude는 아무것도 게시하지 않으며 워크플로우 실행 로그에서 결과를 읽습니다.claude_args: 스킬 자체의allowed-toolsfrontmatter가 동일한 도구를 명명하더라도 이 줄을 유지합니다. Claude Code GitHub Action이claude_args의--allowedTools가 이를 명명할 때만 인라인 댓글을 게시하는 MCP 서버를 시작하기 때문입니다.
일정에 따라 실행
prompt 입력으로 Claude Code GitHub Action은 cron 일정을 포함한 모든 GitHub 이벤트에서 자동화 모드에서 실행됩니다. 일반 텍스트 프롬프트의 경우 Claude는 프롬프트가 필요로 하는 도구에 대해 claude_args의 --allowedTools 또는 settings 입력의 permissions.allow 규칙으로 도구를 부여할 때까지 셸이나 GitHub API 액세스 권한이 없습니다. 대신 스킬을 호출하면 Claude는 allowed-tools frontmatter가 부여하는 도구를 사용할 수 있습니다. GitHub는 예약된 워크플로우를 기본 브랜치에서만 실행하며, 공개 저장소에서는 저장소 활동이 60일 없으면 일정을 비활성화합니다.
이 워크플로우는 매일 09:00 UTC에 워크플로우 실행 로그에서 보고서를 생성합니다. 해당 claude_args 줄은 CLI 인수를 전달하여 모델을 선택하고 두 개의 GitHub MCP 도구를 허용합니다. Claude가 해당 도구로 GitHub API를 통해 커밋과 이슈를 읽으므로 체크아웃 단계를 생략할 수 있습니다:
모범 사례
CLAUDE.md에서 프로젝트 표준 정의
저장소 루트에CLAUDE.md 파일을 생성하여 코드 스타일 지침, 리뷰 기준, 프로젝트별 규칙 및 선호하는 패턴을 정의합니다. Claude는 PR을 생성하고 요청에 응답할 때 이러한 지침을 따릅니다. 자세한 내용은 메모리 설명서를 참조하십시오.
자격 증명 보호
워크플로우에 필요한 권한만 부여하고 병합하기 전에 Claude의 변경 사항을 검토합니다. 권한 및 인증을 포함한 보안 지침은 Claude Code Action 보안 설명서를 참조하십시오.비용 관리
각 실행은 두 가지 종류의 리소스를 소비합니다:- GitHub Actions 분: Claude Code GitHub Action은 GitHub 호스팅 러너에서 실행되며, GitHub Actions 분을 소비합니다. 가격 책정 및 분 제한은 GitHub의 청구 설명서를 참조하십시오.
- API 토큰: 각 상호 작용은 프롬프트 및 응답의 길이, 작업 복잡도 및 코드베이스 크기에 따라 토큰을 소비합니다. 현재 토큰 요금은 Claude의 가격 책정 페이지를 참조하십시오. OAuth 토큰으로 인증하면 실행이 API 청구 대신 Claude 구독을 사용합니다.
- 특정
@claude요청을 작성하여 Claude가 완료하는 데 더 적은 턴이 필요하도록 합니다 - 이슈 템플릿을 사용하여 미리 컨텍스트를 제공합니다
CLAUDE.md를 간결하게 유지합니다. Claude가 모든 실행에서 이를 읽기 때문입니다claude_args에서--max-turns를 설정하여 반복을 제한합니다- 워크플로우 수준 타임아웃을 설정하여 실행 중인 작업을 방지합니다
- GitHub의 동시성 제어를 사용하여 병렬 실행을 제한합니다
클라우드 공급자 사용
기본적으로 Claude Code GitHub Action은 API 키나 OAuth 토큰으로 Claude API를 직접 호출합니다. 대신 자신의 클라우드 계정을 통해 추론을 라우팅하려면 공급자에 대한 입력을 설정하고 클라우드 공급자와 함께 Claude Code GitHub Actions 사용을 따릅니다:- Amazon Bedrock:
use_bedrock: "true" - Google Cloud의 Agent Platform:
use_vertex: "true" - Microsoft Foundry:
use_foundry: "true"
문제 해결
Claude가 @claude 명령에 응답하지 않음
- GitHub App이 저장소에 설치되었는지 확인합니다
- 저장소에 대해 워크플로우가 활성화되었는지 확인합니다
- API 키나 OAuth 토큰이 저장소 시크릿에 설정되었는지 확인합니다
- 댓글에
/claude나@claude-bot이 아닌 완전한 단어로@claude가 포함되어 있는지 확인합니다 - 댓글 작성자가 저장소에 대한 쓰기 액세스 권한이 있는지 확인합니다. 실행을 트리거할 수 있는 사람에서 예외를 참조하십시오
Claude의 커밋에서 CI가 실행되지 않음
- GitHub는 기본
GITHUB_TOKEN으로 만든 커밋에서 워크플로우를 트리거하지 않습니다. Claude Code GitHub Action에github_token: ${{ secrets.GITHUB_TOKEN }}을 전달하면 Claude GitHub App으로 인증하도록 제거하거나 대신 사용자 정의 앱 토큰을 전달합니다 - CI 워크플로우의 트리거에 Claude의 푸시가 생성하는 이벤트(예:
push또는pull_request)가 포함되어 있는지 확인합니다
인증 오류
- 워크플로우를 디버깅하기 전에 로컬에서
claude로 테스트하여 API 키나 OAuth 토큰이 유효한지 확인합니다 - Bedrock, Agent Platform 및 Foundry의 경우 클라우드 공급자 페이지의 문제 해결 섹션을 참조하십시오
고급 구성
작업 파라미터
이는 가장 일반적으로 사용되는 입력입니다. 각각은anthropics/claude-code-action 단계의 with: 키에 매핑됩니다.
전체 입력 목록은 Claude Code GitHub Action의 구성 참조를 참조하십시오.
CLI 인수 전달
claude_args 파라미터는 모든 Claude Code CLI 인수를 허용합니다:
--max-turns: 대화 턴 수 제한--model: 사용할 모델. 예:claude-sonnet-5. 이 인수 없으면 Claude Code GitHub Action이 Claude Code 기본 모델을 사용합니다--mcp-config: MCP 구성 경로--allowedTools: 허용된 도구의 쉼표로 구분된 목록.--allowed-tools별칭도 작동합니다--debug: 디버그 출력 활성화
베타에서 업그레이드
워크플로우가 여전히anthropics/claude-code-action@beta를 참조하면 v1로 업데이트합니다:
uses줄에서@beta를@v1로 변경합니다mode입력을 제거합니다. Claude Code GitHub Action이 이제 모드를 자동으로 감지하기 때문입니다direct_prompt를prompt로 바꿉니다max_turns및model과 같은 CLI 옵션을claude_args로 이동합니다.custom_instructions는 같은 이름의 플래그가 없으며--append-system-prompt가 됩니다
다음 단계
- 클라우드 공급자와 함께 Claude Code GitHub Actions 사용: Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry를 통해 추론을 라우팅합니다
- 구성 참조: 작업 입력의 전체 목록
- Examples 디렉토리: 더 많은 시나리오에 대한 즉시 사용 가능한 워크플로우
- Code Review: 워크플로우 파일을 유지하지 않고 자동 풀 리퀘스트 리뷰