PR 올리면 AI가 혼내줍니다.. 직접 만든 이야기..
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- *개발자, DevOps 엔지니어, CI/CD 자동화 도입을 고려하는 팀**
- 난이도: 중간 (GitHub 웹훅 설정, API 연동, LangChain 활용 기초 지식 필요)*
핵심 요약
- GitHub 웹훅을 통해 PR 이벤트 감지 및 처리
- LangChain + OpenAI로 AI 기반 리뷰 생성 (프롬프트 설정 중요)
- GitHub API를 활용한 자동 리뷰 코멘트 등록 (Pull Request에 실시간 피드백)
섹션별 세부 요약
1. GitHub Webhook 이벤트 처리
- 웹훅 설정 방법: 레포 > Settings > Webhooks > Add webhook
- 이벤트 타입 필터: PR 생성(opened) 및 업데이트(synchronize)
- 요청 본문에 포함된 정보: PR 번호, 레포 정보, 파일 목록
2. 요청 인증 검증
- X-Hub-Signature-256 헤더로 HMAC-SHA256 서명 검증
- 서명 불일치 시 요청 거부 처리
- 보안 강화를 위한 필수 단계
3. PR 정보 추출 및 처리
- PR 번호(pr_number), 레포 이름(repo_full_name) 추출
- 추출된 정보를 GitHub API 호출에 사용
- 리뷰 체인 실행을 위한 PRReviewChain 클래스 생성
4. AI 리뷰 생성 프로세스
- LangChain 프레임워크를 통해 OpenAI 모델 연동
- 프롬프트 설정 예시:
- "보안상 문제 있는 부분 알려줘"
- "코드 개선 방안 제안"
- 리뷰 결과 포맷: 전체 리뷰 + 파일별 라인 주석
5. GitHub API를 통한 리뷰 등록
- get_pull_request_files 및 get_pull_request_diff API 사용
- Access Token을 통한 인증 처리
- AI 리뷰 결과를 GitHub Pull Request에 실시간 반영
결론
- 프롬프트 설정이 AI 리뷰 품질에 직접적인 영향을 미침 → 리뷰 방향성, 깊이 조정 가능
- GitHub 웹훅 + LangChain + OpenAI + GitHub API의 4단계 연동 구조를 기반으로 구현
- 향후 다양한 프롬프트 템플릿 확장을 통해 리뷰 시스템의 유연성 강화 예정