개인 프로젝트를 시작하는 단계에서 백엔드를 혼자서 담당하다 보니 피드백을 받을 수단이 필요했습니다.
그래서 PR을 할 때, LLM을 기반으로 자동으로 코드 리뷰를 해주는 툴들을 찾아봤습니다.
Qudo, CodiumAI, CodeRabbit 등을 고려해봤으며, 이 중에서 완전히 오픈소스 기반인 Qudo를 적용해봤습니다.
https://github.com/qodo-ai/pr-agent
GitHub - qodo-ai/pr-agent: 🚀 PR-Agent (Qodo Merge open-source): An AI-Powered 🤖 Tool for Automated Pull Request Analysis,
🚀 PR-Agent (Qodo Merge open-source): An AI-Powered 🤖 Tool for Automated Pull Request Analysis, Feedback, Suggestions and More! 💻🔍 - qodo-ai/pr-agent
github.com
1. Qudo-ai 란?
Qudo는 Github PR 리뷰 자동화를 위한 오픈소스 LLM 에이전트 입니다.
GPT 계열 모델(OpenAI API 등)을 연동하여 PR의 변경 내용을 분석하고, 요약 및 리뷰 코멘트를 자동으로 생성합니다.
그리고 Github Actions를 통해 작동하며, 코드 변경 시 자동으로 실행됩니다.
무료 기능으로는 PR 요약, 리뷰 코멘트 생성, 코드 설명 등의 기능을 제공합니다.
Qudo를 선택한 이유는 원하는 GPT 계열의 모델을 선택할 수 있기 때문입니다. 저는 PR을 많이 할 예정이고, 코멘트도 참고를 많이 할 것이기 때문에 비용이 저렴하고 한글을 지원하는 openai의 GPT-4o 모델을 선택했습니다.
2. 설정하기
1. 프로젝트 리포지토리 루트의 다음 경로에 아래와 같은 파일을 생성합니다.
./github/workflows/pr_agent.yml
on:
pull_request:
types: [opened, reopened, ready_for_review, synchronize]
branches:
- develop
- main
issue_comment:
types: [created]
jobs:
pr_agent_job:
if: ${{ github.event.sender.type != 'Bot' }}
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
contents: write
name: Run pr agent on every pull request, respond to user comments
steps:
- name: PR Agent action step
id: pragent
uses: qodo-ai/pr-agent@main
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2. LLM Key 값 설정하기

저는 LLM 모델을 OpenAI에서 GPT-4o 모델을 선택해서 결제했으며, 해당 SECRET KEY를 깃허브에서 프로젝트 리포지토리의 secrets and variables에 OPENAI_KEY를 이름으로 Repository secrets에 등록합니다.
GITHUB_TOKEN은 등록하지 않아도 됩니다.
3. 옵션 설정하기
프로젝트의 루트 위치에 .pr_agent.toml 파일을 생성해줍니다.
이 파일에는 LLM에 대한 설정, 프롬프트 설정 등을 작성합니다.
아래는 공식 문서를 참고해서 작성했습니다.
https://github.com/qodo-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml
pr-agent/pr_agent/settings/configuration.toml at main · qodo-ai/pr-agent
🚀 PR-Agent (Qodo Merge open-source): An AI-Powered 🤖 Tool for Automated Pull Request Analysis, Feedback, Suggestions and More! 💻🔍 - qodo-ai/pr-agent
github.com
[llm]
provider = "openai"
model = "gpt-4o"
temperature = 0.2
[config]
response_language = "ko-KR"
use_repo_settings_file = true
patch_extension_skip_types = [".md", ".txt"]
ignore_pr_title = ["^\\[Auto\\]", "^Auto", "^\\[Skip\\]", "^Skip"]
[github_action_config]
auto_review = true
auto_describe = true
auto_improve = false
pr_actions = ["opened", "reopened", "ready_for_review", "synchronize"]
[pr_reviewer]
extra_instructions = """\
1. 존댓말을 사용하세요
2. 코드리뷰, suggestion, pr생성 모두 한글로 대답하세요
3. 코드 변경 전후의 문맥을 이해하는 데 주변 줄을 참고하되, 실제 변경된 부분에 초점을 맞춰 설명과 제안을 생성해 주세요.
4. 리뷰어는 이모지를 적절히 사용하며, 긍정적이고 격려하는 태도를 유지해주세요. 동료 백엔드 개발자의 입장에서 따뜻하고 명확하게 리뷰를 진행해주세요.
5. 리뷰는 항상 칭찬으로 시작하고, 이후 개선할 부분을 구체적으로 제안해주세요.
6. 동료 개발자가 이해하기 쉬운지를 고려하여, 더 좋은 구현 방법이나 구조에 대한 피드백을 제공해주세요.
"""
[pr_code_suggestions]
extra_instructions = """\
1. 존댓말을 사용하세요
2. 코드리뷰, suggestion, pr생성 모두 한글로 대답하세요
3. 코드 변경 전후의 문맥을 이해하는 데 주변 줄을 참고하되, 실제 변경된 부분에 초점을 맞춰 설명과 제안을 생성해 주세요.
4. 리뷰어는 이모지를 적절히 사용하며, 긍정적이고 격려하는 태도를 유지해주세요. 동료 백엔드 개발자의 입장에서 따뜻하고 명확하게 리뷰를 진행해주세요.
5. 리뷰는 항상 칭찬으로 시작하고, 이후 개선할 부분을 구체적으로 제안해주세요.
6. 동료 개발자가 이해하기 쉬운지를 고려하여, 더 좋은 구현 방법이나 구조에 대한 피드백을 제공해주세요.
"""
[pr_description]
extra_instructions = """\
1. 존댓말을 사용하세요
2. 코드리뷰, suggestion, pr생성 모두 한글로 대답하세요
3. 코드 변경 전후의 문맥을 이해하는 데 주변 줄을 참고하되, 실제 변경된 부분에 초점을 맞춰 설명과 제안을 생성해 주세요.
4. 리뷰어는 이모지를 적절히 사용하며, 긍정적이고 격려하는 태도를 유지해주세요. 동료 백엔드 개발자의 입장에서 따뜻하고 명확하게 리뷰를 진행해주세요.
5. 리뷰는 항상 칭찬으로 시작하고, 이후 개선할 부분을 구체적으로 제안해주세요.
6. 동료 개발자가 이해하기 쉬운지를 고려하여, 더 좋은 구현 방법이나 구조에 대한 피드백을 제공해주세요.
"""
4. 결과

처음 적용했을 때는 PR 요약과 코멘트가 영어로 나올 수 있습니다. 저의 경우에는 처음 설정 단계의 PR에서만 이러한 문제가 발생하였고, 이후의 PR에서는 정상적으로 결과가 나왔습니다.
3. 비용

위의 사진과 같은 분량의 PR 요약과 리뷰를 각각 하나의 요청으로 따졌을 때, 지금까지 저는 총 96개의 요청을 했습니다.
비용을 보면 $0.80 (1111원) 정도 나온걸 알 수 있습니다.
즉, 저렴한 비용으로 코드 리뷰를 받을 수 있는건 좋은 경험이라고 생각이 되며, 개인 프로젝트를 하거나 코드 리뷰를 해줄 팀원이 없는 경우에 사용해 보는 것을 추천합니다.