2023-07-06 00:21:08 +03:00
< div align = "center" >
2023-07-07 01:28:20 +03:00
< div align = "center" >
2023-07-06 17:41:19 +03:00
2023-12-03 08:58:28 +02:00
< picture >
< source media = "(prefers-color-scheme: dark)" srcset = "https://codium.ai/images/pr_agent/logo-dark.png" width = "330" >
< source media = "(prefers-color-scheme: light)" srcset = "https://codium.ai/images/pr_agent/logo-light.png" width = "330" >
< img alt = "logo" >
< / picture >
< br / >
2023-07-20 16:40:14 +03:00
Making pull requests less painful with an AI agent
2023-07-06 19:18:53 +03:00
< / div >
2023-07-06 17:41:19 +03:00
2023-07-16 16:36:11 +03:00
[](https://github.com/Codium-ai/pr-agent/blob/main/LICENSE)
2023-07-06 00:21:08 +03:00
[](https://discord.com/channels/1057273017547378788/1126104260430528613)
2023-10-02 11:59:56 +03:00
[](https://twitter.com/codiumai)
2023-07-20 17:36:40 +03:00
< a href = "https://github.com/Codium-ai/pr-agent/commits/main" >
< img alt = "GitHub" src = "https://img.shields.io/github/last-commit/Codium-ai/pr-agent/main?style=for-the-badge" height = "20" >
< / a >
2023-07-16 13:28:27 +03:00
< / div >
2024-01-17 15:43:01 +02:00
2024-01-18 08:20:09 +02:00
## Table of Contents
- [News and Updates ](#news-and-updates )
- [Overview ](#overview )
- [Example results ](#example-results )
- [Try it now ](#try-it-now )
- [Installation ](#installation )
- [PR-Agent Pro 💎 ](#pr-agent-pro- )
- [How it works ](#how-it-works )
- [Why use PR-Agent? ](#why-use-pr-agent )
2024-01-17 15:43:01 +02:00
## News and Updates
2024-02-11 10:58:13 +02:00
### Feb 11, 2024
The `review` tool has been revamped, aiming to make the feedback clearer and more relevant, and better compliment the `improve` tool.
< kbd >
2024-02-11 11:00:12 +02:00
< img src = "https://www.codium.ai/images/pr_agent/review_reworked.png" width = "512" >
2024-02-11 10:58:13 +02:00
< / kbd >
2024-02-06 08:31:36 +02:00
### Feb 6, 2024
2024-02-06 09:12:52 +02:00
A new feature was added to the `review` tool - [Auto-approve PRs ](./docs/REVIEW.md#auto-approval-1 ). If enabled, this feature enables to automatically approve PRs that meet specific criteria, by commenting on a PR: `/review auto_approve` .
2024-02-06 08:31:36 +02:00
2024-02-02 14:07:06 +02:00
### Feb 2, 2024
We are excited to introduce "PR Actions" 💎:
< kbd >
2024-02-11 10:58:13 +02:00
[<img src="https://www.codium.ai/images/pr_agent/pr_actions.png" width="512"/> ](https://www.codium.ai/images/pr_agent/pr-actions.mp4 )
2024-02-02 14:07:06 +02:00
< / kbd >
(click on the image to see a video demonstration)
2024-01-28 20:26:58 +02:00
### Jan 28, 2024
- 💎 Test - A new tool, [`/test component_name` ](https://github.com/Codium-ai/pr-agent/blob/main/docs/TEST.md ), was added to PR-Agent Pro. The tool will generate tests for a selected component, based on the PR code changes.
- 💎 Analyze - The [`/analyze` ](https://github.com/Codium-ai/pr-agent/blob/main/docs/Analyze.md ) tool was updated and simplified. It now presents a summary of the code components that were changed in the PR.
2024-01-21 17:06:25 +02:00
### Jan 21, 2024
2024-01-21 17:29:29 +02:00
- 💎 Custom suggestions - A new tool, `/custom_suggestions` , was added to PR-Agent Pro. The tool will propose only suggestions that follow specific guidelines defined by the user.
2024-01-21 17:10:23 +02:00
See [here ](https://github.com/Codium-ai/pr-agent/blob/main/docs/CUSTOM_SUGGESTIONS.md ) for more details.
2024-01-17 15:43:01 +02:00
## Overview
2023-07-16 17:41:23 +03:00
< div style = "text-align:left;" >
2023-07-16 13:28:27 +03:00
2023-12-24 13:08:13 +02:00
CodiumAI PR-Agent is an open-source tool to help efficiently review and handle pull requests. It automatically analyzes the pull request and can provide several types of commands:
2023-07-06 00:21:08 +03:00
2024-01-29 11:30:58 +02:00
| | | GitHub | Gitlab | Bitbucket |
|-------|------------------------------------------------------------------------------------------------------------------------------------------|:------:|:------:|:---------:|
| TOOLS | Review | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | ⮑ Incremental | :white_check_mark: | | |
| | ⮑ [SOC2 Compliance ](https://github.com/Codium-ai/pr-agent/blob/main/docs/REVIEW.md#soc2-ticket-compliance- ) 💎 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | Describe | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | ⮑ [Inline File Summary ](https://github.com/Codium-ai/pr-agent/blob/main/docs/DESCRIBE.md#inline-file-summary- ) 💎 | :white_check_mark: | | |
| | Improve | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | ⮑ Extended | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | Ask | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | [Custom Suggestions ](https://github.com/Codium-ai/pr-agent/blob/main/docs/CUSTOM_SUGGESTIONS.md ) 💎 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
2024-01-29 20:21:23 +02:00
| | [Test ](https://github.com/Codium-ai/pr-agent/blob/main/docs/TEST.md ) 💎 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
2024-01-29 11:30:58 +02:00
| | Reflect and Review | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | Update CHANGELOG.md | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | Find Similar Issue | :white_check_mark: | | |
| | [Add PR Documentation ](https://github.com/Codium-ai/pr-agent/blob/main/docs/ADD_DOCUMENTATION.md ) 💎 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | [Custom Labels ](https://github.com/Codium-ai/pr-agent/blob/main/docs/DESCRIBE.md#handle-custom-labels-from-the-repos-labels-page-gem ) 💎 | :white_check_mark: | :white_check_mark: | |
2024-02-02 14:07:06 +02:00
| | [Analyze ](https://github.com/Codium-ai/pr-agent/blob/main/docs/Analyze.md ) 💎 | :white_check_mark: | :white_check_mark: | |
2024-01-29 11:30:58 +02:00
| | | | | |
| USAGE | CLI | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | App / webhook | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | Tagging bot | :white_check_mark: | | |
| | Actions | :white_check_mark: | | :white_check_mark: |
| | | | | |
| CORE | PR compression | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | Repo language prioritization | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | Adaptive and token-aware< br / > file patch fitting | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | Multiple models support | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | [Static code analysis ](https://github.com/Codium-ai/pr-agent/blob/main/docs/Analyze.md ) 💎 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| | [Global configuration ](https://github.com/Codium-ai/pr-agent/blob/main/Usage.md#global-configuration-file- ) 💎 | :white_check_mark: | :white_check_mark: | :white_check_mark: |
2024-02-02 14:07:06 +02:00
| | [PR Actions ](https://www.codium.ai/images/pr_agent/pr-actions.mp4 ) 💎 | :white_check_mark: | | |
2024-01-29 11:11:30 +02:00
- 💎 means this feature is available only in [PR-Agent Pro ](https://www.codium.ai/pricing/ )
- Support for additional git providers is described in [here ](./docs/Full_environments.md )
2024-01-29 11:19:37 +02:00
___
2024-01-29 11:11:30 +02:00
2023-09-29 09:47:13 +03:00
‣ **Auto Description ([`/describe`](./docs/DESCRIBE.md))** : Automatically generating PR description - title, type, summary, code walkthrough and labels.
2023-07-16 13:28:27 +03:00
\
2023-09-29 09:47:13 +03:00
‣ **Auto Review ([`/review`](./docs/REVIEW.md))** : Adjustable feedback about the PR main theme, type, relevant tests, security issues, score, and various suggestions for the PR content.
2023-07-16 13:28:27 +03:00
\
2023-09-29 09:47:13 +03:00
‣ **Question Answering ([`/ask ...`](./docs/ASK.md))** : Answering free-text questions about the PR.
2023-07-16 13:28:27 +03:00
\
2023-09-29 09:47:13 +03:00
‣ **Code Suggestions ([`/improve`](./docs/IMPROVE.md))** : Committable code suggestions for improving the PR.
2023-07-30 22:04:59 +03:00
\
2023-09-29 09:47:13 +03:00
‣ **Update Changelog ([`/update_changelog`](./docs/UPDATE_CHANGELOG.md))** : Automatically updating the CHANGELOG.md file with the PR changes.
2023-09-13 07:46:43 +03:00
\
2023-12-11 10:58:30 +02:00
‣ **Find Similar Issue ([`/similar_issue`](./docs/SIMILAR_ISSUE.md))** : Automatically retrieves and presents similar issues.
2023-10-01 13:52:00 +03:00
\
2023-12-24 13:08:13 +02:00
‣ **Add Documentation 💎 ([`/add_docs`](./docs/ADD_DOCUMENTATION.md))** : Automatically adds documentation to methods/functions/classes that changed in the PR.
2023-10-29 13:58:01 +02:00
\
2023-12-24 13:08:13 +02:00
‣ **Generate Custom Labels 💎 ([`/generate_labels`](./docs/GENERATE_CUSTOM_LABELS.md))** : Automatically suggests custom labels based on the PR code changes.
\
‣ **Analyze 💎 ([`/analyze`](./docs/Analyze.md))** : Automatically analyzes the PR, and presents changes walkthrough for each component.
2024-01-21 17:10:23 +02:00
\
‣ **Custom Suggestions 💎 ([`/custom_suggestions`](./docs/CUSTOM_SUGGESTIONS.md))** : Automatically generates custom suggestions for improving the PR code, based on specific guidelines defined by the user.
2024-01-29 11:22:46 +02:00
\
‣ **Generate Tests 💎 ([`/test component_name`](./docs/TEST.md))** : Automatically generates unit tests for a selected component, based on the PR code changes.
2023-09-03 11:16:20 +03:00
2023-12-11 11:52:36 +02:00
See the [Installation Guide ](./INSTALL.md ) for instructions on installing and running the tool on different git platforms.
2023-10-26 12:10:14 +03:00
2023-12-11 11:52:36 +02:00
See the [Usage Guide ](./Usage.md ) for running the PR-Agent commands via different interfaces, including _CLI_ , _online usage_ , or by _automatically triggering_ them when a new PR is opened.
2023-10-26 12:10:14 +03:00
2024-01-05 23:29:59 +02:00
See the [Tools Guide ](./docs/TOOLS_GUIDE.md ) for a detailed description of the different tools (tools are run via the commands).
2023-09-03 11:16:20 +03:00
2024-01-05 17:05:03 +02:00
## Example results
2023-07-06 00:21:08 +03:00
< / div >
2023-12-24 16:21:41 +02:00
< h4 > < a href = "https://github.com/Codium-ai/pr-agent/pull/530" > /describe< / a > < / h4 >
2023-12-24 13:08:13 +02:00
< div align = "center" >
< p float = "center" >
2024-01-21 14:09:17 +02:00
< img src = "https://www.codium.ai/images/pr_agent/describe_new_short_main.png" width = "800" >
2023-12-24 13:08:13 +02:00
< / p >
< / div >
2024-01-05 23:29:59 +02:00
< hr >
2023-12-24 16:21:41 +02:00
< h4 >< a href = "https://github.com/Codium-ai/pr-agent/pull/472 #discussion_r1435819374 " > /improve</ a ></ h4 >
2023-12-24 13:08:13 +02:00
2023-07-16 13:28:27 +03:00
< div align = "center" >
< p float = "center" >
2023-12-24 13:08:13 +02:00
< kbd >
< img src = "https://www.codium.ai/images/pr_agent/improve_short_main.png" width = "768" >
< / kbd >
2023-07-16 13:28:27 +03:00
< / p >
2023-12-24 13:08:13 +02:00
2023-07-16 17:32:48 +03:00
< / div >
2024-01-05 23:29:59 +02:00
< hr >
2023-12-24 16:21:41 +02:00
< h4 > < a href = "https://github.com/Codium-ai/pr-agent/pull/530" > /generate_labels< / a > < / h4 >
2023-07-16 21:12:36 +03:00
< div align = "center" >
< p float = "center" >
2023-12-24 13:08:13 +02:00
< kbd > < img src = "https://www.codium.ai/images/pr_agent/geneare_custom_labels_main_short.png" width = "300" > < / kbd >
2023-07-23 12:06:04 +03:00
< / p >
< / div >
2023-07-06 00:21:08 +03:00
2023-09-01 19:40:38 +03:00
[//]: # (< h4 >< a href = "https://github.com/Codium-ai/pr-agent/pull/78 #issuecomment -1639739496" > /reflect_and_review:</ a ></ h4 > )
2023-07-19 15:31:29 +03:00
2023-09-01 19:40:38 +03:00
[//]: # (< div align = "center" > )
[//]: # (< p float = "center" > )
2023-07-19 15:31:29 +03:00
2023-09-01 19:40:38 +03:00
[//]: # (< img src = "https://www.codium.ai/images/reflect_and_review.gif" width = "800" > )
[//]: # (< / p > )
[//]: # (< / div > )
[//]: # (< h4 >< a href = "https://github.com/Codium-ai/pr-agent/pull/229 #issuecomment -1695020538" > /ask:</ a ></ h4 > )
[//]: # (< div align = "center" > )
[//]: # (< p float = "center" > )
[//]: # (< img src = "https://www.codium.ai/images/ask-2.gif" width = "800" > )
[//]: # (< / p > )
[//]: # (< / div > )
[//]: # (< h4 >< a href = "https://github.com/Codium-ai/pr-agent/pull/229 #issuecomment -1695024952" > /improve:</ a ></ h4 > )
[//]: # (< div align = "center" > )
[//]: # (< p float = "center" > )
[//]: # (< img src = "https://www.codium.ai/images/improve-2.gif" width = "800" > )
[//]: # (< / p > )
[//]: # (< / div > )
< div align = "left" >
2024-01-05 17:05:03 +02:00
2023-07-16 13:28:27 +03:00
< / div >
2024-01-05 23:29:59 +02:00
< hr >
2023-07-06 08:44:08 +03:00
2023-07-06 00:21:08 +03:00
2023-07-19 15:31:29 +03:00
## Try it now
2023-12-11 11:10:27 +02:00
Try the GPT-4 powered PR-Agent instantly on _your public GitHub repository_ . Just mention `@CodiumAI-Agent` and add the desired command in any PR comment. The agent will generate a response based on your command.
2023-09-01 19:40:38 +03:00
For example, add a comment to any pull request with the following text:
```
@CodiumAI -Agent /review
```
and the agent will respond with a review of your PR
2023-07-19 15:31:29 +03:00
2023-07-23 17:38:08 +03:00

2023-07-19 15:31:29 +03:00
2023-09-01 19:40:38 +03:00
To set up your own PR-Agent, see the [Installation ](#installation ) section below.
2023-12-11 11:10:27 +02:00
Note that when you set your own PR-Agent or use CodiumAI hosted PR-Agent, there is no need to mention `@CodiumAI-Agent ...` . Instead, directly start with the command, e.g., `/ask ...` .
2023-07-19 15:31:29 +03:00
---
## Installation
2023-12-24 13:08:13 +02:00
To use your own version of PR-Agent, you first need to acquire two tokens:
2023-07-06 17:41:19 +03:00
2023-07-06 00:21:08 +03:00
1. An OpenAI key from [here ](https://platform.openai.com/ ), with access to GPT-4.
2. A GitHub personal access token (classic) with the repo scope.
2023-07-19 15:31:29 +03:00
There are several ways to use PR-Agent:
2023-07-16 19:56:58 +03:00
2024-02-06 17:46:04 +02:00
**Locally**
- [Use Docker image (no installation required) ](./INSTALL.md#use-docker-image-no-installation-required )
- [Run from source ](./INSTALL.md#run-from-source )
**GitHub specific methods**
- [Run as a GitHub Action ](./INSTALL.md#run-as-a-github-action )
- [Run as a GitHub App ](./INSTALL.md#run-as-a-github-app )
**GitLab specific methods**
- [Run a GitLab webhook server ](./INSTALL.md#run-a-gitlab-webhook-server )
**BitBucket specific methods**
- [Run as a Bitbucket Pipeline ](./INSTALL.md#run-as-a-bitbucket-pipeline )
2023-07-06 00:21:08 +03:00
2024-01-05 17:05:03 +02:00
## PR-Agent Pro 💎
[PR-Agent Pro ](https://www.codium.ai/pricing/ ) is a hosted version of PR-Agent, provided by CodiumAI. It is available for a monthly fee, and provides the following benefits:
2024-01-07 11:26:24 +02:00
1. **Fully managed** - We take care of everything for you - hosting, models, regular updates, and more. Installation is as simple as signing up and adding the PR-Agent app to your GitHub\BitBucket repo.
2024-01-05 17:05:03 +02:00
2. **Improved privacy** - No data will be stored or used to train models. PR-Agent Pro will employ zero data retention, and will use an OpenAI account with zero data retention.
3. **Improved support** - PR-Agent Pro users will receive priority support, and will be able to request new features and capabilities.
2024-02-01 09:06:01 +02:00
4. **Extra features** -In addition to the benefits listed above, PR-Agent Pro will emphasize more customization, and the usage of static code analysis, in addition to LLM logic, to improve results. It has the following additional tools and features:
- [**Analyze PR components** ](https://github.com/Codium-ai/pr-agent/blob/main/docs/Analyze.md )
- [**Custom Code Suggestions** ](https://github.com/Codium-ai/pr-agent/blob/main/docs/CUSTOM_SUGGESTIONS.md )
- [**Tests** ](https://github.com/Codium-ai/pr-agent/blob/main/docs/TEST.md )
2024-01-05 17:05:03 +02:00
- [**PR documentation** ](https://github.com/Codium-ai/pr-agent/blob/main/docs/ADD_DOCUMENTATION.md )
2024-02-01 09:06:01 +02:00
- [**SOC2 compliance check** ](https://github.com/Codium-ai/pr-agent/blob/main/docs/REVIEW.md#soc2-ticket-compliance- )
2024-01-05 17:05:03 +02:00
- [**Custom labels** ](https://github.com/Codium-ai/pr-agent/blob/main/docs/DESCRIBE.md#handle-custom-labels-from-the-repos-labels-page-gem )
- [**Global configuration** ](https://github.com/Codium-ai/pr-agent/blob/main/Usage.md#global-configuration-file- )
2024-02-01 09:06:01 +02:00
2024-01-05 17:05:03 +02:00
2023-07-06 18:19:06 +03:00
## How it works
2023-08-04 12:13:04 +03:00
The following diagram illustrates PR-Agent tools and their flow:
2023-12-03 09:12:10 +02:00

2023-07-06 18:19:06 +03:00
2023-07-06 19:18:53 +03:00
Check out the [PR Compression strategy ](./PR_COMPRESSION.md ) page for more details on how we convert a code diff to a manageable LLM prompt
2023-07-06 00:21:08 +03:00
2023-07-27 08:13:21 +03:00
## Why use PR-Agent?
2024-01-05 23:29:59 +02:00
A reasonable question that can be asked is: `"Why use PR-Agent? What makes it stand out from existing tools?"`
2023-07-27 08:13:21 +03:00
2023-08-04 12:13:04 +03:00
Here are some advantages of PR-Agent:
2023-07-27 08:13:21 +03:00
- We emphasize **real-life practical usage** . Each tool (review, improve, ask, ...) has a single GPT-4 call, no more. We feel that this is critical for realistic team usage - obtaining an answer quickly (~30 seconds) and affordably.
- Our [PR Compression strategy ](./PR_COMPRESSION.md ) is a core ability that enables to effectively tackle both short and long PRs.
2023-09-02 09:19:35 +03:00
- Our JSON prompting strategy enables to have **modular, customizable tools** . For example, the '/review' tool categories can be controlled via the [configuration ](pr_agent/settings/configuration.toml ) file. Adding additional categories is easy and accessible.
2023-12-24 13:08:13 +02:00
- We support **multiple git providers** (GitHub, Gitlab, Bitbucket), **multiple ways** to use the tool (CLI, GitHub Action, GitHub App, Docker, ...), and **multiple models** (GPT-4, GPT-3.5, Anthropic, Cohere, Llama2).
2023-07-06 17:41:19 +03:00
2023-10-26 11:56:03 +03:00
2024-01-05 21:37:45 +02:00
## Data privacy
2023-10-26 11:56:03 +03:00
2023-12-24 13:08:13 +02:00
If you host PR-Agent with your OpenAI API key, it is between you and OpenAI. You can read their API data privacy policy here:
2023-10-26 11:56:03 +03:00
https://openai.com/enterprise-privacy
2024-01-05 23:29:59 +02:00
When using PR-Agent Pro 💎, hosted by CodiumAI, we will not store any of your data, nor will we use it for training.
2023-12-03 09:12:10 +02:00
You will also benefit from an OpenAI account with zero data retention.
2023-09-14 11:53:47 +03:00
## Links
[](https://discord.gg/kG35uSHDBc)
- Discord community: https://discord.gg/kG35uSHDBc
- CodiumAI site: https://codium.ai
- Blog: https://www.codium.ai/blog/
- Troubleshooting: https://www.codium.ai/blog/technical-faq-and-troubleshooting/
- Support: support@codium .ai