Giter Site home page Giter Site logo

trungnguyenv / pr-agent Goto Github PK

View Code? Open in Web Editor NEW

This project forked from codium-ai/pr-agent

0.0 0.0 0.0 76.02 MB

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

License: Apache License 2.0

Shell 0.03% Python 99.69% Dockerfile 0.27%

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

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

Example results:

/describe:

/review:

/reflect_and_review:

/ask:

/improve:

Overview

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

GitHub Gitlab Bitbucket
TOOLS Review โœ… โœ… โœ…
โฎ‘ Inline review โœ… โœ…
Ask โœ… โœ… โœ…
Auto-Description โœ… โœ…
Improve Code โœ… โœ…
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 โœ…

Examples for invoking the different tools via the CLI:

  • Review: python cli.py --pr_url=<pr_url> review
  • Describe: python cli.py --pr_url=<pr_url> describe
  • Improve: python cli.py --pr_url=<pr_url> improve
  • Ask: python cli.py --pr_url=<pr_url> ask "Write me a poem about this PR"
  • Reflect: python cli.py --pr_url=<pr_url> reflect
  • Update Changelog: python cli.py --pr_url=<pr_url> update_changelog

"<pr_url>" is the url of the relevant PR (for example: Codium-ai#50).

In the configuration file you can select your git provider (GitHub, Gitlab, Bitbucket), and further configure the different tools.

Try it now

Try GPT-4 powered PR-Agent on your public GitHub repository for free. Just mention @CodiumAI-Agent and add the desired command in any PR comment! The agent will generate a response based on your command.

Review generation process

To set up your own PR-Agent, see the Installation section


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), 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
  • Add additional context to the prompt. For example, repo (or relevant files) summarization, with tools such a ctags
  • 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 almog-lv avatar tombrewsviews avatar patryk-kowalski-ds avatar idavidov avatar coditamar avatar krrishdholakia avatar github-actions[bot] avatar tjwp avatar gadizimerman avatar raum avatar ilchemla avatar pzarfos avatar yuvigold avatar sarbjitsinghgrewal 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.