You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Kotlin과 Spring Boot 기반으로 만든 자동 코드 리뷰 서비스로, PR에 포함된 변경 내용을 분석하여 LLM을 통해 리뷰 코멘트를 생성하고 GitHub에 자동으로 남긴다. 리뷰 생성 실패 시 재시도까지 관리하여 일관된 코드 리뷰 자동화를 제공한다.
4
+
5
+
---
6
+
7
+
## 프로젝트 개요
8
+
9
+
이 프로젝트는 GitHub Pull Request 이벤트(Webhook)를 받아 변경된 파일의 diff를 분석한 뒤, Google GenAI를 활용해 리뷰 코멘트를 생성하고 GitHub API를 통해 자동으로 리뷰를 남기는 시스템이다. 리뷰 생성 과정에서 발생할 수 있는 요청 한도 초과(429)·서버 오류(503) 같은 상황은 내부 재시도 큐에서 관리하여 안정적으로 처리한다.
10
+
11
+
---
12
+
13
+
## CodeReview 프로세스
14
+
15
+
1.**PR 발생 → Webhook 수신**
16
+
GitHub Webhook이 PR 이벤트 정보를 서버로 전달한다.
17
+
18
+
2.**Diff 수집 및 분석**
19
+
PR의 변경 파일을 조회하고 파일 단위로 diff snippet을 분리한다.
20
+
21
+
3.**리뷰 생성 요청(LLM 호출)**
22
+
파일별 diff snippet을 기반으로 프롬프트를 구성해 Google GenAI 모델에 리뷰 생성을 요청한다.
23
+
24
+
4.**GitHub에 리뷰 코멘트 등록**
25
+
생성된 리뷰 코멘트를 GitHub Pull Request에 자동으로 작성한다.
26
+
27
+
5.**오류 발생 시 재시도 큐로 이동**
28
+
- 모델 응답 지연, 429/503 등 재시도가 필요한 오류는 재시도 큐에 적재
29
+
- 일정 간격으로 스케줄러가 큐를 실행하여 재리뷰 시도
30
+
- 최대 재시도 횟수 초과 시 실패 로그만 남기고 종료
31
+
32
+
이 구조를 통해 PR 하나의 리뷰가 파일 단위로 병렬 처리되고, 장애 상황에서도 안정적으로 완료될 수 있도록 설계되어 있다.
33
+
34
+
---
35
+
36
+
## 사용 기술 스택
37
+
38
+
-**언어 및 런타임**
39
+
Kotlin 1.9, JVM 21
40
+
41
+
-**프레임워크**
42
+
Spring Boot 3.5(Web + WebFlux), Kotlin Coroutine, Reactor
43
+
44
+
-**AI 모델**
45
+
Google GenAI Java SDK(LLM 기반 리뷰 생성)
46
+
47
+
-**데이터 처리**
48
+
Jackson Kotlin Module, Reactor Extensions
49
+
50
+
-**인증/보안**
51
+
GitHub App 인증(JWT + Installation Token), JJWT 기반 서명 처리
0 commit comments