Claude API를 활용한 지능형 AI 코드 리뷰 GitHub Action입니다. Pull Request와 Push 이벤트에서 자동으로 코드를 분석하고 개선 사항을 제안합니다.
- 🤖 AI 기반 코드 리뷰: Claude AI가 코드 품질, 버그, 보안 취약점 등을 자동 검토
- 🌍 다국어 지원: 한국어, 영어, 일본어, 중국어 리뷰 지원
- 🎯 맞춤형 리뷰: 전체, 보안, 성능, 스타일 등 다양한 리뷰 타입 선택 가능
- 📊 상세한 리포트: 심각도별 분류, 파일별 상세 리뷰, 개선 제안 포함
- 💬 GitHub 통합: PR 댓글 자동 작성 (안정성 개선)
- ⚡ 고성능: 병렬 처리로 2-3배 빠른 리뷰 속도 (v1.0.1+)
- 🔧 유연한 설정: 파일당 이슈 개수 동적 조절 가능 (v1.0.2+)
## 🤖 Claude AI 코드 리뷰
**리뷰 타입:** 🔍 full
**검토한 파일:** 3개
**발견된 이슈:** 12개
### 📋 리뷰 요약
| 심각도 | 개수 | 설명 |
|--------|------|------|
| 🔴 **Critical** | 2 | 즉시 수정이 필요한 심각한 문제 |
| 🟠 **High** | 4 | 중요한 문제, 빠른 수정 권장 |
| 🟡 **Medium** | 6 | 일반적인 개선 사항 |
### 📁 파일별 상세 리뷰
... (상세한 이슈 목록)- Anthropic Console에 접속
- API Keys 섹션에서 새 API 키 생성
- 생성된 키를 안전하게 보관
- GitHub 리포지토리의 Settings → Secrets and variables → Actions로 이동
- "New repository secret" 클릭
- Name:
ANTHROPIC_API_KEY, Value: 발급받은 API 키 입력 - "Add secret" 클릭
.github/workflows/code-review.yml 파일을 생성하고 다음 내용을 추가:
name: AI Code Review
on:
pull_request:
types: [ opened, synchronize ]
push:
branches: [ develop, feature/* ] # master 브랜치는 제외 (선택사항)
jobs:
review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
issues: write
repository-projects: read
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Claude AI Code Review
uses: chimaek/claude-code-review-action@master
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}
review_type: full
language: ko
max_files: 8
max_issues_per_file: 5 # 파일당 최대 5개 이슈 보고
severity_filter: medium| 입력값 | 설명 | 필수 |
|---|---|---|
anthropic_api_key |
Anthropic API 키 | ✅ |
github_token |
GitHub 토큰 (자동 제공) | ✅ |
| 입력값 | 설명 | 기본값 |
|---|---|---|
review_type |
리뷰 타입 (full, security, performance, style) |
full |
language |
리뷰 언어 (ko, en, ja, zh) |
en |
file_patterns |
리뷰할 파일 패턴 (쉼표 구분) | **/*.js,**/*.ts,**/*.jsx,**/*.tsx,**/*.py,**/*.java,**/*.go,**/*.rs |
exclude_patterns |
제외할 파일 패턴 (쉼표 구분) | **/node_modules/**,**/dist/**,**/build/** |
max_files |
최대 리뷰 파일 수 | 10 |
max_issues_per_file |
파일당 최대 이슈 개수 (1-10) | 3 |
severity_filter |
최소 심각도 필터 (low, medium, high, critical) |
medium |
| 출력값 | 설명 |
|---|---|
review_summary |
리뷰 요약 |
issues_found |
발견된 이슈 수 |
files_reviewed |
리뷰한 파일 수 |
- uses: chimaek/claude-code-review-action@master
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}- uses: chimaek/claude-code-review-action@master
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}
review_type: security
severity_filter: low
max_files: 10- uses: chimaek/claude-code-review-action@master
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}
file_patterns: "src/**/*.js,lib/**/*.js"
exclude_patterns: "**/*.test.js,**/*.spec.js,**/node_modules/**"- uses: chimaek/claude-code-review-action@master
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}
language: ko
review_type: full
max_files: 8
severity_filter: medium🆕 새로운 기능:
max_issues_per_file옵션 추가: 파일당 보고할 이슈 개수 동적 조절 (1-10개)- 이슈 개수에 따른 토큰 수 자동 최적화
- 중요도 높은 이슈 우선 선별 로직 강화
🔧 개선사항:
- Push 이벤트에서 권한 에러 해결 (commit comment → 로그 출력으로 변경)
- JSON 파싱 안정성 대폭 향상 (3단계 복구 시스템)
- 프롬프트 최적화로 응답 품질 개선
🚀 주요 개선사항:
- 병렬 파일 처리: 여러 파일을 동시에 분석하여 2-3배 속도 개선
- 파일 크기 필터링: 100KB 초과 파일 자동 제외로 안정성 향상
- Claude API 최적화: 토큰 수 2K로 제한, 파일 내용 5KB로 절삭하여 응답 속도 개선
- octokit 오류 수정: GitHub API 클라이언트 초기화 문제 해결
- 인라인 댓글 제거: GitHub API 제약으로 인한 오류 방지, PR 댓글로 통합
✨ 기본 기능:
- Claude AI 기반 코드 리뷰
- 다국어 지원 (한국어, 영어, 일본어, 중국어)
- 다양한 리뷰 타입 (전체, 보안, 성능, 스타일)
- GitHub PR/Push 이벤트 통합
- 코드 품질, 버그, 보안, 성능, 스타일 모두 검토
- 가장 포괄적인 리뷰 제공
- 일반적인 용도에 추천
- SQL 인젝션, XSS 등 보안 취약점 집중 검토
- 인증/권한, 암호화 이슈 확인
- 민감한 정보 노출 감지
- 알고리즘 효율성 분석
- 메모리 사용량 최적화 제안
- 캐싱 전략 추천
- 코드 일관성 확인
- 네이밍 컨벤션 검토
- 가독성 개선 제안
# JavaScript/TypeScript 프로젝트
file_patterns: "**/*.{js,jsx,ts,tsx}"
exclude_patterns: "**/node_modules/**,**/dist/**,**/*.test.js,**/*.spec.js"
# Python 프로젝트
file_patterns: "**/*.py"
exclude_patterns: "**/venv/**,**/__pycache__/**,**/test_*.py"
# 다중 언어 프로젝트
file_patterns: "**/*.{js,py,go,java}"
exclude_patterns: "**/node_modules/**,**/target/**,**/build/**"
# 특정 디렉토리만
file_patterns: "src/**/*.js,lib/**/*.js"
exclude_patterns: "**/*.min.js,**/bundle.js"name: AI Code Review
on:
pull_request:
types: [ opened, synchronize, reopened ]
push:
branches: [ develop, feature/* ]
# master/main 브랜치는 제외 (배포용)
jobs:
code-review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
issues: write
repository-projects: read
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Claude AI Code Review
uses: chimaek/claude-code-review-action@master
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}
review_type: full
language: ko
max_files: 8
max_issues_per_file: 5 # 파일당 최대 5개 이슈 보고
severity_filter: medium
file_patterns: "src/**/*.{js,ts,jsx,tsx,py}"
exclude_patterns: "**/*.test.*,**/*.spec.*,**/node_modules/**"
continue-on-error: true # 리뷰 실패해도 CI 통과문제: "Invalid API key" 에러
- API 키가 올바른지 확인
- Secret 이름이 정확한지 확인 (
ANTHROPIC_API_KEY) - API 키에 충분한 크레딧이 있는지 확인
문제: "Resource not accessible by integration" 에러
permissions:
contents: read
pull-requests: write
issues: write # 커밋 댓글 작성용
repository-projects: read # GitHub API 접근용워크플로우에 위 권한 설정 추가 (특히 Push 이벤트 시 필요)
문제: 큰 파일 리뷰 실패
- 단일 파일 크기 제한: 100KB (v1.0.1+에서 자동 필터링)
- 파일 내용 5KB로 자동 절삭 (성능 최적화)
max_files값을 8 이하로 설정 권장
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
- Anthropic - Claude AI API 제공
- GitHub Actions - CI/CD 플랫폼
- 모든 기여자와 사용자 여러분
- 이슈 리포트: GitHub Issues
- 실제 동작 확인: Actions 탭
- 소스 코드: GitHub Repository
- 이메일: pipiru100@gmail.com
- PR 댓글에 자동으로 리뷰 결과가 작성됩니다
- 해당 커밋 페이지에서 댓글로 리뷰 결과 확인
- 예시:
https://github.com/your-repo/commit/커밋해시
Actions탭 →AI Code Review워크플로우에서 실행 로그 확인
Made with ❤️ by chimaek
