Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Codium-ai/pr-agent

๐Ÿš€CodiumAI PR-Agent: An AI-Powered ๐Ÿค– Tool for Automated Pull Request Analysis, Feedback, Suggestions and More! ๐Ÿ’ป๐Ÿ”
https://github.com/Codium-ai/pr-agent

code-review codereview coding-assistant devtools gpt-4 openai pull-request pull-requests

Last synced: 23 days ago
JSON representation

๐Ÿš€CodiumAI PR-Agent: An AI-Powered ๐Ÿค– Tool for Automated Pull Request Analysis, Feedback, Suggestions and More! ๐Ÿ’ป๐Ÿ”

Awesome Lists containing this project

README

        



logo



CodiumAI PR-Agent aims to help efficiently review and handle pull requests, by providing AI feedback and suggestions

[![GitHub license](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/Codium-ai/pr-agent/blob/main/LICENSE)
[![Static Badge](https://img.shields.io/badge/Chrome-Extension-violet)](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl)
[![Static Badge](https://img.shields.io/badge/Code-Benchmark-blue)](https://pr-agent-docs.codium.ai/finetuning_benchmark/)
[![Discord](https://badgen.net/badge/icon/discord?icon=discord&label&color=purple)](https://discord.com/channels/1057273017547378788/1126104260430528613)
[![Twitter](https://img.shields.io/twitter/follow/codiumai)](https://twitter.com/codiumai)
[![Cheat Sheet](https://img.shields.io/badge/Cheat-Sheet-red)](https://www.codium.ai/images/pr_agent/cheat_sheet.pdf)

GitHub

### [Documentation](https://pr-agent-docs.codium.ai/)
- See the [Installation Guide](https://qodo-merge-docs.qodo.ai/installation/) for instructions on installing PR-Agent on different platforms.

- See the [Usage Guide](https://qodo-merge-docs.qodo.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://qodo-merge-docs.qodo.ai/tools/) for a detailed description of the different tools, and the available configurations for each tool.

## Table of Contents
- [News and Updates](#news-and-updates)
- [Overview](#overview)
- [Example results](#example-results)
- [Try it now](#try-it-now)
- [PR-Agent Pro ๐Ÿ’Ž](https://pr-agent-docs.codium.ai/overview/pr_agent_pro/)
- [How it works](#how-it-works)
- [Why use PR-Agent?](#why-use-pr-agent)

## News and Updates

### October 21, 2024
**Disable publishing labels by default:**

The default setting for `pr_description.publish_labels` has been updated to `false`. This means that labels generated by the `/describe` tool will no longer be published, unless this configuration is explicitly set to `true`.

We constantly strive to balance informative AI analysis with reducing unnecessary noise. User feedback indicated that in many cases, the original PR title alone provides sufficient information, making the generated labels (`enhancement`, `documentation`, `bug fix`, ...) redundant.
The [`review_effort`](https://qodo-merge-docs.qodo.ai/tools/review/#configuration-options) label, generated by the `review` tool, will still be published by default, as it provides valuable information enabling reviewers to prioritize small PRs first.

However, every user has different preferences. To still publish the `describe` labels, set `pr_description.publish_labels=true` in the [configuration file](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/).
For more tailored and relevant labeling, we recommend using the [`custom_labels ๐Ÿ’Ž`](https://qodo-merge-docs.qodo.ai/tools/custom_labels/) tool, that allows generating labels specific to your project's needs.

![image](https://github.com/user-attachments/assets/8f38d222-53b1-4742-b2ec-7ea0a30c9076)

โ†’

![image](https://github.com/user-attachments/assets/8285bd90-0dda-4c7e-9237-bbfde5e21880)

### October 14, 2024
Improved support for GitHub enterprise server with [GitHub Actions](https://qodo-merge-docs.qodo.ai/installation/github/#action-for-github-enterprise-server)

### October 10, 2024
New ability for the `review` tool - **ticket compliance feedback**. If the PR contains a ticket number, PR-Agent will check if the PR code actually [complies](https://github.com/Codium-ai/pr-agent/pull/1279#issuecomment-2404042130) with the ticket requirements.

### September 21, 2024
Need help with PR-Agent? New feature - simply comment `/help "your question"` in a pull request, and PR-Agent will provide you with the [relevant documentation](https://github.com/Codium-ai/pr-agent/pull/1241#issuecomment-2365259334).

![image](https://github.com/user-attachments/assets/7c214d9c-e7bb-4028-83b6-9515d7310d19)

## Overview

Supported commands per platform:

| | | GitHub | Gitlab | Bitbucket | Azure DevOps |
|-------|---------------------------------------------------------------------------------------------------------|:--------------------:|:--------------------:|:--------------------:|:------------:|
| TOOLS | Review | โœ… | โœ… | โœ… | โœ… |
| | โฎ‘ Incremental | โœ… | | | |
| | 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 | โœ… | | | |
| | Actions | โœ… |โœ…| โœ… |โœ…|
| | | | | | |
| 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) ๐Ÿ’Ž | โœ… | โœ… | | |
- ๐Ÿ’Ž 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))
___

โ€ฃ **Auto Description ([`/describe`](https://pr-agent-docs.codium.ai/tools/describe/))**: Automatically generating PR description - title, type, summary, code walkthrough and labels.
\
โ€ฃ **Auto Review ([`/review`](https://pr-agent-docs.codium.ai/tools/review/))**: Adjustable feedback about the PR, possible issues, security concerns, review effort and more.
\
โ€ฃ **Code Suggestions ([`/improve`](https://pr-agent-docs.codium.ai/tools/improve/))**: Code suggestions for improving the PR.
\
โ€ฃ **Question Answering ([`/ask ...`](https://pr-agent-docs.codium.ai/tools/ask/))**: Answering free-text questions about the PR.
\
โ€ฃ **Update Changelog ([`/update_changelog`](https://pr-agent-docs.codium.ai/tools/update_changelog/))**: Automatically updating the CHANGELOG.md file with the PR changes.
\
โ€ฃ **Find Similar Issue ([`/similar_issue`](https://pr-agent-docs.codium.ai/tools/similar_issues/))**: Automatically retrieves and presents similar issues.
\
โ€ฃ **Add Documentation ๐Ÿ’Ž ([`/add_docs`](https://pr-agent-docs.codium.ai/tools/documentation/))**: Generates documentation to methods/functions/classes that changed in the PR.
\
โ€ฃ **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.
\
โ€ฃ **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.
\
โ€ฃ **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.
\
โ€ฃ **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.
\
โ€ฃ **CI Feedback ๐Ÿ’Ž ([`/checks ci_job`](https://pr-agent-docs.codium.ai/tools/ci_feedback/))**: Automatically generates feedback and analysis for a failed CI job.
\
โ€ฃ **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.
___

## Example results


/describe








/review










/improve










/generate_labels






[//]: # (

/reflect_and_review:

)

[//]: # (

)

[//]: # (

)

[//]: # ()

[//]: # (

)

[//]: # (

)

[//]: # (

/ask:

)

[//]: # (

)

[//]: # (

)

[//]: # ()

[//]: # (

)

[//]: # (

)

[//]: # (

/improve:

)

[//]: # (

)

[//]: # (

)

[//]: # ()

[//]: # (

)

[//]: # (

)



## 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.
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.

Note that this is a promotional bot, suitable only for initial experimentation.
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.

![Review generation process](https://www.codium.ai/images/demo-2.gif)

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 ...`.

---

## 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:
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.
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.
See [here](https://qodo-merge-docs.qodo.ai/overview/pr_agent_pro/) for a list of features available in PR-Agent Pro.

## How it works

The following diagram illustrates PR-Agent tools and their flow:

![PR-Agent Tools](https://codium.ai/images/pr_agent/diagram-v0.9.png)

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

## Why use PR-Agent?

A reasonable question that can be asked is: `"Why use PR-Agent? What makes it stand out from existing tools?"`

Here are some advantages of PR-Agent:

- 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](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.
- 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.
- 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).

## Data privacy

### 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:
https://openai.com/enterprise-privacy

### 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 CodiumAIโ€™s 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

- 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.

## 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: [email protected]