Skip to content

Latest commit

 

History

History
316 lines (222 loc) · 19.8 KB

README.md

File metadata and controls

316 lines (222 loc) · 19.8 KB
logo
CodiumAI PR-Agent aims to help efficiently review and handle pull requests, by providing AI feedback and suggestions

GitHub license Static Badge Static Badge Discord Twitter Cheat Sheet GitHub

  • See the Installation Guide for instructions on installing PR-Agent on different platforms.

  • See the 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 for a detailed description of the different tools, and the available configurations for each tool.

Table of Contents

News and Updates

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.

September 12, 2024

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.

September 3, 2024

New version of PR-Agent, v0.24 was released. See the release notes for more information.

August 26, 2024

New version of PR Agent Chrome Extension 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.

August 11, 2024

Increased PR context size for improved results, and enabled asymmetric context

August 10, 2024

Added support for Azure devops pipeline - you can now easily run PR-Agent as an Azure devops pipeline, without needing to set up your own server.

August 5, 2024

Added support for 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 and direct links

(2) custom models are now supported

Overview

Supported commands per platform:

GitHub Gitlab Bitbucket Azure DevOps
TOOLS Review
⮑ Incremental
SOC2 Compliance 💎
Describe
Inline File Summary 💎
Improve
⮑ Extended
Ask
Ask on code lines
Custom Prompt 💎
Test 💎
Reflect and Review
Update CHANGELOG.md
Find Similar Issue
Add PR Documentation 💎
Custom Labels 💎
Analyze 💎
CI Feedback 💎
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 💎
Global and wiki configurations 💎
PR interactive actions 💎

Auto Description (/describe): Automatically generating PR description - title, type, summary, code walkthrough and labels.
Auto Review (/review): Adjustable feedback about the PR, possible issues, security concerns, review effort and more.
Code Suggestions (/improve): Code suggestions for improving the PR.
Question Answering (/ask ...): Answering free-text questions about the PR.
Update Changelog (/update_changelog): Automatically updating the CHANGELOG.md file with the PR changes.
Find Similar Issue (/similar_issue): Automatically retrieves and presents similar issues.
Add Documentation 💎 (/add_docs): Generates documentation to methods/functions/classes that changed in the PR.
Generate Custom Labels 💎 (/generate_labels): Generates custom labels for the PR, based on specific guidelines defined by the user.
Analyze 💎 (/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): Automatically generates custom suggestions for improving the PR code, based on specific guidelines defined by the user.
Generate Tests 💎 (/test component_name): Generates unit tests for a selected component, based on the PR code changes.
CI Feedback 💎 (/checks ci_job): Automatically generates feedback and analysis for a failed CI job.
Similar Code 💎 (/find_similar_component): Retrieves the most similar code components from inside the organization's codebase, or from open-source code.


Example results





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

To set up your own PR-Agent, see the 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 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 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

Check out the 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 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 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

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