Skip to content

Feat: 커밋 분석 기능 구현#18

Merged
ggamnunq merged 5 commits into
developfrom
feat/git
May 7, 2026
Merged

Feat: 커밋 분석 기능 구현#18
ggamnunq merged 5 commits into
developfrom
feat/git

Conversation

@Yujin1219
Copy link
Copy Markdown
Member

🎯 작업 내용

주요 변경사항

  • 레포지토리 동기화 시 커밋 분석 비동기 연동을 추가했습니다.
  • FastAPI 커밋 분석 요청/응답 로직을 수정했습니다.
  • 커밋 분석 대상 필터링을 추가했습니다.
  • 커밋 분석 실패 시 예외 처리, 재시도로직을 추가했습니다.

상세 내용

커밋 분석 비동기 연동

  • 레포지토리 동기화 후 새로 저장된 커밋에 대해 FastAPI 커밋 분석 run 생성이 비동기로 시작
  • run 생성 이후 run_id를 기준으로 상태를 폴링하고, 분석 완료 시 커밋 요약을 저장
  • 커밋 분석 결과는 CommitAnalysis에 커밋당 1건만 저장됨

FastAPI 커밋 분석 요청/응답 수정

  • 기존에는 commit/analyze/runs 호출 시 FastAPI가 request body를 정상적으로 읽지 못해 body missing 422 오류가 발생
  • 이를 해결하기 위해 FastApiClient의 생성 방식을 RestClient.Builder 기반으로 변경하고, SimpleClientHttpRequestFactory를 적용하도록 수정

커밋 분석 대상 필터링

  • merge commit은 메시지 패턴이 아니라 부모 커밋 개수 기준으로 전체 제외하도록 변경
  • patch == null인 텍스트 파일은 깃허브에서 before/after 파일 내용을 다시 조회해 diff를 생성하도록 구현
  • binary 파일은 분석 대상에서 제외
  • fallback diff 생성이 불가능한 파일은 해당 파일만 제외하고, 최종적으로 분석 가능한 파일이 하나도 없으면 해당 커밋 분석은 건너뜀

커밋 분석 실패 처리 및 재시도

  • FastAPI run 상태가 failed이거나 poll timeout이 발생한 경우 예외 처리하도록 정리했습니다.
  • Gemini 응답시간 초과, 5xx 에러 같은 일시적 실패는 재시도 대상
  • 재시도는 최대 3회까지 수행하며, 30초 -> 60초 backoff 간격으로 재시도

✅ 체크리스트

  • 코드 빌드가 정상적으로 완료되었나요?
  • 코드 리뷰 요청 전 self-review를 진행했나요?

📚 참고 자료 (선택)

image

@Yujin1219 Yujin1219 requested a review from ggamnunq May 7, 2026 09:53
@Yujin1219 Yujin1219 self-assigned this May 7, 2026
@ggamnunq ggamnunq merged commit 35c5839 into develop May 7, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants