Git Product home page Git Product logo

pr-agent's Introduction

logo
Making pull requests less painful with an AI agent

GitHub license Discord Twitter GitHub

Table of Contents

News and Updates

Feb 18, 2024

  • Introducing the CI Feedback tool ๐Ÿ’Ž. The tool automatically triggers when a PR has a failed check. It analyzes the failed check, and provides summarized logs and analysis. Note that this feature requires read access to GitHub 'checks' and 'actions'. See here for more details.

โ†’

  • New ability - you can run /ask on specific lines of code in the PR from the PR's diff view. See here for more details.

  • Introducing support for Azure DevOps Webhooks, as well as bug fixes and improved support for several ADO commands.

Feb 11, 2024

The review tool has been revamped, aiming to make the feedback clearer and more relevant, and better complement the improve tool.

Feb 6, 2024

A new feature was added to the review tool - Auto-approve PRs. If enabled, this feature enables to automatically approve PRs that meet specific criteria, by commenting on a PR: /review auto_approve.

Feb 2, 2024

Added "PR Actions" ๐Ÿ’Ž - interactively trigger PR-Agent tools from the PR page.

Jan 28, 2024

  • ๐Ÿ’Ž Test - A new tool, /test component_name, was added to PR-Agent Pro. The tool will generate tests for a specific component, based on the PR code changes.
  • ๐Ÿ’Ž Analyze - The /analyze tool was updated and simplified. It now presents a summary of the code components that were changed in the PR.

Jan 21, 2024

  • ๐Ÿ’Ž 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. See here for more details.

Overview

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:

GitHub Gitlab Bitbucket
TOOLS Review โœ… โœ… โœ…
โฎ‘ Incremental โœ…
โฎ‘ SOC2 Compliance ๐Ÿ’Ž โœ… โœ… โœ…
Describe โœ… โœ… โœ…
โฎ‘ Inline File Summary ๐Ÿ’Ž โœ…
Improve โœ… โœ… โœ…
โฎ‘ Extended โœ… โœ… โœ…
Ask โœ… โœ… โœ…
โฎ‘ Ask on code lines โœ… โœ…
Custom Suggestions ๐Ÿ’Ž โœ… โœ… โœ…
Test ๐Ÿ’Ž โœ… โœ… โœ…
Reflect and Review โœ… โœ… โœ…
Update CHANGELOG.md โœ… โœ… โœ…
Find Similar Issue โœ…
Add PR Documentation ๐Ÿ’Ž โœ… โœ… โœ…
Custom Labels ๐Ÿ’Ž โœ… โœ…
Analyze ๐Ÿ’Ž โœ… โœ…
CI Feedback ๐Ÿ’Ž โœ…
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 configuration ๐Ÿ’Ž โœ… โœ… โœ…
PR Actions ๐Ÿ’Ž โœ…
  • ๐Ÿ’Ž means this feature is available only in PR-Agent Pro
  • Support for additional git providers is described in here

โ€ฃ 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.
โ€ฃ Question Answering (/ask ...): Answering free-text questions about the PR.
โ€ฃ Code Suggestions (/improve): Code suggestions for improving 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 Suggestions ๐Ÿ’Ž (/custom_suggestions): Automatically generates custom suggestions for improving the PR code, based on specific guidelines defined by the user.
โ€ฃ Generate Tests ๐Ÿ’Ž (/test component_name): Automatically 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.

See the Installation Guide for instructions on installing and running the tool on different git platforms.

See the Usage Guide for running the PR-Agent commands via different interfaces, including CLI, online usage, or by automatically triggering them when a new PR is opened.

See the Tools Guide for a detailed description of the different tools (tools are run via the commands).

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

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


Installation

To use your own version of PR-Agent, you first need to acquire two tokens:

  1. An OpenAI key from here, with access to GPT-4.
  2. A GitHub personal access token (classic) with the repo scope.

There are several ways to use PR-Agent:

Locally

GitHub specific methods

GitLab specific methods

BitBucket specific methods

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\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. It has the following additional tools and features:

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

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

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.

Links

Join our Discord community

pr-agent's People

Contributors

mrt23 avatar okotek avatar hussam789 avatar zmeir avatar sarbjitsinghgrewal avatar almog-lv avatar idavidov avatar brianphamsia avatar tombrewsviews avatar pzarfos avatar coditamar avatar szecsip avatar patryk-kowalski-ds avatar telepenin avatar yochail avatar krrishdholakia avatar lukefx avatar gadizimerman avatar kennydizi avatar koid avatar jamesrom avatar tmokmss avatar tjwp avatar network-charles avatar brianpham93 avatar prashantdixit0 avatar github-actions[bot] avatar raum avatar rajyan avatar ilchemla avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.