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

概要 – オープンソースでAI搭載の「コードレビューボット」であり、プルリクエスト(またはイシュー)に対して、要約、レビュー、提案、自由形式の質問への回答を自動的にコメントすることができます。LiteLLMを介して大規模言語モデル(OpenAI、Anthropic、Gemini、Mistral、Ollamaなど)と通信し、結果をGitプロバイダーに投稿します。

導入する理由

  • 高速かつ低コスト – 各操作(/review、/improve、/askなど)は、単一のLLM呼び出しを行います(約30秒、低トークンコスト)。
  • あらゆるサイズのPRに対応 – 「PR圧縮」ステップを使用して、大きな差分をモデルコンテキストに収めます。
  • 高度に設定可能 – プロンプトは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用のWebhook/アプリ設定が記載されています。

仕組み

  • ツールはPRの差分を取得し、モデルコンテキストに収まるように圧縮し、プロンプトを構築し(configuration.tomlでカスタマイズ可能)、選択したLLMに送信し、モデルの応答をPR/イシューにコメントとして投稿します。
  • ドキュメントの図はフローを示しています:取得 → 圧縮 → プロンプト → LLM → コメント。

データプライバシー

  • セルフホストの場合、環境外に送信されるデータはLLMプロバイダー(例:OpenAI)へのリクエストのみです。プロバイダーのエンタープライズプライバシーポリシーが適用されます。

コミュニティ&貢献

  • このプロジェクトはコミュニティによって維持され、Qodo(ゴールドスポンサー)がスポンサーです。通常のGitHubプルリクエストプロセスを通じて貢献を受け付けています。テストはuv run pytestでローカルに実行できます。

便利なリンク


上記の情報はすべて、リポジトリのREADMEから直接取得しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト