
【사쿠라의 AI】 사쿠라의 AI를 이용하여 GitHub의 PR 리뷰를 수행하기
요약
Sakura AI 및 OpenAI 호환 API를 활용하여 GitHub Pull Request를 자동으로 리뷰하는 워크플로우 구현 방법을 소개합니다. GitHub Actions와 시스템 프롬프트를 결합하여 버그, 보안, 코드 품질 등을 검토하는 자동화 메커니즘을 구축할 수 있습니다.
핵심 포인트
- OpenAI 호환 API를 사용하면 Sakura AI 외에도 Local LLM 활용 가능
- GitHub Workflow를 통해 PR 생성 시 자동 리뷰 프로세스 구축
- 버그, 보안, 가독성, 성능 등 다각도 코드 리뷰 프롬프트 제공
- Markdown 형식을 활용한 구체적인 수정 전후 코드 비교 피드백
이번에는 사쿠라의 AI를 이용하여 GitHub의 Pull Request (PR)를 리뷰하는 메커니즘을 만들었습니다.
사쿠라의 AI라고 기재했지만, 실제로는 OpenAI 호환 API라면 사쿠라의 AI 이외의 프로바이더(Provider)에서도 이용할 수 있습니다.
참고로 이번에 사용하는 사쿠라의 AI는 Kong AI Gateway를 경유하여 이용하고 있습니다.
이번에 작성한 것은 다음과 같습니다.
처리는 사쿠라의 AI를 API로 호출하는 것뿐이므로, 구현에 대한 설명은 생략하겠습니다.
앱의 처리는 다음과 같은 느낌입니다.
실제로 사용할 경우에는 다음과 같은 GitHub Workflow를 작성합니다.
name: AI Review
on:
workflow_dispatch:
...
각 설정 항목은 다음과 같습니다.
Secret
| 항목 | 비고 |
|---|---|
| LLM_API_BASE_URL | OpenAI 호환 API의 base URL. 예: https://example.com/v1 |
| LLM_API_KEY | OpenAI 호환 API의 API key |
Variables
| 항목 | 비고 |
|---|---|
| REVIEW_MODEL | 사용하는 모델명 |
| REVIEW_SYSTEM_PROMPT | 리뷰용 시스템 프롬프트 |
REVIEW_SYSTEM_PROMPT에는 기본값으로 다음 값이 설정되어 있습니다.
`당신은 경험이 풍부한 코드 리뷰어입니다. 제공된 git diff를 리뷰하고, 다음 관점에서 피드백을 주세요.
- 버그·로직 에러
- 보안상의 문제 (인젝션, 비밀 정보 노출, 인증 미비 등)
- 코드 품질·가독성
- 퍼포먼스(Performance)상의 우려
- 에러 핸들링·엣지 케이스(Edge case)의 부족
- 테스트 커버리지(Test coverage)의 격차
각 지적 사항은 반드시 다음 구성으로 Markdown 형식으로 기술해 주세요.
- 문제 요약
- 수정 전 코드
- 권장하는 수정 후 코드
- 왜 그 수정이 바람직한가
수정 전·후는 실제 차이(diff)에 가까운 짧은 코드 블록으로 비교할 수 있도록 해주세요.
차이점에 문제가 발견되지 않는 경우, 그 취지를 명시해 주세요.
간결하고 구체적으로 기술해 주세요.
반드시 일본어로 답변해 주세요.`
실제로 구동하면 Bot으로부터 다음과 같은 코멘트가 게시됩니다.
이번에는 사쿠라의 AI를 이용하여 GitHub의 Pull Request를 리뷰하는 앱을 작성했습니다.
이래저래 AI를 통한 코드 리뷰는 있고 없고에 따라 작업 효율이 다르기 때문에, 사쿠라의 AI밖에 사용할 수 없는 환경에서도 쓸 수 있는 것이 필요하다는 생각으로 작성했습니다.
사쿠라의 AI 이외라도 OpenAI 호환이라면 Local LLM으로도 이용할 수 있으므로, 꽤 사용할 상황이 생길지도 모르겠다고 생각하고 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기