Files
pr-agent/README.md

311 lines
20 KiB
Markdown
Raw Normal View History

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">
2024-03-22 21:43:41 +02:00
<img src="https://codium.ai/images/pr_agent/logo-light.png" alt="logo" width="330">
2024-03-22 20:11:26 +02:00
2023-12-03 08:58:28 +02:00
</picture>
<br/>
2024-07-28 17:34:08 +03:00
CodiumAI PR-Agent aims to help efficiently review and handle pull requests, by providing AI feedback and suggestions
</div>
2023-07-06 17:41:19 +03:00
2023-07-16 16:36:11 +03:00
[![GitHub license](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/Codium-ai/pr-agent/blob/main/LICENSE)
2024-05-15 10:31:57 +03:00
[![Static Badge](https://img.shields.io/badge/Chrome-Extension-violet)](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl)
2024-05-31 16:25:00 +03:00
[![Static Badge](https://img.shields.io/badge/Code-Benchmark-blue)](https://pr-agent-docs.codium.ai/finetuning_benchmark/)
2023-07-06 00:21:08 +03:00
[![Discord](https://badgen.net/badge/icon/discord?icon=discord&label&color=purple)](https://discord.com/channels/1057273017547378788/1126104260430528613)
2023-10-02 11:59:56 +03:00
[![Twitter](https://img.shields.io/twitter/follow/codiumai)](https://twitter.com/codiumai)
2024-07-28 17:34:08 +03:00
[![Cheat Sheet](https://img.shields.io/badge/Cheat-Sheet-red)](https://www.codium.ai/images/pr_agent/cheat_sheet.pdf)
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
### [Documentation](https://pr-agent-docs.codium.ai/)
- See the [Installation Guide](https://pr-agent-docs.codium.ai/installation/) for instructions on installing PR-Agent on different platforms.
- See the [Usage Guide](https://pr-agent-docs.codium.ai/usage-guide/) for instructions on running PR-Agent tools via different interfaces, such as CLI, PR Comments, or by automatically triggering them when a new PR is opened.
- See the [Tools Guide](https://pr-agent-docs.codium.ai/tools/) for a detailed description of the different tools, and the available configurations for each tool.
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)
2024-09-01 11:17:41 +03:00
- [PR-Agent Pro 💎](https://pr-agent-docs.codium.ai/overview/pr_agent_pro/)
2024-01-18 08:20:09 +02:00
- [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-29 21:29:12 +02:00
### September 12, 2024
[Dynamic context](https://pr-agent-docs.codium.ai/core-abilities/dynamic_context/) is now the default option for context extension.
This feature enables PR-Agent to dynamically adjusting the relevant context for each code hunk, while avoiding overflowing the model with too much information.
2024-09-03 18:49:04 +03:00
### September 3, 2024
New version of PR-Agent, v0.24 was released. See the [release notes](https://github.com/Codium-ai/pr-agent/releases/tag/v0.24) for more information.
2024-08-26 08:00:07 +03:00
### August 26, 2024
New version of [PR Agent Chrome Extension](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl) was released, with full support of context-aware **PR Chat**. This novel feature is free to use for any open-source repository. See more details in [here](https://pr-agent-docs.codium.ai/chrome-extension/#pr-chat).
2024-08-26 08:00:07 +03:00
<kbd><img src="https://www.codium.ai/images/pr_agent/pr_chat_1.png" width="768"></kbd>
2024-08-26 08:00:07 +03:00
<kbd><img src="https://www.codium.ai/images/pr_agent/pr_chat_2.png" width="768"></kbd>
2024-08-26 08:00:07 +03:00
2024-08-11 19:16:11 +03:00
### August 11, 2024
Increased PR context size for improved results, and enabled [asymmetric context](https://github.com/Codium-ai/pr-agent/pull/1114/files#diff-9290a3ad9a86690b31f0450b77acd37ef1914b41fabc8a08682d4da433a77f90R69-R70)
2024-08-10 21:31:17 +03:00
### August 10, 2024
2024-08-10 21:36:27 +03:00
Added support for [Azure devops pipeline](https://pr-agent-docs.codium.ai/installation/azure/) - you can now easily run PR-Agent as an Azure devops pipeline, without needing to set up your own server.
2024-08-10 21:31:17 +03:00
### August 5, 2024
Added support for [GitLab pipeline](https://pr-agent-docs.codium.ai/installation/gitlab/#run-as-a-gitlab-pipeline) - you can now run easily PR-Agent as a GitLab pipeline, without needing to set up your own server.
### July 28, 2024
(1) improved support for bitbucket server - [auto commands](https://github.com/Codium-ai/pr-agent/pull/1059) and [direct links](https://github.com/Codium-ai/pr-agent/pull/1061)
2024-07-28 09:36:41 +03:00
(2) custom models are now [supported](https://pr-agent-docs.codium.ai/usage-guide/changing_a_model/#custom-models)
2024-03-03 14:33:15 +02:00
## Overview
<div style="text-align:left;">
2024-03-03 14:33:15 +02:00
Supported commands per platform:
2023-07-16 13:28:27 +03:00
2024-07-18 10:58:39 +03:00
| | | GitHub | Gitlab | Bitbucket | Azure DevOps |
|-------|---------------------------------------------------------------------------------------------------------|:--------------------:|:--------------------:|:--------------------:|:------------:|
| TOOLS | Review | ✅ | ✅ | ✅ | ✅ |
| | ⮑ Incremental | ✅ | | | |
| | ⮑ [SOC2 Compliance](https://pr-agent-docs.codium.ai/tools/review/#soc2-ticket-compliance) 💎 | ✅ | ✅ | ✅ | |
| | Describe | ✅ | ✅ | ✅ | ✅ |
| | ⮑ [Inline File Summary](https://pr-agent-docs.codium.ai/tools/describe#inline-file-summary) 💎 | ✅ | | | |
| | Improve | ✅ | ✅ | ✅ | ✅ |
| | ⮑ Extended | ✅ | ✅ | ✅ | ✅ |
| | Ask | ✅ | ✅ | ✅ | ✅ |
| | ⮑ [Ask on code lines](https://pr-agent-docs.codium.ai/tools/ask#ask-lines) | ✅ | ✅ | | |
| | [Custom Prompt](https://pr-agent-docs.codium.ai/tools/custom_prompt/) 💎 | ✅ | ✅ | ✅ | |
| | [Test](https://pr-agent-docs.codium.ai/tools/test/) 💎 | ✅ | ✅ | | |
| | Reflect and Review | ✅ | ✅ | ✅ | ✅ |
| | Update CHANGELOG.md | ✅ | ✅ | ✅ | ✅ |
| | Find Similar Issue | ✅ | | | |
| | [Add PR Documentation](https://pr-agent-docs.codium.ai/tools/documentation/) 💎 | ✅ | ✅ | | |
| | [Custom Labels](https://pr-agent-docs.codium.ai/tools/custom_labels/) 💎 | ✅ | ✅ | | |
| | [Analyze](https://pr-agent-docs.codium.ai/tools/analyze/) 💎 | ✅ | ✅ | | |
| | [CI Feedback](https://pr-agent-docs.codium.ai/tools/ci_feedback/) 💎 | ✅ | | | |
| | [Similar Code](https://pr-agent-docs.codium.ai/tools/similar_code/) 💎 | ✅ | | | |
| | | | | | |
| USAGE | CLI | ✅ | ✅ | ✅ | ✅ |
| | App / webhook | ✅ | ✅ | ✅ | ✅ |
| | Tagging bot | ✅ | | | |
2024-08-10 21:43:37 +03:00
| | Actions | ✅ |✅| ✅ |✅|
2024-07-18 10:58:39 +03:00
| | | | | | |
| CORE | PR compression | ✅ | ✅ | ✅ | ✅ |
| | Repo language prioritization | ✅ | ✅ | ✅ | ✅ |
| | Adaptive and token-aware file patch fitting | ✅ | ✅ | ✅ | ✅ |
| | Multiple models support | ✅ | ✅ | ✅ | ✅ |
| | [Static code analysis](https://pr-agent-docs.codium.ai/core-abilities/#static-code-analysis) 💎 | ✅ | ✅ | ✅ | |
| | [Global and wiki configurations](https://pr-agent-docs.codium.ai/usage-guide/configuration_options/) 💎 | ✅ | ✅ | ✅ | |
| | [PR interactive actions](https://www.codium.ai/images/pr_agent/pr-actions.mp4) 💎 | ✅ | ✅ | | |
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]&#40;./docs/Full_environments.md&#41;)
2024-01-29 11:19:37 +02:00
___
2024-01-29 11:11:30 +02:00
2024-03-10 12:34:17 +02:00
**Auto Description ([`/describe`](https://pr-agent-docs.codium.ai/tools/describe/))**: Automatically generating PR description - title, type, summary, code walkthrough and labels.
\
2024-03-10 12:34:17 +02:00
**Auto Review ([`/review`](https://pr-agent-docs.codium.ai/tools/review/))**: Adjustable feedback about the PR, possible issues, security concerns, review effort and more.
2023-07-16 13:28:27 +03:00
\
2024-03-10 12:34:17 +02:00
**Code Suggestions ([`/improve`](https://pr-agent-docs.codium.ai/tools/improve/))**: Code suggestions for improving the PR.
2023-07-16 13:28:27 +03:00
\
2024-03-10 12:34:17 +02:00
**Question Answering ([`/ask ...`](https://pr-agent-docs.codium.ai/tools/ask/))**: Answering free-text questions about the PR.
2023-07-16 13:28:27 +03:00
\
2024-03-10 12:34:17 +02:00
**Update Changelog ([`/update_changelog`](https://pr-agent-docs.codium.ai/tools/update_changelog/))**: Automatically updating the CHANGELOG.md file with the PR changes.
2023-07-30 22:04:59 +03:00
\
2024-03-10 12:34:17 +02:00
**Find Similar Issue ([`/similar_issue`](https://pr-agent-docs.codium.ai/tools/similar_issues/))**: Automatically retrieves and presents similar issues.
2023-09-13 07:46:43 +03:00
\
2024-03-10 12:34:17 +02:00
**Add Documentation 💎 ([`/add_docs`](https://pr-agent-docs.codium.ai/tools/documentation/))**: Generates documentation to methods/functions/classes that changed in the PR.
2023-10-01 13:52:00 +03:00
\
2024-03-10 12:34:17 +02:00
**Generate Custom Labels 💎 ([`/generate_labels`](https://pr-agent-docs.codium.ai/tools/custom_labels/))**: Generates custom labels for the PR, based on specific guidelines defined by the user.
2023-10-29 13:58:01 +02:00
\
2024-03-10 12:34:17 +02:00
**Analyze 💎 ([`/analyze`](https://pr-agent-docs.codium.ai/tools/analyze/))**: Identify code components that changed in the PR, and enables to interactively generate tests, docs, and code suggestions for each component.
2023-12-24 13:08:13 +02:00
\
**Custom Prompt 💎 ([`/custom_prompt`](https://pr-agent-docs.codium.ai/tools/custom_prompt/))**: Automatically generates custom suggestions for improving the PR code, based on specific guidelines defined by the user.
\
2024-03-10 12:34:17 +02:00
**Generate Tests 💎 ([`/test component_name`](https://pr-agent-docs.codium.ai/tools/test/))**: Generates unit tests for a selected component, based on the PR code changes.
2024-01-29 11:22:46 +02:00
\
2024-03-10 12:34:17 +02:00
**CI Feedback 💎 ([`/checks ci_job`](https://pr-agent-docs.codium.ai/tools/ci_feedback/))**: Automatically generates feedback and analysis for a failed CI job.
\
2024-04-07 10:06:05 +01:00
**Similar Code 💎 ([`/find_similar_component`](https://pr-agent-docs.codium.ai/tools/similar_code/))**: Retrieves the most similar code components from inside the organization's codebase, or from open-source code.
2024-03-03 14:33:15 +02:00
___
2024-01-05 17:05:03 +02:00
## Example results
2023-07-06 00:21:08 +03:00
</div>
<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-03-03 14:33:15 +02:00
<img src="https://www.codium.ai/images/pr_agent/describe_new_short_main.png" width="512">
2023-12-24 13:08:13 +02:00
</p>
</div>
2024-01-05 23:29:59 +02:00
<hr>
2023-12-24 13:08:13 +02:00
2024-03-03 14:33:15 +02:00
<h4><a href="https://github.com/Codium-ai/pr-agent/pull/732#issuecomment-1975099151">/review</a></h4>
2023-07-16 13:28:27 +03:00
<div align="center">
<p float="center">
2023-12-24 13:08:13 +02:00
<kbd>
2024-03-03 14:33:15 +02:00
<img src="https://www.codium.ai/images/pr_agent/review_new_short_main.png" width="512">
2023-12-24 13:08:13 +02:00
</kbd>
2023-07-16 13:28:27 +03:00
</p>
2024-03-03 14:33:15 +02:00
</div>
<hr>
2023-12-24 13:08:13 +02:00
2024-03-03 14:33:15 +02:00
<h4><a href="https://github.com/Codium-ai/pr-agent/pull/732#issuecomment-1975099159">/improve</a></h4>
<div align="center">
<p float="center">
<kbd>
<img src="https://www.codium.ai/images/pr_agent/improve_new_short_main.png" width="512">
</kbd>
</p>
2023-07-16 17:32:48 +03:00
</div>
2024-01-05 23:29:59 +02:00
<hr>
2024-03-03 14:33:15 +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
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
```
2024-07-18 10:58:39 +03:00
and the agent will respond with a review of your PR.
Note that this is a promotional bot, suitable only for initial experimentation.
2024-08-18 08:44:49 +03:00
It does not have 'edit' access to your repo, for example, so it cannot update the PR description or add labels (`@CodiumAI-Agent /describe` will publish PR description as a comment). In addition, the bot cannot be used on private repositories, as it does not have access to the files there.
2023-07-19 15:31:29 +03:00
2023-07-23 17:38:08 +03:00
![Review generation process](https://www.codium.ai/images/demo-2.gif)
2023-07-19 15:31:29 +03:00
2023-09-01 19:40:38 +03:00
2024-03-10 12:34:17 +02:00
To set up your own PR-Agent, see the [Installation](https://pr-agent-docs.codium.ai/installation/) section below.
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
---
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-04-07 09:08:40 +03: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\GitLab\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.
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.
2024-03-10 12:34:17 +02:00
See [here](https://pr-agent-docs.codium.ai/#pr-agent-pro) for a list of features available in PR-Agent Pro.
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
![PR-Agent Tools](https://codium.ai/images/pr_agent/diagram-v0.9.png)
2023-07-06 18:19:06 +03:00
2024-03-10 12:34:17 +02:00
Check out the [PR Compression strategy](https://pr-agent-docs.codium.ai/core-abilities/#pr-compression-strategy) 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.
2024-03-10 12:34:17 +02:00
- Our [PR Compression strategy](https://pr-agent-docs.codium.ai/core-abilities/#pr-compression-strategy) 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
2024-05-05 16:01:07 +03:00
### Self-hosted PR-Agent
- 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-05-05 16:01:07 +03:00
### CodiumAI-hosted PR-Agent Pro 💎
- When using PR-Agent Pro 💎, hosted by CodiumAI, we will not store any of your data, nor will we use it for training. You will also benefit from an OpenAI account with zero data retention.
- For certain clients, CodiumAI-hosted PR-Agent Pro will use CodiumAIs proprietary models — if this is the case, you will be notified.
- No passive collection of Code and Pull Requests data — PR-Agent will be active only when you invoke it, and it will then extract and analyze only data relevant to the executed command and queried pull request.
### PR-Agent Chrome extension
2024-05-05 16:13:28 +03:00
- The [PR-Agent Chrome extension](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl) serves solely to modify the visual appearance of a GitHub PR screen. It does not transmit any user's repo or pull request code. Code is only sent for processing when a user submits a GitHub comment that activates a PR-Agent tool, in accordance with the standard privacy policy of PR-Agent.
2023-12-03 09:12:10 +02:00
2023-09-14 11:53:47 +03:00
## Links
[![Join our Discord community](https://raw.githubusercontent.com/Codium-ai/codiumai-vscode-release/main/media/docs/Joincommunity.png)](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