Code Monkey home page Code Monkey logo

pr-agent's Introduction


Making pull requests less painful with an AI agent

GitHub license Discord GitHub

CodiumAI PR-Agent is an open-source tool aiming to help developers review pull requests faster and more efficiently. It automatically analyzes the pull request and can provide several types of PR feedback:

Auto Description (/describe): Automatically generating PR description - title, type, summary, code walkthrough and labels.
Auto Review (/review): Adjustable feedback about the PR main theme, type, relevant tests, security issues, score, and various suggestions for the PR content.
Question Answering (/ask ...): Answering free-text questions about the PR.
Code Suggestions (/improve): Committable code suggestions for improving the PR.
Update Changelog (/update_changelog): Automatically updating the CHANGELOG.md file with the PR changes.

See the usage guide for instructions how to run the different tools from CLI, or by online usage.

Example results:

Overview

PR-Agent offers extensive pull request functionalities across various git providers:

GitHub Gitlab Bitbucket CodeCommit Azure DevOps
TOOLS Review โœ… โœ… โœ… โœ… โœ…
Ask โœ… โœ… โœ… โœ… โœ…
Auto-Description โœ… โœ… โœ… โœ…
Improve Code โœ… โœ… โœ…
โฎ‘ Extended โœ… โœ… โœ…
Reflect and Review โœ… โœ…
Update CHANGELOG.md โœ…
USAGE CLI โœ… โœ… โœ… โœ… โœ…
App / webhook โœ… โœ…
Tagging bot โœ…
Actions โœ…
CORE PR compression โœ… โœ… โœ… โœ… โœ…
Repo language prioritization โœ… โœ… โœ… โœ… โœ…
Adaptive and token-aware
file patch fitting
โœ… โœ… โœ… โœ… โœ…
Multiple models support โœ… โœ… โœ… โœ… โœ…
Incremental PR Review โœ…

Review the usage guide section for detailed instructions how to use the different tools, select the relevant git provider (GitHub, Gitlab, Bitbucket,...), and adjust the configuration file to your needs.

Try it now

You can try GPT-4 powered PR-Agent, on your public GitHub repository, instantly. 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.


Installation

To get started with PR-Agent quickly, 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:

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 make 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, CodeCommit), multiple ways to use the tool (CLI, GitHub Action, GitHub App, Docker, ...), and multiple models (GPT-4, GPT-3.5, Anthropic, Cohere, Llama2).
  • We are open-source, and welcome contributions from the community.

Roadmap

  • Support additional models, as a replacement for OpenAI (see here)
  • Develop additional logic for handling large PRs (see here)
  • Add additional context to the prompt. For example, repo (or relevant files) summarization, with tools such a ctags
  • PR-Agent for issues, and just for pull requests
  • Adding more tools. Possible directions:
    • PR description
    • Inline code suggestions
    • Reflect and review
    • Rank the PR (see here)
    • Enforcing CONTRIBUTING.md guidelines
    • Performance (are there any performance issues)
    • Documentation (is the PR properly documented)
    • ...

Similar Projects

pr-agent's People

Contributors

okotek avatar mrt23 avatar hussam789 avatar zmeir avatar idavidov avatar almog-lv avatar tombrewsviews avatar patryk-kowalski-ds avatar szecsip avatar pzarfos avatar coditamar avatar krrishdholakia avatar github-actions[bot] avatar tjwp avatar gadizimerman avatar raum avatar sarbjitsinghgrewal avatar ilchemla avatar yuvigold avatar xyand avatar kaushnian avatar eltociear avatar marshally 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.