Skip to content

chimaek/claude-code-review-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claude AI Code Review Action

GitHub Actions License: MIT Version

Claude API를 활용한 지능형 AI 코드 리뷰 GitHub Action입니다. Pull Request와 Push 이벤트에서 자동으로 코드를 분석하고 개선 사항을 제안합니다.

🌟 주요 기능

  • 🤖 AI 기반 코드 리뷰: Claude AI가 코드 품질, 버그, 보안 취약점 등을 자동 검토
  • 🌍 다국어 지원: 한국어, 영어, 일본어, 중국어 리뷰 지원
  • 🎯 맞춤형 리뷰: 전체, 보안, 성능, 스타일 등 다양한 리뷰 타입 선택 가능
  • 📊 상세한 리포트: 심각도별 분류, 파일별 상세 리뷰, 개선 제안 포함
  • 💬 GitHub 통합: PR 댓글 자동 작성 (안정성 개선)
  • ⚡ 고성능: 병렬 처리로 2-3배 빠른 리뷰 속도 (v1.0.1+)
  • 🔧 유연한 설정: 파일당 이슈 개수 동적 조절 가능 (v1.0.2+)

📸 스크린샷

PR 리뷰 댓글 예시

## 🤖 Claude AI 코드 리뷰

**리뷰 타입:** 🔍 full  
**검토한 파일:** 3개  
**발견된 이슈:** 12개

### 📋 리뷰 요약

| 심각도 | 개수 | 설명 |
|--------|------|------|
| 🔴 **Critical** | 2 | 즉시 수정이 필요한 심각한 문제 |
| 🟠 **High** | 4 | 중요한 문제, 빠른 수정 권장 |
| 🟡 **Medium** | 6 | 일반적인 개선 사항 |

### 📁 파일별 상세 리뷰

... (상세한 이슈 목록)

PR Review Comment

🚀 빠른 시작

1. Anthropic API 키 발급

  1. Anthropic Console에 접속
  2. API Keys 섹션에서 새 API 키 생성
  3. 생성된 키를 안전하게 보관

2. GitHub Secret 설정

  1. GitHub 리포지토리의 Settings → Secrets and variables → Actions로 이동
  2. "New repository secret" 클릭
  3. Name: ANTHROPIC_API_KEY, Value: 발급받은 API 키 입력
  4. "Add secret" 클릭

3. 워크플로우 설정

.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

📈 버전 히스토리

v1.0.2 (2025-07-29) - 유연성 개선 릴리즈

🆕 새로운 기능:

  • max_issues_per_file 옵션 추가: 파일당 보고할 이슈 개수 동적 조절 (1-10개)
  • 이슈 개수에 따른 토큰 수 자동 최적화
  • 중요도 높은 이슈 우선 선별 로직 강화

🔧 개선사항:

  • Push 이벤트에서 권한 에러 해결 (commit comment → 로그 출력으로 변경)
  • JSON 파싱 안정성 대폭 향상 (3단계 복구 시스템)
  • 프롬프트 최적화로 응답 품질 개선

v1.0.1 (2025-07-29) - 성능 개선 릴리즈

🚀 주요 개선사항:

  • 병렬 파일 처리: 여러 파일을 동시에 분석하여 2-3배 속도 개선
  • 파일 크기 필터링: 100KB 초과 파일 자동 제외로 안정성 향상
  • Claude API 최적화: 토큰 수 2K로 제한, 파일 내용 5KB로 절삭하여 응답 속도 개선
  • octokit 오류 수정: GitHub API 클라이언트 초기화 문제 해결
  • 인라인 댓글 제거: GitHub API 제약으로 인한 오류 방지, PR 댓글로 통합

v1.0.0 (2025-07-29) - 초기 릴리즈

기본 기능:

  • Claude AI 기반 코드 리뷰
  • 다국어 지원 (한국어, 영어, 일본어, 중국어)
  • 다양한 리뷰 타입 (전체, 보안, 성능, 스타일)
  • GitHub PR/Push 이벤트 통합

🔧 고급 설정

리뷰 타입별 특징

full (전체 리뷰)

  • 코드 품질, 버그, 보안, 성능, 스타일 모두 검토
  • 가장 포괄적인 리뷰 제공
  • 일반적인 용도에 추천

security (보안 리뷰)

  • SQL 인젝션, XSS 등 보안 취약점 집중 검토
  • 인증/권한, 암호화 이슈 확인
  • 민감한 정보 노출 감지

performance (성능 리뷰)

  • 알고리즘 효율성 분석
  • 메모리 사용량 최적화 제안
  • 캐싱 전략 추천

style (스타일 리뷰)

  • 코드 일관성 확인
  • 네이밍 컨벤션 검토
  • 가독성 개선 제안

파일 패턴 예시

# 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 통과

🚧 문제 해결

API 키 관련

문제: "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 이하로 설정 권장

🤝 기여하기

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

🙏 감사의 말

📞 지원

🔍 리뷰 결과 확인 방법

Pull Request의 경우

  • PR 댓글에 자동으로 리뷰 결과가 작성됩니다

Push의 경우

  • 해당 커밋 페이지에서 댓글로 리뷰 결과 확인
  • 예시: https://github.com/your-repo/commit/커밋해시

Actions 로그

  • Actions 탭 → AI Code Review 워크플로우에서 실행 로그 확인

Made with ❤️ by chimaek

About

claude code 전용 리뷰 git action

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •