CodiumAI PR-Agent
is an open-source tool aiming to help developers review PRs faster and more efficiently. It automatically analyzes the PR and can provide several types of feedback:
Auto-Description: Automatically generating PR description - name, type, summary, and code walkthrough.
PR Review: Feedback about the PR main theme, type, relevant tests, security issues, focused PR, and various suggestions for the PR content.
Question Answering: Answering free-text questions about the PR.
Code Suggestion: Committable code suggestions for improving the PR.
Experience GPT-4 powered PR review on your public GitHub repository with our hosted PR-Agent. To try it, just mention @CodiumAI-Agent
and add the desired command in any PR comment! The agent will generate a response based on your command.
To set up your own PR-Agent, see the Quickstart section
PR-Agent
offers extensive pull request functionalities across various git providers:
GitHub | Gitlab | Bitbucket | ||
---|---|---|---|---|
TOOLS | Review | โ | โ | โ |
โฎ Inline review | โ | โ | ||
Ask | โ | โ | ||
Auto-Description | โ | |||
Improve Code | โ | โ | ||
USAGE | CLI | โ | โ | โ |
Tagging bot | โ | โ | ||
Actions | โ | |||
CORE | PR compression | โ | โ | โ |
Repo language prioritization | โ | โ | โ | |
Adaptive and token-aware file patch fitting |
โ | โ | โ |
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"
"<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.
To get started with PR-Agent quickly, you first need to acquire two tokens:
- An OpenAI key from here, with access to GPT-4.
- A GitHub personal access token (classic) with the repo scope.
There are several ways to use PR-Agent. Let's start with the simplest one:
Here are several ways to install and run PR-Agent:
- Method 1: Use Docker image (no installation required)
- Method 2: Run as a GitHub Action
- Method 3: Run from source
- Method 4: Run as a polling server
- Request reviews by tagging your GitHub user on a PR
- Method 5: Run as a GitHub App
- Allowing you to automate the review process on your private or public repositories
PR-Agent provides four types of interactions ("tools"): "PR Reviewer"
, "PR Q&A"
, "PR Description"
and "PR Code Sueggestions"
.
- The "PR Reviewer" tool automatically analyzes PRs, and provides various types of feedback.
- The "PR Q&A" tool answers free-text questions about the PR.
- The "PR Description" tool automatically sets the PR Title and body.
- The "PR Code Suggestion" tool provide inline code suggestions for the PR that can be applied and committed.
Check out the PR Compression strategy page for more details on how we convert a code diff to a manageable LLM prompt
- Support open-source models, as a replacement for openai models. (Note - a minimal requirement for each open-source model is to have 8k+ context, and good support for generating json as an output)
- Support other Git providers, such as Gitlab and Bitbucket.
- Develop additional logics for handling large PRs, and compressing git patches
- Dedicated tools and sub-tools for specific programming languages (Python, Javascript, Java, C++, etc)
- 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
- Enforcing CONTRIBUTING.md guidelines
- Performance (are there any performance issues)
- Documentation (is the PR properly documented)
- Rank the PR importance
- ...