PR 올리면 AI가 혼내줍니다.. 직접 만든 이야기..
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- *개발자, DevOps 엔지니어** (중급~고급)
핵심 요약
- GitHub PR에 자동 AI 리뷰 기능 구현: 웹훅과 GitHub API, LangChain/OpenAI 연동하여 자동 리뷰 생성
- 핵심 기술 스택: GitHub Webhook, HMAC-SHA256 인증, LangChain, OpenAI
- 프롬프트 설계 중요성 강조: 리뷰 방향성 및 품질은 프롬프트 구성에 따라 달라짐
섹션별 세부 요약
1. GitHub Webhook 이벤트 받기
- GitHub 웹훅 설정을 통해 PR 생성/업데이트 이벤트 감지
- Webhook URL 설정:
Settings > Webhooks > Add webhook
- 이벤트 타입 필터:
opened
,synchronize
만 처리
2. 요청 진위 확인 🔐
- X-Hub-Signature-256 헤더로 HMAC-SHA256 서명 검증
- 서명 불일치 시 요청 거부 처리
3. PR 정보 추출
- PR 번호(pr_number), 레포지토리(repo_full_name) 추출
- GitHub API 인증에 Access Token 사용
4. 리뷰 체인 실행
- PRReviewChain 클래스 사용:
```python
review_chain = PRReviewChain(pr_number, repo_full_name)
review_chain.run()
```
- 내부 로직: PR 정보 수집 → AI 리뷰 생성 → GitHub에 코멘트 등록
5. LangChain + OpenAI 리뷰 생성
- LangChain 프레임워크를 통해 AI 모델과 연동
- 프롬프트에 코딩 컨벤션, 리뷰 중점 사항 포함
- 리뷰 방식: 전체 PR 리뷰 + 파일별 라인 단위 리뷰
6. GitHub API로 코멘트 등록
- GitHub API를 사용해 리뷰 코멘트 등록:
- 전체 리뷰 → PR 단일 코멘트
- 파일별 리뷰 → 라인 단위 코멘트
결론
- 프롬프트 설계가 리뷰 품질의 핵심 → 보안, 성능, 코드 스타일 등 목적에 따라 프롬프트 수정 필요
- GitHub API + AI 연동 구현은 DevOps 자동화의 핵심 사례로, 확장 가능성이 높음