2023-07-16 19:56:58 +03:00
## Installation
---
#### Method 1: Use Docker image (no installation required)
To request a review for a PR, or ask a question about a PR, you can run directly from the Docker image. Here's how:
1. To request a review for a PR, run the following command:
```
docker run --rm -it -e OPENAI.KEY=< your key > -e GITHUB.USER_TOKEN=< your token > codiumai/pr-agent --pr_url < pr_url > review
```
2. To ask a question about a PR, run the following command:
```
docker run --rm -it -e OPENAI.KEY=< your key > -e GITHUB.USER_TOKEN=< your token > codiumai/pr-agent --pr_url < pr_url > ask "< your question > "
```
Possible questions you can ask include:
- What is the main theme of this PR?
- Is the PR ready for merge?
- What are the main changes in this PR?
- Should this PR be split into smaller parts?
2023-07-16 22:02:34 +03:00
- Can you compose a rhymed song about this PR?
2023-07-16 19:56:58 +03:00
---
2023-07-16 22:02:34 +03:00
#### Method 2: Run as a GitHub Action
2023-07-16 19:56:58 +03:00
You can use our pre-built Github Action Docker image to run PR-Agent as a Github Action.
1. Add the following file to your repository under `.github/workflows/pr_agent.yml` :
```yaml
on:
pull_request:
issue_comment:
jobs:
pr_agent_job:
runs-on: ubuntu-latest
name: Run pr agent on every pull request, respond to user comments
steps:
- name: PR Agent action step
id: pragent
uses: Codium-ai/pr-agent@main
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
2. Add the following secret to your repository under `Settings > Secrets` :
```
OPENAI_KEY: < your key >
```
2023-07-16 22:02:34 +03:00
The GITHUB_TOKEN secret is automatically created by GitHub.
2023-07-16 19:56:58 +03:00
3. Merge this change to your main branch.
When you open your next PR, you should see a comment from `github-actions` bot with a review of your PR, and instructions on how to use the rest of the tools.
2023-07-16 22:02:34 +03:00
4. You may configure PR-Agent by adding environment variables under the env section corresponding to any configurable property in the [configuration ](./CONFIGURATION.md ) file. Some examples:
2023-07-16 19:56:58 +03:00
```yaml
env:
# ... previous environment values
OPENAI.ORG: "< Your organization name under your OpenAI account > "
PR_REVIEWER.REQUIRE_TESTS_REVIEW: "false" # Disable tests review
PR_CODE_SUGGESTIONS.NUM_CODE_SUGGESTIONS: 6 # Increase number of code suggestions
```
---
#### Method 3: Run from source
1. Clone this repository:
```
git clone https://github.com/Codium-ai/pr-agent.git
```
2. Install the requirements in your favorite virtual environment:
```
pip install -r requirements.txt
```
3. Copy the secrets template file and fill in your OpenAI key and your GitHub user token:
```
cp pr_agent/settings/.secrets_template.toml pr_agent/settings/.secrets.toml
# Edit .secrets.toml file
```
4. Run the appropriate Python scripts from the scripts folder:
```
python pr_agent/cli.py --pr_url < pr_url > review
python pr_agent/cli.py --pr_url < pr_url > ask < your question >
python pr_agent/cli.py --pr_url < pr_url > describe
python pr_agent/cli.py --pr_url < pr_url > improve
```
---
#### Method 4: Run as a polling server
2023-07-16 22:02:34 +03:00
Request reviews by tagging your Github user on a PR
2023-07-16 19:56:58 +03:00
Follow steps 1-3 of method 2.
Run the following command to start the server:
```
python pr_agent/servers/github_polling.py
```
---
2023-07-16 22:02:34 +03:00
#### Method 5: Run as a GitHub App
2023-07-16 19:56:58 +03:00
Allowing you to automate the review process on your private or public repositories.
1. Create a GitHub App from the [Github Developer Portal ](https://docs.github.com/en/developers/apps/creating-a-github-app ).
- Set the following permissions:
- Pull requests: Read & write
- Issue comment: Read & write
- Metadata: Read-only
- Set the following events:
- Issue comment
- Pull request
2. Generate a random secret for your app, and save it for later. For example, you can use:
```
WEBHOOK_SECRET=$(python -c "import secrets; print(secrets.token_hex(10))")
```
3. Acquire the following pieces of information from your app's settings page:
2023-07-16 22:02:34 +03:00
- App private key (click "Generate a private key" and save the file)
2023-07-16 19:56:58 +03:00
- App ID
4. Clone this repository:
```
git clone https://github.com/Codium-ai/pr-agent.git
```
5. Copy the secrets template file and fill in the following:
- Your OpenAI key.
- Set deployment_type to 'app'
- Copy your app's private key to the private_key field.
- Copy your app's ID to the app_id field.
- Copy your app's webhook secret to the webhook_secret field.
```
cp pr_agent/settings/.secrets_template.toml pr_agent/settings/.secrets.toml
# Edit .secrets.toml file
```
6. Build a Docker image for the app and optionally push it to a Docker repository. We'll use Dockerhub as an example:
```
docker build . -t codiumai/pr-agent:github_app --target github_app -f docker/Dockerfile
docker push codiumai/pr-agent:github_app # Push to your Docker repository
```
7. Host the app using a server, serverless function, or container environment. Alternatively, for development and
debugging, you may use tools like smee.io to forward webhooks to your local machine.
2023-07-16 22:02:34 +03:00
8. Go back to your app's settings, and set the following:
2023-07-16 19:56:58 +03:00
2023-07-16 22:02:34 +03:00
- Webhook URL: The URL of your app's server or the URL of the smee.io channel.
2023-07-16 19:56:58 +03:00
- Webhook secret: The secret you generated earlier.
2023-07-16 22:02:34 +03:00
9. Install the app by navigating to the "Install App" tab and selecting your desired repositories.
2023-07-16 19:56:58 +03:00
---