[OSSCA] PR-Agent 기본 설정 및 직접 실행해보기

오픈소스 컨트리뷰션 아카데미(OSCCA) 프로젝트로 선택한 PR-Agent를 로컬에서 직접 실행해본 경험을 정리했습니다. 실행을 위해 어떤 설정이 필요한지, 어떤 에러가 발생했고 어떻게 해결했는지 등을 포함합니다.
vmkmym's avatar
May 07, 2025
[OSSCA] PR-Agent 기본 설정 및 직접 실행해보기

📂 프로젝트 구조 이해

  • 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를 적어줬습니다.

configuration.toml

📄 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 직접 실행 경험을 통해 오픈소스 도구가 어떤 식으로 동작하는지 구조를 파악할 수 있었고, 모델/인증 관련 설정에서 실질적인 트러블슈팅 경험을 쌓을 수 있었다.


Share article

code-with-me