inblog logo
|
LifeLog, DevLog
    Tech

    CodeRabbit 적용

    KYJTHEYJ's avatar
    KYJTHEYJ
    Apr 14, 2026
    CodeRabbit 적용
    Contents
    CodeRabbit

    CodeRabbit

    AI 코드 리뷰 도구로, PR 등의 진행시 코드를 리뷰하며
    문제점은 물론, 시퀸스 다이어그램 등을 제공하고 올바른 수정 방안도 소개해주는 도구

    1. coderabbit.ai 접속 → "Start for Free" 클릭

    2. GitHub 계정으로 로그인

    3. 적용할 레포지토리 범위 선택 (전체 또는 특정 레포)

    4. codeRabbit 내에서 레포지토리 선택

    5. 권한 승인 완료


    추후 PR을 올리면 자동으로 코드리뷰를 진행해준다

    Code Rabbit Configuration via YAML file 공식 문서

    위 문서를 통해 주요 포인트를 잡아서
    프로젝트 루트에 .coderabbit.yaml 파일을 만들어
    리뷰 내용을 설정할 수 있다

    따로 Settings 에서도 코드리뷰에 관해 셋업할 수 있다


    language: en-US  # 코드리뷰 및 응답에 사용할 언어 (기본값: en-US)
    tone_instructions: ""  # 리뷰 코멘트 말투/스타일 지침
    early_access: false  # 코드래빗 얼리 액세스(정식 출시가 아닌 테스트) 기능 사용 (기본값: false)
    enable_free_tier: true  # 무료 플랜 기능 활성화 (기본값: true)
    
    reviews:
      profile: chill  # 리뷰 스타일 설정 ('chill'(일반) 또는 'assertive'(꼼꼼, 깐깐) 기본값: chill)
      request_changes_workflow: false  # 리뷰 이슈 해결 전까지 PR 승인 보류 (기본값: false)
      
      high_level_summary: true  # PR 설명에 변경사항 상위 요약 추가 (기본값: true)
      high_level_summary_placeholder: "@coderabbitai summary"  # 상위 요약 삽입을 위한 플레이스홀더 (기본값: "@coderabbitai summary")
      high_level_summary_in_walkthrough: false  # 워크스루 코멘트에 상위 요약 포함 (기본값: false)
      
      auto_title_placeholder: "@coderabbitai"  # PR 제목에 이 키워드 포함 시 제목 자동 생성 (기본값: "@coderabbitai")
      auto_title_instructions: ""  # PR 제목 자동 생성에 대한 추가 지침 (기본값: 없음)
      
      review_status: true  # 각 리뷰 후 상태 요약 코멘트 게시 (기본값: true)
      commit_status: true  # 리뷰 진행 상태 표시 (기본값: true)
      fail_commit_status: false  # 리뷰 불가 시 커밋 상태를 failure로 표시 (기본값: false)
      
      collapse_walkthrough: false  # 워크스루 코멘트를 접을 수 있는 형식으로 게시 (기본값: false)
      changed_files_summary: true  # 워크스루에 변경 파일 목록 요약 포함 (기본값: true)
      sequence_diagrams: true  # 워크스루에 시퀀스 다이어그램 포함 (기본값: true)
    
      assess_linked_issues: true  # PR에 연결된 이슈 반영 평가 (기본값: true)
      related_issues: true  # 워크스루에 관련 이슈 포함 (기본값: true)
      related_prs: true  # 워크스루에 관련 PR 포함 (기본값: true)
      
      suggested_labels: true  # 변경 내용 기반 라벨 추천 (기본값: true)
      auto_apply_labels: false  # 추천 라벨 자동 적용 (기본값: false)
      
      suggested_reviewers: true  # 코드 변경에 따른 리뷰어 추천 (기본값: true)
      auto_assign_reviewers: false  # 추천된 리뷰어를 PR에 자동 지정 (기본값: false)
      
      poem: true  # 워크스루 코멘트에 재미 요소(시 등) 추가 (기본값: true)
      
      labeling_instructions:  # 라벨 추천 기준 목록 (기본값: 빈 목록)
        - label: "frontend"
          instructions: "프론트엔드 관련 변경 시 적용"
        - label: "backend"
          instructions: "백엔드 로직 변경 시 적용"
          
      path_filters:  # 리뷰에 포함/제외할 파일 경로 패턴 (예: "src/**", "!dist/**"; 기본값: 빈 목록)
        - src/**
        - !dist/**
      path_instructions:  # 경로별 추가 코드리뷰 지침 목록 (기본값: 빈 목록)
        - path: **/*.js
          instructions: "JS 파일에 대해 코딩 스타일 검사 강화"
    
      abort_on_close: true  # PR이 닫히거나 병합되면 진행 중인 리뷰 중단 (기본값: true)
      disable_cache: false  # 코드/의존성 캐싱 비활성화 (기본값: false)
    
      auto_review:
        enabled: true  # 자동 코드 리뷰 활성화 (기본값: true)
        auto_incremental_review: true  # 새로운 커밋마다 추가 리뷰 실행 (기본값: true)
        ignore_title_keywords:  # PR 제목에 특정 키워드가 있으면 자동 리뷰 건너뜀 (기본값: 빈 목록)
          - "WIP"
          - "test"
        labels:  # 지정한 라벨이 붙은 PR만 자동 리뷰 (기본값: 빈 목록)
          - "frontend"
          - "urgent"
        drafts: false  # Draft 상태의 PR도 자동 리뷰 포함 (기본값: false)
        base_branches:  # 자동 리뷰 대상 base 브랜치 (정규식 지원; 기본값: 빈 목록)
          - "main"
          - "release/.*"
    
    finishing_touches:
      docstrings:
        enabled: true  # 함수/클래스에 설명 주석 자동 생성 (기본값: true)
      unit_tests:
        enabled: true  # 테스트 코드 자동 생성 (기본값: true)
    
    pre_merge_checks:
      docstrings:
        mode: warning  # 주석 충분한지 확인 (기본값: warning)
        threshold: 80  # 주석 포함 비율 기준 (%) (기본값: 80)
      title:
        mode: warning  # PR 제목 규칙 검사 (기본값: warning)
        requirements: ""  # 제목 규칙 예: 50자 이내 등 (기본값: 없음)
      description:
        mode: warning  # PR 설명 작성 여부 확인 (기본값: warning)
      issue_assessment:
        mode: warning  # 연결된 이슈 해결 여부 평가 (기본값: warning)
    
          
    tools:
      ast-grep:
        rule_dirs: []  # 사용자 정의 규칙 디렉터리
        util_dirs: []  # 유틸리티 디렉터리
        essential_rules: true  # 기본 규칙 사용 (기본값: true)
        packages: []  # 사용할 패키지 목록
    
      shellcheck:
        enabled: true  # 셸 스크립트 린터 사용 (기본값: true)
      ruff:
        enabled: true  # Python 린터 사용 (기본값: true)
      markdownlint:
        enabled: true  # Markdown 린터 사용 (기본값: true)
    
      github-checks:
        enabled: true  # GitHub Checks 사용 (기본값: true)
        timeout_ms: 90000  # 최대 대기 시간(ms) (기본값: 90000)
    
      languagetool:
        enabled: true  # 문법 검사기 사용 (기본값: true)
        enabled_rules: []  # 활성 규칙 목록
        disabled_rules: []  # 비활성 규칙 목록
        enabled_categories: []  # 활성 카테고리 목록
        disabled_categories: []  # 비활성 카테고리 목록
        enabled_only: false  # 지정 항목만 검사 (기본값: false)
        level: default  # 검사 수준 (기본값: default)
    
      biome:
        enabled: true  # 웹 린터 사용 (기본값: true)
      hadolint:
        enabled: true  # Dockerfile 린터 사용 (기본값: true)
      swiftlint:
        enabled: true  # Swift 린터 사용 (기본값: true)
        config_file: ""  # 설정 파일 경로
      phpstan:
        enabled: true  # PHP 린터 사용 (기본값: true)
        level: default  # 분석 레벨 (기본값: default)
      phpmd:
        enabled: true  # PHP 린터 사용 (기본값: true)
      phpcs:
        enabled: true  # PHP 린터 사용 (기본값: true)
      golangci-lint:
        enabled: true  # Go 린터 사용 (기본값: true)
        config_file: ""  # 설정 파일 경로
      yamllint:
        enabled: true  # YAML 린터 사용 (기본값: true)
      gitleaks:
        enabled: true  # 비밀 정보 검사기 사용 (기본값: true)
      checkov:
        enabled: true  # IaC 검사기 사용 (기본값: true)
      detekt:
        enabled: true  # Kotlin 린터 사용 (기본값: true)
        config_file: ""  # 설정 파일 경로
      eslint:
        enabled: true  # JS/TS 린터 사용 (기본값: true)
      flake8:
        enabled: true  # Python 린터 사용 (기본값: true)
      rubocop:
        enabled: true  # Ruby 린터 사용 (기본값: true)
      buf:
        enabled: true  # Protobuf 린터 사용 (기본값: true)
      regal:
        enabled: true  # Rego 린터 사용 (기본값: true)
      actionlint:
        enabled: true  # GitHub Actions 린터 사용 (기본값: true)
      pmd:
        enabled: true  # Java 린터 사용 (기본값: true)
        config_file: ""  # 설정 파일 경로
      cppcheck:
        enabled: true  # C/C++ 린터 사용 (기본값: true)
      semgrep:
        enabled: true  # 보안 분석기 사용 (기본값: true)
        config_file: ""  # 설정 파일 경로
      circleci:
        enabled: true  # CircleCI 설정 검사기 사용 (기본값: true)
      clippy:
        enabled: true  # Rust 린터 사용 (기본값: true)
      sqlfluff:
        enabled: true  # SQL 린터 사용 (기본값: true)
      prismaLint:
        enabled: true  # Prisma 린터 사용 (기본값: true)
      pylint:
        enabled: true  # Python 린터 사용 (기본값: true)
      oxc:
        enabled: true  # JS/TS 린터 사용 (기본값: true)
      shopifyThemeCheck:
        enabled: true  # Shopify 테마 린터 사용 (기본값: true)
      luacheck:
        enabled: true  # Lua 린터 사용 (기본값: true)
      brakeman:
        enabled: true  # Rails 보안 검사기 사용 (기본값: true)
      dotenvLint:
        enabled: true  # .env 린터 사용 (기본값: true)
      htmlhint:
        enabled: true  # HTML 린터 사용 (기본값: true)
      checkmake:
        enabled: true  # Makefile 린터 사용 (기본값: true)
    
    chat:
      auto_reply: true  # 사용자 태그 없이도 자동 응답 (기본값: true)
      integrations:
        jira:
          usage: auto  # Jira 연동 모드 설정 (기본값: auto)
        linear:
          usage: auto  # Linear 연동 모드 설정 (기본값: auto)
    
    knowledge_base:
      opt_out: false  # 지식 기반 기능 옵트아웃 (데이터 미보존 설정, 기본값: false)
      web_search:
        enabled: true  # 웹 검색 통합 사용 (기본값: true)
        
      code_guidelines:
        enabled: true  # 코딩 가이드라인 준수 검사 사용 (기본값: true)
        filePatterns:  # 코딩 가이드라인 문서 파일 경로 패턴 목록 (기본값: 빈 목록)
          - ".github/copilot-instructions.md"
          - "**/.cursorrules"
          
      learnings:
        scope: auto  # 학습 데이터 범위 ('local'|'global'|'auto'; 기본값: auto)
      issues:
        scope: auto  # 이슈 데이터 활용 범위 ('local'|'global'|'auto'; 기본값: auto)
      jira:
        usage: auto  # Jira 지식베이스 통합 사용 모드 ('auto'=공개 저장소 비활성; 기본값: auto)
        project_keys: []  # 지식베이스에 포함할 Jira 프로젝트 키 (기본값: 빈 목록)
      linear:
        usage: auto  # Linear 지식베이스 통합 사용 모드 ('auto'=공개 저장소 비활성; 기본값: auto)
        team_keys: []  # 지식베이스에 포함할 Linear 팀 키 (예: "ENG"; 기본값: 빈 목록)
      pull_requests:
        scope: auto  # PR 데이터 활용 범위 ('local'|'global'|'auto'; 기본값: auto)
    
    code_generation:
      docstrings:
        language: "en-US"  # 코드에 자동으로 작성할 설명 주석의 언어 (예: "ko-KR"은 한국어 설명, 기본값: "en-US")
        path_instructions:  # 파일 경로별로 어떤 설명을 자동으로 넣을지에 대한 설정
          - path: "**/controllers/*.py"  # 이 경로의 파일에는 아래 설명 방식 적용
            instructions: "컨트롤러 함수에 대해 각 매개변수와 반환값에 대한 설명을 포함해주세요"
    
      unit_tests:
        path_instructions:  # 자동으로 생성할 테스트 코드에 대한 설정 (파일 경로별 지침)
          - path: "**/services/*.js"  # 이 경로에 있는 파일은 아래 지침을 적용
            instructions: "서비스 모듈의 주요 로직을 검증하는 테스트 코드를 추가해주세요"
    
    // 출처 https://taek-2.tistory.com/entry/CodeRabbit-coderabbityaml-%EC%98%B5%EC%85%98-%EC%84%A4%EC%A0%95-%EC%A0%95%EB%A6%AC

    Share article
    Contents
    CodeRabbit

    LifeLog, DevLog - https://github.com/KYJTHEYJ

    RSS·Powered by Inblog