mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-05 05:10:38 +08:00
Compare commits
13 Commits
v0.25
...
print_test
Author | SHA1 | Date | |
---|---|---|---|
401dc29dee | |||
39a461b3b2 | |||
19ade4acf0 | |||
10f8b522db | |||
d26ca4f71c | |||
9160f756db | |||
84c3a7b969 | |||
d9f9cc65b3 | |||
7d99c0db8e | |||
fe20a8c5e7 | |||
43c95106d4 | |||
1dd5f0b848 | |||
8610aa27a4 |
16
README.md
16
README.md
@ -13,15 +13,13 @@
|
|||||||
Qode Merge PR-Agent aims to help efficiently review and handle pull requests, by providing AI feedback and suggestions
|
Qode Merge PR-Agent aims to help efficiently review and handle pull requests, by providing AI feedback and suggestions
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
[](https://github.com/Codium-ai/pr-agent/blob/main/LICENSE)
|
|
||||||
[](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl)
|
[](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl)
|
||||||
[](https://pr-agent-docs.codium.ai/finetuning_benchmark/)
|
[](https://github.com/apps/qodo-merge-pro/)
|
||||||
|
[](https://github.com/apps/qodo-merge-pro-for-open-source/)
|
||||||
[](https://discord.com/channels/1057273017547378788/1126104260430528613)
|
[](https://discord.com/channels/1057273017547378788/1126104260430528613)
|
||||||
[](https://twitter.com/codiumai)
|
<a href="https://github.com/Codium-ai/pr-agent/commits/main">
|
||||||
[](https://www.codium.ai/images/pr_agent/cheat_sheet.pdf)
|
<img alt="GitHub" src="https://img.shields.io/github/last-commit/Codium-ai/pr-agent/main?style=for-the-badge" height="20">
|
||||||
<a href="https://github.com/Codium-ai/pr-agent/commits/main">
|
</a>
|
||||||
<img alt="GitHub" src="https://img.shields.io/github/last-commit/Codium-ai/pr-agent/main?style=for-the-badge" height="20">
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
### [Documentation](https://pr-agent-docs.codium.ai/)
|
### [Documentation](https://pr-agent-docs.codium.ai/)
|
||||||
@ -45,10 +43,12 @@ Qode Merge PR-Agent aims to help efficiently review and handle pull requests, by
|
|||||||
|
|
||||||
### December 2, 2024
|
### December 2, 2024
|
||||||
|
|
||||||
Open-source repositories can now freely use Qodo Merge Pro, and enjoy easy one-click installation using our dedicated [app](https://github.com/apps/qodo-merge-pro-for-open-source).
|
Open-source repositories can now freely use Qodo Merge Pro, and enjoy easy one-click installation using a marketplace [app](https://github.com/apps/qodo-merge-pro-for-open-source).
|
||||||
|
|
||||||
<kbd><img src="https://github.com/user-attachments/assets/b0838724-87b9-43b0-ab62-73739a3a855c" width="512"></kbd>
|
<kbd><img src="https://github.com/user-attachments/assets/b0838724-87b9-43b0-ab62-73739a3a855c" width="512"></kbd>
|
||||||
|
|
||||||
|
See [here](https://qodo-merge-docs.qodo.ai/installation/pr_agent_pro/) for more details about installing Qodo Merge Pro for private repositories.
|
||||||
|
|
||||||
|
|
||||||
### November 18, 2024
|
### November 18, 2024
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ With a single-click installation you will gain access to a context-aware chat on
|
|||||||
|
|
||||||
The extension is powered by top code models like Claude 3.5 Sonnet and GPT4. All the extension's features are free to use on public repositories.
|
The extension is powered by top code models like Claude 3.5 Sonnet and GPT4. All the extension's features are free to use on public repositories.
|
||||||
|
|
||||||
For private repositories, you will need to install [Qodo Merge Pro](https://github.com/apps/codiumai-pr-agent-pro) in addition to the extension (Quick GitHub app setup with a 14-day free trial. No credit card needed).
|
For private repositories, you will need to install [Qodo Merge Pro](https://github.com/apps/qodo-merge-pro) in addition to the extension (Quick GitHub app setup with a 14-day free trial. No credit card needed).
|
||||||
For a demonstration of how to install Qodo Merge Pro and use it with the Chrome extension, please refer to the tutorial video at the provided [link](https://codium.ai/images/pr_agent/private_repos.mp4).
|
For a demonstration of how to install Qodo Merge Pro and use it with the Chrome extension, please refer to the tutorial video at the provided [link](https://codium.ai/images/pr_agent/private_repos.mp4).
|
||||||
|
|
||||||
<img src="https://codium.ai/images/pr_agent/PR-AgentChat.gif" width="768">
|
<img src="https://codium.ai/images/pr_agent/PR-AgentChat.gif" width="768">
|
||||||
|
@ -1,16 +1,24 @@
|
|||||||
# Fetching Ticket Context for PRs
|
# Fetching Ticket Context for PRs
|
||||||
|
`Supported Git Platforms : GitHub, GitLab, Bitbucket`
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
Qodo Merge PR Agent streamlines code review workflows by seamlessly connecting with multiple ticket management systems.
|
Qodo Merge PR Agent streamlines code review workflows by seamlessly connecting with multiple ticket management systems.
|
||||||
This integration enriches the review process by automatically surfacing relevant ticket information and context alongside code changes.
|
This integration enriches the review process by automatically surfacing relevant ticket information and context alongside code changes.
|
||||||
|
|
||||||
|
|
||||||
## Affected Tools
|
## Affected Tools
|
||||||
|
|
||||||
Ticket Recognition Requirements:
|
Ticket Recognition Requirements:
|
||||||
|
|
||||||
1. The PR description should contain a link to the ticket.
|
1. The PR description should contain a link to the ticket or if the branch name starts with the ticket id / number.
|
||||||
2. For Jira tickets, you should follow the instructions in [Jira Integration](https://qodo-merge-docs.qodo.ai/core-abilities/fetching_ticket_context/#jira-integration) in order to authenticate with Jira.
|
2. For Jira tickets, you should follow the instructions in [Jira Integration](https://qodo-merge-docs.qodo.ai/core-abilities/fetching_ticket_context/#jira-integration) in order to authenticate with Jira.
|
||||||
|
|
||||||
|
Ticket data fetched:
|
||||||
|
1. Ticket Title
|
||||||
|
2. Ticket Description
|
||||||
|
3. Custom Fields (Acceptance criteria)
|
||||||
|
4. Subtasks (linked tasks)
|
||||||
|
5. Labels
|
||||||
|
6. Attached Images/Screenshots 💎
|
||||||
|
|
||||||
### Describe tool
|
### Describe tool
|
||||||
Qodo Merge PR Agent will recognize the ticket and use the ticket content (title, description, labels) to provide additional context for the code changes.
|
Qodo Merge PR Agent will recognize the ticket and use the ticket content (title, description, labels) to provide additional context for the code changes.
|
||||||
@ -49,12 +57,18 @@ Since Qodo Merge PR Agent is integrated with GitHub, it doesn't require any addi
|
|||||||
### Jira Integration 💎
|
### Jira Integration 💎
|
||||||
|
|
||||||
We support both Jira Cloud and Jira Server/Data Center.
|
We support both Jira Cloud and Jira Server/Data Center.
|
||||||
To integrate with Jira, The PR Description should contain a link to the Jira ticket.
|
To integrate with Jira, you can link your PR to a ticket using either of these methods:
|
||||||
|
|
||||||
For Jira integration, include a ticket reference in your PR description using either the complete URL format `https://<JIRA_ORG>.atlassian.net/browse/ISSUE-123` or the shortened ticket ID `ISSUE-123`.
|
**Method 1: Description Reference:**
|
||||||
|
|
||||||
|
Include a ticket reference in your PR description using either the complete URL format https://<JIRA_ORG>.atlassian.net/browse/ISSUE-123 or the shortened ticket ID ISSUE-123.
|
||||||
|
|
||||||
|
**Method 2: Branch Name Detection:**
|
||||||
|
|
||||||
|
Name your branch with the ticket ID as a prefix (e.g., `ISSUE-123-feature-description` or `ISSUE-123/feature-description`).
|
||||||
|
|
||||||
!!! note "Jira Base URL"
|
!!! note "Jira Base URL"
|
||||||
If using the shortened format, ensure your configuration file contains the Jira base URL under the [jira] section like this:
|
For shortened ticket IDs or branch detection (method 2), you must configure the Jira base URL in your configuration file under the [jira] section:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[jira]
|
[jira]
|
||||||
|
@ -1,31 +1,44 @@
|
|||||||
|
Qodo Merge Pro is a versatile application compatible with GitHub, GitLab, and BitBucket, hosted by QodoAI.
|
||||||
## Getting Started with Qodo Merge Pro
|
|
||||||
|
|
||||||
Qodo Merge Pro is a versatile application compatible with GitHub, GitLab, and BitBucket, hosted by CodiumAI.
|
|
||||||
See [here](https://qodo-merge-docs.qodo.ai/overview/pr_agent_pro/) for more details about the benefits of using Qodo Merge Pro.
|
See [here](https://qodo-merge-docs.qodo.ai/overview/pr_agent_pro/) for more details about the benefits of using Qodo Merge Pro.
|
||||||
|
|
||||||
Interested parties can subscribe to Qodo Merge Pro through the following [link](https://www.codium.ai/pricing/).
|
A complimentary two-week trial is provided to all new users. Following the trial period, user licenses (seats) are required for continued access.
|
||||||
After subscribing, you are granted the ability to easily install the application across any of your repositories.
|
To purchase user licenses, please visit our [pricing page](https://www.qodo.ai/pricing/).
|
||||||
|
Once subscribed, users can seamlessly deploy the application across any of their GitHub repositories.
|
||||||
|
|
||||||
|
## Install Qodo Merge Pro for GitHub
|
||||||
|
|
||||||
|
### GitHub Cloud
|
||||||
|
|
||||||
|
Qodo Merge Pro for GitHub cloud is available for installation through the [GitHub Marketplace](https://github.com/apps/qodo-merge-pro).
|
||||||
|
|
||||||
{width=468}
|
{width=468}
|
||||||
|
|
||||||
Each user who wants to use Qodo Merge pro needs to buy a seat.
|
### GitHub Enterprise Server
|
||||||
Initially, CodiumAI offers a two-week trial period at no cost, after which continued access requires each user to secure a personal seat.
|
|
||||||
Once a user acquires a seat, they gain the flexibility to use Qodo Merge Pro across any repository where it was enabled.
|
|
||||||
|
|
||||||
Users without a purchased seat who interact with a repository featuring Qodo Merge Pro are entitled to receive up to five complimentary feedbacks.
|
|
||||||
Beyond this limit, Qodo Merge Pro will cease to respond to their inquiries unless a seat is purchased.
|
|
||||||
|
|
||||||
## Install Qodo Merge Pro for GitHub Enterprise Server
|
|
||||||
|
|
||||||
To use Qodo Merge Pro application on your private GitHub Enterprise Server, you will need to contact us for starting an [Enterprise](https://www.codium.ai/pricing/) trial.
|
To use Qodo Merge Pro application on your private GitHub Enterprise Server, you will need to contact us for starting an [Enterprise](https://www.codium.ai/pricing/) trial.
|
||||||
|
|
||||||
|
### GitHub Open Source Projects
|
||||||
|
|
||||||
|
For open-source projects, Qodo Merge Pro is available for free usage. To install Qodo Merge Pro for your open-source repositories, use the following marketplace [link](https://github.com/apps/qodo-merge-pro-for-open-source).
|
||||||
|
|
||||||
|
## Install Qodo Merge Pro for Bitbucket
|
||||||
|
|
||||||
|
### Bitbucket Cloud
|
||||||
|
|
||||||
|
Qodo Merge Pro for Bitbucket Cloud is available for installation through the following [link](https://bitbucket.org/site/addons/authorize?addon_key=d6df813252c37258)
|
||||||
|
|
||||||
|
{width=468}
|
||||||
|
|
||||||
|
### Bitbucket Server
|
||||||
|
|
||||||
|
To use Qodo Merge Pro application on your private Bitbucket Server, you will need to contact us for starting an [Enterprise](https://www.codium.ai/pricing/) trial.
|
||||||
|
|
||||||
|
|
||||||
## Install Qodo Merge Pro for GitLab (Teams & Enterprise)
|
## Install Qodo Merge Pro for GitLab (Teams & Enterprise)
|
||||||
|
|
||||||
Since GitLab platform does not support apps, installing Qodo Merge Pro for GitLab is a bit more involved, and requires the following steps:
|
Since GitLab platform does not support apps, installing Qodo Merge Pro for GitLab is a bit more involved, and requires the following steps:
|
||||||
|
|
||||||
### Step 1
|
#### Step 1
|
||||||
|
|
||||||
Acquire a personal, project or group level access token. Enable the “api” scope in order to allow Qodo Merge to read pull requests, comment and respond to requests.
|
Acquire a personal, project or group level access token. Enable the “api” scope in order to allow Qodo Merge to read pull requests, comment and respond to requests.
|
||||||
|
|
||||||
@ -35,14 +48,14 @@ Acquire a personal, project or group level access token. Enable the “api” sc
|
|||||||
|
|
||||||
Store the token in a safe place, you won’t be able to access it again after it was generated.
|
Store the token in a safe place, you won’t be able to access it again after it was generated.
|
||||||
|
|
||||||
### Step 2
|
#### Step 2
|
||||||
|
|
||||||
Generate a shared secret and link it to the access token. Browse to [https://register.gitlab.pr-agent.codium.ai](https://register.gitlab.pr-agent.codium.ai).
|
Generate a shared secret and link it to the access token. Browse to [https://register.gitlab.pr-agent.codium.ai](https://register.gitlab.pr-agent.codium.ai).
|
||||||
Fill in your generated GitLab token and your company or personal name in the appropriate fields and click "Submit".
|
Fill in your generated GitLab token and your company or personal name in the appropriate fields and click "Submit".
|
||||||
|
|
||||||
You should see "Success!" displayed above the Submit button, and a shared secret will be generated. Store it in a safe place, you won’t be able to access it again after it was generated.
|
You should see "Success!" displayed above the Submit button, and a shared secret will be generated. Store it in a safe place, you won’t be able to access it again after it was generated.
|
||||||
|
|
||||||
### Step 3
|
#### Step 3
|
||||||
|
|
||||||
Install a webhook for your repository or groups, by clicking “webhooks” on the settings menu. Click the “Add new webhook” button.
|
Install a webhook for your repository or groups, by clicking “webhooks” on the settings menu. Click the “Add new webhook” button.
|
||||||
|
|
||||||
@ -53,7 +66,7 @@ Install a webhook for your repository or groups, by clicking “webhooks” on t
|
|||||||
In the webhook definition form, fill in the following fields:
|
In the webhook definition form, fill in the following fields:
|
||||||
URL: https://pro.gitlab.pr-agent.codium.ai/webhook
|
URL: https://pro.gitlab.pr-agent.codium.ai/webhook
|
||||||
|
|
||||||
Secret token: Your CodiumAI key
|
Secret token: Your QodoAI key
|
||||||
Trigger: Check the ‘comments’ and ‘merge request events’ boxes.
|
Trigger: Check the ‘comments’ and ‘merge request events’ boxes.
|
||||||
Enable SSL verification: Check the box.
|
Enable SSL verification: Check the box.
|
||||||
|
|
||||||
@ -61,7 +74,7 @@ Enable SSL verification: Check the box.
|
|||||||
{width=750}
|
{width=750}
|
||||||
</figure>
|
</figure>
|
||||||
|
|
||||||
### Step 4
|
#### Step 4
|
||||||
|
|
||||||
You’re all set!
|
You’re all set!
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
### Overview
|
### Overview
|
||||||
|
|
||||||
[Qodo Merge Pro](https://www.codium.ai/pricing/) is a hosted version of Qodo Merge, provided by Qodo. A complimentary two-week trial is offered, followed by a monthly subscription fee.
|
[Qodo Merge Pro](https://www.codium.ai/pricing/) is a hosted version of open-source [Qodo Merge (PR-Agent)](https://github.com/Codium-ai/pr-agent). A complimentary two-week trial is offered, followed by a monthly subscription fee.
|
||||||
Qodo Merge Pro is designed for companies and teams that require additional features and capabilities. It provides the following benefits:
|
Qodo Merge Pro is designed for companies and teams that require additional features and capabilities. It 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 Qodo Merge app to your GitHub\GitLab\BitBucket repo.
|
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 Qodo Merge app to your GitHub\GitLab\BitBucket repo.
|
||||||
|
@ -57,6 +57,14 @@ For example, if you want to edit the `review` tool configurations, you can run:
|
|||||||
```
|
```
|
||||||
Any configuration value in [configuration file](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml) file can be similarly edited. Comment `/config` to see the list of available configurations.
|
Any configuration value in [configuration file](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml) file can be similarly edited. Comment `/config` to see the list of available configurations.
|
||||||
|
|
||||||
|
## Disabling automatic feedback
|
||||||
|
|
||||||
|
To easily disable all automatic feedback from Qodo Merge (GitHub App, GitLab Webhook, BitBucket App, Azure DevOps Webhook), set in a configuration file:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[config]
|
||||||
|
disable_auto_feedback = true
|
||||||
|
```
|
||||||
|
|
||||||
## GitHub App
|
## GitHub App
|
||||||
|
|
||||||
@ -69,7 +77,7 @@ Any configuration value in [configuration file](https://github.com/Codium-ai/pr-
|
|||||||
The [github_app](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml#L108) section defines GitHub app specific configurations.
|
The [github_app](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml#L108) section defines GitHub app specific configurations.
|
||||||
|
|
||||||
The configuration parameter `pr_commands` defines the list of tools that will be **run automatically** when a new PR is opened.
|
The configuration parameter `pr_commands` defines the list of tools that will be **run automatically** when a new PR is opened.
|
||||||
```
|
```toml
|
||||||
[github_app]
|
[github_app]
|
||||||
pr_commands = [
|
pr_commands = [
|
||||||
"/describe",
|
"/describe",
|
||||||
@ -83,25 +91,27 @@ For the `improve` tool, for example, the `suggestions_score_threshold` parameter
|
|||||||
|
|
||||||
You can override the default tool parameters by using one the three options for a [configuration file](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/): **wiki**, **local**, or **global**.
|
You can override the default tool parameters by using one the three options for a [configuration file](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/): **wiki**, **local**, or **global**.
|
||||||
For example, if your local `.pr_agent.toml` file contains:
|
For example, if your local `.pr_agent.toml` file contains:
|
||||||
```
|
```toml
|
||||||
[pr_description]
|
[pr_description]
|
||||||
generate_ai_title = true
|
generate_ai_title = true
|
||||||
```
|
```
|
||||||
Every time you run the `describe` tool, including automatic runs, the PR title will be generated by the AI.
|
Every time you run the `describe` tool, including automatic runs, the PR title will be generated by the AI.
|
||||||
|
|
||||||
To cancel the automatic run of all the tools, set:
|
To change which tools will run automatically when a new PR is opened, you can set the `pr_commands` parameter in the configuration file.
|
||||||
```
|
```toml
|
||||||
[github_app]
|
[github_app]
|
||||||
pr_commands = []
|
pr_commands = ["describe", "review"]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
In this case, only the `describe` and `review` tools will run automatically when a new PR is opened.
|
||||||
|
|
||||||
### GitHub app automatic tools for push actions (commits to an open PR)
|
### GitHub app automatic tools for push actions (commits to an open PR)
|
||||||
|
|
||||||
In addition to running automatic tools when a PR is opened, the GitHub app can also respond to new code that is pushed to an open PR.
|
In addition to running automatic tools when a PR is opened, the GitHub app can also respond to new code that is pushed to an open PR.
|
||||||
|
|
||||||
The configuration toggle `handle_push_trigger` can be used to enable this feature.
|
The configuration toggle `handle_push_trigger` can be used to enable this feature.
|
||||||
The configuration parameter `push_commands` defines the list of tools that will be **run automatically** when new code is pushed to the PR.
|
The configuration parameter `push_commands` defines the list of tools that will be **run automatically** when new code is pushed to the PR.
|
||||||
```
|
```toml
|
||||||
[github_app]
|
[github_app]
|
||||||
handle_push_trigger = true
|
handle_push_trigger = true
|
||||||
push_commands = [
|
push_commands = [
|
||||||
@ -137,15 +147,18 @@ The JSON structure is equivalent to the yaml data structure defined in [pr_revie
|
|||||||
Note that you can give additional config parameters by adding environment variables to `.github/workflows/pr_agent.yml`, or by using a `.pr_agent.toml` [configuration file](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/#global-configuration-file) in the root of your repo
|
Note that you can give additional config parameters by adding environment variables to `.github/workflows/pr_agent.yml`, or by using a `.pr_agent.toml` [configuration file](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/#global-configuration-file) in the root of your repo
|
||||||
|
|
||||||
For example, you can set an environment variable: `pr_description.publish_labels=false`, or add a `.pr_agent.toml` file with the following content:
|
For example, you can set an environment variable: `pr_description.publish_labels=false`, or add a `.pr_agent.toml` file with the following content:
|
||||||
```
|
|
||||||
|
```toml
|
||||||
[pr_description]
|
[pr_description]
|
||||||
publish_labels = false
|
publish_labels = false
|
||||||
```
|
```
|
||||||
|
|
||||||
to prevent Qodo Merge from publishing labels when running the `describe` tool.
|
to prevent Qodo Merge from publishing labels when running the `describe` tool.
|
||||||
|
|
||||||
## GitLab Webhook
|
## GitLab Webhook
|
||||||
After setting up a GitLab webhook, to control which commands will run automatically when a new MR is opened, you can set the `pr_commands` parameter in the configuration file, similar to the GitHub App:
|
After setting up a GitLab webhook, to control which commands will run automatically when a new MR is opened, you can set the `pr_commands` parameter in the configuration file, similar to the GitHub App:
|
||||||
```
|
|
||||||
|
```toml
|
||||||
[gitlab]
|
[gitlab]
|
||||||
pr_commands = [
|
pr_commands = [
|
||||||
"/describe",
|
"/describe",
|
||||||
@ -157,7 +170,7 @@ pr_commands = [
|
|||||||
the GitLab webhook can also respond to new code that is pushed to an open MR.
|
the GitLab webhook can also respond to new code that is pushed to an open MR.
|
||||||
The configuration toggle `handle_push_trigger` can be used to enable this feature.
|
The configuration toggle `handle_push_trigger` can be used to enable this feature.
|
||||||
The configuration parameter `push_commands` defines the list of tools that will be **run automatically** when new code is pushed to the MR.
|
The configuration parameter `push_commands` defines the list of tools that will be **run automatically** when new code is pushed to the MR.
|
||||||
```
|
```toml
|
||||||
[gitlab]
|
[gitlab]
|
||||||
handle_push_trigger = true
|
handle_push_trigger = true
|
||||||
push_commands = [
|
push_commands = [
|
||||||
@ -174,7 +187,7 @@ Similar to GitHub app, when running Qodo Merge from BitBucket App, the default [
|
|||||||
By uploading a local `.pr_agent.toml` file to the root of the repo's main branch, you can edit and customize any configuration parameter. Note that you need to upload `.pr_agent.toml` prior to creating a PR, in order for the configuration to take effect.
|
By uploading a local `.pr_agent.toml` file to the root of the repo's main branch, you can edit and customize any configuration parameter. Note that you need to upload `.pr_agent.toml` prior to creating a PR, in order for the configuration to take effect.
|
||||||
|
|
||||||
For example, if your local `.pr_agent.toml` file contains:
|
For example, if your local `.pr_agent.toml` file contains:
|
||||||
```
|
```toml
|
||||||
[pr_reviewer]
|
[pr_reviewer]
|
||||||
extra_instructions = "Answer in japanese"
|
extra_instructions = "Answer in japanese"
|
||||||
```
|
```
|
||||||
@ -192,7 +205,7 @@ This will prevent Qodo Merge from acquiring the full file content, and will only
|
|||||||
To control which commands will run automatically when a new PR is opened, you can set the `pr_commands` parameter in the configuration file:
|
To control which commands will run automatically when a new PR is opened, you can set the `pr_commands` parameter in the configuration file:
|
||||||
Specifically, set the following values:
|
Specifically, set the following values:
|
||||||
|
|
||||||
```
|
```toml
|
||||||
[bitbucket_app]
|
[bitbucket_app]
|
||||||
pr_commands = [
|
pr_commands = [
|
||||||
"/review",
|
"/review",
|
||||||
@ -203,7 +216,7 @@ Note that we set specifically for bitbucket, we recommend using: `--pr_code_sugg
|
|||||||
Since this platform only supports inline code suggestions, we want to limit the number of suggestions, and only present a limited number.
|
Since this platform only supports inline code suggestions, we want to limit the number of suggestions, and only present a limited number.
|
||||||
|
|
||||||
To enable BitBucket app to respond to each **push** to the PR, set (for example):
|
To enable BitBucket app to respond to each **push** to the PR, set (for example):
|
||||||
```
|
```toml
|
||||||
[bitbucket_app]
|
[bitbucket_app]
|
||||||
handle_push_trigger = true
|
handle_push_trigger = true
|
||||||
push_commands = [
|
push_commands = [
|
||||||
@ -215,7 +228,7 @@ push_commands = [
|
|||||||
## Azure DevOps provider
|
## Azure DevOps provider
|
||||||
|
|
||||||
To use Azure DevOps provider use the following settings in configuration.toml:
|
To use Azure DevOps provider use the following settings in configuration.toml:
|
||||||
```
|
```toml
|
||||||
[config]
|
[config]
|
||||||
git_provider="azure"
|
git_provider="azure"
|
||||||
```
|
```
|
||||||
@ -237,7 +250,7 @@ org = "https://dev.azure.com/YOUR_ORGANIZATION/"
|
|||||||
### Azure DevOps Webhook
|
### Azure DevOps Webhook
|
||||||
|
|
||||||
To control which commands will run automatically when a new PR is opened, you can set the `pr_commands` parameter in the configuration file, similar to the GitHub App:
|
To control which commands will run automatically when a new PR is opened, you can set the `pr_commands` parameter in the configuration file, similar to the GitHub App:
|
||||||
```
|
```toml
|
||||||
[azure_devops_server]
|
[azure_devops_server]
|
||||||
pr_commands = [
|
pr_commands = [
|
||||||
"/describe",
|
"/describe",
|
||||||
|
@ -64,6 +64,9 @@ def authorize(credentials: HTTPBasicCredentials = Depends(security)):
|
|||||||
|
|
||||||
async def _perform_commands_azure(commands_conf: str, agent: PRAgent, api_url: str, log_context: dict):
|
async def _perform_commands_azure(commands_conf: str, agent: PRAgent, api_url: str, log_context: dict):
|
||||||
apply_repo_settings(api_url)
|
apply_repo_settings(api_url)
|
||||||
|
if commands_conf == "pr_commands" and get_settings().config.disable_auto_feedback: # auto commands for PR, and auto feedback is disabled
|
||||||
|
get_logger().info(f"Auto feedback is disabled, skipping auto commands for PR {api_url=}", **log_context)
|
||||||
|
return
|
||||||
commands = get_settings().get(f"azure_devops_server.{commands_conf}")
|
commands = get_settings().get(f"azure_devops_server.{commands_conf}")
|
||||||
get_settings().set("config.is_auto_command", True)
|
get_settings().set("config.is_auto_command", True)
|
||||||
for command in commands:
|
for command in commands:
|
||||||
|
@ -77,6 +77,9 @@ async def handle_manifest(request: Request, response: Response):
|
|||||||
|
|
||||||
async def _perform_commands_bitbucket(commands_conf: str, agent: PRAgent, api_url: str, log_context: dict, data: dict):
|
async def _perform_commands_bitbucket(commands_conf: str, agent: PRAgent, api_url: str, log_context: dict, data: dict):
|
||||||
apply_repo_settings(api_url)
|
apply_repo_settings(api_url)
|
||||||
|
if commands_conf == "pr_commands" and get_settings().config.disable_auto_feedback: # auto commands for PR, and auto feedback is disabled
|
||||||
|
get_logger().info(f"Auto feedback is disabled, skipping auto commands for PR {api_url=}")
|
||||||
|
return
|
||||||
if data.get("event", "") == "pullrequest:created":
|
if data.get("event", "") == "pullrequest:created":
|
||||||
if not should_process_pr_logic(data):
|
if not should_process_pr_logic(data):
|
||||||
return
|
return
|
||||||
|
@ -72,6 +72,11 @@ async def handle_webhook(background_tasks: BackgroundTasks, request: Request):
|
|||||||
commands_to_run = []
|
commands_to_run = []
|
||||||
|
|
||||||
if data["eventKey"] == "pr:opened":
|
if data["eventKey"] == "pr:opened":
|
||||||
|
apply_repo_settings(pr_url)
|
||||||
|
if get_settings().config.disable_auto_feedback: # auto commands for PR, and auto feedback is disabled
|
||||||
|
get_logger().info(f"Auto feedback is disabled, skipping auto commands for PR {pr_url}", **log_context)
|
||||||
|
return
|
||||||
|
get_settings().set("config.is_auto_command", True)
|
||||||
commands_to_run.extend(_get_commands_list_from_settings('BITBUCKET_SERVER.PR_COMMANDS'))
|
commands_to_run.extend(_get_commands_list_from_settings('BITBUCKET_SERVER.PR_COMMANDS'))
|
||||||
elif data["eventKey"] == "pr:comment:added":
|
elif data["eventKey"] == "pr:comment:added":
|
||||||
commands_to_run.append(data["comment"]["text"])
|
commands_to_run.append(data["comment"]["text"])
|
||||||
|
@ -374,6 +374,9 @@ def _check_pull_request_event(action: str, body: dict, log_context: dict) -> Tup
|
|||||||
async def _perform_auto_commands_github(commands_conf: str, agent: PRAgent, body: dict, api_url: str,
|
async def _perform_auto_commands_github(commands_conf: str, agent: PRAgent, body: dict, api_url: str,
|
||||||
log_context: dict):
|
log_context: dict):
|
||||||
apply_repo_settings(api_url)
|
apply_repo_settings(api_url)
|
||||||
|
if commands_conf == "pr_commands" and get_settings().config.disable_auto_feedback: # auto commands for PR, and auto feedback is disabled
|
||||||
|
get_logger().info(f"Auto feedback is disabled, skipping auto commands for PR {api_url=}")
|
||||||
|
return
|
||||||
if not should_process_pr_logic(body): # Here we already updated the configuration with the repo settings
|
if not should_process_pr_logic(body): # Here we already updated the configuration with the repo settings
|
||||||
return {}
|
return {}
|
||||||
commands = get_settings().get(f"github_app.{commands_conf}")
|
commands = get_settings().get(f"github_app.{commands_conf}")
|
||||||
|
@ -61,6 +61,9 @@ async def handle_request(api_url: str, body: str, log_context: dict, sender_id:
|
|||||||
async def _perform_commands_gitlab(commands_conf: str, agent: PRAgent, api_url: str,
|
async def _perform_commands_gitlab(commands_conf: str, agent: PRAgent, api_url: str,
|
||||||
log_context: dict, data: dict):
|
log_context: dict, data: dict):
|
||||||
apply_repo_settings(api_url)
|
apply_repo_settings(api_url)
|
||||||
|
if commands_conf == "pr_commands" and get_settings().config.disable_auto_feedback: # auto commands for PR, and auto feedback is disabled
|
||||||
|
get_logger().info(f"Auto feedback is disabled, skipping auto commands for PR {api_url=}", **log_context)
|
||||||
|
return
|
||||||
if not should_process_pr_logic(data): # Here we already updated the configurations
|
if not should_process_pr_logic(data): # Here we already updated the configurations
|
||||||
return
|
return
|
||||||
commands = get_settings().get(f"gitlab.{commands_conf}", {})
|
commands = get_settings().get(f"gitlab.{commands_conf}", {})
|
||||||
|
@ -14,6 +14,7 @@ use_extra_bad_extensions=false
|
|||||||
use_wiki_settings_file=true
|
use_wiki_settings_file=true
|
||||||
use_repo_settings_file=true
|
use_repo_settings_file=true
|
||||||
use_global_settings_file=true
|
use_global_settings_file=true
|
||||||
|
disable_auto_feedback = false
|
||||||
ai_timeout=120 # 2minutes
|
ai_timeout=120 # 2minutes
|
||||||
skip_keys = []
|
skip_keys = []
|
||||||
# token limits
|
# token limits
|
||||||
|
Reference in New Issue
Block a user