![[OSSCA] PR-Agent 기본 설정 및 직접 실행해보기](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog%3Ftitle%3D%255BOSSCA%255D%2520PR-Agent%2520%25EA%25B8%25B0%25EB%25B3%25B8%2520%25EC%2584%25A4%25EC%25A0%2595%2520%25EB%25B0%258F%2520%25EC%25A7%2581%25EC%25A0%2591%2520%25EC%258B%25A4%25ED%2596%2589%25ED%2595%25B4%25EB%25B3%25B4%25EA%25B8%25B0%26logoUrl%3Dhttps%253A%252F%252Finblog.ai%252Finblog_logo.png%26blogTitle%3Dcode-with-me&w=2048&q=75)
📂 프로젝트 구조 이해
PR-Agent란?
→ GitHub PR에 AI 기반 리뷰 및 개선 제안을 자동으로 남겨주는 오픈소스 도구
→ 다양한 LLM(OpenAI, Gemini 등) 연동 가능
→ CLI 또는 GitHub Action 방식으로 실행 가능나의 실행 환경
macOS M3 Python 3.10.17 (pyenv 사용) PR-Agent (Fork from OSSCA → 내 계정에 개인 Fork)
🧱 사전 준비
✅ Python 버전
PR-Agent는 최신 Python 버전에서 예상치 못한 오류가 발생할 수 있어, Python 3.10 사용을 권장합니다.
pyenv로 설치
pyenv install 3.10.17 pyenv local 3.10.17
✅ 가상환경 생성
# 가상환경 만들기
python3 -m venv venv
# 가상환경 활성화
source venv/bin/activate
✅ 의존성 설치
# 필요한 의존성 설치
pip install -r requirements.txt
pip install -r requirements-dev.txt
🔧 설정 파일 구성
📄 configuration.toml 수정
사용하고 싶은 LLM 모델명을 적어줍니다. 저는 Gemini를 적어줬습니다.
📄 secrets.toml 생성
secrets_template.toml
을 복사해서 secrets.toml을 생성해줍니다.발급한 키 삽입 (절대 공개 X)
[github] user_token = "ghp_xxx..." # classic 토큰, 권한: repo, user
[gemini] api_key = "AIza..."
📌 환경변수 설정 (선택사항)
터미널에 환경 변수를 설정해줍니다.
export GEMINI_API_KEY=xxx
export GITHUB_TOKEN=xxx
🚀 실행 방법
예시 PR URL : https://github.com/vmkmym/pr-agent/pull/1
# review
python3 -m pr_agent.cli --pr_url https://github.com/vmkmym/pr-agent/pull/1 review
# improve
python3 -m pr_agent.cli --pr_url https://github.com/vmkmym/pr-agent/pull/1 improve
⚠️ 겪었던 에러와 해결 과정
❌ BoxKeyError: 'user_token'
secrets.toml
이 없거나 경로가 잘못되었을 때 발생
✔️secrets_template.toml
을 복사했는지, 내부에 토큰이 정확히 들어있는지 확인
❌ ValueError: GitHub token is required
환경변수로 토큰이 제대로 주입되지 않았거나 권한 부족일 수 있음
✔️ 토큰 종류는 반드시Classic Token
을 사용하고,repo
,user
권한이 모두 있어야 함
✔️.env
나.toml
로 넣었다면 경로와 구문 확인
📈 실행 결과 예시 (스크린샷 or 로그 일부)
improve 명령어 입력했을 때, 변경사항을 더 나은 방향으로 제안해준다.
decribe 명령어 입력했을 때는 PR의 핵심 변경사항을 요약해준다.
reveiw 명령어 입력했을 때 다음과 같이 PR 변경사항을 리뷰어처럼 평가해준다.
💡 좀 더 구체적으로 설명하면…
🔍 review
마치 사람이 코드 리뷰하는 것처럼 문제점, 보완점, 코드 스타일 등을 지적
예: 네이밍, 불필요한 로직, 주석 부족, 테스트 누락 등
사용 시기: PR 올리고 코드 퀄리티 점검 받고 싶을 때
🛠️ improve
코드 자체를 어떻게 더 개선할 수 있을지를 제안
예: 구조 변경, 리팩토링, 성능 최적화
사용 시기: PR을 올리기 전에 한 번 더 다듬고 싶을 때
🧾 describe
PR의 주요 변경 사항을 자연어로 설명
예: 파일 이름, 수정 라인, 주요 기능 변경 요약
사용 시기: 팀원에게 변경 내역을 공유할 때 / PR 설명 자동화
개인적으로 사이드 프로젝트를 하거나, 토이 프로젝트를 진행할 때 엄청 유용할 것 같다는 생각을 했다. 이번에 새로 하게 될 프로젝트가 있는데 PR Agent의 도움을 받아보려고 한다. GitHub Action 방식으로 하면 너무 편하고 좋을 것 같다.
🧩 기타 참고 사항
Gemini
,OpenAI
,Azure
등 다양한 모델 사용 가능 →configuration.toml
에서 조정pr-agent
는 GitHub Action 방식도 지원하므로, 이후 자동 리뷰로 확장 가능사용 중인 모델에 따라 응답 품질 및 속도가 크게 다를 수 있음
✍️ 마무리 및 소감
이번 PR-Agent 직접 실행 경험을 통해 오픈소스 도구가 어떤 식으로 동작하는지 구조를 파악할 수 있었고, 모델/인증 관련 설정에서 실질적인 트러블슈팅 경험을 쌓을 수 있었다.