The-PR-Agent/pr-agent

🚀 PR Agent: The Original Open-Source PR Reviewer. This project is not the Qodo free tier.

The‑PR‑Agent / PR‑Agent

what it is – 오픈소스 AI 기반의 "코드 리뷰 봇"으로, 풀 리퀘스트(또는 이슈)에 대해 요약, 리뷰, 제안 또는 자유 형식 질문에 대한 답변을 자동으로 댓글로 달 수 있습니다. LiteLLM을 통해 대규모 언어 모델(OpenAI, Anthropic, Gemini, Mistral, Ollama 등)과 통신하고 결과를 Git 제공자에 게시합니다.

사용해야 하는 이유

  • 빠르고 저렴함 – 각 작업(/review, /improve, /ask 등)은 단일 LLM 호출을 수행합니다(약 30초, 낮은 토큰 비용).
  • 모든 규모의 PR에서 작동 – "PR 압축" 단계를 사용하여 큰 diff를 모델 컨텍스트에 맞춥니다.
  • 고도로 설정 가능 – 프롬프트는 JSON/TOML 파일에 정의되므로 팀은 리뷰 범주, 톤을 조정하거나 사용자 지정 검사를 추가할 수 있습니다.
  • 어디서나 실행 가능 – GitHub, GitLab, Bitbucket, Azure DevOps, Gitea를 지원합니다. GitHub Action, Docker 컨테이너, 자체 호스팅 서비스 또는 로컬 CLI 도구로 사용할 수 있습니다.
  • 오픈소스 및 자체 호스팅 – 코드와 API 키에 대한 완전한 제어를 유지합니다. 벤더 종속이 없습니다.

주요 기능

  • /describe – PR 변경 사항에 대한 짧은 요약을 생성합니다.
  • /review – 기존 코드 리뷰 코멘트(스타일, 버그, 테스트 등)를 생성합니다.
  • /improve – 구체적인 개선 또는 리팩토링을 제안합니다.
  • /ask "..." – PR에 대한 자유 형식 Q&A.
  • /similar_issue – 현재 이슈와 유사한 기존 이슈를 찾습니다.
  • LiteLLM 추상화를 통해 많은 LLM 제공자를 지원합니다(OpenAI, Claude, Gemini, DeepSeek, Mistral, Azure OpenAI, AWS Bedrock, Vertex AI, Ollama, OpenRouter 등).
  • 쉬운 사용자 지정을 위한 JSON 기반 프롬프트 구성.
  • 빠른 배포를 위한 Docker 이미지(pragent/pr-agent).

시작하기

  1. GitHub Action(권장) – pull_request 이벤트에서 작업을 실행하고 OPENAI_KEY(또는 다른 제공자 키) 및 GITHUB_TOKEN을 제공하는 워크플로 파일을 추가합니다.
    name: PR Agent
    on:
      pull_request: { types: [opened, synchronize] }
    jobs:
      pr_agent:
        runs-on: ubuntu-latest
        steps:
          - uses: the-pr-agent/pr-agent@main
            env:
              OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
              GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    
  2. 로컬 CLI – pip install "pr-agent[github]"로 설치하고 OPENAI_KEY를 설정한 후 다음을 실행합니다:
    pr-agent --pr_url https://github.com/owner/repo/pull/123 review
    
    다른 제공자를 위한 확장 패키지가 있습니다(pr-agent[gitlab], pr-agent[bitbucket] 등). 모든 경우 pr-agent[all].
  3. 다른 플랫폼 – 문서에는 GitLab, Bitbucket, Azure DevOps, Gitea용 웹훅/앱 설정이 제공됩니다.

작동 방식

  • 도구는 PR diff를 가져와 모델 컨텍스트에 맞게 압축하고, 프롬프트를 구성한 다음(configuration.toml에서 사용자 지정 가능), 선택한 LLM에 전송하고 모델의 응답을 PR/이슈에 코멘트로 게시합니다.
  • 문서의 다이어그램은 흐름을 보여줍니다: 가져오기 → 압축 → 프롬프트 → LLM → 코멘트.

데이터 개인정보 보호

  • 자체 호스팅할 때 환경 외부로 전송되는 유일한 데이터는 LLM 제공자(예: OpenAI)에 대한 요청입니다. 제공자의 기업 개인정보 보호 정책이 적용됩니다.

커뮤니티 및 기여

  • 이 프로젝트는 커뮤니티가 유지 관리하며 Qodo(골드 스폰서)가 후원합니다. 일반적인 GitHub 풀 리퀘스트 프로세스를 통해 기여를 환영합니다. 테스트는 uv run pytest로 로컬에서 실행할 수 있습니다.

유용한 링크


위의 모든 정보는 저장소의 README에서 직접 가져온 것입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트