Repository navigation
Expand file tree
/
Copy path.coderabbit.yaml
More file actions
132 lines (124 loc) · 6.49 KB
/
Copy path.coderabbit.yaml
File metadata and controls
132 lines (124 loc) · 6.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# ---------------------------------------------------------------- #
# AI 기본 설정 (언어 및 페르소나)
# ---------------------------------------------------------------- #
# AI가 응답할 때 사용할 기본 언어를 설정합니다.
language: ko-KR
# AI의 페르소나와 응답 톤앤매너를 지시합니다. (tone_instructions는 최대 250자 제한)
tone_instructions: >
Pokade 백엔드 리뷰어: 모든 리뷰는 한글로만 작성하세요(코드 식별자·기술 용어는 원문 유지).
문제 원인과 개선 방법을 제시하고, 비판보다 개선 제안을 우선하세요.
# ---------------------------------------------------------------- #
# 코드 리뷰 기능 세부 설정
# ---------------------------------------------------------------- #
reviews:
# 리뷰의 전반적인 스타일. 'chill'은 비교적 덜 엄격하고 부드러운 톤을 의미합니다.
profile: chill
# PR은 2명 이상 리뷰어의 Approve가 필요하다는 팀 컨벤션이 있어 false로 설정합니다.
request_changes_workflow: false
# PR의 전체적인 변경 사항에 대한 고수준 요약(summary)을 생성합니다.
high_level_summary: true
# 변경된 각 파일별 요약. PR이 너무 길어지는 것을 방지하기 위해 비활성화합니다.
changed_files_summary: false
# 코드 실행 흐름을 보여주는 시퀀스 다이어그램. PR이 길어지는 것을 방지하기 위해 비활성화합니다.
sequence_diagrams: false
# PR에 연결된 이슈를 분석하여 리뷰 컨텍스트에 활용합니다.
assess_linked_issues: true
# 연관된 다른 이슈/PR을 찾아 링크하는 기능은 사용하지 않습니다.
related_issues: false
related_prs: false
# 레이블/리뷰어 자동 제안 및 자동 할당은 사용하지 않습니다.
suggested_labels: false
auto_apply_labels: false
suggested_reviewers: false
auto_assign_reviewers: false
# 리뷰 요약에 위트 있는 시(poem)를 붙이는 기능은 끕니다.
poem: false
review_status: true
collapse_walkthrough: false
# build/gradle wrapper/seed sql 등은 리뷰 대상에서 제외합니다.
path_filters:
- "!**/build/**"
- "!**/.gradle/**"
- "!**/gradle/wrapper/**"
- "!gradlew"
- "!gradlew.bat"
- "!**/*.sql"
- "!.idea/**"
# 특정 파일 경로에 따라 다른 리뷰 지침을 적용합니다.
path_instructions:
- path: "src/main/java/**/*.java"
instructions: |
팀 컨벤션(AGENTS.md) 기준 공통 체크리스트:
1. 변수/메서드명은 camelCase, 클래스명은 PascalCase, 상수는 UPPER_SNAKE_CASE를
따르는지 확인해주세요.
2. 커밋 메시지는 "type: 작업 내용" 형식이며 type은
feat/fix/docs/style/refactor/test/chore/design/comment/rename/remove/!HOTFIX
중 하나여야 하고, 실제 작업 내용과 타입이 일치하는지 확인해주세요.
3. 주석은 코드만으로 의도가 명확하지 않은 경우에만 작성되어야 하고, 임시 주석이
남아있거나 TODO에 담당자/목적이 없으면 지적해주세요.
4. System.out.println 등 디버그용 출력, 사용하지 않는 import/변수가 남아있지
않은지 확인해주세요.
- path: "src/main/java/**/controller/*.java"
instructions: |
1. 팀 컨벤션(AGENTS.md)과 Spring MVC 공식 가이드를 기준으로 리뷰해주세요.
2. 요청 검증(@Valid) 누락 여부, 공통 Response 래퍼(global/response) 사용 여부,
컨트롤러에 비즈니스 로직이 새어나오지 않고 service로 위임되는지 확인해주세요.
3. 문제점과 대안을 논리적으로 제시하고, 필요하면 예시 코드를 추가해주세요.
4. 리뷰는 해당 라인 범위의 코멘트로 남겨주세요.
- path: "src/main/java/**/service/*.java"
instructions: |
1. @Transactional 범위(읽기 전용은 readOnly=true), N+1 쿼리 위험, 커스텀 예외
사용 여부를 확인해주세요.
2. 서비스/도메인 설계, 책임 분리, 확장성 관점에서도 검토해주세요.
3. 문제점과 대안을 논리적으로 제시하고, 필요하면 예시 코드를 추가해주세요.
- path: "src/main/java/**/repository/*.java"
instructions: |
fetch join 없이 연관 엔티티를 순회 조회해서 N+1이 발생하지 않는지, 메서드 이름
기반 쿼리가 복잡해지면 @Query 사용을 제안해주세요.
- path: "src/main/java/**/entity/*.java"
instructions: |
setter 남용 여부, 연관관계 주인과 fetch 전략(LAZY 권장), 생성자가 정적 팩토리
메서드/빌더 패턴을 따르는지 확인해주세요.
- path: "src/main/java/com/pokade/global/security/**/*.java"
instructions: |
JWT/OAuth2 토큰 검증 로직의 취약점, 비밀값 하드코딩 여부를 꼼꼼히 확인해주세요.
- path: "src/test/java/**/*.java"
instructions: |
1. given-when-then 구조가 명확한지, mock 호출 여부만 확인하는 얕은 테스트는
아닌지 지적해주세요.
2. 미작성된 테스트 케이스가 있다면 어떤 테스트(API/Service/Repository 단위)가
필요한지 제안해주세요.
# ---------------------------------------------------------------- #
# 자동 리뷰 트리거 설정
# ---------------------------------------------------------------- #
auto_review:
enabled: true
drafts: false
auto_incremental_review: true
base_branches:
- "main"
- "develop"
# ---------------------------------------------------------------- #
# 채팅 기능 설정
# ---------------------------------------------------------------- #
chat:
auto_reply: true
# ---------------------------------------------------------------- #
# CodeRabbit의 지식 기반(Knowledge Base) 설정
# ---------------------------------------------------------------- #
knowledge_base:
# 웹 검색을 통해 최신 정보나 공식 문서를 참조할 수 있도록 허용합니다.
web_search:
enabled: true
# 레포지토리 내 코딩 규칙 문서를 스타일 가이드라인으로 사용합니다.
code_guidelines:
enabled: true
filePatterns:
- "AGENTS.md"
# CodeRabbit이 학습한 내용을 저장/참조하는 범위. 'local'은 이 레포지토리에 한정됩니다.
learnings:
scope: local
issues:
scope: local
pull_requests:
scope: local