Compare commits

...

1941 commits
v0.24 ... main

Author SHA1 Message Date
Hussam.lawen
bf5da9a9fb
docs: add configuration options for ticket analysis review in compliance tool
Some checks failed
Build-and-test / build-and-test (push) Has been cancelled
docs-ci / deploy (push) Has been cancelled
2025-12-10 10:48:55 +02:00
Eyal Sharon
ede3f82143 Update documentation to reflect recent changes in enabling configuration scope at group/subgroup levels in gitlab
Some checks failed
Build-and-test / build-and-test (push) Has been cancelled
docs-ci / deploy (push) Has been cancelled
2025-11-27 13:41:45 +02:00
ofir-frd
5ec92b3535
Merge pull request #2118 from qodo-ai/of/opus-4.5-benchmark
Some checks failed
docs-ci / deploy (push) Has been cancelled
Build-and-test / build-and-test (push) Has been cancelled
Add Claude Opus 4.5 to PR Banchmark
2025-11-25 11:05:22 +02:00
ofir-frd
4a67e23eab Add Claude Opus 4.5 to PR Banchmark 2025-11-25 11:01:41 +02:00
ofir-frd
3ce4780e38
Merge pull request #2111 from qodo-ai/of/doc-Gemini-3-pro-review-2025-11-18-ranking
Some checks failed
Build-and-test / build-and-test (push) Has been cancelled
docs-ci / deploy (push) Has been cancelled
docs: add Gemini-3-pro-review benchmark results
2025-11-20 11:37:19 +02:00
ofir-frd
edd9ef9d4f docs: add Gemini-3-pro-review benchmark results to PR benchmark documentation 2025-11-20 11:32:09 +02:00
ofir-frd
e661147a1d
Merge pull request #2103 from PeterDaveHelloKitchen/GPT-5.1
Some checks failed
Build-and-test / build-and-test (push) Has been cancelled
feat: add OpenAI GPT-5.1 series models
2025-11-17 10:43:23 +02:00
Peter Dave Hello
d8dcc3ca34 feat: add OpenAI GPT-5.1 series models
- add support for gpt-5.1, gpt-5.1-2025-11-13, gpt-5.1-chat-latest, gpt-5.1-codex, gpt-5.1-codex-mini
- replace default model gpt-5-2025-08-07 with gpt-5.1-2025-11-13 per OpenAI’s Nov 13 launch

See: https://openai.com/index/gpt-5-1-for-developers/
2025-11-17 00:14:05 +08:00
ofir-frd
f7a4f3fc8b
Merge pull request #2106 from qodo-ai/of/gpt-5-1
Some checks failed
Build-and-test / build-and-test (push) Waiting to run
docs-ci / deploy (push) Has been cancelled
docs: add GPT-5.1 benchmark results to PR benchmark documentation
2025-11-16 12:41:57 +02:00
ofir-frd
0bbad14c70 docs: add GPT-5.1 benchmark results to PR benchmark documentation 2025-11-16 12:33:05 +02:00
ofir-frd
4c5d3d6a6e
Merge pull request #2064 from qodo-ai/remove-unsupported-languages-docs-update
Some checks are pending
Build-and-test / build-and-test (push) Waiting to run
docs-ci / deploy (push) Waiting to run
Remove Scala and other languages from docs
2025-11-16 07:18:39 +02:00
ofir-frd
a98eced418
Merge pull request #2071 from BTLzdravtech/main
feat: improvements for Gitea integration
2025-11-16 07:18:20 +02:00
ofir-frd
6d22618756
Bump version from 0.3.0 to 0.3.1
Some checks failed
Build-and-test / build-and-test (push) Has been cancelled
2025-11-07 21:57:55 +02:00
ofir-frd
8dbc53271e
Merge pull request #2095 from qodo-ai/DanaFineTLV-patch-3
Some checks failed
Build-and-test / build-and-test (push) Has been cancelled
Update README.md v2
2025-11-06 13:57:49 +02:00
Dana Fine
79e0ff03fa
Update README.md v2 2025-11-06 13:52:51 +02:00
ofir-frd
d36ad319f7
Merge pull request #2093 from qodo-ai/nccodium-patch-2
Some checks failed
Build-and-test / build-and-test (push) Has been cancelled
Update contact email for reporting incidents
2025-11-05 09:33:38 +02:00
ofir-frd
2f4b71da83
Merge pull request #2092 from qodo-ai/nccodium-patch-1
Update authors and maintainers email addresses
2025-11-05 09:33:26 +02:00
Nadav Cohen
7b365b8d1c
Update contact email for reporting incidents 2025-11-04 18:05:56 +02:00
Nadav Cohen
7de5ac74ca
Update authors and maintainers email addresses 2025-11-04 18:05:00 +02:00
sharoneyal
bfc82390dd
Bitbucket Server: Add push_commands support when PR is updated (#2090)
Some checks are pending
Build-and-test / build-and-test (push) Waiting to run
2025-11-04 11:45:30 +02:00
ofir-frd
a2b5ae87d7 docs: add generic custom compliance checklist configuration options to compliance tool documentation
Some checks failed
Build-and-test / build-and-test (push) Has been cancelled
docs-ci / deploy (push) Has been cancelled
2025-10-31 08:32:21 +02:00
sharoneyal
d141e4ff9d
Set a custom toml loader for Dynaconf (#2087)
Some checks are pending
Build-and-test / build-and-test (push) Waiting to run
2025-10-30 11:56:46 +02:00
sharoneyal
8bd134e30c
Bitbucket: Add push_commands support when PR is updated (#2085)
Some checks are pending
Build-and-test / build-and-test (push) Waiting to run
* Add push_commands support when PR is updated

* code review
2025-10-29 18:03:38 +02:00
Nadav Cohen
a84ba36cf4
Merge pull request #2084 from qodo-ai/nccodium-patch-1
Some checks failed
Build-and-test / build-and-test (push) Has been cancelled
Change security vulnerability report email address
2025-10-28 14:41:28 +02:00
Nadav Cohen
3d54b501b2
Change security vulnerability report email address
Updated the email address for reporting vulnerabilities.
2025-10-28 14:27:27 +02:00
ofir-frd
a2fd3cc190 refactor: move traceback import to top-level imports
Some checks failed
Build-and-test / build-and-test (push) Has been cancelled
docs-ci / deploy (push) Has been cancelled
2025-10-22 08:55:43 +03:00
sharoneyal
f2bbf708f2
Apply repo settings: Disable loading env files as well as merging from other sources (#2077)
* Apply repo settings: Disable loading env files as well as merging from other sources.

* Add warning in case of exception of failed Dynaconf init

* code suggestion

* Missing e
2025-10-22 08:53:16 +03:00
ofir-frd
5f8ac3d8cf
Merge pull request #2078 from qodo-ai/of/doc-default-models-oct-2025
docs: update Qodo Merge default models
2025-10-22 08:52:32 +03:00
ofir-frd
9ee7ba3919
Merge pull request #2070 from YunosukeY/docs/fix-some-documentation-drifts
docs: Fix some documentation drifts
2025-10-22 08:31:32 +03:00
ofir-frd
c728a486b4 docs: update Qodo Merge default models from Sonnet-4 to Haiku-4.5 and reorder model list 2025-10-22 08:27:09 +03:00
sharoneyal
8d3f3bca45
Add support for SSL related interactions: (#2074)
Some checks are pending
Build-and-test / build-and-test (push) Waiting to run
docs-ci / deploy (push) Waiting to run
* Add support for SSL related interactions:
1. Inject SSL related env variables to git clone
2. Force LiteLLM to use aiohttp which honors SSL env. variables, this is done by setting configuration toml as follows:

[litellm]
disable_aiohttp = true

* Update pr_agent/git_providers/git_provider.py

Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>

* Guard get_git_ssl_env invocation with try-catch

---------

Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-10-21 19:06:18 +03:00
ofir-frd
8a0759f835
Merge pull request #2076 from qodo-ai/of/add-gpt-5-pro-2025-10-06-bentchmark
docs: add GPT-5-pro benchmark results to PR benchmark documentation
2025-10-21 18:22:37 +03:00
ofir-frd
f88b7ffb4d docs: add GPT-5-pro benchmark results to PR benchmark documentation 2025-10-21 17:52:41 +03:00
Itamar Friedman
51084b4617
Clarify request for additional maintainers in README
Updated wording to clarify the search for additional maintainers.
2025-10-21 17:52:22 +03:00
DedyKredo
40ff5db659
Merge pull request #2063 from qodo-ai/of/readme-file-update
docs: clarify PR-Agent and Qodo Merge relationship as separate products
2025-10-21 15:39:47 +03:00
ofir-frd
b7874e6e5f
Merge pull request #2073 from qodo-ai/of/add-claude-4.5-thinking-bentchmarks
Some checks are pending
Build-and-test / build-and-test (push) Waiting to run
docs-ci / deploy (push) Waiting to run
Add claude 4.5 thinking benchmarks
2025-10-20 15:42:56 +03:00
ofir-frd
1d7c82d68c docs: reorder Claude Haiku 4.5 and Claude Sonnet 4.5 entries in PR benchmark table 2025-10-20 15:32:53 +03:00
ofir-frd
fc7d614552 Merge branch 'main' into of/add-claude-4.5-thinking-bentchmarks
# Conflicts:
#	docs/docs/pr_benchmark/index.md
2025-10-20 15:32:14 +03:00
ofir-frd
ec784874f9 docs: standardize capitalization of strengths and weaknesses headers in PR benchmark documentation 2025-10-20 15:17:14 +03:00
ofir-frd
eebdeea9f9 docs: Restore Claude Haiku 4.5 benchmark results and analysis to PR benchmark documentation 2025-10-20 10:56:29 +03:00
ofir-frd
cb1c82073b docs: add Claude Haiku 4.5 benchmark results to PR benchmark documentation 2025-10-20 10:42:23 +03:00
ofir-frd
335dadd0ac docs: reorder model rankings in PR benchmark documentation by performance score 2025-10-20 10:25:47 +03:00
ofir-frd
33744d9544 docs: update Claude Sonnet 4.5 thinking benchmark results and reorder model rankings 2025-10-20 10:15:42 +03:00
Tomas Hruska
bf1cc50ece feat: improvements for Gitea integration 2025-10-19 16:00:01 +02:00
Yunosuke Yamada
d67d053ae5 docs: The default for pr_code_suggestions.enable_chat_text is false. 2025-10-17 15:33:17 +09:00
Yunosuke Yamada
e43bf05c6e docs: The default for pr_description.final_update_message is true. 2025-10-17 15:32:38 +09:00
Hussam Lawen
f2ba770558
Merge pull request #2067 from yamoyamoto/fix/safe-attribute-access-in-review-prompt-template
Some checks failed
Build-and-test / build-and-test (push) Has been cancelled
docs-ci / deploy (push) Has been cancelled
fix: safe attribute access in review prompt template
2025-10-16 17:42:24 +03:00
Hussam Lawen
3dd373a77e
Update pr_agent/settings/pr_reviewer_prompts.toml
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-10-16 17:38:34 +03:00
ofir-frd
b9c6a2c747
Merge pull request #2069 from qodo-ai/of/doc-bentchmark-Claude-Haiku-4.5
docs: Add Claude Haiku 4.5 benchmark
2025-10-16 15:57:48 +03:00
ofir-frd
a6e11f60ce docs: update Claude Haiku 4.5 benchmark score label from normalized to final 2025-10-16 15:49:44 +03:00
ofir-frd
604c17348d docs: remove unnecessary whitespace in index documentation 2025-10-16 15:39:32 +03:00
ofir-frd
8c7712bf30 docs: add Claude Haiku 4.5 benchmark results to PR benchmark documentation 2025-10-16 15:38:11 +03:00
ofir-frd
7969e4ba30 docs: correct formatting of Claude Sonnet version in documentation 2025-10-16 10:50:17 +03:00
ofir-frd
dcab8a893c
Merge pull request #2068 from qodo-ai/of/toggleable-compliance-sections-docs
Some checks failed
Build-and-test / build-and-test (push) Has been cancelled
docs-ci / deploy (push) Has been cancelled
docs: add section visibility configuration options to compliance tool
2025-10-14 21:18:14 +03:00
ofir-frd
2230da73fd docs: clarify description of codebase duplication compliance section in documentation 2025-10-14 21:04:03 +03:00
ofir-frd
f251a8a6cb docs: add section visibility configuration options to compliance tool documentation 2025-10-14 20:56:43 +03:00
tomoya-kawaguchi
76ed9156d3 fix: safe attribute access in review prompt template 2025-10-14 11:33:52 +09:00
ofir-frd
9fd28e5680
Merge pull request #2065 from qodo-ai/of/claude-sonnet-4-5-pr_benchmark
docs: add Claude Sonnet 4.5 benchmark
2025-10-13 13:28:53 +03:00
ofir-frd
d0bbc56480 docs: add Claude Sonnet 4.5 benchmark results to PR benchmark documentation 2025-10-13 13:24:33 +03:00
AdamWalker-112358
c3bc789cd3 Fix grammar 2025-10-12 17:44:36 +03:00
AdamWalker-112358
9252cb88d8 Remove Scala and other unsupported languages 2025-10-12 17:42:49 +03:00
ofir-frd
1527ea07cf Merge remote-tracking branch 'origin/main' into of/readme-file-update 2025-10-11 17:09:30 +03:00
ofir-frd
5592e9d49d
Merge pull request #2046 from cawamata/support-claude-4-5
feat: add support for Claude Sonnet 4.5
2025-10-11 17:04:54 +03:00
ofir-frd
40633d7a9e Merge branch 'main' into pr/2046
# Conflicts:
#	requirements.txt
2025-10-11 16:50:46 +03:00
ofir-frd
d862d82475
Merge pull request #2059 from sbobryshev/patch-1
Remove useless pass from git_provider
2025-10-11 16:45:55 +03:00
ofir-frd
5623fd14da docs: clarify PR-Agent and Qodo Merge relationship as separate products 2025-10-11 16:36:23 +03:00
ofir-frd
26c7574b3b
Merge pull request #2051 from XoRohan/main
fix: upgrade packages to address security vulnerabilities
2025-10-11 16:25:18 +03:00
ofir-frd
01a7c04263
Merge pull request #2053 from yamoyamoto/chore/add-error-log
chore: add error log on model prediction failure
2025-10-11 16:03:52 +03:00
Tomoya Kawaguchi
a194ca65d2
Update pr_agent/algo/pr_processing.py
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-10-10 20:44:31 +09:00
Sviatoslav Bobryshev
584e87ae48
Remove useless pass from git_provider 2025-10-10 10:54:00 +03:00
tomoya-kawaguchi
632c39962c chore: add original exception 2025-10-07 21:16:52 +09:00
tomoya-kawaguchi
be93651db8 chore: add error log on model prediction failure 2025-10-07 19:19:03 +09:00
sharoneyal
fea8bc5150
Update documentation to clarify the need to set bitbucket data center url (#2052) 2025-10-06 14:16:10 +03:00
Rohan Balkondekar
58fe872a44 fix: upgrade packages to address security vulnerabilities
- Jinja2: 3.1.2 → 3.1.6
  - aiohttp: 3.10.2 → 3.12.15
  - azure-identity: 1.15.0 → 1.25.0
  - urllib3: 2.0.7 → 2.5.0
  - starlette: 0.37.2 → 0.48.0
  - boto3: 1.33.6 → 1.40.45 (dependency resolution)
  - fastapi: 0.115.6 → 0.118.0 (dependency resolution)

  All unit tests passing (192/192)
2025-10-06 15:03:12 +08:00
cawamata
2866384931 add JP Anthropic Claude Sonnet 4.5 2025-10-02 04:30:41 +09:00
cawamata
3d66a9e8c3 feat: add support for Claude Sonnet 4.5 2025-09-30 21:53:04 +09:00
sharoneyal
65dea899ec
Update Qodo Merge installation for Gitlab documentation (#2034)
* Update Qodo Merge installation for Gitlab documentation

* Fix typos and suggestions

* Give more details on how the host address should look like in case of Gitlab server
2025-09-25 15:02:19 +03:00
ofir-frd
7db9529d96 docs: fix markdown formatting in maximum coverage configuration section 2025-09-21 12:24:42 +03:00
ofir-frd
b5260a824f
Merge pull request #2036 from qodo-ai/of/doc-super-exhaustive-qodo-merge-mode
docs: add super exhaustive mode configuration for comprehensive code suggestions
2025-09-21 12:21:58 +03:00
ofir-frd
ccfc24ea85 docs: refactor super exhaustive mode as maximum coverage configuration recipe 2025-09-21 12:19:11 +03:00
ofir-frd
063d0999c5 docs: add super exhaustive mode configuration for comprehensive code suggestions 2025-09-21 11:47:30 +03:00
ofir-frd
91dade811f
Merge pull request #2035 from rizkiandrianto/hotfix/typo-on-docs
Fix typo on docs
2025-09-20 15:10:13 +03:00
Rizki Andrianto
3388ca34df
Fix typo on docs 2025-09-18 11:13:28 +07:00
mrT23
10f960f43d
docs: update title and expand supported Git platforms in high-level suggestions 2025-09-17 20:26:44 +03:00
mrT23
7573dbbc1b
docs: enhance clarity in additional configurations and update recent updates section 2025-09-17 10:47:43 +03:00
mrT23
ae9bb72f8e
docs: improve clarity and consistency in Qodo Merge documentation 2025-09-17 08:27:51 +03:00
mrT23
76d05e2279
docs: update Qodo Merge CLI installation requirements and remove commented code sections 2025-09-17 07:55:06 +03:00
AdamWalkerQodo
544c962dd7
Merge pull request #2033 from qodo-ai/add-gitbook-configuration-file
Add gitbook configuration file
2025-09-16 14:57:06 +03:00
AdamWalker-112358
557a52b7f3 Add gitbook configuration file 2025-09-16 13:56:27 +03:00
AdamWalkerQodo
ed2c615d65
Merge pull request #2032 from qodo-ai/add-gitbook-support
Support Gitbooks Rendering
2025-09-16 13:21:48 +03:00
AdamWalker-112358
d35f051a58 configuration change 2025-09-16 13:12:19 +03:00
Hussam Lawen
7fc0a2330d
Merge pull request #2031 from qodo-ai/hl/qm_cli_docs
docs: simplify navigation links in Qodo Merge CLI documentation
2025-09-16 09:26:22 +03:00
Hussam.lawen
5b5e4dd59f
docs: remove redundant navigation link from Qodo Merge CLI usage documentation 2025-09-16 09:21:59 +03:00
Hussam.lawen
40ea7fcb6c
docs: simplify navigation links in Qodo Merge CLI documentation 2025-09-16 09:16:45 +03:00
Hussam Lawen
96299b28bc
Merge pull request #2030 from qodo-ai/hl/qm_cli_docs
docs: add Qodo Merge CLI section to documentation navigation
2025-09-15 17:32:56 +03:00
Hussam.lawen
0ee6ee6e7d
docs: improve formatting and fix typos in Qodo Merge CLI documentation 2025-09-15 17:32:15 +03:00
Hussam.lawen
60948ac3c8
docs: add Qodo Merge CLI section to documentation navigation 2025-09-15 15:35:29 +03:00
ofir-frd
0588459ca3 docs: add reference to PR Compliance Templates repository in compliance tool documentation 2025-09-14 12:39:33 +03:00
mrT23
42f7c72857
docs: add note about Bitbucket limitations on committable code comments mode 2025-09-11 08:06:02 +03:00
mrT23
393749dcb7
docs: update impact level terminology in table format advantages 2025-09-10 10:10:42 +03:00
mrT23
7981a2de2e
docs: clarify IDE integration description in Qodo Merge benefits 2025-09-10 08:09:18 +03:00
mrT23
6274852a88
docs: add image to enhance explanation of Qodo Merge table mode benefits 2025-09-10 08:05:10 +03:00
mrT23
fc1b757e92
docs: enhance explanation of table vs committable code comments in Qodo Merge 2025-09-10 07:45:42 +03:00
mrT23
3fd8210279
docs: reorganize improve tool documentation with table vs committable comparison 2025-09-10 07:32:19 +03:00
mrT23
6c0087e0d9
docs: remove outdated GitLab submodule diff expansion entry from recent updates 2025-09-09 08:52:35 +03:00
mrT23
7d7292b2d0
Merge remote-tracking branch 'origin/main' 2025-09-08 16:16:22 +03:00
mrT23
ae4c8f85f9
docs: update explanation of auto and custom best practices integration 2025-09-08 16:16:12 +03:00
Anush
6dabc7b1ae
feat: Qdrant support (#2022)
Signed-off-by: Anush008 <anushshetty90@gmail.com>
2025-09-07 09:37:56 +03:00
Abhinav Kumar
9ad8e921b5
docs: update Azure DevOps pipeline instructions for PR-Agent (#2017)
* docs: update Azure DevOps pipeline instructions for PR-Agent

* docs: enhance Azure DevOps pipeline instructions with PR trigger configuration
2025-09-05 17:32:50 +03:00
ofir-frd
12eea7acf3 docs: clarify implement tool usage with inline comment terminology 2025-09-03 16:28:02 +03:00
mrT23
1fff1b0208
Merge remote-tracking branch 'origin/main' 2025-09-02 16:16:41 +03:00
mrT23
0989247d42
docs: clarify repository metadata detection process in documentation 2025-09-02 16:16:26 +03:00
alex107ivanov
411f933a34
[GitLab] Submodule expansion functionality added (#2014)
* [GitLab] Submodule expansion functionality added

Functionality to include the submodule changes to the Model input added

* Enhance GitLab submodule handling

* docs: document GitLab submodule diff expansion

* docs: document GitLab submodule diff option
2025-09-02 12:26:42 +03:00
ofir-frd
2a5a84367c docs: add additional video tutorial link to index page 2025-09-02 09:53:19 +03:00
mrT23
5de82e379a
fix: correct filename references in metadata configuration and documentation 2025-09-02 09:18:12 +03:00
Tal
532fbbe0a6
feat: enhance documentation with additional repository metadata secti… (#2021)
* feat: enhance documentation with additional repository metadata section and update model references

* feat: update default model to GPT-5 and clarify configuration instructions
2025-09-02 08:40:47 +03:00
Abhinav Kumar
0f8606b899
fix: correct variable name for last merge source commit in Azure DevOps provider (#2018) 2025-09-01 21:41:58 +03:00
ofir-frd
c84a602d3a docs: add Bitbucket to RAG context enrichment supported platforms 2025-08-31 19:08:16 +03:00
ofir-frd
025b9bf44c docs: fix indentation in compliance tool directory structure example 2025-08-29 16:18:56 +03:00
ofir-frd
785dde5e54
Merge pull request #2019 from qodo-ai/of/hierarchical-repos-renaming
docs: update hierarchical repository examples with generic naming conventions
2025-08-29 16:00:21 +03:00
ofir-frd
08a683c9a4 docs: update compliance tool examples with generic naming conventions 2025-08-29 15:53:22 +03:00
ofir-frd
a53a9358ed docs: update hierarchical repository examples with generic naming conventions 2025-08-29 15:43:54 +03:00
mrT23
03832818e6
chore: remove outdated news and updates section from README 2025-08-28 11:25:59 +03:00
Itamar Friedman
ead49dc605
Clarify README: PR-Agent vs. Qodo Merge (#2016)
* docs: clarify differences between PR-Agent and Qodo Merge in README

- Added clear header explaining PR-Agent is open source, Qodo Merge is hosted
- Created comparison table showing setup time and costs upfront
- Added dedicated "PR-Agent vs Qodo Merge" section with detailed comparison
- Restructured "Getting Started" to focus on PR-Agent with code examples
- Enhanced "Why Use PR-Agent?" to emphasize open source benefits
- Updated Qodo Merge section to be factual rather than sales-focused
- Made the README more developer-friendly and less confusing for newcomers

* revert: undo unintended changes to .gitignore

* docs: clarify Qodo Merge enhances open-source features

Updated the comparison table to better explain that Qodo Merge
enhances the existing open-source features rather than just
adding separate advanced features. This makes it clearer that
both versions are sophisticated, with Qodo Merge building upon
the open-source foundation.

* docs: add navigation links and improve section title consistency

- Added clickable links in Quick Start Options table to relevant sections
- Updated "Want Zero-Setup? Try Qodo Merge" to "Try Qodo Merge (Zero Setup)"
- Improved navigation and maintained consistent phrasing between options
- Makes it easier for users to jump directly to setup instructions
2025-08-27 21:53:49 +03:00
mrT23
ae4fc71603
feat: update max context tokens configuration and improve documentation 2025-08-27 15:20:10 +03:00
acamacho
8258c2e774
Set a status for comments on azure devops (#2011)
* Update azuredevops_provider.py

* Update azuredevops_provider.py
2025-08-26 18:20:27 +03:00
Tal
dae9683770
Tr/updates23 (#2008)
* fix: improve PR description field guidance for clarity

* feat: refine suggestion guidelines to avoid redundant recommendations in PR reviews

* feat: enhance YAML parsing logic with additional keys and fallback strategies

* fix: update expected output format in YAML parsing test case
2025-08-22 10:16:08 +03:00
Alessio
5fc466bfbc
PR reviewer tool: add an opt-in work time estimation (#2006)
* feat: add `ContributionTimeCostEstimate`

* docs: mentiond `require_estimate_contribution_time_cost` for `reviewer`

* feat: implement time cost estimate for `reviewer`

* test: non-GFM output

To ensure parity and prevent regressions in plain Markdown rendering.
2025-08-22 09:53:08 +03:00
Tal
d2c304eede
Merge pull request #2000 from papi656/fix/correct-variable-name
Correct variable for url for bitbucket server
2025-08-17 09:34:33 +03:00
Abhishek Pratap Singh
a3217042f4 Change bitbucket sever url variable name in secrets template 2025-08-17 15:27:10 +09:00
Abhishek Pratap Singh
07cc7f9f42 Correct variable
load correct variable from .secrets.toml
2025-08-17 00:33:25 +09:00
ofir-frd
604e5743f3
README.md: rename /Compliance to /compliance 2025-08-16 10:48:34 +03:00
ofir-frd
7597d27095
README.md: add the compliance tool to News and Updates 2025-08-15 18:20:46 +03:00
ofir-frd
fb452b992d docs: add RAG support for GitLab to recent updates 2025-08-15 17:52:57 +03:00
ofir-frd
0b801d391c test: update Azure DevOps comment status mocking to use get method 2025-08-15 15:42:42 +03:00
ofir-frd
8f9ad2b38e refactor: simplify Bitbucket client initialization logic and improve code readability 2025-08-15 15:34:40 +03:00
ofir-frd
10a7a0fbef
Merge pull request #1980 from boston008/bitbucket_provider_support_username_password
feat: enhance BitbucketServerProvider authentication with username and password fallback
2025-08-15 15:20:00 +03:00
mrT23
e4d3f8fe7f
feat: update supported programming languages in documentation 2025-08-15 09:52:35 +03:00
mrT23
08da41c929
feat: enhance documentation with programming languages section and clarify dataset details 2025-08-15 09:40:40 +03:00
mrT23
0a3d655912
Merge remote-tracking branch 'origin/main' 2025-08-14 18:49:12 +03:00
mrT23
81525cd25a
fix: correct prefix handling in load_yaml function for improved YAML parsing 2025-08-14 18:49:06 +03:00
Tal
aafa835137
Merge pull request #1998 from LawrenceMantin/main
Adds a new configuration group [azure_devops] to allow "active" comments
2025-08-14 18:47:10 +03:00
Lawrence Mantin
57ec112b4d
Update pr_agent/git_providers/azuredevops_provider.py
applied suggestion.

Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-08-14 10:42:17 -05:00
Tal
f645ebb938
Merge pull request #1995 from dceoy/main
Add models for Groq
2025-08-14 18:00:45 +03:00
Tal
ae799d1327
Merge pull request #1996 from yamoyamoto/fix/add-temperature-arg-to-self-reflect-of-suggestion
fix: add temperature arg to self reflect of improve
2025-08-14 17:56:09 +03:00
Lawrence Mantin
9c3972d619 Adds a new configuration group [azure_devops] that will allow setting the comment status other than "closed". 2025-08-14 09:23:29 -05:00
Boston008
e0a4be1397
Update bitbucket_server_provider.py 2025-08-13 12:46:50 +08:00
tomoya-kawaguchi
d01a7daaa7 fix: add temperature arg to self reflect of improve 2025-08-13 12:30:48 +09:00
dceoy
5c3da5d83e Add models for Groq 2025-08-12 23:55:32 +09:00
Hussam.lawen
9e2f1ed603
docs: fix formatting in Monday integration installation steps 2025-08-12 13:29:58 +03:00
ofir-frd
6d38a90ba1 docs: add RAG Code Duplication Compliance section to compliance documentation 2025-08-12 13:26:30 +03:00
Hussam Lawen
6499b8e592
Merge pull request #1972 from qodo-ai/hl/add_monday_integration_docs
Update fetching_ticket_context.md
2025-08-12 11:11:52 +03:00
ofir-frd
9bbed66028 docs: add GitLab to supported platforms for RAG Context Enrichment 2025-08-11 17:36:06 +03:00
ofir-frd
74a7163eea docs: update Qodo Merge models documentation date to August 2025 2025-08-11 12:36:15 +03:00
ofir-frd
e2cfc897ab docs: update model list to include gpt-5 and remove gpt-4.1 in Qodo Merge models documentation 2025-08-11 11:28:30 +03:00
ofir-frd
5e28f8a1d1 Merge remote-tracking branch 'origin/main' 2025-08-11 11:26:22 +03:00
ofir-frd
2de4a9996f docs: add platform support information to Chrome extension documentation 2025-08-11 11:25:55 +03:00
Boston008
01f16f57ca
Update bitbucket_server_provider.py 2025-08-11 12:18:05 +08:00
Boston008
bcfd2b3d6d
Update pr_agent/git_providers/bitbucket_server_provider.py
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-08-11 09:47:16 +08:00
Boston008
34b562db22
Update pr_agent/git_providers/bitbucket_server_provider.py
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-08-11 09:46:37 +08:00
Boston008
4a6a55ca7c
Update pr_agent/git_providers/bitbucket_server_provider.py
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-08-11 09:46:26 +08:00
Boston008
af803ce473
Update bitbucket_server_provider.py
implement improve suggestion
2025-08-10 15:09:13 +08:00
Tal
9ab0a611e2
Merge pull request #1988 from cxyfreedom/fix/openai-model-parameter-spell-error
docs: fix typo in OpenAI model parameter name to search
2025-08-08 18:41:04 +03:00
CxyFreedom
a60b91e85d docs: fix typo in OpenAI model parameter name to search
- Fix spelling error: `reasoning_efffort` -> `reasoning_effort`
2025-08-08 19:55:18 +08:00
Tal
4958decc89
Merge pull request #1986 from qodo-ai/tr/revert_litellm
fix: update model prefix in litellm_ai_handler and adjust dependencie…
2025-08-08 09:41:37 +03:00
mrT23
bb115432f2
feat: add support for new GPT-5 models and update documentation 2025-08-08 09:39:24 +03:00
mrT23
f3287a9f67
fix: update model prefix in litellm_ai_handler and adjust dependencies in requirements.txt 2025-08-08 09:34:31 +03:00
mrT23
9a2ba2d881
fix: handle empty changes summary in file label dict based on configuration 2025-08-08 09:02:54 +03:00
Tal
0090f7be81
Merge pull request #1984 from qodo-ai/tr/new_litellm
fix: update litellm dependency to include proxy support and clean up …
2025-08-08 08:57:26 +03:00
mrT23
c927d20b5e
fix: update litellm dependency to include proxy support and clean up requirements 2025-08-08 08:53:34 +03:00
Tal
8e36f46dae
Merge pull request #1983 from qodo-ai/tr/benchmark
Tr/benchmark
2025-08-08 08:40:35 +03:00
mrT23
de5c1adaa0
fix: update temperature handling for GPT-5 and upgrade aiohttp version 2025-08-08 08:37:28 +03:00
mrT23
1c25420fb3
docs: update references to GPT-5 in documentation 2025-08-08 08:32:28 +03:00
mrT23
62a029d36a
Merge remote-tracking branch 'origin/main' into tr/benchmark 2025-08-08 08:29:45 +03:00
mrT23
5162d847b3
feat: add support for gpt-5 model and update configuration 2025-08-08 08:28:42 +03:00
Tal
6be8860959
Merge pull request #1981 from ericglau/update-gh-app-link
Update GitHub marketplace link
2025-08-08 07:58:23 +03:00
Eric Lau
406ef6a934
Update GitHub marketplace link 2025-08-07 18:54:04 -04:00
Hussam Lawen
3980c0d9d5
Update docs/docs/core-abilities/fetching_ticket_context.md
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-08-07 13:40:07 +03:00
Hussam Lawen
385f8908ad
Update docs/docs/core-abilities/fetching_ticket_context.md
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-08-07 13:35:19 +03:00
Kris Rane
e14beacc19 feat: enhance BitbucketServerProvider authentication with username and password fallback 2025-08-07 17:56:46 +08:00
mrT23
fd7f8f2596
docs: enhance GitHub configuration documentation with clearer structure and examples 2025-08-07 08:39:17 +03:00
mrT23
df9cb3f635
docs: improve JSON formatting examples and clarify Docker build note 2025-08-07 08:25:17 +03:00
mrT23
4fb22beb3a
docs: add GPT-5 performance metrics to index documentation 2025-08-07 08:01:31 +03:00
Tal
03867d5962
Merge pull request #1978 from huangyoje/fix/fix-ask-line
Fix comment_id name in handle_ask_line
2025-08-06 21:48:17 +03:00
Tal
96435a34f8
Merge pull request #1979 from emmanuel-ferdman/main
Fix issue in the GitLab provider
2025-08-06 11:12:38 +03:00
Emmanuel Ferdman
807ce6ec65
Fix issue in the GitLab provider
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-08-05 23:38:12 -07:00
Tal
395e5a2e04
Merge pull request #1969 from Mr-jing/fix/gitlab-private-deployment-401
Fix GitLab authentication for private deployments running GitLab 11.1.4 (401 Unauthorized error)
2025-08-06 08:31:23 +03:00
Tal
65457b2569
Merge branch 'main' into fix/gitlab-private-deployment-401 2025-08-06 08:30:54 +03:00
Tal
82feddbb95
Merge pull request #1970 from huangyoje/fix/sort-files-by-token
Fix: defer file sorting until after token calculation
2025-08-06 08:28:21 +03:00
Mr_Jing
fb73eb75f9 refactor: simplify GitLab authentication configuration 2025-08-06 12:03:53 +08:00
huangyoje
39add8d78a Fix comment_id name in handle_ask_line 2025-08-06 10:14:33 +08:00
Tal
d406555f23
Merge pull request #1955 from marc0777/gitlab-custom-ssl
feat: allow configuring gitlab ssl verification
2025-08-05 20:33:05 +03:00
Tal
0d3c2e6b51
Merge pull request #1975 from doljae/main
docs: improve document for enable using commands in PR comments the GitHub Actions
2025-08-05 19:34:25 +03:00
ofir-frd
8e33b18e2c
Merge pull request #1971 from qodo-ai/of/rag_compliance
docs: add compliance tool to RAG context enrichment documentation
2025-08-05 15:06:54 +03:00
marc0777
0b00812269 feat: allow configuring gitlab ssl verification 2025-08-05 11:55:01 +02:00
Seokjae Lee
06bb64a0a2 docs: improve document for enable using commands in PR comments the GitHub Actions
Closes #1968
2025-08-05 18:45:13 +09:00
Tal
dcfc7cc54f
Merge pull request #1973 from doljae/main
docs: add interactive Q&A feature documentation for review comments
2025-08-05 10:51:55 +03:00
Seokjae Lee
9383cdd520 docs: apply code review 2025-08-05 16:30:07 +09:00
Mr_Jing
dd6f56915b improve: enhance GitLab provider error handling and attribute access safety
- Add try-catch block around GitLab instance creation for better error handling
- Use getattr() for safer attribute access in _prepare_clone_url_with_token method
- Improve authentication failure debugging with clearer error messages
2025-08-04 10:35:52 +08:00
Seokjae Lee
54ffb2d0a1 docs: add interactive Q&A feature documentation for review comments
- Add section explaining how to enable interactive Q&A on PR Agent review comments
- Include configuration for PR_CODE_SUGGESTIONS.COMMITABLE_CODE_SUGGESTIONS
- Add GitHub Actions workflow example for issue_comment events
- Document /ask command usage for contextual responses
2025-08-04 11:20:09 +09:00
ofir-frd
79253e8f60 feat: add PR compliance checklist configuration with code quality standards 2025-08-03 17:51:01 +03:00
ofir-frd
8cef104784
Merge pull request #1949 from FabrizioCafolla/feature/add-eyes-reaction-gitlab-provider
feat: add eyes reaction to GitLab provider
2025-08-03 17:47:43 +03:00
ofir-frd
6aa26d8c56 fix: remove extra blank line in gitlab provider 2025-08-03 17:43:18 +03:00
Hussam Lawen
10cd8848d9
Update fetching_ticket_context.md 2025-08-03 16:39:06 +03:00
ofir-frd
fdd91c6663 docs: add compliance tool to RAG context enrichment documentation and adjust image widths 2025-08-03 15:42:09 +03:00
ofir-frd
5d50cfcb34 docs: improve compliance checklist field definitions and terminology clarity 2025-08-03 10:05:49 +03:00
Tal
a23b527101
Merge pull request #1954 from abhinav-1305/add-custom-inference
feat: Add support for Bedrock custom inference profiles via model_id
2025-08-03 08:06:43 +03:00
huangyoje
b81b671ab1 Fix: defer file sorting until after token calculation 2025-08-03 11:50:38 +08:00
Mr_Jing
2d858a43be refactor: improve GitLab authentication method detection
Address code review feedback from PR #1969:

1. Improve URL matching precision:
   - Use urlparse for robust hostname validation
   - Prevent false positives with URL substring matching
   - Add support for gitlab.com/gitlab.io subdomains

2. Add authentication type validation:
   - Validate explicit GITLAB.AUTH_TYPE configuration
   - Provide clear error messages for invalid auth types
   - Prevent silent failures from user configuration errors

This enhances code reliability and user experience while maintaining
backward compatibility.
2025-08-03 09:58:59 +08:00
Mr_Jing
d497c33c74 fix: support private_token authentication for GitLab private deployments
- Add intelligent authentication method detection based on GitLab URL
- Support explicit configuration override via GITLAB.AUTH_TYPE
- Maintain backward compatibility with existing oauth_token usage
- Fix 401 Unauthorized errors for private GitLab deployments

Fixes authentication issues where private GitLab instances require
private_token instead of oauth_token for API access.
2025-08-03 08:46:41 +08:00
ofir-frd
642c413f08 docs: clarify compliance checklist loading strategy and merge behavior 2025-07-31 14:27:39 +03:00
ofir-frd
fb3ba64576 docs: add blank line after compliance YAML definition header for improved formatting 2025-07-31 13:39:05 +03:00
mrT23
eb10d8c6d3
docs: enhance high-level suggestions documentation for clarity and detail 2025-07-30 08:01:32 +03:00
mrT23
aa9bfb07af
docs: update high-level suggestions documentation for clarity and formatting 2025-07-30 07:47:02 +03:00
Tal
0dd4f682d9
Merge pull request #1961 from qodo-ai/es/add_high_level_suggestions_to_updates
Add high-level suggestions to docs
2025-07-30 07:36:36 +03:00
Tal
9e4923aa79
Update high_level_suggestions.md 2025-07-30 07:36:22 +03:00
Eyal Sharon
497396eaeb Add high-level suggestions to docs 2025-07-29 19:31:47 +03:00
Tal
3a87d3ef03
Merge pull request #1958 from loicngr/patch-1
Update changing_a_model.md
2025-07-29 18:03:51 +03:00
lnogier
d0c0aaf1c7
Update changing_a_model.md
Removing an extra equal sign
2025-07-29 12:15:26 +02:00
ofir-frd
0b962a16e4 docs: improve help tool documentation with clearer usage instructions 2025-07-29 11:30:46 +03:00
ofir-frd
1e285aca1f docs: standardize punctuation and formatting in recent updates section 2025-07-28 14:24:27 +03:00
ofir-frd
91cc4daada docs: update recent updates page with compliance tool and latest dates 2025-07-28 14:03:05 +03:00
Hussam.lawen
fc3045df95
docs: add section on ignoring tickets with specific labels in analysis 2025-07-27 20:06:26 +03:00
Hussam Lawen
12a01ef5f5
Merge pull request #1957 from qodo-ai/hl/add_gitlab_issues
update recent updates and add gitlab issues docs
2025-07-27 17:00:42 +03:00
Hussam Lawen
aae7726bb2
Merge pull request #1956 from qodo-ai/hl/chrome_extension_docs
merge the docs of chrome extension into one page
2025-07-27 16:59:37 +03:00
Hussam.lawen
70a3059cbf
docs: add tip for auto-removal of irrelevant custom labels 2025-07-27 12:33:12 +03:00
Hussam.lawen
c12cd2d02d
docs: add tip for auto-removal of irrelevant custom labels 2025-07-27 12:32:12 +03:00
Hussam.lawen
c3b153cdc1
update recent updates and add gitlab issues docs 2025-07-27 12:02:06 +03:00
Hussam.lawen
460b1a54b9
merge the docs chrome extension into one 2025-07-27 11:29:09 +03:00
Abhinav Kumar
a8b8202567 fix: logic 2025-07-26 11:40:40 +05:30
Abhinav Kumar
af2b66bb51 feat: Add support for Bedrock custom inference profiles via model_id 2025-07-26 11:32:34 +05:30
ofir-frd
7b4c50c717 docs: improve hierarchical configuration documentation clarity in improve and compliance tools 2025-07-26 08:59:50 +03:00
ofir-frd
86847c40ff docs: add file organization tips to hierarchical best practices and compliance documentation 2025-07-26 08:54:23 +03:00
ofir-frd
6e543da4b4
docs: add code languages compliance hierarchy 2025-07-26 08:43:33 +03:00
ofir-frd
ad2a96da50
docs: add code languages best practice hierarchy 2025-07-26 08:39:28 +03:00
ofir-frd
359462abfe docs: remove duplicate ticket context entry from feature tables 2025-07-24 15:36:07 +03:00
ofir-frd
d4ab8c46e8 docs: reorganize ticket context feature in documentation tables 2025-07-24 15:31:39 +03:00
ofir-frd
5e53466d97 docs: add local compliance checklists section to compliance tool documentation 2025-07-24 15:28:37 +03:00
FabrizioCafolla
3efe091bc8 update 2025-07-23 17:19:53 +02:00
FabrizioCafolla
6f7d81b086 update 2025-07-23 17:19:53 +02:00
FabrizioCafolla
755165e90c feat: add eyes reacrtion to gitlab provider 2025-07-23 17:19:53 +02:00
Tal
179fef796d
Merge pull request #1945 from abhinav-1305/fix/doc
fix: update documentation for tools
2025-07-23 08:48:24 +03:00
Abhinav Kumar
0f7f135083 Merge branch 'fix/doc' of https://github.com/abhinav-1305/pr-agent into fix/doc 2025-07-22 22:25:42 +05:30
Abhinav Kumar
4bb7da1376 fix: correct spelling in image captions 2025-07-22 22:25:39 +05:30
Abhinav Kumar
e2377a46f3
Merge branch 'qodo-ai:main' into fix/doc 2025-07-22 21:49:27 +05:30
Abhinav Kumar
4448e03117 fix: correct image filenames in documentation for suggestion tracking 2025-07-22 21:45:26 +05:30
mrT23
436b5c7a0a
fix(docs): refine noise-related feedback section for clarity and user guidance 2025-07-22 17:07:58 +03:00
mrT23
c7511ac0d5
fix(docs): update default values for help text and code suggestions in documentation 2025-07-22 12:21:36 +03:00
mrT23
a397ac1e63
Merge remote-tracking branch 'origin/main' 2025-07-22 10:52:04 +03:00
mrT23
4384740cb6
fix(docs): update default values for help text and code suggestions in documentation 2025-07-22 10:51:54 +03:00
Tal
ae6576c06b
Merge pull request #1938 from furikake6000/fix/fix-ignore-files-config-on-bitbucketserver
fix: add support for filtering ignored files in Bitbucket Server provider
2025-07-22 07:58:51 +03:00
ofir-frd
940f82b695 docs: add platform support info to similar code tool documentation 2025-07-21 17:01:49 +03:00
ofir-frd
441b4b3795 docs: add platform support info to custom labels tool documentation 2025-07-21 16:20:16 +03:00
furikake6000
bdee6f9f36 fix: add error handling to bitbucket file filtering 2025-07-21 10:15:57 +00:00
Hussam.lawen
1663eaad4a
fix: reorder PR to Ticket entry in mkdocs.yml 2025-07-20 20:50:09 +03:00
Hussam Lawen
0ee115e19c
Merge pull request #1947 from qodo-ai/hl/create_ticket_docs
reorder
2025-07-20 20:46:34 +03:00
Hussam.lawen
aaba9b6b3c
add to README.md 2025-07-20 20:45:30 +03:00
Hussam.lawen
93aaa59b2d
reorder 2025-07-20 20:38:54 +03:00
Hussam Lawen
f1c068bc44
Merge pull request #1946 from qodo-ai/hl/create_ticket_docs
Hl/create ticket docs
2025-07-20 20:23:17 +03:00
Hussam Lawen
fffbee5b34
Update docs/docs/tools/pr_to_ticket.md
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-07-20 19:21:17 +03:00
Hussam Lawen
5e555d09c7
Update docs/docs/tools/pr_to_ticket.md
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-07-20 19:18:59 +03:00
Hussam.lawen
7f95e39361
add docs 2025-07-20 19:08:42 +03:00
Hussam.lawen
730fa66594
add docs 2025-07-20 18:15:21 +03:00
mrT23
f42dc28a55
feat(config): enhance ignore_pr_authors to support regex patterns 2025-07-20 11:56:55 +03:00
mrT23
7251e6df96
docs: add num_best_practice_suggestions parameter to improve tool configuration table 2025-07-20 08:26:07 +03:00
mrT23
b01a2b5f4a
docs: add num_best_practice_suggestions parameter to improve tool configuration table 2025-07-20 08:23:53 +03:00
Abhinav Kumar
f170af4675 fix: correct indentation 2025-07-19 09:59:30 +05:30
Abhinav Kumar
96d408c42a fix: update documentation for tools 2025-07-19 09:55:35 +05:30
ofir-frd
65e71cb2ee
docs: fix formatting inside the collapsible compliance priority section in Compliance.md 2025-07-18 17:07:50 +03:00
ofir-frd
9773afe155
docs: minor fixes in the compliance.md file 2025-07-18 14:31:16 +03:00
Tal
0a8a263809
Merge pull request #1934 from abhinav-1305/fix-tag
docs: update Google Tag Manager ID in custom analytics integration
2025-07-18 09:27:28 +03:00
Tal
597f553dd5
Merge pull request #1933 from abhinav-1305/config-docs-update
docs: add detailed configuration examples for GitHub Actions models
2025-07-18 09:26:45 +03:00
Tal
4b6fcfe60e
Merge pull request #1944 from qodo-ai/tr/describe_Redesign
Tr/describe redesign
2025-07-18 09:23:41 +03:00
Tal
7cc4206b70
Update pr_agent/tools/pr_description.py
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-07-18 09:20:41 +03:00
mrT23
8906a81a2e
fix(docs): fix table row structure in describe tool documentation 2025-07-18 09:17:14 +03:00
mrT23
6179eeca58
fix(pr_description): fix template syntax errors and improve formatting in prompts 2025-07-18 09:14:52 +03:00
mrT23
e8c73e7baa
refactor(utils): improve file walkthrough parsing with regex and better error handling 2025-07-18 08:54:52 +03:00
mrT23
754d47f187
refactor(pr_description): redesign changes walkthrough section and improve file processing 2025-07-18 08:51:48 +03:00
ofir-frd
bec70dc96a docs: fix alignment in compliance tool monorepo directory structure example 2025-07-17 18:10:59 +03:00
ofir-frd
fd32c83c29
Merge pull request #1942 from qodo-ai/of/compliance-tool
docs: A new compliance tool
2025-07-17 18:04:16 +03:00
ofir-frd
7efeeb1de8 docs: fix indentation in compliance tool directory structure example 2025-07-17 15:50:30 +03:00
ofir-frd
d7d4b7de89 docs: improve compliance tool overview and remove redundant conclusion 2025-07-17 15:47:31 +03:00
ofir-frd
2a37225574 Merge branch 'main' into of/compliance-tool 2025-07-17 15:44:13 +03:00
ofir-frd
e87fdd0ab5 docs: add compliance tool documentation and update feature tables 2025-07-17 15:43:45 +03:00
mrT23
c0d7fd8c36
update docs 2025-07-16 08:31:16 +03:00
furikake6000
380437b44f feat: add support for filtering ignored files in Bitbucket Server provider 2025-07-14 15:26:30 +00:00
Tal
5933280417
Merge pull request #1935 from qodo-ai/tr/refactor_litllm
refactor(ai_handler): move streaming response handling and Azure toke…
2025-07-13 21:32:00 +03:00
mrT23
8e0c5c8784
refactor(ai_handler): remove model parameter from _get_completion and handle it within the method 2025-07-13 21:29:53 +03:00
mrT23
0e9cf274ef
refactor(ai_handler): move streaming response handling and Azure token generation to helpers 2025-07-13 21:23:04 +03:00
Tal
3aae48f09c
Merge pull request #1925 from Makonike/feature_only_streaming_model_support
feat: Support Only Streaming Model
2025-07-13 21:16:49 +03:00
Abhinav Kumar
c4dd07b3b8 squashing revert commits 2025-07-13 23:11:22 +05:30
Makonike
8c7680d85d refactor(ai_handler): add a return statement or raise an exception in the elif branch 2025-07-13 22:57:43 +08:00
Makonike
11fb6ccc7e refactor(ai_handler): compact streaming path to reduce main flow impact 2025-07-13 22:37:14 +08:00
Abhinav Kumar
3aaa727e05 docs: update fallback model configuration and clarify self-hosted runner requirements 2025-07-13 00:20:03 +05:30
Abhinav Kumar
6108f96bff docs: update installation and usage guide to remove OPENAI_KEY for non-OpenAI models 2025-07-13 00:18:47 +05:30
Abhinav Kumar
5a00897cbe docs: add detailed configuration examples for GitHub Actions models 2025-07-13 00:10:36 +05:30
Tal
e12b27879c
Merge pull request #1931 from abhinav-1305/fix-title-pr
fix: clean up PR title formatting before publishing
2025-07-12 20:59:53 +03:00
Abhinav Kumar
fac2141df3 refactor: remove unnecessary blank lines 2025-07-12 23:28:29 +05:30
Abhinav Kumar
1dbfd27d8e fix: use strip instead of regex 2025-07-12 23:26:47 +05:30
Tal
eaeee97535
Merge pull request #1929 from abhinav-1305/add-ignore
fix: Add ignore logic for Bitbucket Server webhook
2025-07-12 20:15:03 +03:00
Tal
71bbc52a99
Update bitbucket_server_webhook.py 2025-07-12 20:13:45 +03:00
Abhinav Kumar
4a8e9b79e8
Update pr_agent/servers/bitbucket_server_webhook.py
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-07-12 22:39:18 +05:30
Tal
efdb0f5744
Update pr_agent/servers/bitbucket_server_webhook.py
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-07-12 20:07:51 +03:00
Tal
28750c70e0
Merge pull request #1921 from abhinav-1305/add-flex-processing
feat: support OpenAI Flex Processing via [litellm] extra_body config
2025-07-12 19:51:31 +03:00
mrT23
583ed10dca
docs: standardize capitalization for Grok-4 entry in index 2025-07-11 16:24:10 +03:00
mrT23
07d71f2d25
docs: add Grok-4 evaluation section with strengths and weaknesses 2025-07-11 16:17:11 +03:00
Abhinav Kumar
447a384aee fix: return empty string for None or empty PR title in cleaning method 2025-07-10 18:17:31 +05:30
Abhinav Kumar
d9eb0367cf fix: enhance PR title cleaning by normalizing whitespace 2025-07-10 18:06:44 +05:30
Abhinav Kumar
85484899c3 fix: implement dedicated method for cleaning PR titles 2025-07-10 17:26:13 +05:30
Abhinav Kumar
00b5815785 fix: streamline PR title cleaning process for comment publishing 2025-07-10 17:19:52 +05:30
Abhinav Kumar
9becad2eaf fix: clean up PR title formatting before publishing 2025-07-10 17:15:08 +05:30
Makonike
74df3f8bd5 fix(ai_handler): improve empty streaming response validation logic 2025-07-10 15:14:25 +08:00
Abhinav Kumar
4ab97d8969 fix: correct error handling in should_process_pr_logic to prevent processing on failure 2025-07-09 23:59:07 +05:30
Abhinav Kumar
6057812a20 refactor: improve pull request data extraction and error handling in should_process_pr_logic 2025-07-09 23:52:02 +05:30
Abhinav Kumar
598e2c731b refactor: enhance allow_only_specific_folders logic to check if all changed files are outside allowed folders 2025-07-09 23:44:02 +05:30
Abhinav Kumar
0742d8052f refactor: update comment for allow_only_specific_folders logic in PR processing 2025-07-09 23:39:34 +05:30
Abhinav Kumar
1713cded21 chore: allow_only_specific_folders logic in PR processing 2025-07-09 23:36:16 +05:30
Abhinav Kumar
e7268dd314 fix: error handling in PR processing logic 2025-07-09 16:45:42 +05:30
Abhinav Kumar
50c2578cfd fix: comments 2025-07-09 16:42:29 +05:30
Abhinav Kumar
5a56d11e16 fix: Add ignore logic for Bitbucket Server webhook 2025-07-09 16:37:58 +05:30
Makonike
31e25a5965 refactor(ai_handler): improve streaming response handling robustness 2025-07-09 15:39:15 +08:00
Makonike
85e1e2d4ee feat: add debug logging support for streaming models 2025-07-09 15:29:03 +08:00
Makonike
2d8bee0d6d feat: add validation for empty streaming responses in LiteLLM handler 2025-07-09 15:04:18 +08:00
Abhinav Kumar
e0d7083768 feat: refactor LITELLM.EXTRA_BODY processing into a dedicated method 2025-07-09 12:04:26 +05:30
Tal
dbf96ff749
Merge pull request #1927 from abhinav-1305/minor-fix
docs: improve installation for various providers
2025-07-09 08:50:21 +03:00
Tal
5f9eee2d12
Merge pull request #1924 from abhinav-1305/fix-span
fix: correct FAQ answer numbering for questions 6 and 7
2025-07-09 08:48:54 +03:00
Tal
d4c5ab7bf0
Merge pull request #1923 from abhinav-1305/fix-handling
fix: Correct resultsContainer handling
2025-07-09 08:46:42 +03:00
Tal
5ae6d71c37
Merge pull request #1922 from abhinav-1305/fix-bug
fix: Remove trailing comma in gerrit provider prepare_repo function
2025-07-09 08:41:21 +03:00
Tal
d30d077939
Merge pull request #1920 from abhinav-1305/fix-typo
fix: correct typo in configuration comments
2025-07-09 08:40:46 +03:00
Abhinav Kumar
aa18d532cf docs: improve installation for various providers 2025-07-08 18:01:37 +05:30
mrT23
92d36f6791
docs: fix link formatting for Smart Update section in index 2025-07-08 09:21:19 +03:00
Makonike
5e82d0a316 feat: add streaming support for openai/qwq-plus model 2025-07-08 11:51:30 +08:00
Abhinav Kumar
b7b198947c fix: correct FAQ answer numbering for questions 6 and 7 2025-07-08 02:16:48 +05:30
Abhinav Kumar
fb69313d87 fix: Improve error handling in resultsContainer 2025-07-08 02:05:02 +05:30
Abhinav Kumar
017db5b63c fix: Correct resultsContainer handling 2025-07-08 01:51:59 +05:30
Abhinav Kumar
3f632835c5 fix: Remove trailing comma in gerrit provider prepare_repo function 2025-07-07 21:51:35 +05:30
Abhinav Kumar
e2d71acb9d fix: remove comments 2025-07-07 21:27:35 +05:30
Abhinav Kumar
8127d52ab3 fix: security checks 2025-07-07 21:26:13 +05:30
Abhinav Kumar
6a55bbcd23 fix: prevent LITELLM.EXTRA_BODY from overriding existing parameters in LiteLLMAIHandler 2025-07-07 21:20:25 +05:30
Abhinav Kumar
12af211c13 feat: support OpenAI Flex Processing via [litellm] extra_body config 2025-07-07 21:14:45 +05:30
Abhinav Kumar
34594e5436 fix: correct typo in configuration comments 2025-07-07 20:11:10 +05:30
mrT23
17a90c536f
docs: add Claude-4 Opus evaluation section with strengths and weaknesses 2025-07-06 21:47:22 +03:00
ofir-frd
ef2e69dbf3
Hide outdated compression strategy 2025-07-06 16:03:30 +03:00
mrT23
38dc9a8fe5
docs: clarify behavior of Qodo Merge regarding original PR descriptions 2025-07-06 08:52:34 +03:00
Tal
c3f8ef939c
Merge pull request #1914 from abhinav-1305/fix/gitlab-webhook
apply repository settings before processing push commands in GitLab webhook
2025-07-05 09:08:57 +03:00
Tal
34cc434459
Update gitlab_webhook.py 2025-07-05 09:07:47 +03:00
Tal
a3d52f9cc7
Update pr_agent/servers/gitlab_webhook.py
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-07-05 09:05:23 +03:00
Tal
f56728fbca
Merge pull request #1913 from abhinav-1305/add-ask-tool
clarify that Fetching Ticket Context affects Ask tool
2025-07-05 09:03:30 +03:00
Tal
19ddf1b2e4
Merge pull request #1911 from abhinav-1305/diagram-marker
add support for PR sequence diagram in description markers
2025-07-05 08:58:44 +03:00
Abhinav Kumar
23ce79589c
Update pr_agent/settings/pr_description_prompts.toml
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-07-05 11:27:38 +05:30
ofir-frd
8cd82b5dbf
Merge pull request #1908 from qodo-ai/of/doc-updates
docs: update README organization and add Qodo Merge open source link
2025-07-03 13:12:17 +03:00
mrT23
dba6846a04
docs: add Chrome extension section to index and update mkdocs configuration 2025-07-03 11:46:12 +03:00
mrT23
317eb65cc2
s 2025-07-03 10:17:07 +03:00
mrT23
9817602ab5
docs: refine methodology section and update appendix with example results 2025-07-03 10:12:35 +03:00
Abhinav Kumar
8a7b37ab4c Revert "clarify that Fetching Ticket Context affects Ask tool"
This reverts commit 822a253eb5.
2025-07-02 19:13:01 +05:30
Abhinav Kumar
3b071ccb4e apply repository settings before processing push commands in GitLab webhook 2025-07-02 19:11:53 +05:30
Abhinav Kumar
822a253eb5 clarify that Fetching Ticket Context affects Ask tool 2025-07-02 18:49:58 +05:30
Abhinav Kumar
aeb1bd8dbc fix suggestions 2025-07-02 18:11:19 +05:30
Abhinav Kumar
df8290a290 add support for PR sequence diagram in description markers 2025-07-02 18:07:54 +05:30
mrT23
9e20373cb0
docs: add diamond emoji to enable_large_pr_handling description in describe.md 2025-07-02 08:36:56 +03:00
Tal
6dc38e5bca
Merge pull request #1909 from qodo-ai/tr/dedent_tabs
fix: improve indentation handling in code suggestions
2025-07-01 17:25:24 +03:00
mrT23
f7efa2c7c7
fix: improve indentation handling in code suggestions 2025-07-01 17:10:01 +03:00
ofir-frd
d77d2f86da docs: fix capitalization in Features section link 2025-07-01 15:54:37 +03:00
ofir-frd
2276caba39 docs: add FREE for Open Source link to Qodo Merge section 2025-07-01 15:49:28 +03:00
ofir-frd
12d3d6cc0b docs: move "Why Use PR-Agent?" section earlier in README 2025-07-01 15:40:23 +03:00
ofir-frd
630712e24c docs: update section headings and improve feature descriptions 2025-07-01 15:37:13 +03:00
mrT23
e1a112d26e
docs: update last updated date and correct typo in README 2025-07-01 11:48:01 +03:00
mrT23
1b46d64d71
docs: update Qodo Merge feedback descriptions in README and index 2025-07-01 11:39:58 +03:00
Tal
38eda2f7b6
Merge pull request #1907 from qodo-ai/tr/qm_post_commit
docs: update sequence diagram support section and recent updates
2025-07-01 11:33:00 +03:00
Tal
53b9c8ec97
Update docs/docs/recent_updates/index.md
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-07-01 11:32:53 +03:00
mrT23
7e8e95b748
docs: correct typo in README and update Mermaid diagram link in index 2025-07-01 11:31:08 +03:00
mrT23
7f51661e64
docs: update sequence diagram support section and recent updates 2025-07-01 11:28:33 +03:00
Tal
70023d2c4f
Merge pull request #1905 from qodo-ai/es/update_docs_incremental_improve
Update docs that Gitlab also supports Incremental Update
2025-06-30 17:30:20 +03:00
Eyal Sharon
c5d34f5ad5 Update docs that Gitlab also supports Incremental Update 2025-06-30 17:07:14 +03:00
Tal
8d3e51c205
Merge pull request #1904 from qodo-ai/tr/suggestions_depth
Tr/suggestions depth
2025-06-29 11:26:28 +03:00
mrT23
b213753420
ד 2025-06-29 11:26:07 +03:00
mrT23
2eb8019325
docs: clarify that PR diagram is enabled by default in describe tool 2025-06-29 11:24:31 +03:00
mrT23
9115cb7d31
docs: add link to generated_code_ignore.toml file 2025-06-29 11:09:37 +03:00
Tal
62adad8f12
Merge pull request #1903 from qodo-ai/tr/suggestions_depth
docs: add suggestions_depth configuration parameter documentation
2025-06-29 10:50:41 +03:00
mrT23
56f7ae0b46
docs: add suggestions_depth configuration parameter documentation 2025-06-29 10:37:12 +03:00
Tal
446c1fb49a
Merge pull request #1898 from isExample/feat/ignore-language-framework
feat: support ignoring auto-generated files by language/framework
2025-06-29 10:19:37 +03:00
isExample
7d50625bd6 test: skip filtering when ignore_language_framework is misconfigured 2025-06-29 02:18:29 +09:00
isExample
bd9ddc8b86 fix: avoid crash when ignore_language_framework is not a list 2025-06-29 02:06:40 +09:00
Tal
dd4fe4dcb4
Merge pull request #1897 from qodo-ai/tr/pr_diagram
feat: enable PR diagram by default and improve mermaid diagram genera…
2025-06-27 11:46:58 +03:00
Tal
1c174f263f
Merge pull request #1892 from dcieslak19973/pr-agent-1886-add-bedrock-llama4-20250622
Add bedrock Llama 4 Scout/Maverick
2025-06-27 11:16:49 +03:00
Tal
d860e17b3b
Merge pull request #1891 from jmsb02/test/add_docs_trigger
test: auto-trigger /add_docs on PR opened events
2025-06-26 17:38:34 +03:00
Tal
f83970bc6b
Merge pull request #1895 from rppavan/main
gemini 2.5 flash/pro GA models
2025-06-26 12:28:20 +03:00
isExample
87a245bf9c fix: support root-level matching for '**/' globs
- generate an additional regex to match root-level files alongside '**/' patterns.
- ensure files in the repo root are correctly excluded from analysis.
2025-06-26 15:26:12 +09:00
isExample
2d1afc634e docs: ignore_language_framework property 2025-06-26 13:43:18 +09:00
isExample
e4f477dae0 test: add filtering test for auto-generated files 2025-06-26 13:32:27 +09:00
isExample
8e210f8ea0 chore: update generated code sources 2025-06-26 13:29:59 +09:00
Tal
9c87056263
Merge pull request #1890 from abishlal/feature/support-tickets-context-in-azdo
Enhance Azure DevOps Integration with Work Item Ticket Retrieval and Comment Thread Updates
2025-06-25 20:40:22 +03:00
abishlal
3251f19a19 fix: change comment thread status to closed when publishing comments
Signed-off-by: abishlal <abishlalns03@gmail.com>
2025-06-25 20:59:34 +05:30
abishlal
299a2c89d1 feat: add tags extraction from work item fields in Azure DevOps provider
Signed-off-by: abishlal <abishlalns03@gmail.com>
2025-06-25 20:57:56 +05:30
isExample
c7241ca093 feat: support ignore_language_framework via generated_code_ignore.toml
- [generated_code] table defines default glob patterns for code-generation tools
- merge generated_code globs into ignore logic
2025-06-25 23:39:14 +09:00
isExample
1a00e61239 feat: add configuration property 'ignore_language_framework' 2025-06-25 23:17:42 +09:00
Tal
f166e7f497
Merge pull request #1894 from qodo-ai/es/improve_response_ai_search
More informative error message in case search returned an error
2025-06-24 20:17:52 +03:00
Eyal Sharon
8dc08e4596 Modify search answers according to feedback. 2025-06-24 18:39:41 +03:00
mrT23
ead2c9273f
feat: enable PR diagram by default and improve mermaid diagram generation 2025-06-24 17:28:23 +03:00
Eyal Sharon
5062543325 More code suggestion fixes 2025-06-24 13:02:12 +03:00
Eyal Sharon
35e865bfb6 Implement suggestions 2025-06-24 12:57:57 +03:00
Eyal Sharon
abb576c84f - More informative error message in case search returned an error
- Report no results found in case of an empty response
2025-06-24 12:34:32 +03:00
Pavan Parwatikar
2d61ff7b88
gemini 2.5 slash/pro GA models
Adding stable/GA models of gemini-2.5 models.
Added gemini-2.5-pro and gemini-2.5-flash both to vertex_ai and gemini configs
2025-06-24 11:06:01 +05:30
mrT23
e75b863f3b
docs: clarify PR feedback quota wording and formatting 2025-06-23 11:18:09 +03:00
dcieslak19973
849cb2ea5a Change token limit to 128k for Bedrock Llama 2025-06-22 14:36:41 -05:00
mrT23
ab80677e3a
Merge remote-tracking branch 'origin/main' 2025-06-22 21:16:00 +03:00
mrT23
bd7017d630
bitbucket json 2025-06-22 21:15:45 +03:00
Tal
6e2bc01294
Merge pull request #1884 from alessio-locatelli/handle_500_Internal_Server_Error
feat: wrap the command's entry point to catch all errors
2025-06-22 21:07:06 +03:00
dcieslak19973
22c16f586b Add bedrock Llama 4 Scout/Maverick 2025-06-22 11:05:08 -05:00
jaexxin
a42e3331d8 test: auto-trigger /add_docs on PR opened events 2025-06-23 00:06:18 +09:00
mrT23
e14834c84e
docs: update PR benchmark results section header 2025-06-22 10:17:51 +03:00
mrT23
915a1c563b
docs: add Codex-mini model evaluation to PR benchmark results 2025-06-22 09:53:26 +03:00
Alessio
bc99cf83dd
feat: add a bare except to catch all errors 2025-06-21 15:34:02 +03:00
Alessio
d00cbd4da7
Revert "fix: do not fail the CLI when GitLab API return 5xx code"
This reverts commit 68f78e1a30.
2025-06-21 15:28:27 +03:00
Alessio
721ff18a63
Revert "fix: wrap _handle_request to handle 5xx responses"
This reverts commit 1a003fe4d3.
2025-06-21 15:27:41 +03:00
Alessio
1a003fe4d3
fix: wrap _handle_request to handle 5xx responses 2025-06-21 15:26:48 +03:00
Alessio
68f78e1a30
fix: do not fail the CLI when GitLab API return 5xx code 2025-06-21 15:26:48 +03:00
abishlal
7759d1d3fc fix: remove redundant state and labels fields from ticket data extraction
Signed-off-by: abishlal <abishlalns03@gmail.com>
2025-06-21 17:31:24 +05:30
abishlal
738f9856a4 feat: add WorkItemTrackingClient to Azure DevOps provider and update client return type
Signed-off-by: abishlal <abishlalns03@gmail.com>
2025-06-21 17:28:59 +05:30
abishlal
fbce8cd2f5 fix: update comment thread status to active when publishing comments
Signed-off-by: abishlal <abishlalns03@gmail.com>
2025-06-21 17:22:24 +05:30
abishlal
ea63c8e63a fix: remove redundant line for BasicAuthentication in Azure DevOps provider
Signed-off-by: abishlal <abishlalns03@gmail.com>
2025-06-21 17:22:04 +05:30
abishlal
d8fea6afc4 feat: enhance Azure DevOps integration by adding work item as a ticket retrieval methods - Supporting ticket context for Azure DevOps
Signed-off-by: abishlal <abishlalns03@gmail.com>
2025-06-21 17:20:31 +05:30
mrT23
ff16e1cd26
build: add wheel to build requirements and update license configuration 2025-06-21 13:12:27 +03:00
mrT23
9b5ae1a322
chore: bump version to 0.3.0 and update license to AGPL-3.0 2025-06-21 12:52:45 +03:00
mrT23
8b8464163d
docs: update recent updates with v0.30 release and best practices hierarchy 2025-06-21 12:46:03 +03:00
mrT23
eb4cdbb115
fix: remove branch parameter from get_content_of_file call in bitbucket server provider 2025-06-21 12:34:00 +03:00
Tal
7f54b14b4d
Merge pull request #1874 from yoohya/feat/support-gitlab-lambda-webhooks
feat: Support GitLab webhooks in Lambda functions
2025-06-21 09:36:16 +03:00
mrT23
938ab9a139
fix: remove redundant word 'possible' from security concerns field description 2025-06-21 09:31:55 +03:00
Tal
75bde39b03
Merge pull request #1888 from qodo-ai/tr/simplify_toDo
refactor: extract TODO formatting functions and simplify data structure
2025-06-21 09:30:18 +03:00
Tal
ee36c0208c
Update pr_agent/settings/pr_reviewer_prompts.toml
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-06-21 09:23:11 +03:00
mrT23
7c02678ba5
refactor: extract TODO formatting functions and simplify data structure 2025-06-21 09:20:43 +03:00
yoohya
235df737d0 docs: update Docker image tags 2025-06-20 23:22:13 +09:00
mrT23
37ef4bad8f
docs: add bullet point formatting instruction to PR description prompts 2025-06-20 16:27:43 +03:00
yoohya
ab7e0d9141 refactor: split serverless handlers into dedicated GitHub and GitLab Lambda entrypoints 2025-06-20 04:18:42 +09:00
Tal
7db4d97fc2
Merge pull request #1880 from alessio-locatelli/fix_yes_no
fix: typos, grammar
2025-06-18 20:22:02 +03:00
Tal
3e1cf2deed
Merge pull request #1869 from PullPullers/feat/review-todo-section
feat: surface TODO comments in review tool
2025-06-18 20:15:43 +03:00
dst03106
4a00854b15 fix: exclude TODO prompt if require_todo_scan is false 2025-06-18 18:50:11 +09:00
Judy
d4a52ffc93 refactor: clarify TODO field description and simplify 'No' return 2025-06-18 18:45:49 +09:00
dst03106
c4ccfd865d fix: shorten todo summary prompt for balance
related comment: https://github.com/qodo-ai/pr-agent/pull/1869#discussion_r2151443243
2025-06-18 18:45:49 +09:00
dst03106
38f10e10fa style: remove entry info from the todo section header
related comment: https://github.com/qodo-ai/pr-agent/pull/1869#issuecomment-2979088345
2025-06-18 18:45:49 +09:00
mrT23
2cfe52e294
refactor: replace DynaBox import with string type checking 2025-06-18 10:04:51 +03:00
Tal
1c34450645
Merge pull request #1883 from letzya/patch-1
Update github_action_runner.py
2025-06-18 09:45:49 +03:00
Judy
8325a8aeb1 feat: improve TODO sections closed by default 2025-06-18 13:48:51 +09:00
Judy
081310b943 style: refine layout of TODO section (add <br><br>) 2025-06-18 13:08:05 +09:00
Judy
c75fb2137b style: replace todo emoji with 📝 2025-06-18 13:04:14 +09:00
Judy
6de821719f fix: update default value of require_todo_scan from true to false in docs 2025-06-18 12:52:26 +09:00
Yaara
4662f65146
Update github_action_runner.py
9789e5d701/pr_agent/agent/pr_agent.py (L84)
2025-06-17 19:04:03 +01:00
mrT23
9789e5d701
docs: clarify auto-approval ticket compliance applies to review tool path only 2025-06-17 16:31:46 +03:00
Alessio
5b7f8a4bb6
fix: grammar 2025-06-17 09:52:34 +03:00
Alessio
608065f2ad
fix: typos 2025-06-17 09:26:57 +03:00
Alessio
7ee4c4aad1
fix: yes/no spelling 2025-06-17 09:13:12 +03:00
Tal
1c5f203b52
Merge pull request #1871 from smallfish06/main
Add language-specific instructions to extra instructions based on user settings
2025-06-17 08:34:21 +03:00
Tal
d4e8f618ce
Update pr_agent/servers/github_action_runner.py
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-06-17 08:34:07 +03:00
Tal
b7b4d00f57
Merge pull request #1868 from NicoFgrx/main
feat: support self-signed gitea cert
2025-06-17 08:21:40 +03:00
mrT23
76aa66b534
docs: add blank line before GitHub Enterprise Server installation note 2025-06-16 20:11:31 +03:00
mrT23
9a2bfb4d64
docs: clarify GitHub Enterprise Server installation requirements for Qodo Merge 2025-06-16 20:08:27 +03:00
seokcheon.ju
f39e0a13f4 Revert linted line breaks 2025-06-16 10:56:24 +09:00
seokcheon.ju
5d721376fe Move language-specific instructions to github_action_runner.py 2025-06-16 10:53:38 +09:00
yoohya
1963b80b46 docs: fix indentation in GitLab installation guide 2025-06-16 03:41:17 +09:00
mrT23
678bc9d911
docs: add Go language support to static code analysis and analyze tool documentation 2025-06-15 21:31:08 +03:00
yoohya
a5c61e33d3 docs: fix indentation in GitLab installation guide 2025-06-16 02:10:15 +09:00
yoohya
99904601ce feat: Support GitLab webhooks in Lambda functions 2025-06-16 01:22:01 +09:00
mrT23
cbea0380ec
docs: reorder auto approval in core abilities navigation and comment out compression strategy 2025-06-15 09:28:00 +03:00
mrT23
4e466c07f9
docs: standardize core abilities documentation headers and platform support format 2025-06-15 09:17:11 +03:00
Tal
00daae1405
Merge pull request #1873 from qodo-ai/tr/new_benchmark23
docs: refactor auto-approval documentation into dedicated core abilit…
2025-06-15 09:04:58 +03:00
Tal
10350ae58e
Update docs/docs/core-abilities/auto_approval.md
Co-authored-by: qodo-merge-for-open-source[bot] <189517486+qodo-merge-for-open-source[bot]@users.noreply.github.com>
2025-06-15 09:04:36 +03:00
mrT23
cf31e7c974
docs: refactor auto-approval documentation into dedicated core abilities section 2025-06-15 09:02:04 +03:00
Tal
96150495f8
Merge pull request #1872 from qodo-ai/tr/new_benchmark23
tickets docs
2025-06-15 08:20:16 +03:00
mrT23
25b07441a9
unrelated 2025-06-13 20:44:30 +03:00
mrT23
ce062adf39
docs: enhance ticket compliance documentation with new label and configuration options 2025-06-13 20:41:14 +03:00
nicolas
4bac78b1b9
docs: add gitea self signed configuration 2025-06-13 19:16:13 +02:00
Tal
de8913e905
Merge pull request #1859 from alessio-locatelli/respect_publish_output_no_suggestions_by_reviewer
feat: support 'publish_output_no_suggestions' by 'pr_reviewer'
2025-06-13 19:42:32 +03:00
seokcheon.ju
9b19935f47
Add language-specific instructions to extra instructions based on user settings 2025-06-13 19:42:14 +09:00
Alessio
3b42b0e152
refactor: simplify IF/ELSE block 2025-06-12 18:15:46 +03:00
mrT23
eff45e832c
docs: clarify JIRA ticket reference formats and organization identifier usage 2025-06-12 17:57:58 +03:00
Alessio
94253853cd
refactor: reuse IF condition in _should_publish_review 2025-06-12 17:54:13 +03:00
Alessio
e8770beba1
fix: correct IF/ELSE block 2025-06-12 17:35:33 +03:00
Alessio
8d2e92fe83
feat: support 'publish_output_no_suggestions' by 'pr_reviewer'
The tool reuses the existing variable name.
The change is non-breaking because by default it keeps the old behavior.
2025-06-12 17:35:33 +03:00
Tal
9c17a3902b
Merge pull request #1856 from cesdperez/feat/gitlab-changelogmd-support
Add GitLab support for CHANGELOG.md
2025-06-12 17:04:03 +03:00
nicolas
3faab424a4
feat: support self-signed gitea cert 2025-06-12 16:01:26 +02:00
Judy
7a0c350760 feat: Change default TODO flag value from true to false 2025-06-12 18:14:19 +09:00
Tal
3c572306cf
Merge pull request #1866 from qodo-ai/tr/new_benchmark23
docs: update PR benchmark to ranking-based methodology with expanded …
2025-06-12 10:24:25 +03:00
mrT23
3c1f47b4e9
docs: update PR benchmark to ranking-based methodology with expanded model results 2025-06-12 10:22:23 +03:00
mrT23
39067a07ef
docs: update default models to Claude Sonnet 4 and refresh date to June 2025 2025-06-11 19:27:49 +03:00
César Pérez
d812b7ed7e Fixed comment 5 2025-06-11 11:26:49 +02:00
César Pérez
4fa65fec93 Merge branch 'main' into feat/gitlab-changelogmd-support 2025-06-11 11:21:34 +02:00
mrT23
7f02ba5c8f
Merge remote-tracking branch 'origin/main' 2025-06-11 10:43:43 +03:00
mrT23
d4c2e2f483
docs: clarify PR auto-blocking functionality in review tool documentation 2025-06-11 10:43:36 +03:00
Judy
ca05b798ca fix: display no TODO comments section 2025-06-10 22:56:28 +09:00
Judy
b0711929c3
Merge pull request #4 from PullPullers/feat/toggle-open-based-on-line-count-for-todo-section
todo section의 내용이 10줄 이하이면 기본적으로 펼쳐져 있도록 수정
2025-06-10 21:41:30 +09:00
dst03106
f09e1edb13 refactor: remove count info from todo summary 2025-06-09 22:26:37 +09:00
dst03106
9230be86e9 refactor: handle singular/plural forms of entry 2025-06-09 21:40:33 +09:00
dst03106
6c05c6685e fix: use | for multiline in YAML instead of \n for todo content prompts 2025-06-09 20:54:14 +09:00
César Pérez
3904743e85 Fixed comment 4 2025-06-07 21:13:16 +02:00
César Pérez
fe9afb826d Fixed comment 3 2025-06-07 21:09:38 +02:00
César Pérez
a550c17466 Fixed comment 2 2025-06-07 21:06:12 +02:00
César Pérez
04cb8af65d Fixed comment 1 2025-06-07 21:02:56 +02:00
César Pérez
122248ef9c Add GitLab support for CHANGELOG.md 2025-06-07 20:48:33 +02:00
dst03106
277c6abf0f refactor: standardizes todo_sections and todos_summary formatting 2025-06-07 08:42:28 +09:00
dst03106
829417ce6e feat: toggle open or closed based on line count for todo section 2025-06-07 08:42:19 +09:00
ofir-frd
c635887949 docs: remove none-existing webpage and update documentation admonition styles to allow collapsible format 2025-06-06 15:40:47 +03:00
ofir-frd
4fdbcdf86a docs: add Gitea support to feature compatibility table 2025-06-06 15:25:34 +03:00
Tal
4c006eba47
Merge pull request #1851 from kebhr/feature/support_cross_region_for_apac
chore: add APAC region endpoints for Bedrock Anthropic Claude models
2025-06-05 20:52:27 +03:00
Tal
3b84203d4c
Merge pull request #1852 from SCREEN88/fix/gitea-get-file-content-error
Fix gitea get file content error
2025-06-05 20:51:13 +03:00
Tal
ee4b847da0
Merge pull request #1853 from PeterDaveHelloKitchen/Gemini-2.5-Pro-Preview-06-05
Add Google Gemini 2.5 Pro Preview 06-05
2025-06-05 20:48:38 +03:00
Peter Dave Hello
fa435cfc1e Add Google Gemini 2.5 Pro Preview 06-05
Reference:
- https://blog.google/products/gemini/gemini-2-5-pro-latest-preview
2025-06-06 01:17:27 +08:00
dst03106
dc9e9af9f8 refactor: rename file line to file reference 2025-06-05 22:26:03 +09:00
Yunhui Chae
dc6460361b
Merge pull request #3 from PullPullers/feedback/review-todo-section
Feedback/review todo section
2025-06-05 22:15:18 +09:00
y.marinov
37781c59e7 Add forgejo statuses check in gitea get_diff_files method 2025-06-05 16:02:55 +03:00
y.marinov
865798ef3f Fix wrong parameters for gitea get_file_content method 2025-06-05 16:01:18 +03:00
kebhr
c190b93c4f chore: add APAC region endpoints for Bedrock Anthropic Claude models 2025-06-05 19:37:46 +09:00
Tal
1bbc673588
Merge pull request #1850 from qodo-ai/hl/update_bb_app_pp
Update atlassian-connect.json
2025-06-05 10:45:47 +03:00
Hussam Lawen
ac72d6f6c2
Update atlassian-connect.json 2025-06-05 10:37:51 +03:00
ofir-frd
4977db5578 docs: remove duplicate note about /add_docs not being triggered automatically 2025-06-05 07:59:35 +03:00
Hussam Lawen
a2500633e2
Merge pull request #1845 from qodo-ai/hl/multi_jira_server_docs
Hl/multi jira server docs
2025-06-04 21:34:00 +03:00
dst03106
d8fb24c971 refactor: remove unused HTML formatting function from utils 2025-06-04 20:18:46 +09:00
dst03106
3f9cade14d feat: add todos_summary to review output in markdown conversion 2025-06-04 20:18:46 +09:00
mrT23
4a7757be3f
docs: convert best practices label section to collapsible info box format 2025-06-04 08:40:37 +03:00
mrT23
2c976fef72
docs: convert info box to standard heading for hierarchical best practices setup 2025-06-04 08:32:12 +03:00
ofir-frd
2a84c841da
Merge pull request #1844 from qodo-ai/of/best-practices-hierarchy
docs: add global hierarchical best practices system
2025-06-04 08:14:46 +03:00
Hussam Lawen
a9d6a615fd
Update fetching_ticket_context.md 2025-06-03 15:11:00 +03:00
Hussam Lawen
e561f0358c
Update fetching_ticket_context.md 2025-06-03 15:08:09 +03:00
Hussam Lawen
9e238dd991
Update fetching_ticket_context.md 2025-06-03 14:57:46 +03:00
ofir-frd
5917903a5a docs: implement hierarchical best practices system with detailed documentation 2025-06-03 13:46:06 +03:00
Tal
7d21c84c93
Merge pull request #1832 from qodo-ai/tr/trial_usage
docs: update trial usage information to reflect new quota-based model
2025-06-03 08:45:44 +03:00
mrT23
50e331476d
docs: update recent updates page to reflect the launch of simplified free tier 2025-06-03 08:45:10 +03:00
mrT23
48ab5a4018
docs: add information about Qodo Merge free tier to README 2025-06-03 08:41:54 +03:00
mrT23
be20c9ab3b
Merge remote-tracking branch 'origin/main' into tr/trial_usage 2025-06-03 08:39:15 +03:00
mrT23
ecb39856ee
fix tests 2025-06-02 18:04:44 +03:00
Tal
b6787fa6de
Merge pull request #1839 from yamoyamoto/gucci/feat/aws-secrets-manager-integration
feat: add AWS Secrets Manager Integration for Lambda deployments
2025-06-02 16:48:25 +03:00
Tomoya Kawaguchi
c520a8658f
chore: update secret more robustly
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-06-02 13:48:47 +09:00
Tomoya Kawaguchi
e2867f3a19
chore: get settings more safer
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-06-02 13:48:16 +09:00
mrT23
5856a9e548
docs: refine descriptions in recent updates page for clarity and consistency 2025-06-01 12:24:25 +03:00
mrT23
8b563b0143
Merge remote-tracking branch 'origin/main' 2025-06-01 12:20:31 +03:00
mrT23
9b06f46563
docs: update recent updates page with new features and roadmap changes 2025-06-01 12:20:21 +03:00
ofir-frd
75d24791a4 docs: improve section headings in README for better clarity 2025-06-01 11:48:30 +03:00
mrT23
0dba39566f
docs: fix indentation in Linear base URL note in ticket context documentation 2025-06-01 11:40:17 +03:00
Tal
d2caf0352c
Merge pull request #1840 from qodo-ai/of/semi-alphabetic-tool-org
Reorganize and Enhance Tools Documentation with Improved Navigation and Consistency
2025-06-01 11:15:48 +03:00
Tal
8be2e43a0f
Update README.md
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-06-01 11:15:42 +03:00
ofir-frd
27479d87b7 docs: standardize capitalization in README table of contents and headings 2025-06-01 10:09:37 +03:00
ofir-frd
76172bd3ec docs: add table of contents to README for improved navigation 2025-06-01 09:59:47 +03:00
Tal
4893552f20
Merge pull request #1838 from qodo-ai/hl/linear_docs
docs: add Linear integration to ticket context fetching documentation
2025-06-01 08:59:30 +03:00
dst03106
520faa7f2c feat: include item count in TODO sections summary 2025-06-01 00:36:25 +09:00
ofir-frd
d5080a35f6 docs: update Discord invitation link in README.md 2025-05-30 15:39:24 +03:00
ofir-frd
cc06da3b7f docs: update README with improved navigation, Discord link, and table formatting 2025-05-30 15:32:01 +03:00
ofir-frd
ac8aa9c2ef docs: reorganize tools list with consistent formatting and command names in README 2025-05-30 14:36:28 +03:00
ofir-frd
9c1f5ad497 docs: rename "Test" to "Generate Tests" and improve tool name consistency in README 2025-05-30 14:31:46 +03:00
ofir-frd
8baf6dba93 docs: reorganize core abilities in alphabetical order in README.md 2025-05-30 14:27:04 +03:00
ofir-frd
403efcae22 docs: reorganize tools list in alphabetical order in README.md 2025-05-30 14:16:09 +03:00
ofir-frd
d857132d1d docs: add Similar Code tool to documentation index and navigation 2025-05-30 14:04:45 +03:00
ofir-frd
e7f85cf858 docs: reorganize tools documentation in alphabetical order and fix inconsistencies 2025-05-30 13:58:48 +03:00
ofir-frd
c57f8aff9b docs: add Help Docs to the Tools list and reorganize tools documentation in alphabetical order 2025-05-30 13:35:58 +03:00
Hussam.lawen
2e75fa31bd
docs: add hyperlinks to ticket system integrations in fetching_ticket_context.md 2025-05-29 08:29:41 +03:00
tomoya-kawaguchi
cc1b1871d0 fix: raise Exception when arn does not exist 2025-05-29 14:06:21 +09:00
tomoya-kawaguchi
984d627300 fix: rm invalid error handling 2025-05-29 14:03:38 +09:00
tomoya-kawaguchi
d1e8d267f6 docs: detailed description 2025-05-29 13:44:33 +09:00
tomoya-kawaguchi
32b1fb91c3 chore: add comments 2025-05-29 13:17:31 +09:00
tomoya-kawaguchi
b932b96e0c docs: rm detailed document for AWS Secrets Manager 2025-05-29 13:10:18 +09:00
tomoya-kawaguchi
53e232d7f4 docs: update document for Secrets Manager 2025-05-29 13:09:58 +09:00
tomoya-kawaguchi
5e535a8868 chore: add blank 2025-05-29 13:05:40 +09:00
tomoya-kawaguchi
cd96f6b911 chore: organize comments 2025-05-29 13:03:21 +09:00
tomoya-kawaguchi
1955157e9a feat: add AWS Secrets Manager Integration 2025-05-29 12:42:05 +09:00
Hussam.lawen
8143f4b35b
docs: add Linear integration to ticket context fetching documentation 2025-05-28 22:23:24 +03:00
mrT23
a17100e512
docs: improve clarity and formatting of review tool labels documentation 2025-05-28 19:42:27 +03:00
Tal
821227542a
Merge pull request #1837 from qodo-ai/tr/docs17
docs: enhance review.md with ticket compliance labels and merge block…
2025-05-28 19:37:33 +03:00
Tal
e9ce3ae869
Update docs/docs/tools/review.md
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-05-28 19:37:23 +03:00
mrT23
b4cef661e6
docs: enhance review.md with ticket compliance labels and merge blocking guidance 2025-05-28 19:35:31 +03:00
ofir-frd
2b614330ec
docs: move Installation Metrics feature from Future Plans to Recent Updates 2025-05-28 18:52:09 +03:00
Judy
8c7c087931 feat: TODO multi-line 2025-05-28 21:33:28 +09:00
ofir-frd
b802b162d1
Merge pull request #1835 from qodo-ai/of/chat-to-implement
docs: add dedicated "Chat on code suggestions" core ability
2025-05-28 11:07:50 +03:00
ofir-frd
fd1a27c2ac docs: add dedicated "Chat on code suggestions" core ability page and update related documentation
- Introduced a new core abilities page detailing the "Chat on code suggestions" feature, including setup, activation, and usage patterns.
- Removed the corresponding section from the improve tool documentation to avoid duplication.
- Updated the core abilities index and mkdocs navigation to include the new page.
- Improved formatting in the implement tool documentation for clarity and consistency.
2025-05-28 09:12:13 +03:00
mrT23
95e4604abe
test: comment out GiteaProvider unit tests and update token key for compatibility 2025-05-28 08:34:59 +03:00
Tal
d5f77560e3
Merge pull request #1811 from loolootech/feature/gitea-implement
[Feature] - Gitea implement
2025-05-28 08:22:16 +03:00
Tal
6f27fc9271
Merge pull request #1828 from Akileox/refactor-langchain-handler
Refactor: Enhance AI Handler Robustness, Interface Compliance, and Asynchronous Operations (Resolves #1784)
2025-05-28 08:20:04 +03:00
Tal
ee516ed764
Merge pull request #1831 from isExample/fix/tools-describe-docs
docs: correct parameter name typo and update description
2025-05-28 08:15:22 +03:00
Tal
9f9548395f
Merge pull request #1829 from dst03106/test/add-test-for-convert-to-markdown
test: add tests for converting to markdown
2025-05-28 08:14:41 +03:00
mrT23
daf6c25f9a
fix: correct broken security vulnerability link in review.md documentation 2025-05-27 18:50:43 +03:00
Judy
53b913a4cb refactor: add TypedDict and type hints to todo item formatter 2025-05-27 17:52:36 +09:00
mrT23
c6d6e08618
Update model references to include Claude 4 Sonnet, o4-mini and Gemini-2.5-Pro 2025-05-27 11:09:44 +03:00
Tal
5abc4028c9
Update docs/docs/overview/pr_agent_pro.md
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-05-27 11:07:27 +03:00
Tal
a540cd24e6
Update docs/docs/overview/pr_agent_pro.md
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-05-27 11:07:04 +03:00
mrT23
498e5ff0a7
docs: update trial usage information to reflect new quota-based model 2025-05-27 11:04:19 +03:00
Judy
7d38814cae refactor: Change error messsage 'print' -> 'get_logger' 2025-05-27 16:51:38 +09:00
Judy
08440d8ebd feat: Add <details> to TODO sections 2025-05-27 16:19:19 +09:00
Judy
bab8ee9633 modify: ToDo -> TODO 2025-05-27 16:08:33 +09:00
isExample
495ac565b0 docs: correct parameter name typo and update description 2025-05-27 12:46:26 +09:00
mrT23
82c88a1cf7
fix: improve formatting and organization of review.md documentation 2025-05-26 16:31:30 +03:00
mrT23
3d5509b986
Merge remote-tracking branch 'origin/main' 2025-05-26 15:14:00 +03:00
mrT23
86102abf8e
fix: improve formatting of add_diagram parameter documentation in describe.md 2025-05-26 15:13:50 +03:00
dst03106
df6b00aa36 test: modify test data to support multiple sub-PR themes with separate titles and relevant files 2025-05-26 16:15:16 +09:00
dst03106
4baf52292d test: add tests for converting to markdown 2025-05-26 15:59:05 +09:00
Akileo
e8ace9fcf9 change type check and remove useless sync 2025-05-26 14:52:45 +09:00
Akileo
3ec66e6aec Change test_langchain.py 2025-05-26 14:19:46 +09:00
Akileo
80b535f41a Change test_langchain.py unittest to e2e 2025-05-26 14:15:53 +09:00
Tal
805734376e
Merge pull request #1825 from pr-agent-group-2/feature/fix_json_escape_char-test
Add unit tests for fix_json_escape_char function
2025-05-26 07:49:39 +03:00
Tal
a128db8393
Merge pull request #1822 from PeterDaveHelloKitchen/Gemini-2.5-Flash
Complete Gemini 2.5 Flash model info
2025-05-26 07:48:33 +03:00
Tal
9cf62e8220
Merge pull request #1819 from pr-agent-group-2/feature/wonjongin-test_get_max_tokens
Feature/test get max tokens
2025-05-26 07:48:17 +03:00
Tal
73cf69889a
Merge pull request #1818 from pr-agent-group-2/feature/wonjongin-test_language_handler
fix(test_language_handler): Add edge case for files with unknown extensions
2025-05-26 07:45:11 +03:00
Pinyoo Thotaboot
b18a509120 Use current 2025-05-26 11:44:39 +07:00
Pinyoo Thotaboot
6063bf5978 Check is tempolary before remove it 2025-05-26 11:42:09 +07:00
Pinyoo Thotaboot
5d105c64d2 Rename & Return comment object after published 2025-05-26 11:40:29 +07:00
Pinyoo Thotaboot
f06ee951d7 Change raise runtime error 2025-05-26 11:36:49 +07:00
Pinyoo Thotaboot
b264f42e3d Fixed handle verify signature when has failed 2025-05-26 11:31:40 +07:00
Pinyoo Thotaboot
a975b32376 Get empty content when exception 2025-05-26 11:26:16 +07:00
Pinyoo Thotaboot
5e9c56b96c Remove the unnecessary flag '--pr_description.final_update_message=false' 2025-05-26 11:05:58 +07:00
Pinyoo Thotaboot
f78762cf2e Change the default value of is 2025-05-26 11:04:11 +07:00
Pinyoo Thotaboot
4a019ba7c4 Merge branch 'main' of github.com:qodo-ai/pr-agent into feature/gitea-implement 2025-05-26 10:59:19 +07:00
mrT23
16d980ec76
fix: update Mermaid diagram instructions for clarity and consistency 2025-05-25 15:38:08 +03:00
Tal
68c0fd7e3a
Merge pull request #1827 from qodo-ai/tr/changes_diagram_final_touches
fix: ensure proper formatting of changes_diagram in PR description ou…
2025-05-25 15:00:23 +03:00
mrT23
2eeb9b0411
fix: improve Mermaid diagram formatting and instructions in PR description template 2025-05-25 14:59:18 +03:00
mrT23
f3cb4e8384
fix: ensure proper formatting of changes_diagram in PR description output 2025-05-25 14:32:12 +03:00
Tal
946657a6d1
Merge pull request #1824 from OSSCA-2025-Egg-Benedict/feature/sequence-diagram
Improve/describe tool documentation and make add_diagram feature opt-in by default
2025-05-25 13:44:53 +03:00
chilln
d2194c7ed9 docs:rename parameter ('add_diagram' -> 'enable_pr_diagram') 2025-05-25 18:39:39 +09:00
chilln
d5dead5c7f refactor: moved diagram logic to 'changes_diagram' in PRDescription and updated prompt for clarity 2025-05-25 18:37:28 +09:00
chilln
6aac41a0df refactor:rename to 2025-05-25 18:27:03 +09:00
Tal
2453508023
Merge pull request #1805 from group-3-sPRinter/improve/token_handler
Refactor count_tokens method structure in token_handler.py for better extensibility
2025-05-25 12:11:41 +03:00
kkan9ma
84f2f4fe3d Fix: use ModelTypeValidator static methods directly 2025-05-25 18:00:38 +09:00
chilln
aa3e5b79c8 docs:apply proper formatting to documentation 2025-05-25 17:55:14 +09:00
Akileo
d9f64e52e4 Refactor LangChain AI Handler for Async and Performance
- Add async LLM object creation and invocation
- Branch parameter handling by LLM type
- Enhance error logging and handler consistency
- Add performance and concurrency test code
2025-05-25 15:34:51 +09:00
Akileo
ff52ae9281 add img_path and _create_chat_async 2025-05-25 15:34:50 +09:00
Akileo
d791e9f3d1 Fix: Improve langchain import error handling and add img_path to handler
Addresses issue #1784:
- Raises ImportError if langchain is not installed when LangChainOpenAIHandler is initialized.
- Adds img_path parameter to LangChainOpenAIHandler.chat_completion for interface consistency.
- Logs a warning if img_path is used with LangChainOpenAIHandler.
2025-05-25 15:28:18 +09:00
SanghyunLee
2afc3d3437 test: add test cases for fix_json_escape_char function 2025-05-25 15:21:19 +09:00
Tal
511f1ba6ae
Merge pull request #1823 from qodo-ai/tr/ensure_ticket_compliance
ensure_ticket_compliance
2025-05-25 08:43:04 +03:00
Tal
415817b421
Update docs/docs/tools/improve.md
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-05-25 08:42:55 +03:00
mrT23
18a8a741fa
ensure_ticket_compliance 2025-05-25 08:31:24 +03:00
Yoon Seonwoong
113229b218
Merge pull request #6 from OSSCA-2025-Egg-Benedict/jihan
refactor: reorder and clarify describe tool docs, enforce opt-in default for add_diagram
2025-05-25 14:30:00 +09:00
Tal
4cdaad1fc5
Merge pull request #1816 from TaskerJang/feature/clip-tokens-tests-and-docs
Add Unit Tests and Improve Documentation for utils.py clip_tokens Function
2025-05-25 08:18:26 +03:00
chilln
e57d3101e4 fix:set parameter default to false to make the feature opt-in by design 2025-05-25 12:48:29 +09:00
chilln
f58c40a6ae refactor: replace single quotes with double quotes to match existing code style 2025-05-25 12:48:13 +09:00
chilln
c346d784e3 docs:move sequence diagram section below main explanation of describe 2025-05-25 12:47:09 +09:00
chilln
32460fac57
Merge pull request #3 from OSSCA-2025-Egg-Benedict/donguk
add docs about Mermaid Diagram
2025-05-25 12:26:05 +09:00
chilln
d8aa61622f
Merge pull request #5 from OSSCA-2025-Egg-Benedict/yeji
feat: conditionally append Mermaid sequence diagram instruction in prompt
2025-05-25 12:15:01 +09:00
chilln
2b2818a435
Merge pull request #4 from OSSCA-2025-Egg-Benedict/seonwoong
feat: add add_diagram configuration option to PR description
2025-05-25 12:13:50 +09:00
chilln
cdca5a55b2
Merge pull request #2 from OSSCA-2025-Egg-Benedict/yujin
feat: add add_diagram flag in configuration.toml
2025-05-25 12:06:31 +09:00
chilln
9f9397b2d8
Merge pull request #1 from OSSCA-2025-Egg-Benedict/gahee
feat: conditionally include diagram in output example
2025-05-25 12:06:02 +09:00
isExample
3a385b62d6 feat: conditionally append Mermaid sequence diagram instruction in pr_description prompt 2025-05-25 11:51:22 +09:00
Judonguk
94e1126b00 add docs about Mermaid Diagram 2025-05-25 11:09:11 +09:00
ssunbear
5a0affd6cb feat: add add_diagram configuration option to PR description 2025-05-25 11:08:52 +09:00
yujindonut
d62cbb2fc4 feat: add add_diagram flag in configuration.toml 2025-05-25 10:28:50 +09:00
TaskerJang
f5bb508736 fix: use identity check for None comparison in clip_tokens tests
- Replace `== None` with `is None` in test_empty_input_text method
- Follow Python best practice for None comparisons as recommended in code review
- Address feedback from PR #1816 review comment

Co-authored-by: mrT23
2025-05-25 07:55:18 +09:00
Peter Dave Hello
4047e71268 Complete Gemini 2.5 Flash model info 2025-05-24 23:52:18 +08:00
joosomi
ca3df352ab refactor: improve todo section handling and clarify todo content description 2025-05-25 00:02:21 +09:00
soprue
16b9ccd025 feat: conditionally include diagram in output example 2025-05-24 23:43:16 +09:00
Tal
43dbe24a7f
Merge pull request #1817 from PeterDaveHelloKitchen/Grok-3
Add Grok-3 non-beta model IDs
2025-05-24 16:32:50 +03:00
Tal
f4a9bc3de7
Merge pull request #1814 from hirobf10/support-claude-4
feat: add support for Claude 4 family
2025-05-24 16:29:48 +03:00
Tal
ad4721f55b
Merge pull request #1812 from pr-agent-group-2/feature/try_fix_yaml-test
Add unit tests for try_fix_yaml function
2025-05-24 16:25:58 +03:00
Tal
20b1a1f552
Merge pull request #1808 from group-3-sPRinter/fix/retry-exclude-rate-limit-error
fix: exclude RateLimitError from `@retry` in `AIHandler.chat_completion()`
2025-05-24 16:14:25 +03:00
Tal
4c98cffd37
Merge pull request #1801 from darkdread/main
docs: include [aws] in .secrets.template
2025-05-24 16:12:52 +03:00
Tal
453f8e19f3
Update docs/docs/usage-guide/changing_a_model.md
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-05-24 16:12:37 +03:00
dst03106
b83085ea00 fix: remove whitespace from relevant file 2025-05-24 22:01:29 +09:00
Peter Dave Hello
95c94b80a2 Add Grok-3 non-beta model IDs 2025-05-24 14:22:55 +08:00
TaskerJang
e2586cb64a docs: improve clip_tokens function docstring and add examples 2025-05-24 10:46:58 +09:00
TaskerJang
1bc0d488d5 test: add comprehensive unit tests for clip_tokens function
- Add 21 test cases covering edge cases and parameter combinations
- Include tests for Unicode, special characters, and long text
  processing
- Verify exception handling and backward compatibility
2025-05-24 10:44:55 +09:00
Hiroyuki Otomo
1f836e405d fix: reflect comments 2025-05-24 09:45:27 +09:00
joosomi
66131854c1 fix: avoid incorrect ToDo header 2025-05-24 03:04:59 +09:00
joosomi
788c0c12e6 feat: add TODO comments to PR review output 2025-05-24 01:52:52 +09:00
Hiroyuki Otomo
c4358d1ca0 chore: update the version of litellm to 1.70.4 2025-05-23 19:18:09 +09:00
Hiroyuki Otomo
c10be827a1 chore: update the version of anthropic sdk 2025-05-23 14:23:51 +09:00
Hiroyuki Otomo
10703a9098 feat: add support for Claude 4 2025-05-23 14:16:44 +09:00
Pinyoo Thotaboot
162cc9d833 Fixed error propagation 2025-05-22 15:06:35 +07:00
Pinyoo Thotaboot
0f893bc492 Fixed webhook security concern 2025-05-22 15:03:15 +07:00
Pinyoo Thotaboot
000f0ba93e Fixed ensure SHA 2025-05-22 15:01:08 +07:00
Pinyoo Thotaboot
48c29c9ffa Add null check 2025-05-22 14:59:29 +07:00
jwsong98
f6a9d3c2cc fix:typo in test_with_initial_yaml, test_no_initial_yaml 2025-05-22 16:55:52 +09:00
Pinyoo Thotaboot
930cd69909 Fixed conflicts 2025-05-22 14:54:26 +07:00
jwsong98
684a438167 test: add test case for fixing incorrect indentation in YAML code block scalar 2025-05-22 16:53:02 +09:00
jwsong98
f10c389406 test: add test cases for YAML block scalar with inconsistent and insufficient indentation 2025-05-22 16:53:02 +09:00
jwsong98
20e69c3530 test: add test case for YAML block scalar with leading plus signs in code 2025-05-22 16:53:02 +09:00
jwsong98
069f36fc1f test: add test case for YAML with tab indentation in block scalar 2025-05-22 16:53:02 +09:00
wonjongin
1c6958069a test/wonjongin-text_get_max_tokens code generate
- There is no test code for get_max_tokens of utils, so the unit test code related to the part corresponding to each test branch is added
2025-05-22 16:32:04 +09:00
jwsong98
e79c34e039 test: add test case for YAML wrapped with braces 2025-05-22 16:27:38 +09:00
Tal
e045617243
Merge pull request #1809 from qodo-ai/mrT23-patch-12
Update LICENSE
2025-05-22 10:06:13 +03:00
Tal
70428ebb21
Update LICENSE 2025-05-22 10:01:52 +03:00
Kangmoon Seo
466ec4ce90 fix: exclude RateLimitError from retry logic 2025-05-22 15:04:16 +09:00
kkan9ma
facfb5f46b Add missing code: use_context=False 2025-05-22 13:32:20 +09:00
kkan9ma
cc686ef26d Reorder model check: OpenAI before Anthropic
OpenAI is the default in most cases, so checking it first skips unnecessary Anthropic logic.
2025-05-22 13:12:04 +09:00
kkan9ma
ead7491ca9 Apply convention for marking private 2025-05-21 18:08:48 +09:00
kkan9ma
df0355d827 Remove member variable for restroring get_settings() 2025-05-21 18:07:47 +09:00
kkan9ma
c3ea048b71 Restore original return logic for force_accurate condition 2025-05-21 17:52:51 +09:00
kkan9ma
648829b770 Rename method 2025-05-21 17:51:03 +09:00
mrT23
4e80f3999c
Merge remote-tracking branch 'origin/main' 2025-05-21 07:53:42 +03:00
mrT23
3bced45248
docs: improve configuration options documentation with clearer formatting and links 2025-05-21 07:53:31 +03:00
Tal
dd17aadfe3
Merge pull request #1803 from group-3-sPRinter/fix/litellm-exception-order
fix: reorder exception handling in `LiteLLMAIHandler.chat_completion()`
2025-05-21 07:42:18 +03:00
Tal
199b463eaa
Merge pull request #1798 from seohyun-lee/docs/usage-guide
Correct typos in documentation and log messages
2025-05-21 07:38:22 +03:00
Tal
7821e71b17
Merge pull request #1787 from nicholasgribanov/feature/gitea-forgejo-support
#1657 add gitea/forgejo support
2025-05-21 07:35:31 +03:00
Pinyoo Thotaboot
b686a707a4 Not implement online 2025-05-20 16:54:20 +07:00
Pinyoo Thotaboot
bd68a0de55 Update Gitea documents 2025-05-20 16:46:32 +07:00
Kangmoon Seo
6405284461 fix: reorder exception handling to enable proper retry behavior 2025-05-20 18:22:33 +09:00
sharoneyal
9069c37a05
Add incremental update to documentation (#1796) 2025-05-20 12:12:06 +03:00
Pinyoo Thotaboot
2d619564f2 Update README for Gitea 2025-05-20 15:51:50 +07:00
Pinyoo Thotaboot
1b74942919 Set default configuration of Gitea 2025-05-20 15:18:07 +07:00
kkan9ma
97f2b6f736 Fix TypeError 2025-05-20 15:29:27 +09:00
ofir-frd
eecf115b91
Merge pull request #1799 from seohyun-lee/docs/review
Revise the review effort label text in the review document
2025-05-20 08:28:38 +03:00
kkan9ma
f198e6fa09 Add constants and improve token calculation logic 2025-05-20 14:12:24 +09:00
kkan9ma
e72bb28c4e Replace get_settings() with self.settings 2025-05-20 13:50:30 +09:00
kkan9ma
81fa22e4df Add model name validation 2025-05-20 13:47:15 +09:00
Walson Low (刘维昇)
8aa89ff8e6 docs: include [aws] in .secrets.template 2025-05-20 10:27:13 +08:00
Tal
6d9bb93f62
Merge pull request #1795 from jmsb02/docs/add_docs-auto-trigger-docs-only
docs: document how to auto-trigger /add_docs via pr_commands
2025-05-19 21:30:05 +03:00
Seohyun Lee
25b807f71c docs: Add missing spacebar 2025-05-20 03:11:21 +09:00
Seohyun Lee
03fa5b7d92 docs: Modify the review effort label text in the review document to an updated format 2025-05-20 03:00:54 +09:00
Seohyun Lee
4679dce3af refactor: Correct case typo of PR in log 2025-05-20 02:31:48 +09:00
Seohyun Lee
94aa8e8638 refactor: Correct case typo in log 2025-05-20 02:30:17 +09:00
Seohyun Lee
f5a069d6b4 refactor: Align comment formatting with others 2025-05-20 02:28:43 +09:00
Seohyun Lee
2a42d009af docs: Fix broken Markdown code block in Installation documentation 2025-05-20 02:27:14 +09:00
Tal
9464fd9696
Merge pull request #1797 from GuBee33/main
Adding num_max_findings configuration parameter
2025-05-19 20:23:14 +03:00
Seohyun Lee
95df26c973 docs: Correct typos in ignore section configuration 2025-05-20 02:08:41 +09:00
jaexxin
a315779713 docs: document how to auto-trigger /add_docs via pr_commands 2025-05-20 00:23:44 +09:00
Guber Tamas
c97b49c373 typo fix 2025-05-19 16:19:41 +02:00
Guber Tamas
5a8ce252f7 Adding num_max_findings configuration parameter with a default value of 3, to have the possibility to extend it 2025-05-19 16:16:23 +02:00
jaexxin
5e40b3962a docs: document how to auto-trigger /add_docs via pr_commands 2025-05-19 22:22:22 +09:00
jaexxin
3f4fac1232 docs: document how to auto-trigger /add_docs via pr_commands 2025-05-19 21:17:59 +09:00
jaexxin
e692dee66a docs: document how to auto-trigger /add_docs via pr_commands 2025-05-19 17:39:55 +09:00
jaexxin
31620a82c0 docs: document how to auto-trigger /add_docs via pr_commands 2025-05-19 17:36:54 +09:00
mrT23
2dbcb3e5dc
docs: improve configuration options documentation with better formatting and links 2025-05-19 11:01:14 +03:00
wonjongin
74b4488c7e fix/wonjongin-test_language_handler - test_edge_case_languages_with_no_extensions code modification
- Since the existing code did not meet the requirements of the test, test is conducted on the assumption of a separate file name that does not exist in the extension
2025-05-19 16:44:22 +09:00
Tal
65d9269bf2
Merge pull request #1790 from qodo-ai/tr/v_029
Tr/v029
2025-05-17 21:08:41 +03:00
mrT23
411245155f
docs: update README and Dockerfile with v0.29 release information 2025-05-17 21:05:22 +03:00
mrT23
14fb98aa77
docs: update README and recent updates page with v0.29 release information 2025-05-17 21:03:29 +03:00
mrT23
b4ae07bf82
Remove test case for YAML parsing that removes last line 2025-05-17 20:58:32 +03:00
mrT23
db5138dc42
Improve YAML parsing with additional fallback strategies for AI predictions 2025-05-17 20:38:05 +03:00
Tal
9a9feb47a6
Merge pull request #1786 from qodo-ai/pr-1736
Pr 1736
2025-05-17 15:29:23 +03:00
Nikolay Gribanov
d67d07acc7 #1657 review fix 2 2025-05-16 20:30:17 +03:00
Nikolay Gribanov
12b1fe23da #1657 review fix 2025-05-16 20:12:40 +03:00
Nikolay Gribanov
f857ea1f22 #1657 add gitea/forgejo support 2025-05-16 19:43:21 +03:00
mrT23
52ce74a31a
Remove debug print statements from repository filtering tests 2025-05-16 17:25:10 +03:00
mrT23
f47da75e6f
Remove debug print statement from should_process_pr_logic function 2025-05-16 17:23:27 +03:00
mrT23
42557feb97
Enhance repository filtering with regex pattern matching for ignore_repositories 2025-05-16 17:20:54 +03:00
Tal
c15fb16528
Merge pull request #1779 from dnnspaul/main
Enable usage of OpenAI like APIs
2025-05-16 16:59:18 +03:00
Tal
d268db5f0d
Merge pull request #1778 from smartandhandsome/main
Cleanup: Remove Unused import and Fix Parameter Typo
2025-05-16 16:54:55 +03:00
Tal
ec626f0193
Merge pull request #1785 from qodo-ai/tr/gemini-2.5-pro-preview-05-06
Add Gemini-2.5-pro-preview-05-06 model and update litellm dependency
2025-05-16 16:53:50 +03:00
mrT23
9974015682
Add Gemini-2.5-pro-preview-05-06 model and update litellm dependency 2025-05-16 16:32:45 +03:00
Pinyoo Thotaboot
8b1abbcc2c Add lib dependency 2025-05-16 16:34:53 +07:00
Pinyoo Thotaboot
a692a70027 Implement for docker 2025-05-16 16:34:11 +07:00
Pinyoo Thotaboot
fab8573c4d Set default configuration 2025-05-16 16:33:36 +07:00
Pinyoo Thotaboot
2d7636543c Implement provider 2025-05-16 16:31:49 +07:00
Pinyoo Thotaboot
cf2b95b766 Create webhook server implement for 2025-05-16 16:30:50 +07:00
Pinyoo Thotaboot
9ef0c451bf Create provider module for 2025-05-16 16:30:10 +07:00
kkan9ma
05ab5f699f Improve token calculation logic based on model type
- Rename calc_tokens to get_token_count_by_model_type for clearer intent
- Separate model type detection logic to improve maintainability
2025-05-16 17:51:22 +09:00
Dennis Paul
250870a3da enable usage of openai like apis 2025-05-15 16:05:05 +02:00
Sangmin Park
a3c9fbbf2c revert try except 2025-05-15 19:40:40 +09:00
Sangmin Park
c79b655864 Fix typo in method parameter name 2025-05-15 18:42:08 +09:00
Sangmin Park
e55fd64bda Remove unnecessary nested try-except block for cleaner code. Streamlined the import statement to remove an unused reference to get_git_provider. 2025-05-15 18:41:39 +09:00
mrT23
b6a401bcc2
Merge remote-tracking branch 'origin/main' 2025-05-14 07:35:17 +03:00
mrT23
72bcb0ec4c
docs: add Gemini-2.5-flash-preview benchmark comparisons to PR benchmark table 2025-05-14 07:35:09 +03:00
Tal
35d75e996f
Merge pull request #1770 from dst03106/fix/add-ttl-when-callback-enabled
fix: add timeout to asyncio.wait during CLI execution to avoid hanging when callback is enabled
2025-05-13 18:33:56 +03:00
Hussam Lawen
d3262d37e1
Merge pull request #1767 from qodo-ai/hl/manual_more_suggestions_docs
docs: enhance improve.md with manual suggestions for Bitbucket and Gi…
2025-05-13 18:19:56 +03:00
mrT23
3ddd53d4fe
docs: add link to example model card in benchmark documentation 2025-05-13 11:48:01 +03:00
dst03106
e2af22d2a0 Log a warning for pending asyncio tasks with coroutine details 2025-05-13 17:37:09 +09:00
Yunhui Chae
d86d1ef3dc
Log a warning when there are pending asyncio tasks
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-05-13 17:34:30 +09:00
mrT23
eb449202c9
Merge remote-tracking branch 'origin/main' 2025-05-13 11:31:57 +03:00
mrT23
90c46bb2dd
docs: update link to "Changing a model" documentation page 2025-05-13 11:31:28 +03:00
Tal
ad35e7dc07
Merge pull request #1771 from qodo-ai/tr/new_benchmark
Tr/new benchmark
2025-05-13 11:18:34 +03:00
Tal
87f4783fa0
Update docs/mkdocs.yml
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-05-13 09:11:06 +03:00
mrT23
f0fa27535c
docs: improve model comparison headings in benchmark documentation 2025-05-13 09:07:46 +03:00
mrT23
cbfbfa662d
docs: enhance benchmark table with colored win rates and improve comparison headings 2025-05-13 09:05:07 +03:00
mrT23
3ec5bc12b7
s 2025-05-13 08:53:03 +03:00
dst03106
e7317ce99f Add timeout to asyncio.wait 2025-05-13 14:46:50 +09:00
mrT23
25530a8b2c
docs: add benchmark methodology and improve model comparison formatting 2025-05-13 08:39:19 +03:00
mrT23
489a16a3e6
docs: reorganize documentation structure and move PR benchmark section 2025-05-13 08:05:36 +03:00
Hussam.lawen
b334bcd250
docs: enhance improve.md with manual suggestions for Bitbucket and GitLab 2025-05-12 16:54:28 +03:00
Tal
9cc6d37165
Merge pull request #1764 from twdkeule/bugfix/markdown-link-in-prompt
Changelog prompt: fix markdown link
2025-05-12 16:01:28 +03:00
Tal
bcbb3ac228
Merge pull request #1746 from twdkeule/feature/azure-devops-persistent-comment
Implement Azure Devops persistent comment
2025-05-12 15:56:12 +03:00
ofir-frd
d6aaf8a709
docs: Update "Apply this suggestion" to "Apply / Chat" 2025-05-12 11:13:01 +03:00
Thomas De Keulenaer
db0c213d72 AzureDevops webhook: allow disabling BasicAuth
Azure webhooks do not allow BasicAuth without HTTPS
2025-05-12 09:00:36 +02:00
Thomas De Keulenaer
954d61e5dc Azure: refactor publish_code_suggestions() to use azure classes 2025-05-12 09:00:36 +02:00
Thomas De Keulenaer
24a90cab8e Azure: handle inline /ask 2025-05-12 09:00:17 +02:00
mrT23
d6a7c89762
docs: add Gemini-2.5-pro-preview vs GPT-4.1 benchmark comparison 2025-05-12 09:53:59 +03:00
Thomas De Keulenaer
67272700a6 Azure: handle line comments 2025-05-12 08:31:15 +02:00
Thomas De Keulenaer
3a07b55d0c Azure: dont start threads as active because they block the pull request 2025-05-12 08:31:15 +02:00
Thomas De Keulenaer
c924affebc Azure devops provider: add persistent comment 2025-05-12 08:31:15 +02:00
Thomas De Keulenaer
e516d66c1c Azure: return Comment object when creating comment 2025-05-12 08:31:15 +02:00
Thomas De Keulenaer
212c72eb7d Changelog prompt: fix markdown link 2025-05-12 08:26:19 +02:00
mrT23
bd911b67d8
docs: add Gemini-2.5-pro-preview model comparison to benchmark documentation 2025-05-12 08:11:57 +03:00
mrT23
c5bcc21a61
docs: update timestamp label for clarity on recent updates page 2025-05-11 17:32:07 +03:00
Tal
eb1138148b
Merge pull request #1762 from qodo-ai/tr/docker_action
fix: update Docker base image to slim version and install required de…
2025-05-11 17:20:27 +03:00
Tal
4210262e27
Update Dockerfile.github_action
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-05-11 17:19:58 +03:00
mrT23
df0d065705
fix: update Docker base image to slim version and install required dependencies 2025-05-11 17:17:58 +03:00
Tal
682ceaa5db
Merge pull request #1761 from qodo-ai/tr/recent_updates
docs: add recent updates and future roadmap section to documentation
2025-05-11 12:40:19 +03:00
mrT23
90445342b3
docs: fix typo in scan repo discussions tool name and add help docs tool 2025-05-11 12:35:50 +03:00
mrT23
22e4276f1a
docs: fix typo in scan repo discussions tool name and add help docs tool 2025-05-11 12:33:55 +03:00
mrT23
0e102a4ad5
docs: add recent updates and future roadmap section to documentation 2025-05-11 11:53:22 +03:00
mrT23
91b3f2ee80
docs: improve improve tool documentation with visual section headers 2025-05-11 11:12:58 +03:00
Tal
850583acb4
Merge pull request #1758 from joosomi/fix/pr-description-type-header
fix: avoid duplicate header for list types to prevent markdown break
2025-05-11 11:06:42 +03:00
Tal
38a81dd691
Merge pull request #1760 from isExample/fix/local-configuration-file-description
docs: clarify that .pr_agent.toml can be updated post PR creation
2025-05-11 11:06:35 +03:00
Tal
ccf8182c53
Merge pull request #1757 from qodo-ai/of/new_tab_to_improve_tool
docs: improve readability of improve tool documentation with tabs
2025-05-11 11:05:06 +03:00
Tal
f1e02e311d
Merge pull request #1759 from qodo-ai/tr/feedback_on_draft_pr
docs: add information about feedback on draft PRs
2025-05-11 11:02:58 +03:00
isExample
6596f782e1 docs: clarify that .pr_agent.toml can be updated post PR creation 2025-05-10 16:05:37 +09:00
Tal
943fe57231
Merge pull request #1753 from jihan-chillin/fix/logger-artifact-key
fix:correct typo in logger parameter from 'artifacts' to 'artifact'
2025-05-10 08:50:59 +03:00
mrT23
625085a0f8
docs: add information about feedback on draft PRs 2025-05-09 16:16:26 +03:00
joosomi
57eaba0e75 fix: ensure string conversion for list elements 2025-05-09 21:33:42 +09:00
joosomi
6062c99c47 fix: avoid duplicate header for list types to prevent markdown break 2025-05-09 21:20:04 +09:00
ofir-frd
171be6727a docs: fix typos and improve wording in improve tool documentation 2025-05-09 14:53:03 +03:00
ofir-frd
b658986a5e docs: improve readability of improve tool documentation with tabs 2025-05-09 14:24:07 +03:00
chilln
c357f09967 fix:correct typo in logger parameter from 'artifacts' to 'artifact' 2025-05-09 11:12:04 +09:00
Tal
36307e66f1
Merge pull request #1749 from simonstamm/main
fix(gitlab): trigger when MR changes from draft to ready
2025-05-08 19:18:53 +03:00
Tal
8bc39c0120
Merge pull request #1745 from MaxnSter/fix/extra_instruction
fix: Prevent duplicate language instructions in extra_instructions
2025-05-08 19:04:53 +03:00
Tal
f5857f0fde
Merge pull request #1744 from irfansofyana/openrouter-support
Openrouter support
2025-05-08 19:02:02 +03:00
Tal
0c21d4a48a
Merge pull request #1742 from twdkeule/feature/parse-azure-url
Azure devops: parse PR url starting from the end
2025-05-08 19:00:32 +03:00
Simon Stamm
38f00386b4
fix(gitlab): trigger when MR changes from draft to ready 2025-05-08 12:50:54 +02:00
Maxnster
a11e97b5f5 fix: Prevent duplicate language instructions in extra_instructions 2025-05-07 18:26:12 +08:00
ofir-frd
4a8722acd5 docs: Add tip about using keywords to direct the agent in code suggestions 2025-05-07 11:21:59 +03:00
irfan.putra
5061fb5a24 docs: add support for openrouter 2025-05-07 12:04:45 +07:00
irfan.putra
7a6a28d2b9 feat: add openrouter support in litellm 2025-05-07 11:54:07 +07:00
Thomas De Keulenaer
df1d859e54 Azure devops: parse PR url starting from the end 2025-05-06 15:01:48 +02:00
mrT23
f85587fb1f
docs: add configuration options for best practices in improve tool 2025-05-04 17:47:25 +03:00
Tal
e9924eab89
Merge pull request #1737 from qodo-ai/of/update-fallback-model
doc: title refinement
2025-05-04 16:45:07 +03:00
ofir-frd
f0db5cb43b
revert model fixation 2025-05-04 16:35:14 +03:00
Tal
8bb207f0bd
Merge pull request #1738 from qodo-ai/tr/docker_slim
Use slim Docker image and install git and curl dependencies
2025-05-02 09:20:11 +03:00
mrT23
5a3010389d
Optimize Docker image by cleaning apt cache after installing dependencies 2025-05-02 09:16:43 +03:00
mrT23
8edacf08bb
Use slim Docker image and install git and curl dependencies 2025-05-02 09:13:21 +03:00
ofir-frd
914d053801
improve.md: refine a sub-title 2025-05-01 08:38:21 +03:00
ofir-frd
897a5c66fa
Update fallback model 2025-05-01 08:31:19 +03:00
Mike Davies
d606672801 Add ignore_repositories config for PR filtering
What Changed?
* Added support to ignore PRs/MRs from specific repositories in GitHub, Bitbucket, and GitLab webhook logic
* Updated configuration.toml to include ignore_repositories option
* Added unit tests for ignore_repositories across all supported providers
2025-04-30 14:09:40 -07:00
ofir-frd
ef9e0b1f12
Merge pull request #1735 from qodo-ai/of/read-me-updatea
docs: add data privacy and contributing sections to README and update news
2025-04-30 19:33:37 +03:00
ofir-frd
968d2ee39b docs: add data privacy and contributing sections to README and update news 2025-04-30 17:00:13 +03:00
ofir-frd
b09eec265e docs: clarify that RAG capability is exclusive to specific tools 2025-04-30 13:29:45 +03:00
mrT23
ed5b8e7828
Merge remote-tracking branch 'origin/main' 2025-04-30 11:15:00 +03:00
mrT23
056adc6545
Update documentation for improve tool by removing GitHub link and clarifying text 2025-04-30 11:14:50 +03:00
ofir-frd
75a047f348 docs: add clarification about RAG capability tools list 2025-04-30 10:49:05 +03:00
Tal
14ad0445f5
Merge pull request #1731 from Yash-1511/docs/update-gemini
docs: update Gemini model path from google_ai_studio to gemini in con…
2025-04-30 10:44:10 +03:00
Tal
bf16fcd0fb
Merge pull request #1728 from barnett-yuxiang/fix/reportInvalidTypeForm
Fix type hint for get_pr_description method and clean up whitespace
2025-04-30 10:43:06 +03:00
ofir-frd
63f50bc162 docs: convert RAG context enrichment applications to tabbed format 2025-04-30 09:14:45 +03:00
Yash-1511
bfca4f2515
docs: update Gemini model path from google_ai_studio to gemini in configuration docs 2025-04-29 20:57:41 +05:30
ofir-frd
7b82b08173 fix: correct grammar in Qodo Merge orchestrator agent description 2025-04-29 12:35:10 +03:00
ofir-frd
3dc0cac975 docs: Chat on code suggestions: Add interactive code suggestions documentation with tabbed examples 2025-04-29 09:12:20 +03:00
ofir-frd
4cbd265082
Merge pull request #1727 from qodo-ai/of/gan-and-chat-updates
Add documentation for chat on code suggestions with example image and update RAG platform support
2025-04-28 19:05:16 +03:00
ofir-frd
e69b17cb1a Update code suggestion chat documentation with orchestrator agent description 2025-04-28 13:59:44 +03:00
ofir-frd
26dc3b7f21 Update code suggestion chat documentation with multi-node agent description 2025-04-28 13:02:54 +03:00
yuli.kamakura
4ad43c48e5 Fix type hint for get_pr_description method and clean up whitespace 2025-04-28 17:59:09 +08:00
ofir-frd
ab0e3bde49 Remove extra blank lines in improve.md documentation 2025-04-28 08:52:06 +03:00
ofir-frd
1c3629d4c2 Add documentation for chat on code suggestions with example image and update RAG platform support 2025-04-28 08:50:58 +03:00
mrT23
cbe03b82fe
Remove Help Docs entry and update Auto Best Practices platform support 2025-04-27 16:15:46 +03:00
mrT23
9926a10b00
Add Help Docs, Code Validation, and Auto Best Practices features to platform support tables 2025-04-27 15:58:14 +03:00
Tal
f137509c78
Merge pull request #1718 from barnett-yuxiang/fix/poetry-install-error
Update .gitignore and fix license format in pyproject.toml
2025-04-27 11:17:35 +03:00
Tal
43f9a6fc17
Merge pull request #1721 from bananana0118/fix-typo-in-docs
Docs: fix typo in response_language setting inside .pr-agent.toml configuration guide
2025-04-27 11:16:13 +03:00
Tal
1b0aa16282
Merge pull request #1726 from qodo-ai/tr/multi_model_prompt
Tr/multi model prompt
2025-04-27 11:15:39 +03:00
mrT23
f505c7ad3c
Add multi-model support for different reasoning tasks 2025-04-27 11:00:34 +03:00
mrT23
c951fc9a87
Improve dynamic context handling with partial line matching and adjust model configuration 2025-04-27 10:46:23 +03:00
mrT23
3f194e6730
Improve dynamic context handling in git patch processing 2025-04-27 10:07:56 +03:00
mrT23
f53bd524c5
Support multiple model types for different reasoning tasks 2025-04-27 08:50:03 +03:00
mrT23
60a887ffe1
Improve code suggestion prompts for clarity, accuracy, and evaluation criteria 2025-04-27 08:42:28 +03:00
bananana0118
bb8e606f93 docs: fix spacing after equals sign in TOML example 2025-04-25 14:55:31 +09:00
bananana0118
9549289a71 docs: fix typo in response_language setting 2025-04-25 14:51:15 +09:00
bananana0118
ff00e303cc docs: fix typo in documentation about config response_language from pr-agent.toml 2025-04-25 14:38:37 +09:00
mrT23
31e5517833
Merge remote-tracking branch 'origin/main' 2025-04-24 18:05:57 +03:00
mrT23
4ff2bd176b
Fix typo in Qodo Merge bot detection documentation 2025-04-24 18:05:48 +03:00
Tal
8684baf050
Merge pull request #1719 from qodo-ai/of/docs-improve-free-chat
Add documentation for chat functionality in code suggestions
2025-04-24 17:43:58 +03:00
ofir-frd
68737b6432 Add platform support indicators for chat on code suggestions feature 2025-04-24 15:39:48 +03:00
ofir-frd
4a231f8933 Add documentation for chat functionality in code suggestions 2025-04-24 15:32:01 +03:00
mrT23
87532cf68c
Add documentation about preserving original PR descriptions in Qodo Merge 2025-04-24 14:59:58 +03:00
yuli.kamakura
9df0f71d4a Update .gitignore and fix license format in pyproject.toml 2025-04-24 16:14:02 +08:00
ofir-frd
dedad94a20 Fix code indentation in get_review_thread_comments method 2025-04-24 09:34:51 +03:00
ofir-frd
5d5b57255e
Merge pull request #1687 from benedict-lee/feat/add-conversation-history-on-line-question
Improvement: Enhance ask_line tool by adding PR review comment threads as context
2025-04-24 09:32:43 +03:00
mrT23
6ceea2b134
Clarify Qodo Merge's exclusive features and bot handling behavior 2025-04-24 08:28:23 +03:00
Benedict Lee
c35942c12b
mprove get_review_thread_comments method implementation
Co-authored-by: ofir-frd <85901822+ofir-frd@users.noreply.github.com>
2025-04-24 11:23:16 +09:00
Benedict Lee
ddb94ec9b4
mprove get_review_thread_comments method implementation
Co-authored-by: ofir-frd <85901822+ofir-frd@users.noreply.github.com>
2025-04-24 11:22:43 +09:00
Benedict Lee
29d4fe510e
Improve get_review_thread_comments method implementation
Co-authored-by: ofir-frd <85901822+ofir-frd@users.noreply.github.com>
2025-04-24 11:21:49 +09:00
mrT23
7d17ed5b7f
fix linting 2025-04-23 21:15:00 +03:00
Tal
47e46ee001
Merge pull request #1715 from qodo-ai/tr/improve_prompts
Improve field descriptions for code suggestion model clarity and brevity
2025-04-22 14:22:03 +03:00
mrT23
1aa0186f5c
Improve field descriptions for code suggestion model clarity and brevity 2025-04-22 14:19:54 +03:00
mrT23
4685c25209
Merge remote-tracking branch 'origin/main' 2025-04-22 10:57:03 +03:00
mrT23
fe0d5df145
Improve documentation formatting and navigation features 2025-04-22 10:56:53 +03:00
ofir-frd
15b2b57677 Uncomment search plugin in mkdocs configuration 2025-04-22 08:49:30 +03:00
mrT23
8a45e41749
Update Qodo Merge documentation with consistent heading capitalization 2025-04-22 08:14:53 +03:00
mrT23
581f35db99
Update Qodo Merge documentation with detailed licensing information 2025-04-22 08:12:40 +03:00
mrT23
fef0bc6146
Update Qodo Merge documentation with detailed licensing information 2025-04-22 08:09:49 +03:00
benedict.lee
9906ec3687 Improve conversation history formatting with numbered comments 2025-04-21 17:14:36 +09:00
benedict.lee
8b4bf49f1c Improve conversation history handling and prompts for line questions 2025-04-21 16:50:37 +09:00
benedict.lee
e11c2e1c7f Reorganize imports according to Python conventions 2025-04-21 16:30:27 +09:00
benedict.lee
a434d0af9b Improve comment thread retrieval by using in_reply_to_id instead of line numbers 2025-04-21 16:28:42 +09:00
Tal
baf361f0f0
Merge pull request #1712 from qodo-ai/tr/multi_model
Update model references from o3-mini to o4-mini and add Gemini models
2025-04-19 09:29:02 +03:00
mrT23
4ac0aa56e5
Update model references from o3-mini to o4-mini and add Gemini models 2025-04-19 09:26:35 +03:00
Tal
ca88ec96d6
Merge pull request #1710 from PeterDaveHelloKitchen/SwitchDefaultTo-o4-mini
Replace default o3-mini with o4-mini
2025-04-19 09:00:35 +03:00
Peter Dave Hello
e854383123 Replace default o3-mini with o4-mini 2025-04-19 03:52:10 +08:00
Tal
1327a4437d
Merge pull request #1711 from nicohein/feature/simplified-bitbucket-pipeline
Feature/simplified bitbucket pipeline
2025-04-18 21:51:49 +03:00
nicohein
002c71f1ba
Merge branch 'qodo-ai:main' into feature/simplified-bitbucket-pipeline 2025-04-18 14:44:28 -04:00
Nico Hein
2fa4438310 docs: itemization fix 2025-04-18 14:42:51 -04:00
mrT23
e41050d39c
Merge remote-tracking branch 'origin/main' 2025-04-18 21:40:50 +03:00
mrT23
5e98926b5a
Update scan_repo_discussions.md to clarify focus on best practices 2025-04-18 21:40:39 +03:00
Tal
a459e8c8e1
Merge pull request #1703 from nicohein/feature/simplified-bitbucket-pipeline
docs: updated bitbucket pipeline docs
2025-04-18 21:26:54 +03:00
Tal
151daa070f
Merge pull request #1709 from PeterDaveHelloKitchen/Ignore.venv
Add .venv/ to .dockerignore and .gitignore for virtual env compatibility
2025-04-18 21:19:06 +03:00
Tal
11ebbc994f
Merge pull request #1708 from PeterDaveHelloKitchen/UpgradeLiteLLM
Upgrade litellm to v1.66.3
2025-04-18 21:18:31 +03:00
Tal
f177ff4214
Merge pull request #1707 from dst03106/feature/add-support-for-mistral-and-codestral
Add support for Mistral and Codestral models
2025-04-18 21:17:27 +03:00
Tal
8f6edadbeb
Merge pull request #1704 from DongjaJ/ci/update-github-actions-versions
Update GitHub actions version
2025-04-18 21:11:03 +03:00
Tal
246f372e4a
Merge pull request #1706 from PeterDaveHelloKitchen/ImproveDocs
Improve markdown docs formatting for consistency and readability
2025-04-18 21:10:47 +03:00
Peter Dave Hello
e6ee2b96e2 Add .venv/ to .dockerignore and .gitignore for virtual env compatibility
Include .venv/ alongside venv/ to align with common Python virtual
environment practices as recommended in the official documentation.
2025-04-18 21:43:05 +08:00
Peter Dave Hello
fab4717449 Upgrade litellm to v1.66.3 2025-04-18 20:27:46 +08:00
dst03106
869a179506 feat: add support for Mistral and Codestral models 2025-04-18 14:04:59 +09:00
Peter Dave Hello
f0fc777a44 Improve markdown docs formatting for consistency and readability 2025-04-18 03:34:20 +08:00
Tal
58f6943b12
Merge pull request #1705 from qodo-ai/tr/basic_auth
Add Basic Authentication method for Jira Data Center/Server and valid…
2025-04-17 19:14:47 +03:00
mrT23
999d03f7aa
Add Basic Authentication method for Jira Data Center/Server and validation script 2025-04-17 18:51:50 +03:00
Peter Dave Hello
2628f2a997 Upgrade litellm to v1.66.2 2025-04-17 23:37:33 +08:00
DongjaJ
6cf0ae0731 ci: Upgrade Codecov action to v5 in workflow files 2025-04-17 23:05:47 +09:00
DongjaJ
be957cd2ea ci: Upgrade docker/build-push-action to v6 in workflow files 2025-04-17 23:05:10 +09:00
DongjaJ
8ad3eb583a ci: Upgrade Docker Buildx action to v3 in workflow files 2025-04-17 23:02:48 +09:00
DongjaJ
2e18053e02 ci: Update actions/checkout to v4 in workflow files 2025-04-17 22:57:18 +09:00
Tal
696cdc3b45
Merge pull request #1702 from PeterDaveHelloKitchen/add-o3-and-o4-mini
Add OpenAI o3 & 4o-mini reasoning models
2025-04-17 11:00:00 +03:00
Nico Hein
e5df079dce docs: updated bitbucket pipeline docs to make direct use of the pr-agent image without docker in docker 2025-04-16 18:01:58 -04:00
Peter Dave Hello
4e3e963ce5 Add OpenAI o3 & 4o-mini reasoning models
Reference:
- https://platform.openai.com/docs/models/o3
- https://platform.openai.com/docs/models/o4-mini
- https://openai.com/index/introducing-o3-and-o4-mini/
2025-04-17 02:32:14 +08:00
mrT23
bc3ef4763d
Update scan_repo_discussions.md to include links and customization notes 2025-04-16 14:17:59 +03:00
Tal
c332a8866b
Merge pull request #1701 from qodo-ai/tr/scan_repo_discussions_docs
Add new tool for scanning repository discussions and generating best …
2025-04-16 13:45:35 +03:00
mrT23
717b03de6e
Fix link to Scan Repo Discussions tool in index.md 2025-04-16 13:43:37 +03:00
mrT23
a5cb0e48fe
Fix link to Scan Repo Discussions tool in index.md 2025-04-16 13:42:18 +03:00
mrT23
7704379e62
Add new tool for scanning repository discussions and generating best practices 2025-04-16 13:39:52 +03:00
Tal
44a3e5819c
Merge pull request #1698 from arpit-at/arp-feat/azure-open-ai-entra-id
Azure AD authentication for OpenAI services
2025-04-16 13:05:33 +03:00
arpit-at
27a7c1a94f doc update and minor fix 2025-04-16 13:32:53 +05:30
arpit-at
dc46acb762 doc update and minor fix 2025-04-16 13:27:52 +05:30
arpit-at
0da667d179 support Azure AD authentication for OpenAI services for litellm implemetation 2025-04-16 11:19:04 +05:30
mrT23
73b3e2520c
Rename code fine-tuning benchmark to pull request benchmark and update model references 2025-04-15 19:40:36 +03:00
mrT23
3d2a285091
Add skip_ci_on_push configuration option for changelog updates 2025-04-15 19:28:36 +03:00
mrT23
b1bc77c809
Merge remote-tracking branch 'origin/main' 2025-04-15 18:57:16 +03:00
mrT23
14dafc4016
Update GPT-4o references to GPT-4.1 and upgrade litellm to 1.66.1 2025-04-15 18:57:09 +03:00
Tal
7d00574044
Merge pull request #1693 from PeterDaveHelloKitchen/ImproveMarkdownForChangingAModelGuide
Improve Markdown format in model configuration guide
2025-04-14 21:22:31 +03:00
Tal
93002acff8
Merge pull request #1692 from PeterDaveHelloKitchen/FixLinkInLocalInstallGuide
Correct the tools guide link in the locally installation doc
2025-04-14 21:21:01 +03:00
Tal
f08bed67f1
Merge pull request #1691 from PeterDaveHelloKitchen/UpdateREADME.md
Fix Discord link in README
2025-04-14 21:20:40 +03:00
mrT23
08bf9593b2
Fix tokenizer fallback to use o200k_base instead of cl100k_base 2025-04-14 21:15:19 +03:00
Tal
4b58a5488f
Merge pull request #1694 from PeterDaveHelloKitchen/gpt-4.1-family
Add support of OpenAI GPT-4.1 model family
2025-04-14 21:04:55 +03:00
Peter Dave Hello
57808075be Add support of OpenAI GPT-4.1 model family
Reference:
- https://openai.com/index/gpt-4-1/
- https://platform.openai.com/docs/models/gpt-4.1
2025-04-15 01:57:46 +08:00
Tal
2cb226dbcc
Update README.md 2025-04-14 20:29:09 +03:00
mrT23
943af0653b
Improve formatting and clarity in Jira PAT token validation documentation 2025-04-14 08:29:19 +03:00
Peter Dave Hello
259d67c064 Improve Markdown format in model configuration guide
Enhance documentation readability by:
- Adding TOML language identifiers to enable syntax highlighting
- Adjusting spacing and formatting for proper Markdown rendering

These improvements make the guide easier to follow.
2025-04-13 01:02:22 +08:00
Peter Dave Hello
84fdc4ca2b Correct the tools guide link in the locally installation doc 2025-04-13 00:50:38 +08:00
Peter Dave Hello
c8f519ad70 Fix Discord link in README 2025-04-13 00:42:53 +08:00
mrT23
8bdd11646c
Fix token assignment in Bitbucket provider authentication 2025-04-12 10:07:45 +03:00
mrT23
fc6de449ad
Add Jira PAT token validation script for troubleshooting ticket retrieval issues 2025-04-12 09:58:17 +03:00
Tal
a649e323d3
Merge pull request #1683 from wirelessr/feat/issue-1681
Support Bitbucket Basic Auth
2025-04-11 14:37:56 +03:00
Chunting Wu
7a32faf64f Fix Bearer backward compatibility logic 2025-04-11 17:44:46 +08:00
Chunting Wu
3c8ad9eac8 Update doc for auth_type and basic_token 2025-04-11 16:55:32 +08:00
Chunting Wu
5f2d4d400e Extract repeated token retrieval logic into a helper function to reduce code duplication 2025-04-11 16:20:28 +08:00
ChunTing Wu
0cbf65dab6
Update pr_agent/git_providers/bitbucket_provider.py
Co-authored-by: Prateek <110811408+Prateikx@users.noreply.github.com>
2025-04-11 14:59:27 +08:00
ChunTing Wu
c0c307503f
Update pr_agent/git_providers/bitbucket_provider.py
Co-authored-by: Prateek <110811408+Prateikx@users.noreply.github.com>
2025-04-11 14:55:06 +08:00
Tal
60ace1ed09
Merge pull request #1685 from imperorrp/add_gemini2.5preview
Add support of Gemini 2.5 Pro preview model
2025-04-11 09:54:09 +03:00
Tal
7f6014e064
Merge pull request #1684 from PeterDaveHelloKitchen/Support-xAI-Grok
Add support of xAI and their Grok-2 & Grok-3 model
2025-04-11 09:53:08 +03:00
Tal
e4f40da35c
Merge pull request #1680 from PeterDaveHelloKitchen/Add-Groq-Llama-4-scout-and-maverick-17b
Add support of Meta's Llama 4 Scout and Maverick 17b from Groq Cloud
2025-04-11 09:51:21 +03:00
Peter Dave Hello
0ac7028bc6 Support xAI Grok-3 series models
Reference:
- https://docs.x.ai/docs/release-notes#april-2025
2025-04-11 00:40:00 +08:00
Hussam Lawen
a919c62606
Update options.md 2025-04-10 18:23:52 +03:00
Hussam Lawen
abda701539
Merge pull request #1689 from qodo-ai/docs/chrome_ext_options
docs: add Chrome extension options documentation page
2025-04-10 16:33:30 +03:00
benedict.lee
9c06b6b266 Apply PR review feedback: Code style and functionality improvements 2025-04-10 21:56:37 +09:00
Benedict Lee
c5165d917b
refactor: Validate all required parameters before proceeding
Co-authored-by: ofir-frd <85901822+ofir-frd@users.noreply.github.com>
2025-04-10 19:59:34 +09:00
Benedict Lee
6bf093a6a1
refactor: Add GitHub provider check for conversation history
Co-authored-by: ofir-frd <85901822+ofir-frd@users.noreply.github.com>
2025-04-10 19:41:43 +09:00
Hussam.lawen
da59a6dbe8
docs: add Chrome extension options documentation page 2025-04-10 12:46:06 +03:00
Hussam.lawen
e44b371d34
docs: add Chrome extension options documentation page 2025-04-10 11:46:10 +03:00
Benedict Lee
8952459f6d
Update pr_agent/tools/pr_line_questions.py
Co-authored-by: Prateek <110811408+Prateikx@users.noreply.github.com>
2025-04-10 08:48:59 +09:00
benedict.lee
b53d2773a9 improve ask_line tool(add conversation history context) 2025-04-09 23:45:04 +09:00
Tal
edaab4b6b1
Merge pull request #1682 from qodo-ai/of/extend-rag-chapter
docs: Add RAG applications and alphabetize documentation
2025-04-09 13:21:51 +03:00
ofir-frd
2476dadf53 Enhance interactivity documentation with details on suggestion tracking 2025-04-09 11:25:56 +03:00
mrT23
526d7ff5d2
Update default number of code suggestions per chunk from 4 to 3 2025-04-09 08:24:26 +03:00
mrT23
cdc354c33b
disable dynamic variables 2025-04-08 21:07:45 +03:00
Ratish Panda
eb9c4fa110 add gemini 2.5 pro preview model token limit 2025-04-08 20:41:59 +05:30
CT Wu
ca95e876eb Enhance Bitbucket provider functionality and update secret configuration template. 2025-04-08 17:52:52 +08:00
ofir-frd
4ee9f784dd Alphabetize core abilities documentation links for better navigation 2025-04-08 12:06:11 +03:00
ofir-frd
ef7a8eafb6 Add RAG context enrichment application details for review, implement, and ask tools 2025-04-08 11:59:37 +03:00
Peter Dave Hello
83bb3b25d8 Add support of Meta's Llama 4 Scout and Maverick 17b from Groq Cloud
Reference:
- https://ai.meta.com/blog/llama-4-multimodal-intelligence/
- https://console.groq.com/docs/models#preview-models
- https://groq.com/llama-4-now-live-on-groq-build-fast-at-the-lowest-cost-without-compromise/
2025-04-08 01:47:15 +08:00
Peter Dave Hello
665fb90a98 Add support of xAI and their Grok-2 model
Close #1630
2025-04-08 01:36:21 +08:00
Tal
0161769f22
Merge pull request #1679 from PeterDaveHelloKitchen/Add-OpenAI-GPT-4.5-Preview
Add support of OpenAI GPT-4.5 Preview model
2025-04-07 20:07:55 +03:00
mrT23
629de489dd
Update RAG context enrichment documentation with enterprise plan requirements 2025-04-07 08:46:09 +03:00
Tal
a4957693ba
Merge pull request #1677 from saumil-kapadia-stellantispublic/patch-1
Updated Dockerfile.lambda for python version 3.12
2025-04-07 07:30:41 +03:00
saumil-kapadia-stellantispublic
e8171b0289
Updated Dockerfile.lambda for python version 3.12
Updated Dockerfile.lambda for python version 3.12
2025-04-06 22:40:04 +05:30
mrT23
d4cc57c32a
Improve code validation documentation with clearer suggestion application details 2025-04-04 16:54:23 +03:00
mrT23
cb47cd5144
Update interactivity documentation with consistent formatting and links 2025-04-04 11:36:40 +03:00
Tal
99d88f8d1d
Merge pull request #1674 from qodo-ai/of/add-iteractivity-content
Docs: Add Core Abilities / Interactivity
2025-04-04 11:32:13 +03:00
Tal
d938ff05ef
Merge pull request #1667 from jmrtnz94/1592_ENVLogLevel
Update logging configuration to use dynamic log level from settings
2025-04-04 11:31:44 +03:00
ofir-frd
ae6c4e741a Standardize capitalization in documentation navigation links 2025-04-04 11:04:56 +03:00
ofir-frd
282fb0ed28 Add interactive features documentation for PR workflow tools 2025-04-04 11:00:44 +03:00
Peter Dave Hello
9b19fcdc90 Add support of OpenAI GPT-4.5 Preview model
Reference:
- https://openai.com/index/introducing-gpt-4-5/
- https://platform.openai.com/docs/models/gpt-4.5-preview
2025-04-04 05:13:15 +08:00
Jose Martinez
76b447a62a Add logging configuration details to usage guide 2025-04-03 14:24:59 -05:00
Jose Martinez
b7b533ddf6 Update azuredevops logger setup to use dynamic log level from configuration 2025-04-03 14:10:52 -05:00
Jose Martinez
7987fd1be7 Update bitbucket logger setup to use dynamic log level from configuration 2025-04-03 14:10:11 -05:00
Jose Martinez
db06a8e49e Update github logger setup to use dynamic log level from configuration 2025-04-03 14:09:11 -05:00
Jose Martinez
4fa2d82179 Set default log level to DEBUG in configuration and logger setup 2025-04-03 14:07:10 -05:00
mrT23
1ffddaf719
Add self-reflection reference to code validation documentation 2025-04-03 19:36:05 +03:00
Tal
94aa090552
Merge pull request #1672 from qodo-ai/tr/docs52
Add code validation documentation for PR code suggestions
2025-04-03 17:55:32 +03:00
mrT23
2683b78e34
Add code validation documentation for PR code suggestions 2025-04-03 17:54:20 +03:00
mrT23
eac20ba0e2
Add code validation documentation for PR code suggestions 2025-04-03 17:52:38 +03:00
Tal
c2e61b7113
Update docs/docs/core-abilities/code_validation.md
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-04-03 17:52:06 +03:00
mrT23
c74a2efdb7
Add code validation documentation for PR code suggestions 2025-04-03 17:44:01 +03:00
ofir-frd
1710cd49f1
Merge pull request #1671 from qodo-ai/of/pr-reviewer-error-handling
fix: add error handling for missing review data in PR reviewer
2025-04-03 13:26:38 +03:00
ofir-frd
9254225949
fix: add error handling for missing review data in PR reviewer 2025-04-03 13:23:41 +03:00
sharoneyal
14971c4f5f
Add support for documentation content exceeding token limits (#1670)
* - Add support for documentation content exceeding token limits via two phase operation:
1. Ask LLM to rank headings which are most likely to contain an answer to a user question
2. Provide the corresponding files for the LLM to search for an answer.

- Refactor of help_docs to make the code more readable
- For the purpose of getting canonical path: git providers to use default branch and not the PR's source branch.
- Refactor of token counting and making it clear on when an estimate factor will be used.

* Code review changes:
1. Correctly handle exception during retry_with_fallback_models (to allow fallback model to run in case of failure)
2. Better naming for default_branch in bitbucket cloud provider
2025-04-03 11:51:26 +03:00
mrT23
ceaca3e621
Update feature comparison table with detailed links and new capabilities 2025-04-02 19:39:23 +03:00
mrT23
3b0225544a
Fix code example in PR reviewer prompts to correctly show added line 2025-04-02 08:23:01 +03:00
Jose Martinez
dbfc07ccc1 Update logging configuration to use dynamic log level from settings 2025-04-01 15:54:51 -05:00
mrT23
f0e0901b10
Update repository configuration references from main branch to default branch 2025-04-01 09:42:08 +03:00
mrT23
d749620ebb
Update default model reference from GPT-4 to o3-mini and improve model configuration docs 2025-04-01 08:15:09 +03:00
Tal
e692735b7b
Merge pull request #1662 from qodo-ai/tr/more_protections
Tr/more protections gitlab
2025-03-31 14:02:33 +03:00
Tal
ed00ef6ee3
Merge pull request #1663 from qodo-ai/tr/prompts_and_logic
Improve code analysis instructions for handling partial code blocks i…
2025-03-31 13:56:29 +03:00
sharoneyal
c674c5ed02
Update bitbucket related documentation (#1659) 2025-03-31 09:09:43 +03:00
mrT23
20cb139161
Improve code suggestion prompt to clarify handling of partial code segments in PR reviews 2025-03-31 08:39:40 +03:00
ofir-frd
8513a1a4b9
Merge pull request #1660 from qodo-ai/of/refine-rag-file
docs: Rename Company Codebase to RAG Context Enrichment
2025-03-30 10:23:04 +03:00
mrT23
a7ab04ba8d
Update trial information in Qodo Merge documentation with grace usage details 2025-03-30 09:18:45 +03:00
mrT23
afa4adcb23
Improve code analysis instructions for handling partial code blocks in PR reviews 2025-03-30 09:00:45 +03:00
mrT23
7bd0fefee4
Fix GitLab protections function and return value in PR questions 2025-03-29 19:53:46 +03:00
mrT23
02d9aed7fe
Fix GitLab provider to use default branch instead of target branch for repo settings 2025-03-29 19:39:56 +03:00
mrT23
7d47bd5f5e
Add GitLab protections to prevent quick actions in PR questions 2025-03-29 19:35:39 +03:00
ofir-frd
8f0df437dd Add video tutorials link to documentation index page 2025-03-29 15:38:12 +03:00
mrT23
ddf94c14a3
Add configuration option for PR Code Suggestions to control publishing when no suggestions found 2025-03-29 09:33:31 +03:00
ofir-frd
6b2a1ff529 Update image reference in rag_context_enrichment documentation 2025-03-28 17:00:42 +03:00
ofir-frd
4a5c115d20 Rename company_codebase to rag_context_enrichment in documentation 2025-03-28 16:54:52 +03:00
mrT23
069f5eb86f
Add Help Docs tool announcement to README.md with March 28, 2025 release notes 2025-03-28 15:48:10 +03:00
mrT23
7d57edf959
Improve help_docs documentation with clearer structure and usage examples 2025-03-28 15:22:08 +03:00
sharoneyal
6950b3ca6b
Merge pull request #1658 from qodo-ai/es/bugfix_on_help_docs_no_references_when_new_issue_created
Fix for bug in get_canonical_url_parts when a new issue created, without git url provided
2025-03-27 17:50:42 +02:00
Eyal Sharon
e422f50cfe Fix for bug in get_canonical_url_parts when a new issue created, without git url provided. 2025-03-27 17:29:02 +02:00
sharoneyal
66a667d509
Update main readme file + improve help docs (#1653)
* Update main readme file + improve help docs

* Add guide on running help_docs as a GitHub action.
2025-03-27 16:23:50 +02:00
sharoneyal
482cd7c680
Merge pull request #1651 from qodo-ai/es/github_publish_non_pr_comment
Add support for publishing comments on issues in GitHub provider
2025-03-27 16:19:20 +02:00
Eyal Sharon
991a866368 documents' link generation: Make sure prefix ends with '/' 2025-03-26 21:58:15 +02:00
mrT23
fcd9416129
Replace Qodo Merge references with PR-Agent in Bitbucket documentation 2025-03-26 20:06:32 +02:00
Eyal Sharon
255e1d0fc1 Missing class member 2025-03-26 14:29:50 +02:00
Eyal Sharon
7117e9fe0e Github Provider: Support publishing a comment on a non pr issue 2025-03-26 13:36:37 +02:00
Tal
b42841fcc4
Merge pull request #1649 from qodo-ai/hl/global_best_practices
docs: update configuration options and improve wiki documentation cla…
2025-03-26 13:07:09 +02:00
ofir-frd
839b6093cb
Update company_codebase.md 2025-03-26 09:50:01 +02:00
ofir-frd
351b9d9115
Update company_codebase.md 2025-03-26 09:47:59 +02:00
ofir-frd
3e11f07f0b
Merge pull request #1650 from qodo-ai/of/add-ref-image-to-rag
Add codebase references screenshot to company_codebase documentation
2025-03-26 09:35:00 +02:00
ofir-frd
1d57dd7443 Update image alt text in company_codebase documentation 2025-03-26 08:44:11 +02:00
ofir-frd
7aa3d12876 Add codebase references screenshot to company_codebase documentation 2025-03-26 08:41:56 +02:00
Tal
6f6595c343
Merge pull request #1634 from ishaansehgal99/main
fix: Logging and Commenting
2025-03-26 07:51:24 +02:00
Ishaan Sehgal
b300cfa84d
Improve error logging with artifacts 2025-03-25 22:49:24 -07:00
Hussam.lawen
9a21069075
docs: update configuration options and improve wiki documentation clarity 2025-03-25 13:53:22 +02:00
ofir-frd
85f7b99dea
Merge pull request #1648 from qodo-ai/of/add-rag-docs
Update Docs: Company Codebase Overview, RAG Integration & Configuration
2025-03-25 12:51:39 +02:00
ofir-frd
d6f79f486a Update code block syntax highlighting in company_codebase documentation 2025-03-25 12:42:11 +02:00
ofir-frd
b0ed584821 Update company codebase documentation link and rename file 2025-03-25 12:27:36 +02:00
sharoneyal
05ea699a92
Merge pull request #1647 from qodo-ai/es/bugfix_github_app_git_url_generation
Bugfix: Incorrect git url in case of GitHub app
2025-03-25 12:20:10 +02:00
Eyal Sharon
605eef64e7 Generate git url correctly in case invoked from both user and GitHub app contexts 2025-03-25 12:08:00 +02:00
ofir-frd
c94aa58ae4 Fix typo in Qodo Merge models documentation 2025-03-25 09:23:30 +02:00
Tal
e20e7c138c
Merge pull request #1644 from qodo-ai/es/help_docs
Adding a new tool: /help_docs
2025-03-25 08:17:37 +02:00
Eyal Sharon
b161672218 Remove redundant abstractmethod for _prepare_clone_url_with_token 2025-03-24 15:56:45 +02:00
Eyal Sharon
5bc253e1d9 Add token count estimation factor to config 2025-03-24 15:53:22 +02:00
Eyal Sharon
8495e4d549 More comprehensive handling in count_tokens(force_accurate==True): In case model is neither OpenAI nor Anthropic Claude, simply use an elbow room factor in order to force a more conservative estimate. 2025-03-24 15:47:35 +02:00
Eyal Sharon
fb324d106c Remove non implemented method _prepare_clone_url_with_token from providers which don't support it and instead, issue a warning in base class. 2025-03-24 14:06:06 +02:00
Eyal Sharon
a4387b5829 Fix more /improve suggestions 2025-03-24 11:19:23 +02:00
Eyal Sharon
477ebf4926 Code recommendations from /improve 2025-03-24 10:54:50 +02:00
Eyal Sharon
fe98779a88 Update images in help_docs md 2025-03-24 10:32:55 +02:00
Eyal Sharon
e14fc7e02d Fix missing self.bearer_token for bitbucket related providers 2025-03-24 10:21:23 +02:00
Eyal Sharon
1bd65934df Merge origin/main into es/help_docs 2025-03-23 20:04:58 +02:00
Eyal Sharon
88a17848eb - Documentation
- Better error handling in case could not deduce repo url
2025-03-23 20:04:33 +02:00
Tal
1aab87516e
Merge pull request #1637 from Octoslav/doc/ollama
doc: Add info about ollama context length
2025-03-23 15:22:14 +02:00
Eyal Sharon
dd80276f3f Support cloning repo
Support forcing accurate token calculation (claude)
Help docs: Add desired branch in case of user supplied git repo, with default set to "main"
Better documentation for getting canonical url parts
2025-03-23 09:55:58 +02:00
mrT23
ad17cb4d92
cleanup 2025-03-23 09:26:44 +02:00
Tal
6efb694945 Generated best practices file 2025-03-23 09:07:01 +02:00
Slava Eliseev
dde362bd47 doc: Add info about ollama context length 2025-03-22 00:53:48 +03:00
Tal
a9ce909713
Merge pull request #1636 from cdornano/cdornano-patch-1
Update azuredevops_provider.py
2025-03-21 18:54:18 +02:00
cdornano
e925f31ac0
Update azuredevops_provider.py
Will make qodo agent comments "Active" by default, and not "ByDesign" which is renders to "unknown" on Azure DevOps PRs. With this, PR authors are obliged to treat the PR comment of the qodo agent before Merging. This will help companies in analysing the impact of qodo agent on their PR, as every comment needs to be treated as either "Resolved" "Won't fix" "Close"
2025-03-21 12:57:03 +00:00
Eyal Sharon
5e7e353670 Added help_docs feature. 2025-03-20 23:48:01 +02:00
ishaansehgal99
52d4312c9a fix: Logging and Commenting 2025-03-20 13:59:43 -07:00
Ishaan Sehgal
8ec6067b26
Merge branch 'qodo-ai:main' into main 2025-03-20 13:57:46 -07:00
ishaansehgal99
bc575e5a67 fix: Logging and Commenting 2025-03-20 13:55:07 -07:00
mrT23
b087458e33
Merge remote-tracking branch 'origin/main' 2025-03-20 21:49:27 +02:00
mrT23
6610921bba
cleanup 2025-03-20 21:49:19 +02:00
Tal
3fd15042a6
Merge pull request #1628 from thonic/main
docs: Update description of gitlab-webhook installation.
2025-03-20 21:18:57 +02:00
Hussam Lawen
4ab2396be0
Merge pull request #1625 from qodo-ai/hl/update_configs_docs
Hl/update configs docs
2025-03-20 14:09:39 +02:00
Antonín Hoskovec
a75d430751 docs: Update description of gitlab-webhook installation. 2025-03-18 15:40:49 +01:00
Tal
737cf559d9
Merge pull request #1626 from eltociear/patch-3
chore: update pr_reviewer_prompts.toml
2025-03-18 08:07:11 +02:00
Ikko Eltociear Ashimine
fa77828db2
chore: update pr_reviewer_prompts.toml
minor fix
2025-03-18 03:52:36 +09:00
mrT23
f506fb1e05
docs: clarify that thumbs up/down feedback is for statistics only 2025-03-17 19:46:07 +02:00
Hussam.lawen
4ea46d5b25
docs: fix formatting of note in configuration options 2025-03-17 14:42:57 +02:00
Hussam.lawen
ed9fcd0238
docs: add Bitbucket organization-level configuration documentation 2025-03-17 14:26:05 +02:00
Hussam.lawen
9d3bd7289a
docs: add Bitbucket organization-level configuration documentation 2025-03-17 14:24:38 +02:00
mrT23
1724a65ab2
docs: remove similar issues tool from documentation 2025-03-16 08:58:02 +02:00
Tal
6883ced9e3
Merge pull request #1624 from qodo-ai/of/config-view-fixes
Move Config Content Inside Collapsible Titles
2025-03-15 21:50:31 +02:00
mrT23
29e28056db
refactor: move response_language config to group with other language settings 2025-03-15 09:58:20 +02:00
mrT23
507cd6e675
skip in PR config 2025-03-15 09:56:57 +02:00
mrT23
dd1a0e51bb
docs: reorganize and clarify Jira integration documentation 2025-03-15 09:13:26 +02:00
ofir-frd
b4e2a32543
Update describe.md 2025-03-14 12:04:58 +02:00
ofir-frd
677a54c5a0
Update review.md 2025-03-14 12:02:26 +02:00
mrT23
a211175fea
docs: expand on the purpose of code suggestions in improve.md 2025-03-13 17:06:08 +02:00
Tal
64f52288a1
Merge pull request #1616 from qodo-ai/tr/updates34
Tr/updates34
2025-03-12 07:20:25 +02:00
Hussam Lawen
4ee1704862
Merge pull request #1615 from qodo-ai/hl/self_review_docs
Update improve.md
2025-03-11 18:26:37 +02:00
mrT23
f5e381e1b2
Add fallback for YAML parsing using original response text 2025-03-11 17:11:10 +02:00
mrT23
2cacaf56b0
Reduce collapsible_file_list_threshold from 8 to 6 2025-03-11 17:08:26 +02:00
mrT23
9a574e0caa
Add filter for files with bad extensions in language handler 2025-03-11 17:03:05 +02:00
mrT23
0f33750035
Remove unused filter_bad_extensions function and rename diff_files_original to diff_files 2025-03-11 16:56:41 +02:00
mrT23
4713175fcf
Update code suggestion evaluation criteria and line number descriptions 2025-03-11 16:50:42 +02:00
mrT23
d16012a568
Add decoupled and non-decoupled modes for code suggestions 2025-03-11 16:46:53 +02:00
Hussam Lawen
01f1599336
Update improve.md 2025-03-11 16:31:31 +02:00
mrT23
f5bd98a3b9
Add check for auto-generated files in language handler 2025-03-11 14:37:45 +02:00
Tal
1c86af30b6
Merge pull request #1614 from KennyDizi/main
Fix default value for extended_thinking_max_output_tokens
2025-03-11 14:34:58 +02:00
Kenny Dizi
0acd5193cb Align it with document 2025-03-11 17:48:12 +07:00
Kenny Dizi
ffefcb8a04 Fix default value for extended_thinking_max_output_tokens 2025-03-11 17:48:12 +07:00
mrT23
35bb2b31e3
feat: add enable_comment_approval to encoded forbidden args 2025-03-10 12:10:19 +02:00
mrT23
a18f9d00c9
docs: rename enable_manual_approval to enable_comment_approval for clarity 2025-03-10 12:01:16 +02:00
Tal
20d709075c
Merge pull request #1613 from qodo-ai/hl/update_auto_approve_docs
docs: update auto-approval documentation with clearer configuration
2025-03-10 11:56:48 +02:00
Tal
52c99e3f7b
Merge pull request #1605 from KennyDizi/main
Support extended thinking for model `claude-3-7-sonnet-20250219`
2025-03-09 17:03:37 +02:00
Hussam.lawen
692bc449be
Merge commit '338ec5cae06671406a1b104143a395882caef2bc' into hl/update_auto_approve_docs 2025-03-09 17:03:01 +02:00
Hussam.lawen
884b49dd84
Add encoded: enable_manual_approval 2025-03-09 17:01:04 +02:00
Hussam Lawen
338ec5cae0
Update docs/docs/tools/improve.md
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-03-09 16:45:08 +02:00
Hussam.lawen
c6e4498653
docs: improve auto-approval documentation formatting and clarity 2025-03-09 15:03:45 +02:00
Hussam.lawen
c7c411eb63
docs: update auto-approval documentation with clearer configuration options 2025-03-09 14:26:01 +02:00
Kenny Dizi
222155e4f2 Optimize logging 2025-03-08 08:53:29 +07:00
Kenny Dizi
f9d5e72058 Move logic to _configure_claude_extended_thinking 2025-03-08 08:35:34 +07:00
Tal
2619ff3eb3
Merge pull request #1612 from congziqi77/main
fix: repeat processing files to ignore
2025-03-07 21:08:46 +02:00
Tal
15e8167115
Update configuration.toml 2025-03-07 18:22:26 +02:00
mrT23
d6ad511511
docs: restructure and improve code suggestions guidance in improve documentation 2025-03-07 18:08:37 +02:00
mrT23
1943662946
docs: improve guidance on code suggestions quality in improve documentation 2025-03-07 16:55:45 +02:00
mrT23
c1fb76abcf
docs: improve guidance on code suggestions quality in improve documentation 2025-03-07 16:51:42 +02:00
Kenny Dizi
121d90a9da Update document for extended thinking tokens 2025-03-07 17:32:03 +07:00
Kenny Dizi
a8935dece3 Using 2048 for extended_thinking_budget_tokens as well as extended_thinking_max_output_tokens 2025-03-07 17:27:56 +07:00
congziqi
fd12191fcf fix: repeat processing files to ignore 2025-03-07 09:11:43 +08:00
mrT23
61b6d1f1a3
Merge remote-tracking branch 'origin/main' 2025-03-06 19:09:08 +02:00
mrT23
874b7c7da4
docs: update default value for persistent_comment in improve documentation 2025-03-06 19:09:00 +02:00
Tal
a0d86b532f
Merge pull request #1611 from muhammad-asn/main
feat: add DeepInfra support
2025-03-06 18:22:07 +02:00
muhammad-asn
4f2551e0a6 feat: add DeepInfra support 2025-03-06 15:49:07 +07:00
mrT23
eb5f38b13b
Merge remote-tracking branch 'origin/main' 2025-03-06 09:31:55 +02:00
mrT23
1753bc703e
docs: remove reflect command references from automations documentation 2025-03-06 09:31:46 +02:00
Tal
31de811820
Merge pull request #1610 from qodo-ai/tr/prompts_enhancment
fix: validate one-liner suggestions to prevent repeating existing code
2025-03-06 08:42:15 +02:00
mrT23
4c0e371238
fix: validate one-liner suggestions to prevent repeating existing code 2025-03-06 08:18:52 +02:00
Tal
ca286b8dc0
Merge pull request #1607 from qodo-ai/tr/docs_claude
docs: update model references to Claude 3.7 Sonnet and o3-mini throug…
2025-03-05 08:22:01 +02:00
mrT23
0c30f084bc
docs: standardize Claude model naming convention in documentation 2025-03-05 08:20:48 +02:00
mrT23
a33bee5805
docs: update model references to Claude 3.7 Sonnet and o3-mini throughout documentation 2025-03-05 08:16:09 +02:00
mrT23
f32163d57c
Merge remote-tracking branch 'origin/main' 2025-03-04 08:24:58 +02:00
mrT23
bb24a6f43d
docs: update evaluation dataset size in finetuning benchmark documentation 2025-03-04 08:24:48 +02:00
Tal
5b267332b9
Merge pull request #1604 from ryo-kagawa/fix/mistake-link
docs: fix usage-guide/automations_and_usage.md in mistake link
2025-03-03 21:23:04 +02:00
Kenny Dizi
30bf7572b0 Validate extended thinking parameters 2025-03-03 18:44:26 +07:00
Kenny Dizi
b5ce49cbc0 Update document for dedicated claude models configuration 2025-03-03 18:31:17 +07:00
Kenny Dizi
440d2368a4 Set temperature to 1 when using extended thinking 2025-03-03 18:30:52 +07:00
Kenny Dizi
215c10cc8c Add thinking block to request parameters 2025-03-03 18:29:33 +07:00
Kenny Dizi
7623e1a419 Removed trailing spaces 2025-03-03 18:23:45 +07:00
Kenny Dizi
5e30e190b8 Define models that support extended thinking feature 2025-03-03 18:22:31 +07:00
Kenny Dizi
5447dd2ac6 Add support claude extended thinking configurations 2025-03-03 18:21:57 +07:00
賀川 諒
214200b816 docs: fix usage-guide/automations_and_usage.md in mistake link 2025-03-03 19:59:06 +09:00
Tal
fcb7d97640
Merge pull request #1602 from qodo-ai/tr/reqs
chore: update version, dependencies and company branding
2025-03-02 18:05:21 +02:00
mrT23
224920bdb7
chore: update version, dependencies and company branding 2025-03-02 17:37:33 +02:00
Tal
d3f83f3069
Merge pull request #1594 from atsushi-ishibashi/support_cross_region_claude3.7
chore: add bedrock/us.anthropic.claude-3-7-sonnet-20250219-v1:0
2025-03-02 17:24:05 +02:00
atsushi-ishibashi
8e6267b0e6 chore: bedrock/us.anthropic.claude-3-7-sonnet-20250219-v1:0 2025-03-02 08:44:23 +09:00
Tal
9809e2dbd8
Update README.md 2025-02-28 12:07:49 +02:00
mrT23
7cf521c001
fix: improve null safety in GitLab webhook handler 2025-02-27 11:53:11 +02:00
Tal
e71c0f1805
Merge pull request #1586 from qodo-ai/tr/docs245
docs: add language configuration documentation and update changelog
2025-02-27 11:10:20 +02:00
mrT23
8182a4afc0
docs: update default model to o3-mini and improve language configuration instructions 2025-02-27 11:06:31 +02:00
mrT23
3817aa2868
fix: remove redundant temperature logging in litellm handler 2025-02-27 10:55:01 +02:00
mrT23
94a8606d24
fix: update default configuration values for publishing and verbosity 2025-02-27 10:52:20 +02:00
mrT23
af635650f1
fix: improve response language handling and configuration documentation 2025-02-27 10:50:28 +02:00
mrT23
222f276959
docs: add language configuration documentation and update changelog 2025-02-27 10:29:05 +02:00
Tal
9a32e94b3e
Merge pull request #1579 from qodo-ai/response-language-configuration
Add a language configuration to translate language generated by QodoM…
2025-02-27 08:01:13 +02:00
Tal
7c56eee701
Update README.md 2025-02-27 07:59:01 +02:00
Tal
48b3c69c10
Merge pull request #1575 from GOOD21/feature/draft-ready-trigger
gitlab webhook automatically trigger pr_command when MR changes from Draft to Ready
2025-02-27 07:57:12 +02:00
Tal
9d1c8312b5
Merge pull request #1584 from qodo-ai/tr/gitlab_fix
Tr/gitlab fix
2025-02-26 21:35:24 +02:00
mrT23
64e5a87530
fix: improve error handling and null safety in PR description tool 2025-02-26 21:33:40 +02:00
mrT23
9a9acef0e8
fix: handle empty commits and errors in GitLab provider's get_latest_commit_url 2025-02-26 21:24:53 +02:00
AdamWalker-112358
3ff8f1ff11 Add documentation 2025-02-26 18:45:24 +02:00
Hussam Lawen
c7f4b87d6f
Merge pull request #1583 from qodo-ai/hl/enhance_azure_devops
feat: enhance Azure DevOps integration with improved error handling a…
2025-02-26 17:17:31 +02:00
Hussam Lawen
9db44b5f5f
Update pr_agent/servers/azuredevops_server_webhook.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-26 17:16:07 +02:00
Hussam.lawen
70a2377ac9
fix: make Azure DevOps webhook handler asynchronous 2025-02-26 17:13:38 +02:00
Hussam.lawen
52a68bcd44
fix: adjust newline formatting in issue details summary 2025-02-26 16:49:44 +02:00
Hussam.lawen
0a4c02c8b3
feat: enhance Azure DevOps integration with improved error handling and PR commands 2025-02-26 16:40:46 +02:00
AdamWalker-112358
e253f18e7f Remove default configuration 2025-02-26 14:43:56 +02:00
AdamWalker-112358
d6b6191f90 Remove uneccessary hardcoded configurations list 2025-02-26 14:42:32 +02:00
AdamWalker-112358
de80901284 Add a language configuration to translate language generated by QodoMerge, such as suggestions and desciption text 2025-02-26 14:37:15 +02:00
GOOD21
dfbd8dad5d Automatically trigger pr_command when MR changes from Draft to Ready 2025-02-26 18:12:48 +08:00
Tal
d6f405dd0d
Merge pull request #1564 from chandan84/fix/support_litellm_extra_headers
Fix/support litellm extra headers
2025-02-26 10:15:22 +02:00
Tal
25ba9414fe
Merge pull request #1561 from KennyDizi/main
Support reasoning effort via configuration
2025-02-26 10:13:05 +02:00
Kenny Dizi
d097266c38 Fix typo in document 2025-02-26 07:57:22 +07:00
Kenny Dizi
fa1eda967f Add document for OpenAI models dedicated parameters 2025-02-26 07:54:50 +07:00
chandan84
c89c0eab8c
Update changing_a_model.md
updated docs for extra_headers usage for litellm
2025-02-25 15:15:53 -05:00
chandan84
93e34703ab
Update litellm_ai_handler.py
updates made based on review on https://github.com/qodo-ai/pr-agent/pull/1564
2025-02-25 14:44:03 -05:00
Hussam Lawen
c15ed628db
Merge pull request #1572 from qodo-ai/hl/auto_approve_docs
docs: add auto-approve feature to platform support matrix
2025-02-25 13:54:44 +02:00
Hussam.lawen
70f47336d6
link + add to readme 2025-02-25 13:41:06 +02:00
Tal
c6a6a2f352
Merge pull request #1570 from hirobf10/support-claude-3-7
feat: support Claude 3.7 Sonnet
2025-02-25 10:49:42 +02:00
Hiroyuki Otomo
1dc3db7322
Update pr_agent/algo/__init__.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-25 16:51:55 +09:00
Hiroyuki Otomo
049fc558a8
Update pr_agent/algo/__init__.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-25 16:51:50 +09:00
Hiroyuki Otomo
2dc89d0998
Update pr_agent/algo/__init__.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-25 16:51:39 +09:00
Tal
07bbfff4ba
Update improve.md 2025-02-25 09:06:11 +02:00
Tal
328637b8be
Merge branch 'main' into hl/auto_approve_docs 2025-02-25 09:05:30 +02:00
Hussam.lawen
44d9535dbc
docs: add auto-approve feature to platform support matrix 2025-02-25 09:02:45 +02:00
Tal
7fec17f3ff
Merge pull request #1571 from qodo-ai/of/update-overview
Docs: fix static code and remove Incremental PR review
2025-02-25 08:56:55 +02:00
ofir-frd
cd15f64f11 Merge branch 'main' into of/update-overview 2025-02-25 08:23:08 +02:00
ofir-frd
d4ac206c46 docs: fix static code and remove Incremental PR review 2025-02-25 08:22:46 +02:00
Tal
444910868e
Merge pull request #1555 from GOOD21/fix/push-events
Enhanced gitlab webhook handling for push events without object_attributes
2025-02-25 07:56:03 +02:00
Hiroyuki Otomo
a24b06b253 feat: support Claude 3.7 Sonnet 2025-02-25 12:58:20 +09:00
Tal
393516f746
Merge pull request #1556 from benedict-lee/main
Fix prompt to not output diff prefixes in existing_code,improved_code pydantic definitions
2025-02-24 22:10:30 +02:00
Tal
152b111ef2
Merge pull request #1568 from qodo-ai/tr/hunk_fallback
feat: improve patch extension with new file content comparison
2025-02-24 13:25:49 +02:00
mrT23
56250f5ea8
feat: improve patch extension with new file content comparison 2025-02-24 11:46:12 +02:00
Benedict Lee
7b1df82c05
rollback : pr_code_suggestions_prompts.toml 2025-02-24 09:30:00 +09:00
Benedict Lee
05960f2c3f
rollback : pr_code_suggestions_prompts.toml 2025-02-24 09:15:51 +09:00
Benedict Lee
feb306727e
fix : refine handling of leading '+' in response text 2025-02-24 09:15:00 +09:00
mrT23
2a647709c4
style: improve AI search UI and add dark mode support 2025-02-23 21:04:19 +02:00
Tal
a4cd05e71c
Merge pull request #1566 from qodo-ai/tr/ai_search
Tr/ai search
2025-02-23 16:38:06 +02:00
mrT23
da6ef8c80f
feat: update docs search API endpoint to production URL 2025-02-23 16:31:06 +02:00
mrT23
775bfc74eb
feat: update docs search API endpoint to production URL 2025-02-23 16:29:24 +02:00
Kenny Dizi
ebdbde1bca
Merge branch 'main' into main 2025-02-23 21:26:44 +07:00
Tal
e16c6d0b27
Merge pull request #1565 from qodo-ai/tr/auto_approval_Docs
docs: add auto-approval configuration documentation
2025-02-23 08:36:11 +02:00
mrT23
f0b52870a2
docs: update auto-approval feature documentation and configuration 2025-02-23 08:34:16 +02:00
Tal
1b35f01aa1
Merge pull request #1560 from qodo-ai/of/fix-improve-notes
Improve documentation formatting and readability
2025-02-23 08:19:28 +02:00
mrT23
a0dc9deb30
docs: add auto-approval configuration documentation 2025-02-23 08:15:14 +02:00
ofir-frd
7e32a08f00
Refresh implement image in README 2025-02-23 08:05:17 +02:00
chandan84
84983f3e9d line 253-261, pass extra_headers fields from settings to litellm, exception handling to check if extra_headers is in dict format 2025-02-22 14:56:17 -05:00
chandan84
71451de156
Update litellm_ai_handler.py
line 253-258, pass extra_headers fields from settings to litellm, exception handling to check if extra_headers is in dict format
2025-02-22 14:43:03 -05:00
chandan84
0e4a1d9ab8 line 253-258, pass extra_headers fields from settings to litellm, exception handling to check if extra_headers is in dict format 2025-02-22 14:38:38 -05:00
chandan84
e7b05732f8 line 253-255, pass extra_headers fields from settings to litellm 2025-02-22 14:12:39 -05:00
Trung Dinh
37083ae354 Improve logging for adding parameters: temperature and reasoning_effort 2025-02-22 22:19:58 +07:00
ofir-frd
020ef212c1 docs: fix notes admonition syntax in documentation 2025-02-22 16:46:31 +02:00
mrT23
01cd66f4f5
chore: comment out test_fetching_sub_issues.py due to API calls 2025-02-22 16:06:30 +02:00
ofir-frd
af72b45593 docs: update repository URLs and name 2025-02-22 11:01:54 +02:00
Trung Dinh
9abb212e83 Add reasoning_effort argument to chat completion request 2025-02-21 22:16:18 +07:00
Trung Dinh
e81b0dca30 Support reasoning_effort via configuration file 2025-02-21 22:14:58 +07:00
Trung Dinh
d37732c25d Define ReasoningEffort enum 2025-02-21 22:10:49 +07:00
Trung Dinh
e6b6e28d6b Define SUPPORT_REASONING_EFFORT_MODELS list 2025-02-21 22:10:33 +07:00
ofir-frd
5bace4ddc6 docs: final touches 2025-02-21 10:47:19 +02:00
ofir-frd
b80d7d1189 Merge branch 'main' into of/fix-improve-notes 2025-02-21 10:38:21 +02:00
ofir-frd
b2d8dee00a docs: improve formatting and readability of documentation 2025-02-21 10:38:18 +02:00
Tal
ac3dbdf5fc
Merge pull request #1529 from WonOfAKind/feature/sub-issues-ticket-1499
Added sub-issue fetching to enhance PR analysis
2025-02-21 09:42:18 +02:00
GOOD21
f143a24879 remove unnecessary code 2025-02-21 13:35:48 +08:00
GOOD21
347af1dd99 use merge_request with oldrev instead of push 2025-02-21 13:24:20 +08:00
Hussam Lawen
d91245a9d3
Update pr_agent/git_providers/github_provider.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-20 20:12:49 +02:00
Hussam Lawen
bfdaac0a05
Update pr_agent/git_providers/github_provider.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-20 20:11:25 +02:00
Wonchae Lee
183d2965d0
Update pr_agent/tools/ticket_pr_compliance_check.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-20 12:53:26 -05:00
Wonchae Lee
86647810e0
Update pr_agent/tools/ticket_pr_compliance_check.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-20 12:53:17 -05:00
Wonchae Lee
56978d9793
Update pr_agent/git_providers/github_provider.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-20 12:32:29 -05:00
Wonchae Lee
6433e827f4
Update pr_agent/git_providers/github_provider.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-20 12:32:22 -05:00
Wonchae Lee
c0e78ba522
Update pr_agent/git_providers/github_provider.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-20 12:32:14 -05:00
Wonchae Lee
45d776a1f7
Update pr_agent/git_providers/github_provider.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-20 12:32:06 -05:00
Wonchae Lee
6e19e77e5e
Update pr_agent/git_providers/github_provider.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-20 12:31:25 -05:00
mrT23
1e98d27ab4
docs: update custom prompt configuration parameter name 2025-02-20 18:38:18 +02:00
Tal
a47d4032b8
Merge pull request #1559 from qodo-ai/tr/date_review
feat: add current date to PR review metadata
2025-02-20 18:07:52 +02:00
mrT23
2887d0a7ed
refactor: move CLI argument validation to dedicated class 2025-02-20 17:51:16 +02:00
mrT23
a07f6855cb
feat: add current date to PR review metadata 2025-02-20 16:44:45 +02:00
Benedict Lee
237a6ffb5f
fix : existing and improved code fields to clarify formatting requirements 2025-02-20 11:52:53 +09:00
GOOD21
5e1cc12df4 Enhanced webhook handling for push events without object_attributes 2025-02-20 10:47:21 +08:00
mrT23
29a350b4f8
docs: remove deepseek-r1 from supported models list 2025-02-18 17:49:19 +02:00
Tal
6efcd61087
Merge pull request #1552 from qodo-ai/tr/custom_reasoning_model
docs
2025-02-18 17:41:59 +02:00
mrT23
c7cafa720e
docs 2025-02-18 17:04:55 +02:00
Tal
9de9b397e2
Merge pull request #1551 from qodo-ai/tr/custom_reasoning_model
feat: add support for custom reasoning models
2025-02-18 12:04:24 +02:00
Tal
35059cadf7
Update pr_agent/algo/ai_handlers/litellm_ai_handler.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-18 11:50:48 +02:00
Tal
0317951e32
Update pr_agent/settings/configuration.toml
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-18 11:48:25 +02:00
mrT23
4edb8b89d1
feat: add support for custom reasoning models 2025-02-18 11:46:22 +02:00
Tal
a5278bdad2
Merge pull request #1550 from qodo-ai/AdamWalkerQodo-patch-1
Update README.md
2025-02-18 11:26:10 +02:00
AdamWalkerQodo
3fd586c9bd
Update README.md 2025-02-18 11:20:02 +02:00
AdamWalkerQodo
717b2fe5f1
Update README.md
Rebranding
2025-02-18 09:32:15 +02:00
mrT23
262c1cbc68
Merge remote-tracking branch 'origin/main' 2025-02-17 20:33:28 +02:00
mrT23
defdaa0e02
docs: simplify and improve PR filtering documentation 2025-02-17 20:33:19 +02:00
Tal
5ca6918943
Merge pull request #1539 from yu-iskw/support-gemini-2.0
Support generally available `gemini-2.0-flash`
2025-02-17 19:47:50 +02:00
Tal
cfd813883b
Merge pull request #1543 from qodo-ai/of/update-improve-docs
docs: add documentation for new `improve` `more` feature
2025-02-17 17:58:15 +02:00
Tal
c6d32a4c9f
Merge pull request #1548 from qodo-ai/AdamWalkerQodo-patch-2
Update README.md
2025-02-17 17:57:33 +02:00
AdamWalkerQodo
ae4e99026e
Update README.md 2025-02-17 17:53:27 +02:00
Tal
42f493f41e
Merge pull request #1547 from qodo-ai/AdamWalkerQodo-patch-1
Add files via upload
2025-02-17 17:29:11 +02:00
AdamWalkerQodo
34d73feb1d
Update README.md
Qodo Rebrand
2025-02-17 17:27:13 +02:00
AdamWalkerQodo
ebc94bbd44
Add files via upload
Qodo Rebrand
2025-02-17 17:23:22 +02:00
Tal
4fcc7a5f3a
Update README.md 2025-02-17 16:19:05 +02:00
Tal
41760ea333
Merge pull request #1546 from qodo-ai/revert-1545-AdamWalkerQodo-patch-1
Revert "Update README.md"
2025-02-17 16:11:33 +02:00
Tal
13128c4c2f
Revert "Update README.md" 2025-02-17 16:11:20 +02:00
AdamWalkerQodo
da168151e8
Merge pull request #1545 from qodo-ai/AdamWalkerQodo-patch-1
Approved by Dedy
2025-02-17 16:10:06 +02:00
AdamWalkerQodo
a132927052
Update README.md
Updating images for Rebrand
2025-02-17 15:18:18 +02:00
ofir-frd
b52d0726a2 docs: fix capitalization in improve tool configuration description 2025-02-17 12:37:13 +02:00
ofir-frd
fc411dc8bc docs: add documentation for new improve more feature 2025-02-17 12:34:58 +02:00
Yu Ishikawa
22f02ac08c Support generally available gemini-2.0-flash
Signed-off-by: Yu Ishikawa <yu-iskw@users.noreply.github.com>
2025-02-17 08:40:05 +09:00
Tal
52883fb1b5
Merge pull request #1537 from KennyDizi/main
Refactoring `LiteLLMAIHandler` class for better using reasoning models
2025-02-16 19:50:03 +02:00
Trung Dinh
adfc2a6b69 Add temperature only if model supports it 2025-02-16 15:43:40 +07:00
Trung Dinh
c4aa13e798 Add o1-preview model to USER_MESSAGE_ONLY_MODELS and NO_SUPPORT_TEMPERATURE_MODELS 2025-02-16 15:18:52 +07:00
Trung Dinh
90575e3f0d Add NO_SUPPORT_TEMPERATURE_MODELS list 2025-02-16 15:17:59 +07:00
Trung Dinh
fcbe986ec7 Removed o3 model from USER_MESSAGE_ONLY_MODELS 2025-02-16 15:17:12 +07:00
Trung Dinh
061fec0d36 Removed o1 model from USER_MESSAGE_ONLY_MODELS 2025-02-16 15:15:50 +07:00
mrT23
778d00d1a0
Merge remote-tracking branch 'origin/main' 2025-02-15 11:32:43 +02:00
mrT23
cc8d5a6c50
docs: fix broken links in GitLab Server installation section 2025-02-15 11:32:32 +02:00
Tal
62c47f9cb5
Merge pull request #1536 from PeterDaveHelloKitchen/OptimizeDockerfile
Use `pip install` with `--no-cache-dir` in `Dockerfile.github_action`
2025-02-15 11:25:41 +02:00
mrT23
bb31b0c66b
docs: update Qodo Merge installation guide with GitLab Server details 2025-02-15 11:23:52 +02:00
Tal
359c963ad1
Merge pull request #1531 from hi120ki/add-pull-request-target-event
Add : pull_request_target event on GitHub Actions integration
2025-02-15 08:08:20 +02:00
Peter Dave Hello
130b1ff4fb Use pip install with --no-cache-dir in Dockerfile.github_action 2025-02-15 00:17:02 +08:00
Tal
605a4b99ad
Merge pull request #1534 from qodo-ai/tr/help_r
feat: improve help tool with markdown header formatting and error han…
2025-02-13 11:50:59 +02:00
mrT23
b989f41b96
fix: correct typo in help tool message ("be" -> "can be") 2025-02-13 11:48:07 +02:00
mrT23
26168a605b
fix: correct typo in help tool message ("be" -> "can be") 2025-02-13 11:47:21 +02:00
mrT23
2c37b02aa0
feat: improve help tool with markdown header formatting and error handling 2025-02-13 11:44:50 +02:00
Tal
a2550870c2
Merge pull request #1532 from qodo-ai/tr/review_effort
fix: update review effort label format to use X/5 notation
2025-02-13 09:25:53 +02:00
mrT23
279c6ead8f
fix: update review effort label format to use X/5 notation 2025-02-13 08:41:25 +02:00
Hi120ki
c9500cf796
Add : pull_request_target event on GitHub Actions integration
Signed-off-by: Hi120ki <12624257+hi120ki@users.noreply.github.com>
2025-02-13 12:03:30 +09:00
WonOfAKind
0f63d8685f Added sub-issue fetching to enhance PR analysis 2025-02-12 19:40:36 -05:00
mrT23
77204faa51
docs: clarify open-source models usage scope in model selection guide 2025-02-11 10:24:16 +02:00
mrT23
43fb8ff433
docs: fix broken link to Qodo Merge models documentation 2025-02-11 08:49:05 +02:00
mrT23
cd129d8b27
docs: fix broken link to Qodo Merge models documentation 2025-02-11 08:47:04 +02:00
Tal
04aff0d3b2
Update README.md 2025-02-07 20:51:21 +02:00
Tal
be1dd4bd20
Update README.md 2025-02-06 18:10:37 +02:00
Tal
b3b89e7138
Merge pull request #1522 from qodo-ai/tr/readme_34
docs: update README with new design and remove outdated news
2025-02-06 18:06:17 +02:00
mrT23
9045723084
docs: adjust Qodo Merge link formatting in README 2025-02-06 18:04:31 +02:00
mrT23
34e22a2c8e
docs: update image URL in README for /improve tool screenshot 2025-02-06 18:02:40 +02:00
mrT23
1d784c60cb
docs: update README with new design and remove outdated news 2025-02-06 17:59:40 +02:00
Hussam Lawen
deffdbbb89
Merge pull request #1517 from qodo-ai/security_policy_md
Create SECURITY.md
2025-02-05 14:54:55 +02:00
Hussam Lawen
b29a19957c
Update SECURITY.md
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-05 14:54:32 +02:00
Hussam Lawen
f209bc5323
Update SECURITY.md 2025-02-05 14:50:12 +02:00
Hussam Lawen
32890fec20
Create SECURITY.md 2025-02-05 14:03:32 +02:00
Tal
9ddd7c967a
Merge pull request #1515 from qodo-ai/create-code-of-conduct
Create CODE_OF_CONDUCT.md
2025-02-05 11:28:10 +02:00
Tal
245c3ad523
Update CODE_OF_CONDUCT.md
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-02-05 11:27:51 +02:00
ofir-frd
43decd9ff2
Update CODE_OF_CONDUCT.md 2025-02-05 11:25:06 +02:00
Tal
3af84aab5b
Merge pull request #1514 from qodo-ai/tr/improve_impact
feat: improve code suggestions table with impact levels and styling
2025-02-05 11:20:16 +02:00
ofir-frd
3633863e90
Create CODE_OF_CONDUCT.md 2025-02-05 10:41:24 +02:00
mrT23
69f19f1abd
feat: improve code suggestions impact levels with configurable thresholds 2025-02-05 09:41:01 +02:00
mrT23
400146985a
feat: improve code suggestions table with impact levels and styling 2025-02-05 09:31:32 +02:00
mrT23
24bf875db6
fix: handle GitHub permission errors when editing comments 2025-02-03 07:51:44 +02:00
mrT23
9687b4df70
docs: update model selection guide with supported models list 2025-02-03 07:31:02 +02:00
Tal
d8fba02b48
Merge pull request #1509 from KennyDizi/main
Define user_message_only_models list for using user prompt only model
2025-02-02 16:14:05 +02:00
Trung Dinh
a6482c37ce Add o3-mini to user message only model list 2025-02-02 18:03:38 +07:00
Trung Dinh
83582bc935 Add support o3-mini model 2025-02-02 18:02:53 +07:00
Trung Dinh
4ac1e15bae Refactoring user messages only flow 2025-02-02 18:01:44 +07:00
Trung Dinh
a48686bde9 Define USER_MESSAGE_ONLY_MODELS in the algo init file 2025-02-02 18:01:16 +07:00
Trung Dinh
7168d16386 Remove user_message_only_models from configuration file 2025-02-02 18:00:34 +07:00
Tal
dc21f71ee2
Merge pull request #1510 from PeterDaveHelloKitchen/OptimizeDockerfile
Use `pip install` with `--no-cache-dir` in Dockerfiles
2025-02-02 07:30:13 +02:00
mrT23
7127a030b2
fix: improve error logging in GitHub polling service 2025-02-01 19:47:54 +02:00
Peter Dave Hello
8f340bce67 Use pip install with --no-cache-dir in Dockerfiles
This will help minimize the Docker image size, as below:

```
REPOSITORY    TAG       IMAGE ID         CREATED        SIZE
pr-agent      after     caed11a1ed9c     2 hours ago    1.48GB
pr-agent      before    d6f12eb987b8     3 hours ago    1.59GB
```
2025-02-02 00:29:52 +08:00
Trung Dinh
48377e3c81 Add a null check for user_message_only_models before using it 2025-01-31 11:53:05 +07:00
Trung Dinh
7eb26b3220 Check current model is in user_message_only_models list 2025-01-31 11:25:51 +07:00
Trung Dinh
32ccb25575 Add user_message_only_models 2025-01-31 11:24:43 +07:00
mrT23
9aafe18f01
docs: add platform support notice for implement tool 2025-01-30 12:24:14 +02:00
Tal
4df9e03c4c
Merge pull request #1506 from qodo-ai/tr/fallback
fix: add fallback for parsing AI responses with leading '+' symbols
2025-01-30 11:56:04 +02:00
mrT23
136c75a5ac
fix: add fallback for parsing AI responses with leading '+' symbols 2025-01-30 08:35:31 +02:00
mrT23
91b0f11cf2
docs: add link to article about effective AI code suggestions 2025-01-30 07:44:09 +02:00
Tal
50740f080b
Merge pull request #1500 from qodo-ai/of/add-contributing-file
Add CONTRIBUTING.md with contribution guidelines and setup instructions
2025-01-28 15:39:49 +02:00
ofir-frd
ad5308c0a3 docs: add CONTRIBUTING.md with development guidelines and setup instructions 2025-01-28 11:55:27 +02:00
Tal
f383709629
Merge pull request #1498 from qodo-ai/tr/issue_formatting
fix: update issue template fields and Discord link
2025-01-28 10:07:18 +02:00
mrT23
4d7fe07c16
fix: update issue template fields and Discord link 2025-01-28 09:59:59 +02:00
Tal
456d5aa233
Merge pull request #1495 from qodo-ai/of/issue_template
fix: remove shell rendering from issue templates
2025-01-28 09:21:13 +02:00
ofir-frd
d50bfa4b06 fix: remove shell rendering from issue templates 2025-01-28 09:18:02 +02:00
mrT23
7393887381
Merge remote-tracking branch 'origin/main' 2025-01-28 08:36:47 +02:00
mrT23
9da4c9d776
fix: correct typo in code suggestions label description 2025-01-28 08:36:36 +02:00
Tal
251b4a6395
Update README.md 2025-01-28 03:29:44 +02:00
Tal
d85725c636
Merge pull request #1490 from qodo-ai/of/issues-fixes
Update config.yml
2025-01-27 16:25:24 +02:00
ofir-frd
6ef586a617
Update miscellaneous.yml 2025-01-27 16:24:40 +02:00
ofir-frd
43991df2c4
Update bug-report.yml 2025-01-27 16:23:48 +02:00
ofir-frd
231d5c20d5
Update config.yml 2025-01-27 16:22:35 +02:00
Tal
9052cec391
Merge pull request #1478 from qodo-ai/of/issue_template
Add GitHub issue templates for bug reports and feature requests
2025-01-27 16:21:17 +02:00
Tal
33ed6927fc
Update .github/ISSUE_TEMPLATE/miscellaneous.yml
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-01-27 16:21:11 +02:00
ofir-frd
62aaeb267a
Update bug-report.yml 2025-01-27 16:20:24 +02:00
ofir-frd
a7bea3b166 feat: add miscellaneous issue template and update template configurations 2025-01-27 16:17:33 +02:00
ofir-frd
b81d686561
Update feature-request.yml 2025-01-27 16:02:29 +02:00
ofir-frd
e5e30f7bd3
Update bug-report.yml 2025-01-27 16:00:03 +02:00
mrT23
4bfd845877
docs: add wiki requirement notice for auto best practices feature 2025-01-27 10:07:30 +02:00
mrT23
e8a80264ca
fix: improve GitLab help message formatting with proper line breaks 2025-01-26 16:54:17 +02:00
mrT23
75f4c7f681
Merge branch 'tr/docs_best_practice' 2025-01-26 16:42:48 +02:00
Tal
2277a31661
Merge pull request #1485 from qodo-ai/tr/docs_best_practice
Tr/docs best practice
2025-01-26 16:40:09 +02:00
mrT23
805d9cac69
docs: add auto best practices diagrams and wiki usage explanation 2025-01-26 16:39:25 +02:00
Tal
beffa8dfe4
Merge pull request #1486 from qodo-ai/hl/update_ticket_analysis
feat: enhance ticket compliance analysis with human verification tracking
2025-01-26 15:58:22 +02:00
Hussam.lawen
a42c5f4f93
feat: limit number of tickets to analyze to 3 in compliance check 2025-01-26 14:31:29 +02:00
mrT23
63c98d30d9
docs: simplify wording and clarify exploration concept in best practices guide 2025-01-26 12:57:53 +02:00
Hussam.lawen
50c52e32c9
enter
feat: enhance ticket compliance analysis with human verification tracking
2025-01-26 12:33:49 +02:00
mrT23
f48c95d113
order 2025-01-26 12:10:30 +02:00
mrT23
2ead9fe4df
typo 2025-01-26 12:07:48 +02:00
mrT23
4d52715d25
docs: add auto best practices documentation and configuration 2025-01-26 12:02:27 +02:00
ofir-frd
84d81deac0 Merge branch 'main' into of/issue_template 2025-01-26 09:23:54 +02:00
mrT23
83baac975d
docs: clarify code suggestion prompt field description for existing code 2025-01-26 09:16:52 +02:00
Tal
3f6fa5cccb
Merge pull request #1484 from qodo-ai/of/add-implement-to-help
Add `IMPLEMENT` tool and reorganize help message content
2025-01-25 08:57:47 +02:00
mrT23
a7fbd694cc
docs: add January 2025 organization update notice and fix typo in prompts 2025-01-25 08:54:57 +02:00
ofir-frd
78b11fca4c feat: add implement tool to help message and reorder tools list 2025-01-24 17:13:37 +02:00
mrT23
640c1d8dda
refactor: update review effort label format to include range indicator 2025-01-23 21:44:56 +02:00
mrT23
dfa98cdfa3
Merge remote-tracking branch 'origin/main' 2025-01-23 16:59:14 +02:00
mrT23
5518f1ca26
docs: update repository URLs from Codium-ai to qodo-ai 2025-01-23 16:59:04 +02:00
Tal
c4a70f4852
Update .github/ISSUE_TEMPLATE/bug-report.yml
Co-authored-by: qodo-merge-pro[bot] <151058649+qodo-merge-pro[bot]@users.noreply.github.com>
2025-01-23 16:52:22 +02:00
Tal
363ea3eec8
Update .github/ISSUE_TEMPLATE/bug-report.yml
Co-authored-by: qodo-merge-pro[bot] <151058649+qodo-merge-pro[bot]@users.noreply.github.com>
2025-01-23 16:51:12 +02:00
ofir-frd
97cbfe1c2b fix: update issue template labels and descriptions for git providers and bug types 2025-01-23 16:27:26 +02:00
ofir-frd
68f2198549 feat: update issue template dropdowns for git providers and task types 2025-01-23 16:11:30 +02:00
ofir-frd
20bbe4187a docs: reorder contact links in issue template config 2025-01-23 15:57:13 +02:00
ofir-frd
2f69c8989c clean-up 2025-01-23 13:38:02 +02:00
ofir-frd
ed102dc730 feat: add GitHub issue templates for bug reports and feature requests 2025-01-23 13:35:30 +02:00
Tal
c2bad8ab29
Update index.md 2025-01-23 12:24:09 +02:00
mrT23
e9c1c91a4b
feat: enhance help message formatting and support for different git providers 2025-01-23 12:05:07 +02:00
Tal
eba116fedd
Merge pull request #1477 from qodo-ai/tr/shorter_label
refactor: simplify review effort label format and remove maximal effo…
2025-01-23 11:49:11 +02:00
mrT23
94616a3429
refactor: simplify review effort label format and remove maximal effort limit 2025-01-23 11:20:58 +02:00
mrT23
c1fa22d068
refactor: simplify review effort label format and remove maximal effort limit 2025-01-23 11:18:00 +02:00
mrT23
4f1e4073e4
docs: fix wording in local installation guide 2025-01-23 09:08:38 +02:00
Tal
b320767c97
Merge pull request #1475 from Codium-ai/tr/docs24
docs: reorganize installation documentation structure
2025-01-23 08:53:44 +02:00
mrT23
cd5bdf9e59
docs: reorganize token requirements in installation documentation 2025-01-23 08:53:29 +02:00
mrT23
e8b8909ab7
docs: update pricing link from codium.ai to qodo.ai 2025-01-23 08:47:20 +02:00
mrT23
ee8cdcf2b2
docs: reorganize installation documentation structure 2025-01-23 08:45:47 +02:00
Tal
1cb21c6615
Merge pull request #1473 from KennyDizi/main
Add support model deepseek/deepseek-reasoner
2025-01-23 08:07:53 +02:00
Tal
b5f52c5fea
Merge pull request #1469 from gryphon-ops/main
Remove false log that file was modified, but no patch found for bitbucket server
2025-01-23 08:03:35 +02:00
mrT23
4e481c5088
docs: rebrand from Qodo Merge to PR-Agent in installation guides 2025-01-22 21:28:29 +02:00
Tal
7367c00c3d
Merge pull request #1474 from Codium-ai/tr/docs23
QM
2025-01-22 21:21:39 +02:00
mrT23
fb3aa8c96c
docs: fix punctuation in Chrome extension documentation 2025-01-22 21:20:44 +02:00
mrT23
983ce131f2
docs: rebrand from Qodo Merge Pro to Qodo Merge throughout documentation 2025-01-22 21:18:08 +02:00
mrT23
e571841b5c
docs: clarify distinction between PR-Agent and Qodo Merge throughout documentation 2025-01-22 21:11:46 +02:00
Tal
c537e9ff66
Merge pull request #1471 from Codium-ai/of/rebrand-readme
README: Replace Codium and PR-Agent with Qodo and Qodo-Merge
2025-01-22 17:07:07 +02:00
ofir-frd
fc5454630a docs: rebrand from Qodo-Merge to PR-Agent in README 2025-01-22 16:39:14 +02:00
Trung Dinh
c2ca79da0d Combining system and user prompts for o1 series and deepseek-reasoner models 2025-01-22 20:33:43 +07:00
Trung Dinh
63f1d449ce Add support model deepseek/deepseek-reasoner 2025-01-22 20:32:18 +07:00
ofir-frd
0adaddccdf docs: update branding from PR-Agent to Qodo-Merge in README 2025-01-22 14:35:13 +02:00
ofir-frd
8a1f07dd6b docs: clarify Qodo-Merge's open-source nature in README 2025-01-22 14:24:40 +02:00
ofir-frd
8e5d2a0f4d docs: update branding from PR-Agent to Qodo-Merge in README 2025-01-22 14:18:23 +02:00
ofir-frd
4e1cae3869 docs: remove redundant row number in feature table 2025-01-22 10:16:05 +02:00
ofir-frd
7be26b665e docs: update branding from PR-Agent to Qodo-Merge in README 2025-01-22 10:12:32 +02:00
Griffin Anspach
664f1938c9 Remove false log that file was modified, but no patch found for bitbucket server 2025-01-20 14:56:10 -05:00
mrT23
e0b6db9bec
docs: standardize platform support notation in documentation 2025-01-20 19:39:15 +02:00
Tal
2f2cdd787d
Merge pull request #1466 from yu-iskw/add-gemini-models
Add `vertex_ai/gemini-2.0-flash-exp`
2025-01-20 19:33:38 +02:00
Tal
2b25053de8
Merge pull request #1467 from Codium-ai/tr/open_on_new_window
docs: add target blank to external links in documentation
2025-01-20 14:48:38 +02:00
mrT23
054957fcfe
docs: add target blank to external links in documentation 2025-01-20 13:58:26 +02:00
Yu Ishikawa
0075084a22 Add vertex_ai/gemini-2.0-flash-exp
Signed-off-by: Yu Ishikawa <yu-iskw@users.noreply.github.com>
2025-01-20 18:29:37 +09:00
Tal
e62db20c1e
Merge pull request #1465 from Codium-ai/tr/prompts
docs: improve diff format documentation and code review instructions
2025-01-19 20:13:47 +02:00
mrT23
67d4c96166
fix: correct typos in code suggestions prompt 2025-01-19 17:21:48 +02:00
mrT23
b335cacffd
fix: limit one_sentence_summary to 6 words in code suggestions 2025-01-19 17:15:02 +02:00
mrT23
87a5a7e156
fix: improve code review guidelines and clarify scope limitations 2025-01-19 17:10:04 +02:00
mrT23
24aa15f074
fix: correct typo in diff format documentation 2025-01-19 15:11:56 +02:00
mrT23
ad4a96caf1
docs: add wiki setup guide and update best practices documentation 2025-01-19 15:05:38 +02:00
mrT23
e7f874a4b2
docs: improve diff format documentation and code review instructions 2025-01-19 14:37:49 +02:00
Tal
4ab9392042
Merge pull request #1455 from polacekpavel/fix/local-git-provider-method-stubs
fix(local_git): add interface func stubs for git local provider
2025-01-18 10:33:37 +02:00
Tal
536d97b9da
Merge pull request #1457 from KennyDizi/main
Support deepseek-chat model
2025-01-18 10:32:12 +02:00
Trung Dinh
cea1b58714 Update document with change deepseek-chat model 2025-01-17 11:50:42 +07:00
Trung Dinh
5ed260d885 Add deepseek configuration block 2025-01-17 11:43:20 +07:00
Trung Dinh
e58a535594 Inject deepseek key to DEEPSEEK_API_KEY environment variable 2025-01-17 11:43:06 +07:00
Trung Dinh
d949f440a8 Add support model deepseek/deepseek-chat 2025-01-17 11:42:36 +07:00
mrT23
4923c8d810
feat: add support for ignoring PRs from specific users 2025-01-16 08:34:01 +02:00
polacekpavel
fe6540275c fix(local_git): add interface method stubs for local git provider compatibility 2025-01-15 18:19:36 +01:00
Hussam Lawen
1997da3aac
Merge pull request #1454 from Codium-ai/hl/jira_datacenter_docs
documentation
2025-01-15 17:26:07 +02:00
Hussam.lawen
d0c442b74b
enter 2025-01-15 17:24:37 +02:00
Hussam.lawen
1f86cbc942
typo 2025-01-15 17:23:20 +02:00
Hussam.lawen
633a1c7bd0
documentation 2025-01-15 17:03:31 +02:00
ofir-frd
2d9141adad
Merge pull request #1450 from Codium-ai/of/implement-tool-bitbucket
docs: add BitBucket support for /implement tool.
2025-01-15 08:10:16 +02:00
mrT23
95d0d4d71d
docs: add final_update_message configuration option documentation 2025-01-15 08:00:20 +02:00
Tal
5daf8e043c
Merge pull request #1452 from med8bra/patch-1
fix(azure-provider): handle renamed files as new files
2025-01-14 11:04:40 +02:00
med8bra
bd611bc1c2
fix(azure-provider): handle renamed files as new files
This fixes a bug when azure-provider tries to fetch original content of a renamed file and fails since the file doesn't exist in base yet.
Also handles case when `diff_type` includes multiple actions as `edit, rename`.

This can be improved to fetch the actual old content using the old path before renaming, but IMO for azure devops since its dying anyway, this fix should be enough.
2025-01-13 22:22:13 +01:00
ofir-frd
4bb04e37c2 docs: add BitBucket support for /implement tool. 2025-01-13 13:29:59 +02:00
Tal
b3f116bb35
Merge pull request #1448 from pdecat/docs/typo
docs: add missing word
2025-01-10 20:14:23 +02:00
Patrick Decat
d15d08bb3b
docs: add missing word 2025-01-10 16:08:04 +01:00
mrT23
445a7fc015
filtering fix 2025-01-09 12:16:31 +02:00
Tal
c1c5c353e5
Merge pull request #1446 from Codium-ai/tr/avoid_packages_comments
fix: refine code suggestions prompts and avoid package-related comments
2025-01-08 22:12:57 +02:00
mrT23
a74fca7b7d
fix: refine code suggestions prompts and avoid package-related comments 2025-01-08 17:42:07 +02:00
Tal
7479ae3224
Merge pull request #1441 from benedict-lee/fix/support-aititle-with-markers
fix : support ai title with markers
2025-01-07 12:29:39 +02:00
Tal
6bb5ce58f2
Merge pull request #1442 from benedict-lee/fix/pr-type-rendering-with-markers
fix : pr type rendering with markers
2025-01-07 08:39:37 +02:00
ofir-frd
2783f9b1bb
Merge pull request #1440 from Codium-ai/of/implement-gitlab-documentation
docs: add GitLab support for /implement tool.
2025-01-06 13:35:23 +02:00
Benedict Lee
f4b895d870
fix : pr type rendering with markers
list obj to comma seperated pr types
2025-01-06 12:49:30 +09:00
Benedict Lee
07d40e2c05
fix : support ai title with markers 2025-01-06 12:42:12 +09:00
ofir-frd
6e1178b168 Merge branch 'main' into of/implement-gitlab-documentation 2025-01-05 12:17:25 +02:00
Tal
c889e566e8
Merge pull request #1439 from Codium-ai/tr/patch_bug
fix: handle newline issues in patch generation
2025-01-05 12:16:08 +02:00
ofir-frd
d9540d3b43 docs: add GitLab support for /implement tool. 2025-01-05 11:53:52 +02:00
mrT23
793f76fec5
fix: add missing newlines at the end of patch strings in tests 2025-01-04 16:34:35 +02:00
mrT23
5adc246040
Merge remote-tracking branch 'origin/tr/patch_bug' into tr/patch_bug 2025-01-04 16:30:47 +02:00
mrT23
d4d58babd5
fix: handle empty inputs in patch generation 2025-01-04 16:30:33 +02:00
Tal
2df4bc8b53
Update pr_agent/algo/utils.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-01-04 16:28:25 +02:00
mrT23
e431979b8b
fix: handle newline issues in patch generation 2025-01-04 16:26:38 +02:00
Tal
bde594c9e8
Update README.md 2025-01-02 16:52:26 +02:00
mrT23
b570c758aa
docs: improve /implement tool documentation and update news section 2025-01-02 16:49:59 +02:00
Tal
f6b80174b5
Merge pull request #1434 from Codium-ai/tr/ollama
Tr/ollama
2025-01-02 16:26:46 +02:00
ofir-frd
833ae67820 Merge branch 'main' into tr/ollama 2025-01-02 14:21:07 +02:00
Tal
ee913336ad
Merge pull request #1433 from Codium-ai/fix-implement-docs
Refine `implement` tool documentation and remove outdated notes
2025-01-02 14:01:00 +02:00
ofir-frd
79d589e145 Adjust image widths in /implement tool documentation 2025-01-02 12:56:55 +02:00
mrT23
2d4cd3e270
Merge remote-tracking branch 'origin/main' into tr/ollama 2025-01-02 12:51:40 +02:00
mrT23
7f950a3aa9
docs: clarify model recommendation for production usage 2025-01-02 12:50:38 +02:00
mrT23
379fa957ea
docs: clarify model recommendation for production usage 2025-01-02 12:48:56 +02:00
mrT23
a1a7c8e44c
feat: add example output duplication option for code suggestions prompts 2025-01-02 12:46:50 +02:00
ofir-frd
6d0ed06fc4 Refine /implement tool documentation and remove language support notes 2025-01-02 12:39:14 +02:00
mrT23
e695af6917
feat: add example output duplication option for PR review prompts 2025-01-02 12:33:26 +02:00
mrT23
5318047202
feat: add prompt example duplication option for improved model output 2025-01-02 12:25:42 +02:00
Tal
5bf5f63c78
Merge pull request #1417 from ofir-frd/add-implement-documentation-
Add documentation for `/implement` tool and enhance `/test` tool references
2025-01-02 11:53:58 +02:00
mrT23
5971a06d73
docs: improve Ollama and Hugging Face model configuration docs 2025-01-02 11:16:21 +02:00
ofir-frd
71e477a993 docs: standardize language support notes across documentation files 2025-01-02 11:02:26 +02:00
ofir-frd
efc621a58b fix: update Test tool link to correct documentation file 2025-01-02 10:55:30 +02:00
ofir-frd
951fa3385a Merge branch 'main' into add-implement-documentation- 2025-01-02 10:52:31 +02:00
ofir-frd
56e15c0348 Add a blank line at the end of the .gitignore file 2025-01-02 10:47:28 +02:00
ofir-frd
4c82b8a43e docs: Add /implement tool to feature tables and documentation links 2025-01-02 10:44:50 +02:00
ofir-frd
2d5daf4364 docs: Enhance /implement tool documentation with usage scenarios and examples 2025-01-02 10:34:04 +02:00
Tal
aa95d5fb68
Merge pull request #1432 from Codium-ai/tr/describe
fix: reorganize PR description prompt fields and improve clarity
2025-01-02 08:46:39 +02:00
mrT23
f6b470bf5e
fix: reorganize PR description prompt fields and improve clarity 2025-01-02 08:41:25 +02:00
Tal
36df75ce14
Merge pull request #1431 from Codium-ai/tr/protections23
fix: improve CLI argument validation for sensitive parameters
2025-01-01 16:10:30 +02:00
mrT23
e2be1f1cee
fix: improve CLI argument validation for sensitive parameters with dot notation 2025-01-01 15:53:37 +02:00
mrT23
d1caa0f15f
fix: improve CLI argument validation for sensitive parameters with dot notation 2025-01-01 15:52:54 +02:00
mrT23
2c2af93eed
fix: improve CLI argument validation for sensitive parameters 2025-01-01 15:19:27 +02:00
Tal
04197a9271
Merge pull request #1430 from Codium-ai/tr/faq_update
docs: update FAQ with new questions and improve formatting
2025-01-01 09:30:13 +02:00
Tal
9faf1521b4
Update docs/docs/faq/index.md
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2025-01-01 09:28:23 +02:00
Tal
8819293770
Merge pull request #1406 from vishwamartur/support-personal-spaces
Support pull requests in personal spaces in Bitbucket Server
2025-01-01 09:26:29 +02:00
mrT23
0ec4491542
docs: update FAQ with new questions and improve formatting 2025-01-01 09:24:20 +02:00
Tal
4fd121d34a
Merge pull request #1429 from Codium-ai/tr/sub_bullet_points
fix: improve PR description and title field descriptions for clarity
2024-12-31 12:35:09 +02:00
mrT23
6e80f5fcce
fix: improve file path formatting in patch headers 2024-12-31 12:31:21 +02:00
mrT23
4a1b042152
fix: improve bullet point formatting and file path display in PR description 2024-12-31 12:00:21 +02:00
mrT23
6fbd95e1a9
fix: emphasize brevity in PR description bullet points 2024-12-31 08:36:32 +02:00
mrT23
fd6e81978f
fix: improve PR description and title field descriptions for clarity 2024-12-31 08:32:54 +02:00
Tal
467136a48a
Merge pull request #1428 from Codium-ai/mrT23-patch-7
Update README.md
2024-12-30 21:12:46 +02:00
Tal
3b14d3a3c2
Update README.md 2024-12-30 21:11:40 +02:00
Tal
8218fa6e13
Merge pull request #1421 from dceoy/main
Update Groq models and tokens
2024-12-30 19:25:23 +02:00
mrT23
8463c4f549
fix: sanitize Ask tool answers to prevent markdown formatting issues with leading slashes 2024-12-30 16:54:03 +02:00
Tal
014b1f20c5
Merge pull request #1426 from Codium-ai/tr/ask_fix
fix: sanitize Ask tool answers to prevent markdown formatting issues
2024-12-30 15:12:28 +02:00
mrT23
2f73ab6eab
fix: sanitize Ask tool answers to prevent markdown formatting issues with leading slashes 2024-12-30 15:06:27 +02:00
mrT23
16dc29a23a
fix: sanitize Ask tool answers to prevent markdown formatting issues 2024-12-30 14:58:53 +02:00
mrT23
bd9522057f
fix: add OpenAI configuration parameters to restricted CLI arguments 2024-12-30 14:33:26 +02:00
Tal
b3d4af6cbf
Merge pull request #1425 from Codium-ai/tr/limit_online_commenting
fix: restrict sensitive configuration parameters in CLI arguments
2024-12-30 14:11:28 +02:00
mrT23
5df9698bae
fix: restrict sensitive configuration parameters in CLI arguments 2024-12-30 13:57:55 +02:00
dceoy
e89b65ed38 Increase the max token of groq/llama-3.3-70b-versatile 2024-12-30 11:35:02 +09:00
mrT23
6a145af159
fix: make semantic file types extension optional in PR description 2024-12-29 21:43:46 +02:00
Tal
39a375b3e4
Merge pull request #1423 from Codium-ai/tr/describe_v2
Tr/describe v2
2024-12-29 16:02:03 +02:00
mrT23
dbd76ecde5
refactor: improve file changes title description length guidance 2024-12-29 11:42:05 +02:00
mrT23
e95920c58c
refactor: improve file handling and description generation in PR description tool 2024-12-29 11:37:05 +02:00
mrT23
59899f0c62
fix: improve patch generation error handling and logging 2024-12-29 11:27:53 +02:00
mrT23
5e46955d52
fix: improve file path formatting in patch output 2024-12-29 11:26:13 +02:00
mrT23
95d0fafa75
refactor: optimize file content loading and improve rate limit handling 2024-12-29 11:25:33 +02:00
dceoy
71c558d306 Update Groq models and tokens 2024-12-28 01:51:33 +09:00
Tal
7b2c41e0d2
Merge pull request #1420 from Codium-ai/tr/review_fix
fix: improve line extraction from files with missing content
2024-12-27 09:02:41 +02:00
mrT23
4aad67b563
fix: improve line extraction from files with missing content 2024-12-27 09:00:20 +02:00
ofir-frd
0f973681ea Add /implement tool to README and fix /test tool link 2024-12-25 11:43:23 +02:00
ofir-frd
19f6078ed0 Add /test tool to tools section and fix typos 2024-12-25 11:39:53 +02:00
ofir-frd
3994a2ba60 Add .qodo to gitignore 2024-12-25 11:34:54 +02:00
ofir-frd
796b36f0d1 Add documentation for /implement tool in tools section and related files 2024-12-25 11:34:41 +02:00
Tal
12d603fdb4
Update README.md 2024-12-25 08:42:24 +02:00
Tal
6540e2c674
Merge pull request #1416 from Codium-ai/tr/remove_review_suggestions
refactor: remove legacy code suggestions feature from review tool
2024-12-25 08:26:03 +02:00
mrT23
83e68f168a
log verbosity 2024-12-25 08:22:53 +02:00
mrT23
5e1b04980e
refactor: remove reflection and incremental review features from docs and code 2024-12-25 08:21:33 +02:00
mrT23
495c1ebe5f
refactor: remove legacy code suggestions feature from review tool 2024-12-25 08:18:28 +02:00
Tal
ad71de82a9
Merge pull request #1413 from addianto/docs/1398-environment-variables
Document an example on how to configure PR Agent using environment variables
2024-12-24 21:25:54 +02:00
Daya Adianto
11676943b6
docs: Remind user to avoid commiting .env file (#1398) 2024-12-24 15:20:15 +07:00
Daya Adianto
b88507aa23
chore: Ignore .env file 2024-12-24 15:14:30 +07:00
Daya Adianto
a5c5e6f4ae
docs: Add example how to define environment variables (#1398) 2024-12-24 15:01:26 +07:00
Daya Adianto
47cd361663
docs: Mention about the use of Dynaconf (#1398) 2024-12-24 15:01:13 +07:00
Tal
c84b3d04b9
Merge pull request #1412 from Codium-ai/tr/dedent_review
feat: add dedent option to code snippet formatting
2024-12-24 07:54:36 +02:00
mrT23
7d9288bb1a
feat: add dedent option to code snippet formatting 2024-12-24 07:49:27 +02:00
Tal
93e64367d2
Merge pull request #1410 from Codium-ai/tr/update_changelog_fix
Tr/update changelog fix
2024-12-23 19:37:28 +02:00
mrT23
6c131b8406
feat: add PR link support in changelog updates 2024-12-23 19:35:52 +02:00
mrT23
dd89e1f2dc
feat: add PR link support in changelog updates 2024-12-23 19:34:21 +02:00
mrT23
e8e4fb0afa
feat: add PR link support in changelog updates 2024-12-23 17:20:29 +02:00
mrT23
3360a28b3e
fix: improve changelog update prompt and response handling 2024-12-23 17:06:21 +02:00
Tal
20c506d2e0
Merge pull request #1402 from KennyDizi/main
Add support for OpenAI `o1` model and snapshot version `o1-2024-12-17`
2024-12-22 09:36:04 +02:00
Tal
a1921d931c
Merge pull request #1407 from Codium-ai/tr/publish_output_no_suggestions_fix
fix: only publish empty code suggestions when configured
2024-12-22 09:34:34 +02:00
mrT23
31aa460f5f
fix: only publish empty code suggestions when configured 2024-12-22 09:32:11 +02:00
Trung Dinh
23678c1d4d Update O1_MODEL_PREFIX to o1 based on new models released 2024-12-22 10:36:59 +07:00
Trung Dinh
8d7825233a Supported model gpt-o1 2024-12-22 10:33:26 +07:00
Vishwanath Martur
4688b20284 Support pull requests in personal spaces in Bitbucket Server
Related to #1148

Update `_parse_pr_url` method in `pr_agent/git_providers/bitbucket_server_provider.py` to handle URLs with `/users/`.

* Add logic to check for both `/projects/` and `/users/` in the URL path and process them accordingly.
* Modify the method to raise a `ValueError` if neither `/projects/` nor `/users/` is found in the URL.
* Update the `workspace_slug` to include a `~` prefix if the URL contains `/users/`.

Add test case for URL with `/users/` in `tests/unittest/test_bitbucket_provider.py`.

* Ensure the new test case verifies the correct parsing of URLs with `/users/`.
2024-12-22 00:42:11 +05:30
Tal
c9f02e63e1
Merge pull request #1403 from Codium-ai/tr/re_review
feat: enhance code review output with collapsible code snippets
2024-12-20 16:38:56 +02:00
mrT23
c2f1f2dba0
fix: improve markdown rendering when git provider is unavailable 2024-12-19 21:08:27 +02:00
mrT23
3ab2cac089
fix: improve markdown rendering when git provider is unavailable 2024-12-19 20:59:17 +02:00
mrT23
989670b159
fix: improve markdown rendering when git provider is unavailable 2024-12-19 20:49:40 +02:00
mrT23
7e8361b5fd
feat: enhance code review output with collapsible code snippets and variable links 2024-12-19 20:30:56 +02:00
Trung Dinh
eaaaf6a6a2 Fix context windows token for model o1-2024-12-17 2024-12-19 23:11:45 +07:00
Trung Dinh
07f3933f6d Add support OpenAI model o1 snapshot version o1-2024-12-17 2024-12-19 23:00:47 +07:00
Tal
84786495ed
Merge pull request #1401 from Codium-ai/tr/docs3
docs: simplify default tool configurations and update documentation
2024-12-19 16:43:25 +02:00
mrT23
d09aa1b13e
docs: remove unused automatic_review configuration option 2024-12-19 16:41:18 +02:00
Tal
e9615c6994
Merge pull request #1384 from MarkRx/feature/version-metadata
Add --version command and version metadata
2024-12-19 09:34:24 +02:00
mrT23
f3ee4a75b5
docs: simplify default tool configurations and update documentation 2024-12-19 09:33:20 +02:00
MarkRx
452abe2e18 Move get_version to algo/util.py; fix version to 0.25 2024-12-17 08:44:53 -07:00
Tal
a768969d37
Merge pull request #1397 from KennyDizi/main
Add support for `gemini/gemini-2.0-flash-exp` model
2024-12-16 20:37:55 +02:00
Tal
9ef9198468
Update index.md 2024-12-16 20:37:09 +02:00
Tal
d0ea901bca
Update fetching_ticket_context.md 2024-12-16 20:29:17 +02:00
Tal
57089c931b
Merge pull request #1396 from ofir-frd/add-pr-body-license-documentation
Similar Code: Add PR Body License Documentation
2024-12-16 20:24:42 +02:00
Trung Dinh
03d2bea50b Add support model gemini-2.0-flash-exp 2024-12-16 23:37:19 +07:00
ofir-frd
721d38d4ed docs: add license information to similar code documentation 2024-12-16 17:11:17 +02:00
Tal
bbec5d9cc9
Merge pull request #1395 from Codium-ai/mrT23-patch-6
Update review.md
2024-12-14 11:54:56 +02:00
Tal
0be2750dfa
Update review.md 2024-12-14 11:53:47 +02:00
Tal
5e5c251cd0
Merge pull request #1394 from Codium-ai/mrT23-patch-6
Update README.md
2024-12-13 16:11:12 +02:00
Tal
048ae8ee9e
Update README.md
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2024-12-13 16:11:04 +02:00
Tal
1a77e9afaf
Update README.md 2024-12-13 16:09:18 +02:00
Tal
184a52d325
Update README.md 2024-12-12 21:40:04 +02:00
Tal
3d38060dff
Update README.md 2024-12-12 21:35:56 +02:00
mrT23
c4dc263f2c
docs: update repository reference to be platform-agnostic 2024-12-11 18:31:49 +02:00
Tal
f67cc0dd18
Merge pull request #1392 from Codium-ai/tr/model_weak
docs: remove model_weak configuration and simplify model selection
2024-12-11 18:19:05 +02:00
mrT23
872b27bfd8
docs: remove model_weak configuration and simplify model selection 2024-12-11 18:10:34 +02:00
Tal
cb88489dbe
Merge pull request #1387 from KennyDizi/main
Introduce to weak model
2024-12-11 17:36:18 +02:00
Tal
da786b8020
Merge pull request #1391 from Codium-ai/tr/thumbs_up_down
feat: add thumbs up/down support and refactor code suggestions handling
2024-12-11 13:21:07 +02:00
mrT23
6a51b8501d
docs: add allow_thumbs_up_down configuration option and remove rank_extended_suggestions 2024-12-11 13:16:21 +02:00
mrT23
d34edb83ff
feat: add thumbs up/down support and refactor code suggestions handling 2024-12-11 13:03:43 +02:00
Tal
c6eb253ed1
Merge pull request #1390 from glebzhidkov/docs/escape-list-in-yaml-file
Fix doc for Github Actions
2024-12-10 22:07:55 +02:00
glebzhidkov
a61f1889d1
fix doc 2024-12-10 13:44:56 +01:00
MarkRx
75a120952c Add version metadata and --version command 2024-12-09 09:27:54 -07:00
Trung Dinh
f9a7b18073 Improve condition to pick up weak model 2024-12-09 22:36:07 +07:00
Trung Dinh
6352e6e3bf Change default model to regular model 2024-12-09 22:24:44 +07:00
mrT23
f49217e058
docs: fix typos in improve.md documentation 2024-12-09 09:09:09 +02:00
Tal
e11cec7d9e
Merge pull request #1388 from Codium-ai/tr/readme_enhancments
docs: reorganize and enhance best practices documentation in improve.md
2024-12-09 09:05:25 +02:00
mrT23
c45cde93ef
docs: fix typos in improve.md documentation 2024-12-09 09:04:53 +02:00
mrT23
9e25667d97
docs: reorganize and enhance best practices documentation in improve.md 2024-12-09 09:02:40 +02:00
mrT23
7dc9e73423
fix: move user_tag variable declaration outside conditional block 2024-12-09 08:27:30 +02:00
Trung Dinh
e3d779c30d Fix typo model_weak 2024-12-08 22:09:48 +07:00
Trung Dinh
88a93bdcd7 Update weak model document 2024-12-08 22:01:00 +07:00
Trung Dinh
3c31048afc Update model in git provider 2024-12-08 22:00:37 +07:00
Trung Dinh
fc5dda0957 Use weak model for the rest flows 2024-12-08 21:51:29 +07:00
Trung Dinh
936894e4d1 Use regular model for pr review and code suggestion flows 2024-12-08 21:51:09 +07:00
Trung Dinh
dec2859fc4 Set default model to weak model 2024-12-08 21:10:26 +07:00
Trung Dinh
a4d9a65fc6 Add model_week 2024-12-08 20:23:36 +07:00
Trung Dinh
683108d3a5 Removed model_turbo 2024-12-08 20:10:38 +07:00
mrT23
e68e100117
typo 2024-12-08 11:46:10 +02:00
Tal
158892047b
Merge pull request #1386 from Codium-ai/tr/self_check
Tr/self check
2024-12-08 11:42:53 +02:00
Tal
7d5e59cd40
Update tests/health_test/main.py
Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
2024-12-08 11:41:05 +02:00
mrT23
e8fc351ce9
docs: add CLI health check section and reorganize automations documentation 2024-12-08 11:39:15 +02:00
mrT23
43e91b0df7
feat: add health test for PR agent commands and improve output handling 2024-12-08 11:27:43 +02:00
mrT23
39a461b3b2
docs: update badges and clarify Qodo Merge Pro description 2024-12-05 21:50:39 +02:00
mrT23
19ade4acf0
fixed link 2024-12-04 14:29:12 +02:00
Tal
10f8b522db
Merge pull request #1381 from Codium-ai/tr/qodo_installation
Tr/qodo installation
2024-12-03 18:17:37 +02:00
mrT23
d26ca4f71c
docs: update Qodo Merge Pro installation documentation with Bitbucket support 2024-12-03 18:16:02 +02:00
mrT23
9160f756db
docs: update Qodo Merge Pro installation documentation with Bitbucket support 2024-12-03 18:14:36 +02:00
mrT23
84c3a7b969
docs: update Qodo Merge Pro installation documentation with Bitbucket support 2024-12-03 18:12:21 +02:00
Hussam Lawen
d9f9cc65b3
Merge pull request #1380 from Codium-ai/hl/ticket_docs_update
Update fetching_ticket_context.md
2024-12-03 18:04:06 +02:00
mrT23
7d99c0db8e
Merge remote-tracking branch 'origin/main' 2024-12-03 17:48:14 +02:00
mrT23
fe20a8c5e7
docs: update Qodo Merge Pro installation documentation with rebranding changes 2024-12-03 17:48:05 +02:00
Hussam Lawen
43c95106d4
Update fetching_ticket_context.md 2024-12-03 17:18:40 +02:00
Tal
1dd5f0b848
Merge pull request #1379 from Codium-ai/tr/disable_auto_commands
Add disable_auto_feedback configuration option to control automatic feedback
2024-12-02 21:34:15 +02:00
mrT23
8610aa27a4
Add disable_auto_feedback configuration option to control automatic PR feedback 2024-12-02 21:28:48 +02:00
mrT23
91bf3c0749
openai version 2024-12-02 09:23:51 +02:00
Tal
159155785e
Update README.md 2024-12-02 08:46:36 +02:00
Tal
eabc296246
Merge pull request #1376 from pdecat/enhancement/generalize_publish_output_progress
Add publish_output_progress config support to AzureDevOps, BitBucket and Gitlab providers
2024-12-02 08:27:06 +02:00
Tal
b44030114e
Merge pull request #1374 from KennyDizi/main
Add Support for GPT-4o November 2024 Model and Update Configurations
2024-12-02 08:23:26 +02:00
Tal
1d6f87be3b
Merge pull request #1375 from Codium-ai/update-google-tag-manager
Update Google Tag Manager ID in custom analytics integration
2024-12-02 07:53:16 +02:00
Tal
a7c6fa7bd2
Merge pull request #1364 from ryanzll/main
Check git_provider and reference_link before using them in utils.py
2024-12-02 07:52:59 +02:00
Patrick Decat
a825aec5f3
Add publish_output_progress config support to AzureDevOps, BitBucket and Gitlab providers 2024-11-28 17:15:24 +01:00
Almog Lavi
4df097c228
Update Google Tag Manager ID in custom analytics integration 2024-11-25 15:07:28 +02:00
mrT23
6871e1b27a
docs: add section on customizing best practices label in improve.md 2024-11-24 17:37:35 +02:00
mrT23
4afe05761d
docs: add section on best practices for multiple languages in improve.md 2024-11-24 17:22:18 +02:00
KennyDizi
7d1b6c2f0a Upgrade litellm to v1.52.12 to support model gpt-4o-2024-11-20 2024-11-21 22:12:01 +07:00
KennyDizi
3547cf2057 Update model_turbo and fallback_models 2024-11-21 22:10:55 +07:00
KennyDizi
f2043d639c Add support model gpt-4o-2024-11-20 2024-11-21 22:10:27 +07:00
Tal
6240de3898
Merge pull request #1373 from Codium-ai/tr/ado
Improve logging and error handling in Azure DevOps provider for code …
2024-11-21 13:41:22 +02:00
mrT23
f08b20c667
Improve logging and error handling in Azure DevOps provider for code suggestions 2024-11-21 13:37:48 +02:00
Tal
e64b468556
Update azure.md 2024-11-21 09:24:45 +02:00
Tal
d48d14dac7
Merge pull request #1369 from Codium-ai/tr/committable_comments
Tr/committable comments
2024-11-20 17:49:08 +02:00
mrT23
eb0c959ca9
Add validation for committable comments within PR hunks in GitHub provider 2024-11-20 17:28:13 +02:00
mrT23
741a70ad9d
Add detailed diff code generation for GitLab suggestions and improve comment formatting 2024-11-20 17:26:36 +02:00
mrT23
22ee03981e
Add diff code generation for Bitbucket code suggestions and improve logging 2024-11-20 17:25:10 +02:00
Tal
b1336e7d08
Merge pull request #1355 from Codium-ai/tr/3-way-prs
use a more modern package
2024-11-18 17:02:26 +02:00
Tal
751caca141
Merge pull request #1367 from Codium-ai/tr/focus_only_on_problems_enabled
Enable focus_only_on_problems mode by default in configuration and up…
2024-11-18 16:49:57 +02:00
mrT23
612004727c
true 2024-11-18 16:47:55 +02:00
mrT23
577ee0241d
Enable focus_only_on_problems mode by default in configuration and update README.md 2024-11-18 16:35:23 +02:00
zhouleilei
a141ca133c Update utils.py
1. add missed emoji for "PR contains tests"
2. check git_provider and reference_link before using them
2024-11-16 09:32:05 +08:00
mrT23
a14b6a580d
Enable pre-commit workflow with manual dispatch trigger 2024-11-14 15:40:29 +02:00
Tal
cc5005c490
Merge pull request #1362 from samuele-ruffino96/docs/update-ci-pipeline-variable-note
docs: add note about $CI_SERVER_FQDN variable in GitLab CI/CD pipeline
2024-11-14 15:36:33 +02:00
samuele.ruffino
3a5d0f54ce
docs: add note about $CI_SERVER_FQDN variable in GitLab CI/CD pipeline
Clarified that the $CI_SERVER_FQDN variable was introduced in GitLab 16.10 and explained how to combine $CI_SERVER_HOST:$CI_SERVER_PORT to achieve the same result in earlier GitLab versions.
2024-11-14 12:57:44 +01:00
Tal
cd8ba4f59f
Merge pull request #1359 from Codium-ai/tr/is_bot_user
Refactor `is_bot_user` function to improve actor type handling
2024-11-14 08:29:05 +02:00
mrT23
fe27f96bf1
Improve robustness of sender_id extraction in Bitbucket app server by using safe dictionary access 2024-11-14 08:26:04 +02:00
mrT23
2c3aa7b2dc
Improve actor data extraction logic in Bitbucket app server 2024-11-14 08:23:38 +02:00
mrT23
c934523f2d
Refactor is_bot_user function to improve actor type handling and logging 2024-11-14 08:19:49 +02:00
mrT23
2f4545dc15
Refactor byte decoding in Bitbucket server provider using decode_if_bytes function 2024-11-12 08:26:33 +02:00
mrT23
cbd490b3d7
use a more modern version 2024-11-12 08:23:11 +02:00
Tal
b07f96d26a
Merge pull request #1354 from Codium-ai/tr/3-way-prs
Tr/3 way prs
2024-11-12 08:17:41 +02:00
mrT23
065777040f
Improve PR file content retrieval and logging verbosity handling 2024-11-12 08:06:02 +02:00
mrT23
9c82047dc3
Add validation for hunk lines matching original file content in git patch processing 2024-11-12 07:50:37 +02:00
Tal
e0c15409bb
Merge pull request #1351 from Codium-ai/tr/fix_docs
Fixed mkdocs emoji configuration after pre-commit error
2024-11-08 10:49:41 +02:00
mrT23
d956c72cb6
Disable pre-commit workflow and update mkdocs emoji configuration 2024-11-08 10:46:35 +02:00
Tal
dfb3d801cf
Merge pull request #1316 from yu-iskw/introduce-pre-commit
Introduce pre-commit hooks and GitHub Actions
2024-11-08 09:58:59 +02:00
Tal
5c5a3e267c
Merge branch 'main' into introduce-pre-commit 2024-11-08 09:54:21 +02:00
Tal
f9380c2440
Merge pull request #1350 from NxPKG/patch-1
Remove unused deployment_id variable.
2024-11-08 09:49:07 +02:00
Tal
e6a1f14c0e
Merge pull request #1345 from KennyDizi/main
Add Claude 3.5 Haiku Model Support and Update Dependencies
2024-11-07 17:23:28 +02:00
NxPKG
6339845eb4
Remove unused deployment_id variable.
The deployment_id variable is assigned but never used in the function.
2024-11-07 14:24:35 +06:00
Tal
732cc18fd6
Merge pull request #1348 from Codium-ai/tr/focus_only_on_problems
Add focus_only_on_problems setting for targeted code suggestions
2024-11-07 09:09:03 +02:00
mrT23
84d0f80c81
Add documentation for focus_only_on_problems setting in improve.md and README.md 2024-11-07 09:07:16 +02:00
mrT23
ee26bf35c1
Add documentation for focus_only_on_problems setting in improve.md and README.md 2024-11-07 09:06:30 +02:00
mrT23
7a5e9102fd
Add documentation for focus_only_on_problems setting in improve.md and README.md 2024-11-07 08:59:10 +02:00
mrT23
a8c97bfa73
Add documentation for focus_only_on_problems setting in improve.md and README.md 2024-11-07 08:30:18 +02:00
KennyDizi
af653a048f Add support model bedrock/anthropic.claude-3-5-haiku-20241022-v1:0 2024-11-07 09:12:52 +07:00
mrT23
d2663f959a
Add focus_only_on_problems setting for targeted code suggestions 2024-11-06 21:22:58 +02:00
mrT23
e650fe9ce9
Merge remote-tracking branch 'origin/main' 2024-11-06 12:20:41 +02:00
mrT23
daeca42ae8
Update ticket analysis review setting key in compliance check function 2024-11-06 12:20:31 +02:00
KennyDizi
04496f9b0e Update tiktoken to v0.8.0 2024-11-06 08:07:44 +07:00
KennyDizi
0eacb3e35e Update openai to v1.54.1 2024-11-06 08:07:19 +07:00
KennyDizi
c5ed2f040a Update litellm to v1..52.0 2024-11-06 07:56:30 +07:00
KennyDizi
c394fc2767 Upgrade anthropic version to 0.39.0 2024-11-06 07:55:19 +07:00
KennyDizi
157251493a Add support claude-3-5-haiku-20241022 model 2024-11-06 07:52:58 +07:00
Tal
4a982a849d
Merge pull request #1343 from Codium-ai/mrT23-patch-5
Update automations_and_usage.md
2024-11-05 11:30:16 +02:00
Tal
6e3544f523
Update automations_and_usage.md 2024-11-05 11:27:38 +02:00
Tal
bf3ebbb95f
Merge pull request #1342 from Codium-ai/hl/docs_tickets
update docs
2024-11-04 17:20:00 +02:00
Hussam.lawen
eb44ecb1be
update docs 2024-11-04 17:18:18 +02:00
Tal
45bae48701
Merge pull request #1341 from Codium-ai/hl/docs_tickets
Hl/docs tickets
2024-11-04 16:36:01 +02:00
Hussam.lawen
b2181e4c79
typos 2024-11-04 16:35:21 +02:00
Hussam.lawen
5939d3b17b
readme 2024-11-04 16:32:53 +02:00
Hussam.lawen
c1f4964a55
update review 2024-11-04 16:19:17 +02:00
Hussam.lawen
022e407d84
add documentation for ticket integrations 2024-11-04 15:52:39 +02:00
Tal
93ba2d239a
Merge pull request #1331 from miyagi-do/nocode_suggestions_config
Add configuration option to control publish of no code suggestions message
2024-11-04 07:50:57 +02:00
Tal
fa49dd5167
Merge branch 'main' into nocode_suggestions_config 2024-11-04 07:50:22 +02:00
Tal
16029e66ad
Update README.md 2024-11-03 18:15:09 +02:00
Tal
7bd6713335
Merge pull request #1338 from Codium-ai/tr/no_line_numbers
Add support for processing diffs without line numbers in code suggest…
2024-11-03 18:13:12 +02:00
mrT23
ef3241285d
Add support for processing diffs without line numbers in code suggestions tool 2024-11-03 17:34:30 +02:00
Tal
d9ef26dc1c
Merge pull request #1337 from Codium-ai/mrT23-patch-5
Update additional_configurations.md
2024-11-03 14:15:53 +02:00
Tal
02949b2b96
Update additional_configurations.md 2024-11-03 14:14:14 +02:00
Tal
d301c76b65
Merge pull request #1332 from ryanzll/main
Merge branch 'main' of https://github.com/ryanzll/pr-agent
2024-11-03 09:53:46 +02:00
zhouleilei
dacb45dd8a Merge branch 'main' of https://github.com/ryanzll/pr-agent
update openai api
2024-11-02 09:47:14 +08:00
Pratul Sanwal
443d06df06 Add configuration option to control publish of no code suggestions message 2024-11-01 15:38:16 -04:00
Tal
15e8c988a4
Merge pull request #1326 from Codium-ai/tr/certifi
Add certifi==2024.8.30 to requirements.txt
2024-10-31 11:17:09 +02:00
Tal
60fab1b301
Merge pull request #1325 from nomi3/fix-installation-docs-for-bitbucket
update bitbucket-pipelines.yml filename in installation
2024-10-31 11:14:22 +02:00
mrT23
84c1c1b1ca
Add certifi==2024.8.30 to requirements.txt 2024-10-31 11:12:35 +02:00
nomi3
7419a6d51a chore: update bitbucket-pipelines.yml filename in installation documentation 2024-10-31 17:40:31 +09:00
Tal
ee58a92fb3
Merge pull request #1321 from Codium-ai/hl/fix_reflection
Self-Reflection small fix
2024-10-30 20:33:32 +02:00
Hussam.lawen
6b64924355
switch the order of when to disable the existing code, to make sure reflection see's the full suggestion (before and after) 2024-10-30 17:09:44 +02:00
mrT23
2f5e8472b9
Add PRDescriptionHeader enum for consistent "Changes walkthrough" usage across modules 2024-10-30 08:48:08 +02:00
Yu Ishikawa
852bb371af Add pre-commit.yml
Signed-off-by: Yu Ishikawa <yu-iskw@users.noreply.github.com>
2024-10-30 10:00:59 +09:00
Yu Ishikawa
7c90e44656 Add pre-commit
Signed-off-by: Yu Ishikawa <yu-iskw@users.noreply.github.com>
2024-10-30 10:00:42 +09:00
Yu Ishikawa
81dea65856 Format files by pre-commit run -a
Signed-off-by: Yu Ishikawa <yu-iskw@users.noreply.github.com>
2024-10-30 10:00:36 +09:00
Yu Ishikawa
a3d572fb69 Add .pre-commit-config.yaml
Signed-off-by: Yu Ishikawa <yu-iskw@users.noreply.github.com>
2024-10-30 09:55:15 +09:00
Tal
7186bf4bb3
Merge pull request #1313 from yu-iskw/support-google-ai-studio
Support Google AI Studio
2024-10-29 19:22:28 +02:00
Tal
115fca58a3
Merge pull request #1307 from s1moe2/docs/gitlab
Gitlab docs improved; gitlab webhook secret config standardization
2024-10-29 19:20:15 +02:00
Diogo Simoes
cbf60ca636 revert gitlab webhook_secret; docs adjustments 2024-10-29 16:02:06 +00:00
Diogo Simoes
64ac45d03b fix typos 2024-10-29 10:49:53 +00:00
Yu Ishikawa
db062e3e35 Support Google AI Studio
Signed-off-by: Yu Ishikawa <yu-iskw@users.noreply.github.com>
2024-10-29 08:00:16 +09:00
Tal
e85472f367
Merge pull request #1311 from Codium-ai/tr/header
Add PRDescriptionHeader enum for consistent "Changes walkthrough" usa…
2024-10-28 08:15:21 +02:00
mrT23
597f1c6f83
Add PRDescriptionHeader enum for consistent "Changes walkthrough" usage across modules 2024-10-28 08:12:56 +02:00
Tal
66d4f56777
Merge pull request #1309 from Codium-ai/tr/suggestion_tracking
Tr/suggestion tracking
2024-10-27 16:12:56 +02:00
mrT23
fbfb9e0881
Add suggestion tracking feature with wiki documentation support 2024-10-27 16:07:07 +02:00
Tal
223b5408d7
Merge pull request #1308 from Codium-ai/update-docs-favicon
update docs favicon to fix proportion
2024-10-27 15:56:55 +02:00
mrT23
509135a8d4
Add suggestion tracking feature with wiki documentation support 2024-10-27 15:56:26 +02:00
mrT23
8db7151bf0
Add suggestion tracking feature with wiki documentation support 2024-10-27 15:49:10 +02:00
mrT23
b8cfcdbc12
Improve markdown header sanitization in PR help message tool 2024-10-27 14:58:21 +02:00
Tal
a3cd433184
Update README.md 2024-10-27 10:13:20 +02:00
Almog Lavi
0f284711e6
update docs favicon to fix proportion 2024-10-26 11:36:28 +03:00
Diogo Simoes
67b46e7f30 fixed secrets file comment typo 2024-10-25 16:20:35 +01:00
Diogo Simoes
68f2cec077 Gitlab docs improved; gitlab webhook secret config standadization 2024-10-25 16:17:33 +01:00
mrT23
8e94c8b2f5
chore: update Dockerfiles to use Python 3.12 and adjust docs directory addition 2024-10-25 17:35:28 +03:00
Tal
a221f8edd0
Merge pull request #1306 from Codium-ai/tr/help
Tr/help
2024-10-25 17:02:24 +03:00
mrT23
3b47c75c32
Improve handling of empty markdown headers in PR help message tool and update prompt instructions in pr_help_prompts.toml 2024-10-25 12:27:59 +03:00
mrT23
2e34d7a05a
s 2024-10-24 22:05:25 +03:00
mrT23
204a0a7912
s 2024-10-24 22:03:44 +03:00
mrT23
9786499fa6
Refactor PR help message tool to use full documentation content for answering questions and update relevant section handling in prompts 2024-10-24 22:01:40 +03:00
mrT23
4f14742233
Refactor PR help message tool to use full documentation content for answering questions and update relevant section handling in prompts 2024-10-24 21:38:31 +03:00
Tal
c077c71fdb
Merge pull request #1302 from KennyDizi/main
Add support for new Claude models and update dependencies
2024-10-24 08:40:58 +03:00
Tal
7b5a3d45bd
Merge pull request #1305 from dheerajsir/main
fix typos in documents
2024-10-24 08:37:31 +03:00
DHEERAJ AGARWAL
c6c6a9b4f0
Update custom_labels.md 2024-10-23 20:13:45 +05:30
DHEERAJ AGARWAL
a5e7c37fcc
Update pr_agent_pro.md 2024-10-23 20:12:14 +05:30
DHEERAJ AGARWAL
12a9e13509
Update index.md 2024-10-23 20:10:14 +05:30
Tal
0b4b6b1589
Update configuration_options.md 2024-10-23 17:19:16 +03:00
Tal
bf049381bd
Merge pull request #1303 from Codium-ai/mrT23-patch-2
Update atlassian-connect.json
2024-10-23 09:21:30 +03:00
Tal
65c917b84b
Update atlassian-connect.json 2024-10-23 09:04:27 +03:00
KennyDizi
b4700bd7c0 Add support bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0 model 2024-10-23 08:08:04 +07:00
KennyDizi
a957554262 Update anthropic to v0.37.1 2024-10-23 07:44:58 +07:00
KennyDizi
d491a942cc Update openai to v1.52.1 2024-10-23 07:20:35 +07:00
KennyDizi
6c55a2720a Update litellm to v1.50.2 to support all new added models 2024-10-23 07:12:39 +07:00
KennyDizi
f1d0401f82 Add model vertex_ai/claude-3-5-sonnet-v2@20241022 2024-10-23 07:11:33 +07:00
KennyDizi
c5bd09e2c9 Add model anthropic/claude-3-5-sonnet-20241022 2024-10-23 07:10:22 +07:00
Tal
c70acdc7cd
Merge pull request #1299 from Codium-ai/tr/disable_default_publish_labels
disable publishing labels by default
2024-10-22 08:13:52 +03:00
Tal
1c6f7f9c06
Update README.md 2024-10-22 08:12:15 +03:00
mrT23
0b32b253ca
docs: update default setting for publish_labels to false and adjust related documentation 2024-10-21 17:56:15 +03:00
Tal
3efd2213f2
Merge pull request #1298 from Codium-ai/tr/help
docs: update pr_help_prompts.toml with project name change and format…
2024-10-21 07:41:19 +03:00
mrT23
0705bd03c4
docs: update pr_help_prompts.toml with project name change and formatting adjustments 2024-10-21 07:37:57 +03:00
mrT23
927d005e99
docs: update pr_help_prompts.toml with project name change and formatting adjustments 2024-10-21 07:33:26 +03:00
Tal
0dccfdbbf0
Merge pull request #1295 from Codium-ai/tr/azure_o1
fix: correct model type extraction for O1 model handling
2024-10-19 11:35:31 +03:00
Tal
dcb7b66fd7
Update pr_agent/algo/ai_handlers/litellm_ai_handler.py
Co-authored-by: codiumai-pr-agent-pro[bot] <151058649+codiumai-pr-agent-pro[bot]@users.noreply.github.com>
2024-10-19 11:34:57 +03:00
mrT23
b7437147af
fix: correct model type extraction for O1 model handling in litellm_ai_handler.py 2024-10-19 11:32:45 +03:00
Hussam Lawen
e82afdd2cb
Merge pull request #1290 from Codium-ai/hl/tickets_support
support more types of github ticket url / references
2024-10-14 14:34:45 +03:00
Hussam.lawen
0946da3810
support github enterprise 2024-10-14 14:31:34 +03:00
mrT23
d1f4069d3f
docs: add news update for improved GitHub Actions support on enterprise server 2024-10-14 13:16:11 +03:00
Hussam Lawen
d45a892fd2
Update pr_agent/tools/ticket_pr_compliance_check.py
Co-authored-by: codiumai-pr-agent-pro[bot] <151058649+codiumai-pr-agent-pro[bot]@users.noreply.github.com>
2024-10-14 10:59:58 +03:00
Tal
4a91b8ed8d
Merge pull request #1292 from Codium-ai/tr/server
Tr/server
2024-10-14 10:31:41 +03:00
mrT23
fb85cb721a
docs: fix typo in installation instructions for GitHub Enterprise Server in pr_agent_pro.md 2024-10-14 10:31:06 +03:00
Hussam.lawen
3a52122677
improve and combine regex 2024-10-14 10:30:07 +03:00
mrT23
13c6ed9098
docs: update installation instructions for GitHub Enterprise Server in pr_agent_pro.md 2024-10-14 10:27:52 +03:00
mrT23
9dd1995464
docs: update installation guides with GitHub enterprise server instructions and formatting improvements 2024-10-14 10:25:51 +03:00
Hussam.lawen
eb804d0b34
clean 2024-10-14 10:08:36 +03:00
Tal
e0ee878e84
Merge pull request #1291 from Codium-ai/tr/server
Tr/server
2024-10-14 09:44:38 +03:00
mrT23
27abe48a34
feat: import Range utility in GitHubProvider for enhanced functionality 2024-10-14 09:43:58 +03:00
mrT23
8fe504a7ec
feat: import Range utility in GitHubProvider for enhanced functionality 2024-10-14 09:40:57 +03:00
mrT23
f6ba49819a
feat: enhance GitHubProvider with improved error handling and URL parsing
- Add traceback logging for exceptions in diff file retrieval
- Improve URL parsing to handle '/api/v3' paths and validate GitHub URLs
- Modify `publish_comment` to return None for temporary comments
- Update constructor to accept an optional GitHub client parameter
2024-10-14 09:18:06 +03:00
Hussam.lawen
22bf7af9ba
refactor regex 2024-10-14 08:44:01 +03:00
Hussam.lawen
840e8c4d6b
support more types of github ticket url / references 2024-10-13 22:41:33 +03:00
Tal
49f8d86c77
Merge pull request #1289 from Codium-ai/tr/ticket_review
fix: handle missing issue body and improve error logging in ticket co…
2024-10-13 08:20:08 +03:00
mrT23
05827d125b
fix: handle missing issue body and improve error logging in ticket compliance check 2024-10-13 08:19:14 +03:00
mrT23
74ee9a333e
fix: handle missing issue body and improve error logging in ticket compliance check 2024-10-13 08:15:04 +03:00
Tal
e9769fa602
Merge pull request #1283 from Codium-ai/mrT23-patch-2
Update README.md
2024-10-10 10:12:24 +03:00
Tal
3adff8cf4c
Update README.md 2024-10-10 10:11:31 +03:00
Tal
d249b47ce9
Merge pull request #1282 from Codium-ai/tr/ticket_review
Tr/ticket review
2024-10-10 10:08:05 +03:00
mrT23
892d1ad15c
Merge remote-tracking branch 'origin/tr/ticket_review' into tr/ticket_review 2024-10-10 10:02:43 +03:00
mrT23
76d95bb6d7
feat: add ticket compliance check
- Implement ticket compliance check logic in `utils.py` and `ticket_pr_compliance_check.py`
- Add functions to extract and cache PR tickets, and check ticket relevancy
2024-10-10 10:01:48 +03:00
mrT23
7db9a03805
feat: integrate ticket extraction and enhance YAML handling in PR tools
- Add ticket extraction and caching functionality in `pr_description.py` and `pr_reviewer.py`.
- Introduce `keys_fix` parameter to improve YAML loading robustness.
- Enhance error handling for estimated effort parsing in `pr_reviewer.py`.
2024-10-10 08:53:07 +03:00
mrT23
4eef3e9190
feat: add ticket compliance check and rate limit validation
- Implement ticket compliance check logic in `utils.py` and `ticket_pr_compliance_check.py`
- Add functions to extract and cache PR tickets, and check ticket relevancy
- Introduce rate limit validation for GitHub API requests
- Update `pr_reviewer_prompts.toml` and `pr_description_prompts.toml` to include ticket compliance fields
- Modify configuration to require ticket analysis review
2024-10-10 08:48:37 +03:00
Tal
014ea884d2
Merge pull request #1280 from Codium-ai/update-qodo-brand
Update footer links and branding from CodiumAI to Qodo
2024-10-10 07:41:39 +03:00
Almog Lavi
c1c5ee7cfb
Update footer links and branding from CodiumAI to Qodo 2024-10-09 11:46:10 +03:00
Tal
3ac1ddc5d7
Merge pull request #1279 from Codium-ai/tr/o1_system
feat: add support for O1 model by combining system and user prompt
2024-10-09 08:59:40 +03:00
Tal
e6c56c7355
Update pr_agent/algo/ai_handlers/litellm_ai_handler.py
Co-authored-by: codiumai-pr-agent-pro[bot] <151058649+codiumai-pr-agent-pro[bot]@users.noreply.github.com>
2024-10-09 08:56:31 +03:00
mrT23
727b08fde3
feat: add support for O1 model by combining system and user prompts in litellm_ai_handler 2024-10-09 08:53:34 +03:00
Tal
5d9d48dc82
Update .pr_agent.toml 2024-10-09 08:46:57 +03:00
Tal
8e8062fefc
Merge pull request #1276 from Codium-ai/tr/fold_suggestions_on_review
docs: update improve.md with folding suggestions feature and add conf…
2024-10-08 20:53:26 +03:00
mrT23
23a3e208a5
docs: update improve.md with folding suggestions feature and add config option 2024-10-08 20:51:45 +03:00
Tal
bb84063ef2
Merge pull request #1274 from CoryBall/azure-devops-pr-new-file-error-fix
bug-fix_azuredevops-new-file
2024-10-08 16:05:21 +03:00
Cory Ball
a476e85fa7 bug-fix_azuredevops-new-file 2024-10-08 01:13:44 -05:00
mrT23
4b05a3e858
refactor: streamline hunk processing logic in git_patch_processing.py
- Simplified logic for handling new and old hunks to ensure consistent presentation of changes.
- Updated documentation in TOML files to reflect changes in hunk section handling and line number references.
2024-10-07 20:32:11 +03:00
mrT23
cd158f24f6
fix: move settings initialization outside inner function in gitlab_webhook 2024-10-07 20:24:21 +03:00
Tal
ada0a3d10f
Merge pull request #1272 from Codium-ai/tr/warning_on_bad_config
Tr/warning on bad config
2024-10-07 09:24:43 +03:00
mrT23
ddf1afb23f
chore: update prompt guidelines to include exception type suggestions 2024-10-07 09:17:26 +03:00
mrT23
e2b5489495
feat: add error handling for invalid repo settings configuration
- Implement error handling for invalid TOML configurations in repo settings.
- Log warnings and send comments to PRs when configuration errors occur.
- Introduce `handle_configurations_errors` function to manage error reporting.
- Ensure compatibility with different markdown formats for error messages.
2024-10-07 09:13:17 +03:00
Tal
6459535e39
Merge pull request #1271 from Codium-ai/tr/blogs
docs: add links to technical blogs on LLMs and coding tasks in core a…
2024-10-06 18:20:02 +03:00
Tal
5a719c1904
Update docs/docs/core-abilities/index.md
Co-authored-by: codiumai-pr-agent-pro[bot] <151058649+codiumai-pr-agent-pro[bot]@users.noreply.github.com>
2024-10-06 18:19:26 +03:00
mrT23
1a2ea2c87d
docs: add links to technical blogs on LLMs and coding tasks in core abilities index 2024-10-06 18:16:24 +03:00
mrT23
ca79bafab3
fixed link 2024-10-04 08:06:57 +03:00
mrT23
618224beef
s 2024-10-02 17:15:44 +03:00
Tal
481c2a5985
Merge pull request #1267 from Codium-ai/tr/should_process
feat: enhance PR processing logic across GitLab, GitHub, and Bitbucket
2024-10-02 17:10:49 +03:00
mrT23
e21d9dc9e3
s 2024-10-02 17:08:52 +03:00
mrT23
6872a7076b
s 2024-10-02 17:07:09 +03:00
mrT23
c2ae429805
feat: enhance PR processing logic across GitLab, GitHub, and Bitbucket
- Refactor `should_process_pr_logic` to improve PR filtering based on data attributes.
- Update `_perform_commands_*` functions to incorporate new PR processing checks.
- Ensure consistent handling of PRs by checking configurations before executing commands.
2024-10-02 17:02:33 +03:00
Tal
af5a50ac6a
Merge pull request #1264 from Codium-ai/tr/commitable_alongside_table
dual publishing mode
2024-10-01 08:38:34 +03:00
mrT23
bccc2844b9
dual publishing mode 2024-10-01 08:32:29 +03:00
Tal
d80103751e
Merge pull request #1263 from Codium-ai/tr/commitable_alongside_table
feat: add dual publishing mode for PR code suggestions
2024-10-01 08:25:00 +03:00
mrT23
8ff8b1d48e
default 2024-10-01 08:22:28 +03:00
mrT23
da0bd84746
dual 2024-10-01 08:20:16 +03:00
mrT23
b42ded61f8
docs: add guidelines for implementing proposed code suggestions in improve.md 2024-10-01 08:16:51 +03:00
mrT23
dfa4f22be2
feat: add dual publishing mode for PR code suggestions
- Introduced dual publishing mode to present high-scoring suggestions as both table entries and commitable PR comments.
- Updated documentation to include configuration options for dual publishing mode.
- Enhanced `pr_code_suggestions.py` to handle dual publishing logic and error handling.
- Modified `configuration.toml` to include `duel_publishing_score_threshold` setting.
2024-10-01 08:01:27 +03:00
Tal
7d55fc174b
Merge pull request #1262 from Codium-ai/tr/prompt
style: refine field descriptions in KeyIssuesComponentLink model
2024-09-30 13:06:11 +03:00
mrT23
968fb71577
refactor: update terminology for issue review recommendations in utils.py 2024-09-30 13:03:42 +03:00
mrT23
454365913f
refactor: update terminology for issue review recommendations in utils.py 2024-09-30 13:00:01 +03:00
mrT23
bbaba2dbda
refactor: update terminology for issue review recommendations in utils.py
style: refine field descriptions in KeyIssuesComponentLink model
2024-09-30 08:58:32 +03:00
mrT23
e4c6792866
Merge remote-tracking branch 'origin/main' 2024-09-30 07:52:54 +03:00
mrT23
183dd5d2fc
diverse 2024-09-30 07:52:43 +03:00
Tal
2e79392a5f
Merge pull request #1256 from Codium-ai/mrT23-patch-2
disable chat message for github action
2024-09-30 07:40:04 +03:00
mrT23
da4148f336
docs: update links and references to Qodo Merge in documentation 2024-09-29 17:38:02 +03:00
mrT23
070ed21103
update documentation links to qodo-merge-docs.qodo.ai 2024-09-29 17:32:16 +03:00
Tal
640bc1e28a
Merge pull request #1261 from Codium-ai/tr/qodo_merge
Qodo Merge rename
2024-09-29 17:26:13 +03:00
mrT23
6c4aa468a9
formerly 2024-09-29 17:24:37 +03:00
mrT23
da20efd050
Qodo Merge rename 2024-09-29 17:19:46 +03:00
mrT23
c25aaad176
Qodo Merge rename 2024-09-29 17:15:49 +03:00
Tal
b4c20d683c
Merge pull request #1260 from Codium-ai/mrT23-patch-3
Update CNAME
2024-09-29 12:26:50 +03:00
Tal
7bc20d6f16
Update CNAME 2024-09-29 12:25:48 +03:00
mrT23
f894e8831b
revert unauthorized merge 2024-09-29 08:37:26 +03:00
Almog Lavi
25b7e1e777
update docs URL 2024-09-29 08:19:26 +03:00
Tal
6ba2fb212d
Merge pull request #1259 from Codium-ai/tr/intro_review
Add intro text option for PR reviews in configuration and utils
2024-09-29 07:32:27 +03:00
mrT23
4a60046f7c
update tests 2024-09-29 07:28:02 +03:00
mrT23
35b1f5e747
key 2024-09-29 07:23:34 +03:00
mrT23
d77a819d92
Add intro text option for PR reviews in configuration and utils 2024-09-29 07:06:48 +03:00
mrT23
f3fd439d47
docs 2024-09-27 16:24:07 +03:00
Tal
6188afff48
Merge pull request #1257 from Codium-ai/tr/code_suggestion_message
docs: update PR-Agent documentation with PR Chat search instructions
2024-09-27 16:15:09 +03:00
mrT23
57cfdcf274
docs: update PR-Agent documentation with PR Chat search instructions 2024-09-27 16:13:54 +03:00
Tal
1333ac47bc
Update configuration.toml 2024-09-26 18:24:11 +03:00
Tal
267e01409b
Merge pull request #1255 from Codium-ai/tr/code_suggestion_message
Enable intro and chat text for PR code suggestions in configuration
2024-09-26 17:15:10 +03:00
mrT23
8bdebcb99f
Enable intro and chat text for PR code suggestions in configuration 2024-09-26 17:11:00 +03:00
Tal
a13400b9b8
Merge pull request #1254 from Codium-ai/tr/code_suggestion_message
Add intro and chat text options for PR code suggestions in configuration
2024-09-26 16:31:10 +03:00
mrT23
89f9cf5adc
Add intro and chat text options for PR code suggestions in configuration 2024-09-26 09:07:51 +03:00
Tal
6b653dbe48
Merge pull request #1253 from Codium-ai/tr/code_suggestion_message
Add configuration for auto actions in GitHub Action runner
2024-09-26 08:50:56 +03:00
mrT23
109b965407
Add configuration for auto actions in GitHub Action runner 2024-09-26 08:03:39 +03:00
Tal
511c5a31db
Merge pull request #1252 from Codium-ai/tr/prompts_refactor
improve code suggestion prompt
2024-09-25 21:23:00 +03:00
mrT23
3dd8050004
improve code suggestion prompt 2024-09-25 21:22:41 +03:00
mrT23
4b7d01972c
improve code suggestion prompt 2024-09-25 21:15:14 +03:00
mrT23
05ec944a8b
improve code suggestion prompt 2024-09-25 17:52:54 +03:00
mrT23
4713ae74b7
improve code suggestion prompt 2024-09-25 17:42:59 +03:00
mrT23
c828cdde62
improve code suggestion prompt 2024-09-25 17:41:21 +03:00
mrT23
6f14f9c8e1
improve code suggestion prompt 2024-09-25 16:22:16 +03:00
Tal
9f8cc75bd3
Merge pull request #1250 from chapeupreto/improve-pipeline-gitlab
docs: improve GitLab installation instruction
2024-09-25 07:11:54 +03:00
Rod Elias
0668ccbb9e
docs: improve GitLab installation instruction
This commit adds a missing `export` instruction that is required mainly
for self-hosted GitLab installations.
2024-09-24 23:34:40 -03:00
Tal
8a287f8ed6
Merge pull request #1248 from Codium-ai/tr/help_fixes
DocHelper
2024-09-22 16:17:30 +03:00
mrT23
d5625db3c8
DocHelper 2024-09-22 16:16:59 +03:00
mrT23
d6b779eef8
DocHelper 2024-09-22 16:14:32 +03:00
mrT23
804cb9ec1d
DocHelper 2024-09-22 15:55:18 +03:00
Tal
47d32283ca
Merge pull request #1247 from Codium-ai/tr/help_fixes
Tr/help fixes
2024-09-22 10:23:29 +03:00
mrT23
397963257d
DocHelper 2024-09-22 10:21:47 +03:00
mrT23
a3fd15bb92
Merge remote-tracking branch 'origin/main' into tr/help_fixes 2024-09-22 09:27:10 +03:00
mrT23
ded7d96649
DocHelper 2024-09-22 09:23:34 +03:00
Tal
bbf06e25ef
Merge pull request #1246 from Codium-ai/tr/docs_update
update docs
2024-09-22 09:20:38 +03:00
mrT23
7e5ddf7e37
Update improve.md with enhanced self-review configuration details 2024-09-22 09:19:39 +03:00
mrT23
0198c61cf7
update docs 2024-09-22 09:00:56 +03:00
mrT23
20d8e76a7f
logs 2024-09-22 08:31:56 +03:00
mrT23
be8052251a
Update pr_help_prompts.toml and fix snippet indexing in pr_help_message.py 2024-09-22 08:13:23 +03:00
mrT23
ba08b13446
update PR-Agent usage instructions in pr_description.py 2024-09-21 21:10:51 +03:00
mrT23
835684b92a
Merge remote-tracking branch 'origin/main'
# Conflicts:
#	pr_agent/tools/pr_description.py
2024-09-21 21:10:38 +03:00
mrT23
90295b6429
update PR-Agent usage instructions in pr_description.py 2024-09-21 21:10:06 +03:00
Tal
08d6bbc94c
Merge pull request #1245 from Codium-ai/tr/help_rag
docs pr help
2024-09-21 20:58:06 +03:00
mrT23
8229d98842
docs pr help 2024-09-21 20:55:05 +03:00
Tal
9e28aca919
Merge pull request #1244 from Codium-ai/tr/help_rag
Refactor S3 file handling and update Dockerfile to include local Chroma DB file
2024-09-21 19:28:04 +03:00
mrT23
3e780783cc
Add docs db 2024-09-21 19:24:23 +03:00
mrT23
5c7b65810c
Refactor S3 file handling and update Dockerfile to include local Chroma DB file 2024-09-21 19:11:46 +03:00
Tal
f2f82e8805
Merge pull request #1243 from Codium-ai/tr/help_rag
get protection
2024-09-21 17:08:23 +03:00
mrT23
1e51acff22
get protection 2024-09-21 17:07:46 +03:00
Tal
81e847e477
Merge pull request #1242 from Codium-ai/tr/help_rag
prompts
2024-09-21 16:59:23 +03:00
mrT23
a70fe27d94
prompts 2024-09-21 16:58:37 +03:00
Tal
1a5835a947
Merge pull request #1241 from Codium-ai/tr/help_rag
Add PR help message functionality and update dependencies
2024-09-21 16:28:42 +03:00
mrT23
4b74506107
Add PR help message functionality and update dependencies
- Implement PRHelpMessage class to provide AI-powered assistance for pull requests.
- Add methods for similarity search using local, S3, and Pinecone databases.
- Update `requirements.txt` to include new dependencies for langchain and chromadb.
- Modify `configuration.toml` to include `force_local_db` setting for PR help.
- Update `aiohttp` and `openai` package versions.
2024-09-21 16:22:51 +03:00
mrT23
08319f8492
fixed azure remove comment bug 2024-09-19 12:54:26 +03:00
Tal
b447080777
Merge pull request #1236 from Codium-ai/tr/tldr
TLDR
2024-09-16 09:23:49 +03:00
mrT23
da398ce56f
TLDR 2024-09-16 09:21:52 +03:00
Tal
16763d81b4
Merge pull request #1232 from yzongyue/feature/compatible_with_old_gitlab
func get_line_link compatible with old gitlab versions
2024-09-15 17:06:43 +03:00
Tal
80fe297bc9
Merge pull request #1231 from matanbaruch/main
Update PR Action Handling Logic in GitHub Action Runner
2024-09-15 15:30:34 +03:00
Matan Baruch
5d68b0c492
Update automations_and_usage.md 2024-09-15 15:19:40 +03:00
Tal
8d5f015e5c
Merge pull request #1234 from Codium-ai/tr/dynamic
self_reflection
2024-09-15 14:52:06 +03:00
mrT23
be03f83318
self_reflection 2024-09-15 14:50:24 +03:00
mrT23
cbfd250c0c
self_reflection 2024-09-15 14:47:27 +03:00
Tal
7ce46e65a1
Merge pull request #1233 from Codium-ai/tr/dynamic
collapsible
2024-09-15 13:45:39 +03:00
mrT23
600f230ba7
collapsible 2024-09-15 13:44:27 +03:00
Tal
4f4f13b8b2
Update improve.md 2024-09-15 12:44:11 +03:00
Tal
146b8823a9
Merge pull request #1230 from Codium-ai/tr/dynamic
Tr/dynamic
2024-09-15 12:39:00 +03:00
mrT23
fdb1ff8057
update best practics 2024-09-15 12:36:00 +03:00
yzongyue
ce8e637800 get_line_link compatible with old gitlab versions 2024-09-15 14:56:08 +08:00
Matan Baruch
306af02d22
Update github_action_runner.py 2024-09-15 09:42:02 +03:00
Matan Baruch
a23541912b
Update github_action_runner.py 2024-09-15 09:40:05 +03:00
Matan Baruch
0851767774
Update configuration.toml 2024-09-15 09:35:58 +03:00
Matan Baruch
585a7f1c69
Update github_action_runner.py 2024-09-15 09:33:47 +03:00
mrT23
8d82cb2e04
f string 2024-09-15 08:50:24 +03:00
mrT23
7586514abf
docs: clarify guidelines on file length and specificity in improve.md 2024-09-15 08:28:01 +03:00
mrT23
480a025877
Merge remote-tracking branch 'origin/main' into tr/dynamic 2024-09-15 08:08:11 +03:00
mrT23
8f943a0d44
fix: update error logging messages and system prompt handling in litellm_ai_handler.py 2024-09-15 08:07:59 +03:00
Tal
2102c51422
Merge pull request #1228 from eddielu/eddie/azurecommentstatus
Set azure devops default status to ByDesign
2024-09-14 20:34:13 +03:00
eddielu
29028d43cf
Set azure devops default status to ByDesign 2024-09-13 18:01:08 -07:00
Tal
95d1b0d0c5
Merge pull request #1227 from Codium-ai/tr/dynamic
refactor logic
2024-09-13 22:22:47 +03:00
mrT23
cc0e432247
refactor logic 2024-09-13 22:17:24 +03:00
mrT23
0fb158fd47
fix push gitlab 2024-09-13 20:59:45 +03:00
Tal
867a430a38
Merge pull request #1226 from KennyDizi/main
Add new o1-mini and o1-preview models
2024-09-13 17:17:26 +03:00
trung.dinh@zoi.tech
a94496285f Add o1-preview models 2024-09-13 08:23:18 +07:00
trung.dinh@zoi.tech
567c144176 Add o1-mini models 2024-09-13 08:22:09 +07:00
Tal
c08b59a74d
Merge pull request #1224 from Codium-ai/tr/dynamic_context_
Tr/dynamic context
2024-09-12 11:43:15 +03:00
mrT23
0ba81e1ac7
docs: add dynamic context strategy documentation and update configuration settings 2024-09-12 11:42:27 +03:00
mrT23
2cb0dd2496
docs: add dynamic context strategy documentation and update configuration settings 2024-09-12 11:38:54 +03:00
mrT23
a8367d1a22
docs: add dynamic context strategy documentation and update configuration settings
- Added detailed documentation on the dynamic context strategy in `dynamic_context.md`.
- Updated configuration settings in `configuration.toml` to enable dynamic context by default.
- Adjusted context line parameters in `additional_configurations.md` to reflect new defaults.
- Announced dynamic context as the default option in the `README.md` news section.
2024-09-12 11:37:52 +03:00
Tal
1a3345c6e6
Merge pull request #1223 from Codium-ai/mrT23-patch-12
Update additional_configurations.md
2024-09-12 09:29:02 +03:00
Tal
564845adff
Update additional_configurations.md 2024-09-12 09:27:45 +03:00
Tal
3ea691e70a
Merge pull request #1216 from Codium-ai/tr/azure_parsing
fix: improve Azure DevOps PR URL parsing and add unit tests
2024-09-12 09:09:24 +03:00
Tal
5047d076f8
Merge pull request #1222 from Codium-ai/tr/docs_and_fixes
enhance: cap patch extra lines and update documentation with separato…
2024-09-12 09:07:06 +03:00
mrT23
7de6bb0150
enhance: cap patch extra lines and update documentation with separators and context adjustments 2024-09-12 09:05:26 +03:00
mrT23
a1582b5338
enhance: cap patch extra lines and update documentation with separators and context adjustments 2024-09-12 09:01:36 +03:00
Tal
dd8d78e7d8
Merge pull request #1221 from Codium-ai/tr/updates_and_fixes
FAQ
2024-09-11 16:53:41 +03:00
mrT23
5af6cc7538
FAQ 2024-09-11 16:52:21 +03:00
Tal
6cc562d6a2
Merge pull request #1220 from Codium-ai/tr/updates_and_fixes
FAQ
2024-09-11 16:41:07 +03:00
mrT23
19b051b992
FAQ 2024-09-11 16:40:34 +03:00
mrT23
be68ee89f3
FAQ 2024-09-11 16:36:27 +03:00
mrT23
db6c75a130
FAQ 2024-09-11 16:28:09 +03:00
Tal
74688846e0
Merge pull request #1219 from Codium-ai/tr/updates_and_fixes
docs and fixes
2024-09-10 20:10:53 +03:00
mrT23
09b0a04a47
docs and fixes 2024-09-10 20:06:48 +03:00
Tal
cc1b65f886
Merge pull request #1218 from Codium-ai/tr/updates_and_fixes
feat: enhance error handling and logging, update AI metadata terminology
2024-09-10 17:59:48 +03:00
Tal
1451d82d6b
Update pr_agent/algo/pr_processing.py
Co-authored-by: codiumai-pr-agent-pro[bot] <151058649+codiumai-pr-agent-pro[bot]@users.noreply.github.com>
2024-09-10 17:50:32 +03:00
mrT23
01ba6fe63d
feat: enhance error handling and logging, update AI metadata terminology
- Improved error handling and logging in `pr_processing.py` and `github_polling.py` to provide more detailed error information.
- Updated AI metadata terminology from "AI-generated file summary" to "AI-generated changes summary" across multiple files for consistency.
- Added a placeholder method `publish_file_comments` in `azuredevops_provider.py`.
- Refined logging messages in `azuredevops_provider.py` for better clarity.
2024-09-10 17:44:26 +03:00
Tal
74f9da1135
Merge pull request #1217 from Codium-ai/mrT23-patch-12
Update index.md
2024-09-10 09:06:55 +03:00
Tal
f80c2ae2c8
Update index.md 2024-09-10 09:05:50 +03:00
mrT23
e444da8378
fix: improve Azure DevOps PR URL parsing and add unit tests 2024-09-10 08:19:22 +03:00
Tal
25ad8a09ce
Merge pull request #1215 from Codium-ai/tr/docs
docs
2024-09-10 08:00:36 +03:00
mrT23
897e791b1a
docs 2024-09-10 08:00:10 +03:00
mrT23
7f94dda54e
docs 2024-09-10 07:58:18 +03:00
Tal
538a592882
Merge pull request #1214 from Codium-ai/tr/docs
docs
2024-09-10 07:53:35 +03:00
mrT23
a3cb7277a7
docs 2024-09-10 07:51:47 +03:00
Tal
b5cd560402
Merge pull request #1212 from Codium-ai/tr/configurations
docs
2024-09-09 19:47:47 +03:00
mrT23
fd38c33fcb
docs 2024-09-09 19:45:29 +03:00
Tal
f767a3dfde
Merge pull request #1211 from Codium-ai/hl/impact_docs
impact docs
2024-09-09 19:34:42 +03:00
Hussam.lawen
9f8b619858
small fix 2024-09-09 18:47:53 +03:00
Hussam.lawen
8de16939ba
impact docs 2024-09-09 18:15:56 +03:00
Tal
6ed5537065
Merge pull request #1210 from Codium-ai/tr/configurations
bug fix: remove unused get_pr_description method from Azure DevOps
2024-09-09 16:26:46 +03:00
mrT23
1a9638cf87
bug fix: remove unused get_pr_description method from Azure DevOps provider 2024-09-09 16:25:34 +03:00
Tal
49521aafff
Merge pull request #1208 from Codium-ai/tr/configurations
config docs
2024-09-09 08:34:46 +03:00
mrT23
c8e8ed89d2
feat: integrate Dynaconf for configuration management and enhance config display 2024-09-09 08:31:20 +03:00
mrT23
ebc5cafb2b
protection 2024-09-08 17:46:21 +03:00
Tal
52e8d7bc6a
Merge pull request #1207 from Codium-ai/tr/fixes_metadata
Tr/fixes metadata
2024-09-08 17:32:58 +03:00
mrT23
f7344fd787
metadata.md docs 2024-09-08 17:31:17 +03:00
mrT23
86103c65e8
pattern_back 2024-09-08 17:24:13 +03:00
mrT23
a4658b9960
docs 2024-09-08 16:52:20 +03:00
mrT23
5fd831c448
impact_evaluation 2024-09-08 16:47:04 +03:00
mrT23
332d3a0c5e
markdown update 2024-09-08 16:43:44 +03:00
Tal
edef712b6a
Merge pull request #1206 from Codium-ai/tr/ai_metadata
ai_metadat_injection
2024-09-08 16:33:00 +03:00
mrT23
1831f2cec4
markdown 2024-09-08 16:32:46 +03:00
mrT23
8706f643ef
enable ai_metadata 2024-09-08 16:26:26 +03:00
Tal
35a75095ea
Merge pull request #1205 from ScArLeXiA/fix-typo-in-readme
fix: Typo in README (`Chrom` -> `Chrome`)
2024-09-07 19:20:35 +03:00
ScArLeXiA
0aa296d03e
fix: Typo in README (Chrom -> Chrome) 2024-09-08 01:14:41 +09:00
Tal
24f7e8622f
Merge pull request #1202 from Codium-ai/tr/ignore_titile_adjustments
avoid_full_files
2024-09-07 11:49:21 +03:00
mrT23
d01cfe443c
avoid_full_files 2024-09-07 11:44:24 +03:00
Tal
6150256040
Merge pull request #1201 from Codium-ai/tr/ignore_titile_adjustments
Tr/ignore titile adjustments
2024-09-07 11:27:28 +03:00
mrT23
147a8e0ef3
refactor: consolidate PR ignore logic into a single function and update documentation 2024-09-07 11:26:13 +03:00
Tal
9199d84796
Merge pull request #1192 from paolomainardi/feature/1190_exclude_branches_tags
feat: gitlab skip source, target and labels
2024-09-07 10:20:31 +03:00
Paolo Mainardi
39913ef12a
fix: remove specific configurations 2024-09-06 20:23:33 +02:00
Paolo Mainardi
d2a744e70c
fix: remove line 2024-09-06 18:42:47 +02:00
Paolo Mainardi
be93c52380
fix: remove line 2024-09-06 18:42:28 +02:00
Paolo Mainardi
7ccefca35e
fix: remove comment 2024-09-06 18:41:36 +02:00
Paolo Mainardi
14b4723734
feat: move configuration to a common config section, add documentation 2024-09-06 18:32:46 +02:00
mrT23
c8f1c03061
fix: correct tuple unpacking in GitHub polling task queue loop 2024-09-05 20:31:17 +03:00
Tal
b02fa22948
Merge pull request #1198 from Codium-ai/tr/polling
Tr/polling
2024-09-05 19:58:51 +03:00
mrT23
85754d2d79
feat: enhance GitHub polling with synchronous comment processing and improved logging 2024-09-05 16:57:10 +03:00
mrT23
f0d780c7ec
feat: enhance GitHub polling with synchronous comment processing and improved logging 2024-09-05 16:55:10 +03:00
mrT23
19048ee705
feat: enhance GitHub polling with synchronous comment processing and improved logging 2024-09-05 16:53:31 +03:00
mrT23
b8d2b263b9
feat: enhance GitHub polling with synchronous comment processing and improved logging and bug fixing 2024-09-05 16:52:47 +03:00
Tal
6f17c08f72
Merge pull request #1197 from proDOOMman/onec_enterprice
Add 1C Enterprise language
2024-09-04 15:20:16 +03:00
mrT23
65c0bc414f
docs: add supported browsers section to Chrome extension documentation 2024-09-04 13:36:44 +03:00
mrT23
015719134f
docs: enhance PR chat section with context-aware explanation in features.md 2024-09-04 12:01:23 +03:00
mrT23
1ed6b7a54a
docs: enhance PR chat section with context-aware explanation in features.md 2024-09-04 11:57:24 +03:00
mrT23
14067a02db
docs: update Chrome extension documentation with installation video link and image update 2024-09-04 11:01:04 +03:00
proDOOMman
be75bb6a16
Add 1C Enterprise language 2024-09-04 09:04:39 +03:00
mrT23
883d945687
Merge remote-tracking branch 'origin/main' 2024-09-04 08:52:32 +03:00
mrT23
8090115f30
docs: update Chrome extension description and bump version to 0.2.4 2024-09-04 08:52:22 +03:00
Tal
6fa226dee7
Merge pull request #1196 from Codium-ai/mrT23-patch-11
Update README.md
2024-09-03 18:50:47 +03:00
Tal
13c1cdbf90
Update README.md 2024-09-03 18:49:04 +03:00
Paolo Mainardi
2f7f60a469
fix: review standardize regex checking 2024-09-02 16:31:19 +02:00
Paolo Mainardi
adce35765b
feat: implement skip branches for github, add ignore title to gitlab 2024-09-02 16:26:50 +02:00
Paolo Mainardi
23af1afa03
feat: gitlab skip source, target and labels 2024-08-30 17:01:18 +02:00
Paolo Mainardi
fdcbdfce98
feat: gitlab skip source, target and labels 2024-08-30 16:40:23 +02:00
235 changed files with 19913 additions and 4420 deletions

View file

@ -1,3 +1,4 @@
.venv/
venv/
pr_agent/settings/.secrets.toml
pics/

38
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View file

@ -0,0 +1,38 @@
name: "\U0001FAB2 Bug Report"
description: Submit a bug report
labels: ["bug"]
body:
- type: dropdown
id: information-git-provider
attributes:
label: Git provider
description: 'The problem arises when using:'
options:
- "Github Cloud"
- "Github Enterprise"
- "Gitlab"
- "Bitbucket Cloud"
- "Bitbucket Server"
- "Azure"
- "Other"
validations:
required: true
- type: textarea
id: system-info
attributes:
label: System Info
description: Please share your system info with us.
placeholder: model used, deployment type (action/app/cli/...), etc...
validations:
required: true
- type: textarea
id: bug-details
attributes:
label: Bug details
description: Please describe the problem.
placeholder: Describe the problem
validations:
required: true

10
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View file

@ -0,0 +1,10 @@
blank_issues_enabled: false
version: 0.1
contact_links:
- name: Discussions
url: https://github.com/qodo-ai/pr-agent/discussions
about: GitHub Discussions
- name: Discord community
url: https://discord.com/channels/1057273017547378788/1126104260430528613
about: Join our discord community

View file

@ -0,0 +1,21 @@
name: "\U0001F4A1 Feature request"
description: Submit a proposal/request for a new PR-Agent feature
labels: ["feature"]
body:
- type: textarea
id: feature-request
validations:
required: true
attributes:
label: Feature request
description: |
Description of the feature proposal.
- type: textarea
id: motivation
validations:
required: true
attributes:
label: Motivation
description: |
Outline the motivation for the proposal.

View file

@ -0,0 +1,36 @@
name: "❔ General Issue"
description: Submit a general issue
labels: ["general"]
body:
- type: dropdown
id: information-git-provider
attributes:
label: Git provider (optional)
description: 'Git Provider:'
options:
- "Github Cloud"
- "Github Enterprise"
- "Gitlab"
- "Bitbucket Cloud"
- "Bitbucket Server"
- "Azure"
- "Other"
- type: textarea
id: system-info
attributes:
label: System Info (optional)
description: Please share your system info with us.
placeholder: model used, deployment type (action/app/cli/...), etc...
validations:
required: false
- type: textarea
id: issues-details
attributes:
label: Issues details
description: Please share the issues details.
placeholder: Describe the issue
validations:
required: true

View file

@ -14,15 +14,15 @@ jobs:
steps:
- id: checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- id: dockerx
name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- id: build
name: Build dev docker
uses: docker/build-push-action@v2
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/Dockerfile
@ -37,5 +37,3 @@ jobs:
name: Test dev docker
run: |
docker run --rm codiumai/pr-agent:test pytest -v tests/unittest

View file

@ -15,15 +15,15 @@ jobs:
steps:
- id: checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- id: dockerx
name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- id: build
name: Build dev docker
uses: docker/build-push-action@v2
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/Dockerfile
@ -41,7 +41,6 @@ jobs:
docker cp test_container:/app/coverage.xml coverage.xml
docker rm test_container
- name: Validate coverage report
run: |
if [ ! -f coverage.xml ]; then
@ -49,6 +48,6 @@ jobs:
exit 1
fi
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4.0.1
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}

View file

@ -11,14 +11,14 @@ jobs:
name: PR-Agent E2E GitHub App Test
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- id: build
name: Build dev docker
uses: docker/build-push-action@v2
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/Dockerfile
@ -39,7 +39,6 @@ jobs:
run: |
docker run -e gitlab.PERSONAL_ACCESS_TOKEN=${{ secrets.TOKEN_GITLAB }} --rm codiumai/pr-agent:test pytest -v tests/e2e_tests/test_gitlab_webhook.py
- id: test3
name: E2E bitbucket app
run: |

View file

@ -30,6 +30,3 @@ jobs:
GITHUB_ACTION_CONFIG.AUTO_DESCRIBE: true
GITHUB_ACTION_CONFIG.AUTO_REVIEW: true
GITHUB_ACTION_CONFIG.AUTO_IMPROVE: true

17
.github/workflows/pre-commit.yml vendored Normal file
View file

@ -0,0 +1,17 @@
# disabled. We might run it manually if needed.
name: pre-commit
on:
workflow_dispatch:
# pull_request:
# push:
# branches: [main]
jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
# SEE https://github.com/pre-commit/action
- uses: pre-commit/action@v3.0.1

4
.gitignore vendored
View file

@ -1,6 +1,8 @@
.idea/
.lsp/
.vscode/
.env
.venv/
venv/
pr_agent/settings/.secrets.toml
__pycache__
@ -9,3 +11,5 @@ dist/
build/
.DS_Store
docs/.cache/
.qodo
poetry.lock

View file

@ -1,6 +1,3 @@
[pr_reviewer]
enable_review_labels_effort = true
enable_auto_approval = true
[config]
model="claude-3-5-sonnet"

46
.pre-commit-config.yaml Normal file
View file

@ -0,0 +1,46 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
default_language_version:
python: python3
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: check-added-large-files
- id: check-toml
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
# - repo: https://github.com/rhysd/actionlint
# rev: v1.7.3
# hooks:
# - id: actionlint
- repo: https://github.com/pycqa/isort
# rev must match what's in dev-requirements.txt
rev: 5.13.2
hooks:
- id: isort
# - repo: https://github.com/PyCQA/bandit
# rev: 1.7.10
# hooks:
# - id: bandit
# args: [
# "-c", "pyproject.toml",
# ]
# - repo: https://github.com/astral-sh/ruff-pre-commit
# rev: v0.7.1
# hooks:
# - id: ruff
# args:
# - --fix
# - id: ruff-format
# - repo: https://github.com/PyCQA/autoflake
# rev: v2.3.1
# hooks:
# - id: autoflake
# args:
# - --in-place
# - --remove-all-unused-imports
# - --remove-unused-variables

View file

@ -1,6 +1,7 @@
## 2023-08-03
### Optimized
- Optimized PR diff processing by introducing caching for diff files, reducing the number of API calls.
- Refactored `load_large_diff` function to generate a patch only when necessary.
- Fixed a bug in the GitLab provider where the new file was not retrieved correctly.
@ -8,6 +9,7 @@
## 2023-08-02
### Enhanced
- Updated several tools in the `pr_agent` package to use commit messages in their functionality.
- Commit messages are now retrieved and stored in the `vars` dictionary for each tool.
- Added a section to display the commit messages in the prompts of various tools.
@ -15,6 +17,7 @@
## 2023-08-01
### Enhanced
- Introduced the ability to retrieve commit messages from pull requests across different git providers.
- Implemented commit messages retrieval for GitHub and GitLab providers.
- Updated the PR description template to include a section for commit messages if they exist.
@ -22,10 +25,10 @@
- Implemented this feature for both GitHub and GitLab providers.
- Added a new configuration option 'use_repo_settings_file' to enable or disable the use of a repo-specific settings file.
## 2023-07-30
### Enhanced
- Added the ability to modify any configuration parameter from 'configuration.toml' on-the-fly.
- Updated the command line interface and bot commands to accept configuration changes as arguments.
- Improved the PR agent to handle additional arguments for each action.
@ -33,6 +36,7 @@
## 2023-07-28
### Improved
- Enhanced error handling and logging in the GitLab provider.
- Improved handling of inline comments and code suggestions in GitLab.
- Fixed a bug where an additional unneeded line was added to code suggestions in GitLab.
@ -40,6 +44,7 @@
## 2023-07-26
### Added
- New feature for updating the CHANGELOG.md based on the contents of a PR.
- Added support for this feature for the Github provider.
- New configuration settings and prompts for the changelog update feature.

44
CODE_OF_CONDUCT.md Normal file
View file

@ -0,0 +1,44 @@
# Contributor Code of Conduct
As contributors and maintainers of this project, and in the interest of fostering an open
and welcoming community, we pledge to respect all people who contribute through reporting
issues, posting feature requests, updating documentation, submitting pull requests or
patches, and other activities.
We are committed to making participation in this project a harassment-free experience for
everyone, regardless of level of experience, gender, gender identity and expression,
sexual orientation, disability, personal appearance, body size, race, ethnicity, age,
religion, or nationality.
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery
* Personal attacks
* Trolling or insulting/derogatory comments
* Public or private harassment
* Publishing other's private information, such as physical or electronic addresses,
without explicit permission
* Other unethical or unprofessional conduct
Project maintainers have the right and responsibility to remove, edit, or reject comments,
commits, code, wiki edits, issues, and other contributions that are not aligned to this
Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors
that they deem inappropriate, threatening, offensive, or harmful.
By adopting this Code of Conduct, project maintainers commit themselves to fairly and
consistently applying these principles to every aspect of managing this project. Project
maintainers who do not follow or enforce the Code of Conduct may be permanently removed
from the project team.
This Code of Conduct applies both within project spaces and in public spaces when an
individual is representing the project or its community.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by
contacting a project maintainer at dana.f@qodo.ai . All complaints will
be reviewed and investigated and will result in a response that is deemed necessary and
appropriate to the circumstances. Maintainers are obligated to maintain confidentiality
with regard to the reporter of an incident.
This Code of Conduct is adapted from the
[Contributor Covenant](https://contributor-covenant.org), version 1.3.0, available at
[contributor-covenant.org/version/1/3/0/](https://contributor-covenant.org/version/1/3/0/)

38
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,38 @@
# Contributing to PR-Agent
Thank you for your interest in contributing to the PR-Agent project!
## Getting Started
1. Fork the repository and clone your fork
2. Install Python 3.10 or higher
3. Install dependencies (`requirements.txt` and `requirements-dev.txt`)
4. Create a new branch for your contribution:
- For new features: `git checkout -b feature/your-feature-name`
- For bug fixes: `git checkout -b fix/issue-description`
5. Make your changes
6. Write or update tests as needed
7. Run tests locally to ensure everything passes
8. Commit your changes using conventional commit messages
9. Push to your fork and submit a pull request
## Development Guidelines
- Keep pull requests focused on a single feature or fix
- Follow the existing code style and formatting conventions
- Add unit tests for any new functionality using pytest
- Ensure test coverage for your changes
- Update documentation as needed
## Pull Request Process
1. Ensure your PR includes a clear description of the changes
2. Link any related issues
3. Update the README.md if needed
4. Wait for review from maintainers
## Questions or Need Help?
- Join our [Discord community](https://discord.com/channels/1057273017547378788/1126104260430528613) for questions and discussions
- Check the [documentation](https://qodo-merge-docs.qodo.ai/) for detailed information
- Report bugs or request features through [GitHub Issues](https://github.com/qodo-ai/pr-agent/issues)

View file

@ -1,10 +1,13 @@
FROM python:3.10 as base
FROM python:3.12.10-slim AS base
RUN apt-get update && apt-get install --no-install-recommends -y git curl && apt-get clean && rm -rf /var/lib/apt/lists/*
WORKDIR /app
ADD pyproject.toml .
ADD requirements.txt .
RUN pip install . && rm pyproject.toml requirements.txt
RUN pip install --no-cache-dir . && rm pyproject.toml requirements.txt
ENV PYTHONPATH=/app
ADD docs docs
ADD pr_agent pr_agent
ADD github_action/entrypoint.sh /
RUN chmod +x /entrypoint.sh

795
LICENSE
View file

@ -1,202 +1,661 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
Preamble
1. Definitions.
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
The precise terms and conditions for copying, distribution and
modification follow.
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
TERMS AND CONDITIONS
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
0. Definitions.
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
"This License" refers to version 3 of the GNU Affero General Public License.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
A "covered work" means either the unmodified Program or a work based
on the Program.
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
1. Source Code.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
How to Apply These Terms to Your New Programs
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
Copyright [2023] [Codium ltd]
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
http://www.apache.org/licenses/LICENSE-2.0
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.

312
README.md
View file

@ -1,302 +1,36 @@
<div align="center">
# 🧠 PR Agent LEGACY STATUS (open source)
Originally created and open-sourced by Qodo - the team behind next-generation AI Code Review.
<div align="center">
## 🚀 About
PR Agent was the first AI assistant for pull requests, built by Qodo, and contributed to the open-source community.
It represents the first generation of intelligent code review - the project that started Qodos journey toward fully AI-driven development, Code Review.
If you enjoy this project, youll love the next-level PR Agent - Qodo free tier version, which is faster, smarter, and built for todays workflows.
🚀 Qodo includes a free user trial, 250 tokens, bonus tokens for active contributors, and 50% more advanced features than this open-source version.
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://codium.ai/images/pr_agent/logo-dark.png" width="330">
<source media="(prefers-color-scheme: light)" srcset="https://codium.ai/images/pr_agent/logo-light.png" width="330">
<img src="https://codium.ai/images/pr_agent/logo-light.png" alt="logo" width="330">
</picture>
<br/>
CodiumAI PR-Agent aims to help efficiently review and handle pull requests, by providing AI feedback and suggestions
</div>
[![GitHub license](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/Codium-ai/pr-agent/blob/main/LICENSE)
[![Static Badge](https://img.shields.io/badge/Chrome-Extension-violet)](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl)
[![Static Badge](https://img.shields.io/badge/Code-Benchmark-blue)](https://pr-agent-docs.codium.ai/finetuning_benchmark/)
[![Discord](https://badgen.net/badge/icon/discord?icon=discord&label&color=purple)](https://discord.com/channels/1057273017547378788/1126104260430528613)
[![Twitter](https://img.shields.io/twitter/follow/codiumai)](https://twitter.com/codiumai)
[![Cheat Sheet](https://img.shields.io/badge/Cheat-Sheet-red)](https://www.codium.ai/images/pr_agent/cheat_sheet.pdf)
<a href="https://github.com/Codium-ai/pr-agent/commits/main">
<img alt="GitHub" src="https://img.shields.io/github/last-commit/Codium-ai/pr-agent/main?style=for-the-badge" height="20">
</a>
</div>
### [Documentation](https://pr-agent-docs.codium.ai/)
- See the [Installation Guide](https://pr-agent-docs.codium.ai/installation/) for instructions on installing PR-Agent on different platforms.
- See the [Usage Guide](https://pr-agent-docs.codium.ai/usage-guide/) for instructions on running PR-Agent tools via different interfaces, such as CLI, PR Comments, or by automatically triggering them when a new PR is opened.
- See the [Tools Guide](https://pr-agent-docs.codium.ai/tools/) for a detailed description of the different tools, and the available configurations for each tool.
## Table of Contents
- [News and Updates](#news-and-updates)
- [Overview](#overview)
- [Example results](#example-results)
- [Try it now](#try-it-now)
- [PR-Agent Pro 💎](https://pr-agent-docs.codium.ai/overview/pr_agent_pro/)
- [How it works](#how-it-works)
- [Why use PR-Agent?](#why-use-pr-agent)
## News and Updates
### August 26, 2024
New version of [PR Agent Chrom Extension](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl) was released, with full support of context-aware **PR Chat**. This novel feature is free to use for any open-source repository. See more details in [here](https://pr-agent-docs.codium.ai/chrome-extension/#pr-chat).
<kbd><img src="https://www.codium.ai/images/pr_agent/pr_chat_1.png" width="768"></kbd>
<kbd><img src="https://www.codium.ai/images/pr_agent/pr_chat_2.png" width="768"></kbd>
### August 11, 2024
Increased PR context size for improved results, and enabled [asymmetric context](https://github.com/Codium-ai/pr-agent/pull/1114/files#diff-9290a3ad9a86690b31f0450b77acd37ef1914b41fabc8a08682d4da433a77f90R69-R70)
### August 10, 2024
Added support for [Azure devops pipeline](https://pr-agent-docs.codium.ai/installation/azure/) - you can now easily run PR-Agent as an Azure devops pipeline, without needing to set up your own server.
### August 5, 2024
Added support for [GitLab pipeline](https://pr-agent-docs.codium.ai/installation/gitlab/#run-as-a-gitlab-pipeline) - you can now run easily PR-Agent as a GitLab pipeline, without needing to set up your own server.
### July 28, 2024
(1) improved support for bitbucket server - [auto commands](https://github.com/Codium-ai/pr-agent/pull/1059) and [direct links](https://github.com/Codium-ai/pr-agent/pull/1061)
(2) custom models are now [supported](https://pr-agent-docs.codium.ai/usage-guide/changing_a_model/#custom-models)
## Overview
<div style="text-align:left;">
Supported commands per platform:
| | | GitHub | Gitlab | Bitbucket | Azure DevOps |
|-------|---------------------------------------------------------------------------------------------------------|:--------------------:|:--------------------:|:--------------------:|:------------:|
| TOOLS | Review | ✅ | ✅ | ✅ | ✅ |
| | ⮑ Incremental | ✅ | | | |
| | ⮑ [SOC2 Compliance](https://pr-agent-docs.codium.ai/tools/review/#soc2-ticket-compliance) 💎 | ✅ | ✅ | ✅ | |
| | Describe | ✅ | ✅ | ✅ | ✅ |
| | ⮑ [Inline File Summary](https://pr-agent-docs.codium.ai/tools/describe#inline-file-summary) 💎 | ✅ | | | |
| | Improve | ✅ | ✅ | ✅ | ✅ |
| | ⮑ Extended | ✅ | ✅ | ✅ | ✅ |
| | Ask | ✅ | ✅ | ✅ | ✅ |
| | ⮑ [Ask on code lines](https://pr-agent-docs.codium.ai/tools/ask#ask-lines) | ✅ | ✅ | | |
| | [Custom Prompt](https://pr-agent-docs.codium.ai/tools/custom_prompt/) 💎 | ✅ | ✅ | ✅ | |
| | [Test](https://pr-agent-docs.codium.ai/tools/test/) 💎 | ✅ | ✅ | | |
| | Reflect and Review | ✅ | ✅ | ✅ | ✅ |
| | Update CHANGELOG.md | ✅ | ✅ | ✅ | ✅ |
| | Find Similar Issue | ✅ | | | |
| | [Add PR Documentation](https://pr-agent-docs.codium.ai/tools/documentation/) 💎 | ✅ | ✅ | | |
| | [Custom Labels](https://pr-agent-docs.codium.ai/tools/custom_labels/) 💎 | ✅ | ✅ | | |
| | [Analyze](https://pr-agent-docs.codium.ai/tools/analyze/) 💎 | ✅ | ✅ | | |
| | [CI Feedback](https://pr-agent-docs.codium.ai/tools/ci_feedback/) 💎 | ✅ | | | |
| | [Similar Code](https://pr-agent-docs.codium.ai/tools/similar_code/) 💎 | ✅ | | | |
| | | | | | |
| USAGE | CLI | ✅ | ✅ | ✅ | ✅ |
| | App / webhook | ✅ | ✅ | ✅ | ✅ |
| | Tagging bot | ✅ | | | |
| | Actions | ✅ |✅| ✅ |✅|
| | | | | | |
| CORE | PR compression | ✅ | ✅ | ✅ | ✅ |
| | Repo language prioritization | ✅ | ✅ | ✅ | ✅ |
| | Adaptive and token-aware file patch fitting | ✅ | ✅ | ✅ | ✅ |
| | Multiple models support | ✅ | ✅ | ✅ | ✅ |
| | [Static code analysis](https://pr-agent-docs.codium.ai/core-abilities/#static-code-analysis) 💎 | ✅ | ✅ | ✅ | |
| | [Global and wiki configurations](https://pr-agent-docs.codium.ai/usage-guide/configuration_options/) 💎 | ✅ | ✅ | ✅ | |
| | [PR interactive actions](https://www.codium.ai/images/pr_agent/pr-actions.mp4) 💎 | ✅ | ✅ | | |
- 💎 means this feature is available only in [PR-Agent Pro](https://www.codium.ai/pricing/)
[//]: # (- Support for additional git providers is described in [here]&#40;./docs/Full_environments.md&#41;)
___
**Auto Description ([`/describe`](https://pr-agent-docs.codium.ai/tools/describe/))**: Automatically generating PR description - title, type, summary, code walkthrough and labels.
\
**Auto Review ([`/review`](https://pr-agent-docs.codium.ai/tools/review/))**: Adjustable feedback about the PR, possible issues, security concerns, review effort and more.
\
**Code Suggestions ([`/improve`](https://pr-agent-docs.codium.ai/tools/improve/))**: Code suggestions for improving the PR.
\
**Question Answering ([`/ask ...`](https://pr-agent-docs.codium.ai/tools/ask/))**: Answering free-text questions about the PR.
\
**Update Changelog ([`/update_changelog`](https://pr-agent-docs.codium.ai/tools/update_changelog/))**: Automatically updating the CHANGELOG.md file with the PR changes.
\
**Find Similar Issue ([`/similar_issue`](https://pr-agent-docs.codium.ai/tools/similar_issues/))**: Automatically retrieves and presents similar issues.
\
**Add Documentation 💎 ([`/add_docs`](https://pr-agent-docs.codium.ai/tools/documentation/))**: Generates documentation to methods/functions/classes that changed in the PR.
\
**Generate Custom Labels 💎 ([`/generate_labels`](https://pr-agent-docs.codium.ai/tools/custom_labels/))**: Generates custom labels for the PR, based on specific guidelines defined by the user.
\
**Analyze 💎 ([`/analyze`](https://pr-agent-docs.codium.ai/tools/analyze/))**: Identify code components that changed in the PR, and enables to interactively generate tests, docs, and code suggestions for each component.
\
**Custom Prompt 💎 ([`/custom_prompt`](https://pr-agent-docs.codium.ai/tools/custom_prompt/))**: Automatically generates custom suggestions for improving the PR code, based on specific guidelines defined by the user.
\
**Generate Tests 💎 ([`/test component_name`](https://pr-agent-docs.codium.ai/tools/test/))**: Generates unit tests for a selected component, based on the PR code changes.
\
**CI Feedback 💎 ([`/checks ci_job`](https://pr-agent-docs.codium.ai/tools/ci_feedback/))**: Automatically generates feedback and analysis for a failed CI job.
\
**Similar Code 💎 ([`/find_similar_component`](https://pr-agent-docs.codium.ai/tools/similar_code/))**: Retrieves the most similar code components from inside the organization's codebase, or from open-source code.
___
## Example results
</div>
<h4><a href="https://github.com/Codium-ai/pr-agent/pull/530">/describe</a></h4>
<div align="center">
<p float="center">
<img src="https://www.codium.ai/images/pr_agent/describe_new_short_main.png" width="512">
</p>
</div>
<hr>
<h4><a href="https://github.com/Codium-ai/pr-agent/pull/732#issuecomment-1975099151">/review</a></h4>
<div align="center">
<p float="center">
<kbd>
<img src="https://www.codium.ai/images/pr_agent/review_new_short_main.png" width="512">
</kbd>
</p>
</div>
<hr>
<h4><a href="https://github.com/Codium-ai/pr-agent/pull/732#issuecomment-1975099159">/improve</a></h4>
<div align="center">
<p float="center">
<kbd>
<img src="https://www.codium.ai/images/pr_agent/improve_new_short_main.png" width="512">
</kbd>
</p>
</div>
<hr>
<h4><a href="https://github.com/Codium-ai/pr-agent/pull/530">/generate_labels</a></h4>
<div align="center">
<p float="center">
<kbd><img src="https://www.codium.ai/images/pr_agent/geneare_custom_labels_main_short.png" width="300"></kbd>
</p>
</div>
[//]: # (<h4><a href="https://github.com/Codium-ai/pr-agent/pull/78#issuecomment-1639739496">/reflect_and_review:</a></h4>)
[//]: # (<div align="center">)
[//]: # (<p float="center">)
[//]: # (<img src="https://www.codium.ai/images/reflect_and_review.gif" width="800">)
[//]: # (</p>)
[//]: # (</div>)
[//]: # (<h4><a href="https://github.com/Codium-ai/pr-agent/pull/229#issuecomment-1695020538">/ask:</a></h4>)
[//]: # (<div align="center">)
[//]: # (<p float="center">)
[//]: # (<img src="https://www.codium.ai/images/ask-2.gif" width="800">)
[//]: # (</p>)
[//]: # (</div>)
[//]: # (<h4><a href="https://github.com/Codium-ai/pr-agent/pull/229#issuecomment-1695024952">/improve:</a></h4>)
[//]: # (<div align="center">)
[//]: # (<p float="center">)
[//]: # (<img src="https://www.codium.ai/images/improve-2.gif" width="800">)
[//]: # (</p>)
[//]: # (</div>)
<div align="left">
</div>
<hr>
## Try it now
Try the GPT-4 powered PR-Agent instantly on _your public GitHub repository_. 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.
Note that this is a promotional bot, suitable only for initial experimentation.
It does not have 'edit' access to your repo, for example, so it cannot update the PR description or add labels (`@CodiumAI-Agent /describe` will publish PR description as a comment). In addition, the bot cannot be used on private repositories, as it does not have access to the files there.
![Review generation process](https://www.codium.ai/images/demo-2.gif)
To set up your own PR-Agent, see the [Installation](https://pr-agent-docs.codium.ai/installation/) section below.
Note that when you set your own PR-Agent or use CodiumAI hosted PR-Agent, there is no need to mention `@CodiumAI-Agent ...`. Instead, directly start with the command, e.g., `/ask ...`.
If you have an open-source project, you can get the Qodo paid version for free for your project, powered by Google Gemini 2.5 Pro [https://www.qodo.ai/solutions/open-source/](https://www.qodo.ai/solutions/open-source/)
---
## ✨ Advanced Features in Qodo
## PR-Agent Pro 💎
[PR-Agent Pro](https://www.codium.ai/pricing/) is a hosted version of PR-Agent, provided by CodiumAI. It is available for a monthly fee, and 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 PR-Agent app to your GitHub\GitLab\BitBucket repo.
2. **Improved privacy** - No data will be stored or used to train models. PR-Agent Pro will employ zero data retention, and will use an OpenAI account with zero data retention.
3. **Improved support** - PR-Agent Pro users will receive priority support, and will be able to request new features and capabilities.
4. **Extra features** -In addition to the benefits listed above, PR-Agent Pro will emphasize more customization, and the usage of static code analysis, in addition to LLM logic, to improve results.
See [here](https://pr-agent-docs.codium.ai/#pr-agent-pro) for a list of features available in PR-Agent Pro.
### 🧭 PR → Ticket Automation
Seamlessly links pull requests to your project tracking system for end-to-end visibility.
### ✅ Auto Best Practices
Learns your teams standards and automatically enforces them during code reviews.
### 🧪 Code Validation
Performs advanced static and semantic analysis to catch issues before merge.
## How it works
### 💬 PR Chat Interface
Lets you converse with your PR to explain, summarize, or suggest improvements instantly.
The following diagram illustrates PR-Agent tools and their flow:
### 🔍 Impact Evaluation
Analyzes the business and technical effect of each change before approval.
![PR-Agent Tools](https://codium.ai/images/pr_agent/diagram-v0.9.png)
---
Check out the [PR Compression strategy](https://pr-agent-docs.codium.ai/core-abilities/#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 makes 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](https://pr-agent-docs.codium.ai/core-abilities/#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](pr_agent/settings/configuration.toml) 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).
## Data privacy
### Self-hosted PR-Agent
- If you host PR-Agent with your OpenAI API key, it is between you and OpenAI. You can read their API data privacy policy here:
https://openai.com/enterprise-privacy
### CodiumAI-hosted PR-Agent Pro 💎
- When using PR-Agent Pro 💎, hosted by CodiumAI, we will not store any of your data, nor will we use it for training. You will also benefit from an OpenAI account with zero data retention.
- For certain clients, CodiumAI-hosted PR-Agent Pro will use CodiumAIs proprietary models — if this is the case, you will be notified.
- No passive collection of Code and Pull Requests data — PR-Agent will be active only when you invoke it, and it will then extract and analyze only data relevant to the executed command and queried pull request.
### PR-Agent Chrome extension
- The [PR-Agent Chrome extension](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl) serves solely to modify the visual appearance of a GitHub PR screen. It does not transmit any user's repo or pull request code. Code is only sent for processing when a user submits a GitHub comment that activates a PR-Agent tool, in accordance with the standard privacy policy of PR-Agent.
## Links
[![Join our Discord community](https://raw.githubusercontent.com/Codium-ai/codiumai-vscode-release/main/media/docs/Joincommunity.png)](https://discord.gg/kG35uSHDBc)
- Discord community: https://discord.gg/kG35uSHDBc
- CodiumAI site: https://codium.ai
- Blog: https://www.codium.ai/blog/
- Troubleshooting: https://www.codium.ai/blog/technical-faq-and-troubleshooting/
- Support: support@codium.ai
## ❤️ Community
This open-source release remains here as a community contribution from Qodo — the origin of modern AI-powered code collaboration.
Were proud to share it and inspire developers worldwide.

View file

@ -1,4 +1,5 @@
## [Version 0.11] - 2023-12-07
- codiumai/pr-agent:0.11
- codiumai/pr-agent:0.11-github_app
- codiumai/pr-agent:0.11-bitbucket-app
@ -7,16 +8,18 @@
- codiumai/pr-agent:0.11-github_action
### Added::Algo
- New section in `/describe` tool - [PR changes walkthrough](https://github.com/Codium-ai/pr-agent/pull/509)
- Improving PR Agent [prompts](https://github.com/Codium-ai/pr-agent/pull/501)
- Persistent tools (`/review`, `/describe`) now send an [update message](https://github.com/Codium-ai/pr-agent/pull/499) after finishing
- Add Amazon Bedrock [support](https://github.com/Codium-ai/pr-agent/pull/483)
### Fixed
- Update [dependencies](https://github.com/Codium-ai/pr-agent/pull/503) in requirements.txt for Python 3.12
## [Version 0.10] - 2023-11-15
- codiumai/pr-agent:0.10
- codiumai/pr-agent:0.10-github_app
- codiumai/pr-agent:0.10-bitbucket-app
@ -25,6 +28,7 @@
- codiumai/pr-agent:0.10-github_action
### Added::Algo
- Review tool now works with [persistent comments](https://github.com/Codium-ai/pr-agent/pull/451) by default
- Bitbucket now publishes review suggestions with [code links](https://github.com/Codium-ai/pr-agent/pull/428)
- Enabling to limit [max number of tokens](https://github.com/Codium-ai/pr-agent/pull/437/files)
@ -34,11 +38,13 @@
- Decoupled custom labels from [PR type](https://github.com/Codium-ai/pr-agent/pull/431)
### Fixed
- Fixed bug in [parsing quotes](https://github.com/Codium-ai/pr-agent/pull/446) in CLI
- Preserve [user-added labels](https://github.com/Codium-ai/pr-agent/pull/433) in pull requests
- Bug fixes in GitLab and BitBucket
## [Version 0.9] - 2023-10-29
- codiumai/pr-agent:0.9
- codiumai/pr-agent:0.9-github_app
- codiumai/pr-agent:0.9-bitbucket-app
@ -47,6 +53,7 @@
- codiumai/pr-agent:0.9-github_action
### Added::Algo
- New tool - [generate_labels](https://github.com/Codium-ai/pr-agent/blob/main/docs/GENERATE_CUSTOM_LABELS.md)
- New ability to use [customize labels](https://github.com/Codium-ai/pr-agent/blob/main/docs/GENERATE_CUSTOM_LABELS.md#how-to-enable-custom-labels) on the `review` and `describe` tools.
- New tool - [add_docs](https://github.com/Codium-ai/pr-agent/blob/main/docs/ADD_DOCUMENTATION.md)
@ -56,14 +63,17 @@
- PR Description default mode is now in [bullet points](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml#L35).
### Added::Documentation
Significant documentation updates (see [Installation Guide](https://github.com/Codium-ai/pr-agent/blob/main/INSTALL.md), [Usage Guide](https://github.com/Codium-ai/pr-agent/blob/main/Usage.md), and [Tools Guide](https://github.com/Codium-ai/pr-agent/blob/main/docs/TOOLS_GUIDE.md))
### Fixed
- Fixed support for BitBucket pipeline (see [link](https://github.com/Codium-ai/pr-agent/pull/386))
- Fixed a bug in `review -i` tool
- Added blacklist for specific file extensions in `add_docs` tool (see [link](https://github.com/Codium-ai/pr-agent/pull/385/))
## [Version 0.8] - 2023-09-27
- codiumai/pr-agent:0.8
- codiumai/pr-agent:0.8-github_app
- codiumai/pr-agent:0.8-bitbucket-app
@ -72,16 +82,18 @@ Significant documentation updates (see [Installation Guide](https://github.com/C
- codiumai/pr-agent:0.8-github_action
### Added::Algo
- GitHub Action: Can control which tools will run automatically when a new PR is created. (see usage guide: https://github.com/Codium-ai/pr-agent/blob/main/Usage.md#working-with-github-action)
- Code suggestion tool: Will try to avoid an 'add comments' suggestion (see https://github.com/Codium-ai/pr-agent/pull/327)
### Fixed
- Gitlab: Fixed a bug of improper usage of pr_id
- Gitlab: Fixed a bug of improper usage of pr_id
## [Version 0.7] - 2023-09-20
### Docker Tags
- codiumai/pr-agent:0.7
- codiumai/pr-agent:0.7-github_app
- codiumai/pr-agent:0.7-bitbucket-app
@ -90,14 +102,17 @@ Significant documentation updates (see [Installation Guide](https://github.com/C
- codiumai/pr-agent:0.7-github_action
### Added::Algo
- New tool /similar_issue - Currently on GitHub app and CLI: indexes the issues in the repo, find the most similar issues to the target issue.
- Describe markers: Empower the /describe tool with a templating capability (see more details in https://github.com/Codium-ai/pr-agent/pull/273).
- New feature in the /review tool - added an estimated effort estimation to the review (https://github.com/Codium-ai/pr-agent/pull/306).
### Added::Infrastructure
- Implementation of a GitLab webhook.
- Implementation of a BitBucket app.
### Fixed
- Protection against no code suggestions generated.
- Resilience to repositories where the languages cannot be automatically detected.

64
SECURITY.md Normal file
View file

@ -0,0 +1,64 @@
# Security Policy
PR-Agent is an open-source tool to help efficiently review and handle pull requests. Qodo Merge is a paid version of PR-Agent, designed for companies and teams that require additional features and capabilities.
This document describes the security policy of PR-Agent. For Qodo Merge's security policy, see [here](https://qodo-merge-docs.qodo.ai/overview/data_privacy/#qodo-merge).
## PR-Agent Self-Hosted Solutions
When using PR-Agent with your OpenAI (or other LLM provider) API key, the security relationship is directly between you and the provider. We do not send your code to Qodo servers.
Types of [self-hosted solutions](https://qodo-merge-docs.qodo.ai/installation):
- Locally
- GitHub integration
- GitLab integration
- BitBucket integration
- Azure DevOps integration
## PR-Agent Supported Versions
This section outlines which versions of PR-Agent are currently supported with security updates.
### Docker Deployment Options
#### Latest Version
For the most recent updates, use our latest Docker image which is automatically built nightly:
```yaml
uses: qodo-ai/pr-agent@main
```
#### Specific Release Version
For a fixed version, you can pin your action to a specific release version. Browse available releases at:
[PR-Agent Releases](https://github.com/qodo-ai/pr-agent/releases)
For example, to github action:
```yaml
steps:
- name: PR Agent action step
id: pragent
uses: docker://codiumai/pr-agent:0.26-github_action
```
#### Enhanced Security with Docker Digest
For maximum security, you can specify the Docker image using its digest:
```yaml
steps:
- name: PR Agent action step
id: pragent
uses: docker://codiumai/pr-agent@sha256:14165e525678ace7d9b51cda8652c2d74abb4e1d76b57c4a6ccaeba84663cc64
```
## Reporting a Vulnerability
We take the security of PR-Agent seriously. If you discover a security vulnerability, please report it immediately to:
Email: security@qodo.ai
Please include a description of the vulnerability, steps to reproduce, and the affected PR-Agent version.

View file

@ -1,9 +1,12 @@
FROM python:3.12.3 AS base
FROM python:3.12.10-slim AS base
RUN apt update && apt install --no-install-recommends -y git curl && apt-get clean && rm -rf /var/lib/apt/lists/*
WORKDIR /app
ADD pyproject.toml .
ADD requirements.txt .
RUN pip install . && rm pyproject.toml requirements.txt
ADD docs docs
RUN pip install --no-cache-dir . && rm pyproject.toml requirements.txt
ENV PYTHONPATH=/app
FROM base AS github_app
@ -30,9 +33,14 @@ FROM base AS azure_devops_webhook
ADD pr_agent pr_agent
CMD ["python", "pr_agent/servers/azuredevops_server_webhook.py"]
FROM base AS gitea_app
ADD pr_agent pr_agent
CMD ["python", "-m", "gunicorn", "-k", "uvicorn.workers.UvicornWorker", "-c", "pr_agent/servers/gunicorn_config.py","pr_agent.servers.gitea_app:app"]
FROM base AS test
ADD requirements-dev.txt .
RUN pip install -r requirements-dev.txt && rm requirements-dev.txt
RUN pip install --no-cache-dir -r requirements-dev.txt && rm requirements-dev.txt
ADD pr_agent pr_agent
ADD tests tests

View file

@ -1,12 +1,18 @@
FROM public.ecr.aws/lambda/python:3.10
FROM public.ecr.aws/lambda/python:3.12 AS base
RUN yum update -y && \
yum install -y gcc python3-devel git && \
yum clean all
RUN dnf update -y && \
dnf install -y gcc python3-devel git && \
dnf clean all
ADD pyproject.toml requirements.txt .
RUN pip install . && rm pyproject.toml
RUN pip install mangum==0.17.0
ADD pyproject.toml requirements.txt ./
RUN pip install --no-cache-dir . && rm pyproject.toml
RUN pip install --no-cache-dir mangum==0.17.0
COPY pr_agent/ ${LAMBDA_TASK_ROOT}/pr_agent/
CMD ["pr_agent.servers.serverless.serverless"]
FROM base AS github_lambda
CMD ["pr_agent.servers.github_lambda_webhook.lambda_handler"]
FROM base AS gitlab_lambda
CMD ["pr_agent.servers.gitlab_lambda_webhook.lambda_handler"]
FROM github_lambda

View file

@ -1 +1 @@
# [Visit Our Docs Portal](https://pr-agent-docs.codium.ai/)
# [Visit Our Docs Portal](https://qodo-merge-docs.qodo.ai/)

5
docs/docs/.gitbook.yaml Normal file
View file

@ -0,0 +1,5 @@
root: ./
structure:
readme: ../README.md
summary: ./summary.md

View file

@ -1 +1 @@
pr-agent-docs.codium.ai
qodo-merge-docs.qodo.ai

View file

@ -0,0 +1,328 @@
<div class="search-section">
<h1>AI Docs Search</h1>
<p class="search-description">
Search through our documentation using AI-powered natural language queries.
</p>
<div class="search-container">
<input
type="text"
id="searchInput"
class="search-input"
placeholder="Enter your search term..."
>
<button id="searchButton" class="search-button">Search</button>
</div>
<div id="spinner" class="spinner-container" style="display: none;">
<div class="spinner"></div>
</div>
<div id="results" class="results-container"></div>
</div>
<style>
.search-section {
max-width: 800px;
margin: 0 auto;
padding: 0 1rem 2rem;
}
h1 {
color: #666;
font-size: 2.125rem;
font-weight: normal;
margin-bottom: 1rem;
}
.search-description {
color: #666;
font-size: 1rem;
line-height: 1.5;
margin-bottom: 2rem;
max-width: 800px;
}
.search-container {
display: flex;
gap: 1rem;
max-width: 800px;
margin: 0; /* Changed from auto to 0 to align left */
}
.search-input {
flex: 1;
padding: 0 0.875rem;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 0.9375rem;
outline: none;
height: 40px; /* Explicit height */
}
.search-input:focus {
border-color: #6c63ff;
}
.search-button {
padding: 0 1.25rem;
background-color: #2196F3;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 0.875rem;
transition: background-color 0.2s;
height: 40px; /* Match the height of search input */
display: flex;
align-items: center;
justify-content: center;
}
.search-button:hover {
background-color: #1976D2;
}
.spinner-container {
display: flex;
justify-content: center;
margin-top: 2rem;
}
.spinner {
width: 40px;
height: 40px;
border: 4px solid #f3f3f3;
border-top: 4px solid #2196F3;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.results-container {
margin-top: 2rem;
max-width: 800px;
}
.result-item {
padding: 1rem;
border: 1px solid #ddd;
border-radius: 4px;
margin-bottom: 1rem;
}
.result-title {
font-size: 1.2rem;
color: #2196F3;
margin-bottom: 0.5rem;
}
.result-description {
color: #666;
}
.error-message {
color: #dc3545;
padding: 1rem;
border: 1px solid #dc3545;
border-radius: 4px;
margin-top: 1rem;
}
.markdown-content {
line-height: 1.6;
color: var(--md-typeset-color);
background: var(--md-default-bg-color);
border: 1px solid var(--md-default-fg-color--lightest);
border-radius: 12px;
padding: 1.5rem;
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
position: relative;
margin-top: 2rem;
}
.markdown-content::before {
content: '';
position: absolute;
top: -8px;
left: 24px;
width: 16px;
height: 16px;
background: var(--md-default-bg-color);
border-left: 1px solid var(--md-default-fg-color--lightest);
border-top: 1px solid var(--md-default-fg-color--lightest);
transform: rotate(45deg);
}
.markdown-content > *:first-child {
margin-top: 0;
padding-top: 0;
}
.markdown-content p {
margin-bottom: 1rem;
}
.markdown-content p:last-child {
margin-bottom: 0;
}
.markdown-content code {
background: var(--md-code-bg-color);
color: var(--md-code-fg-color);
padding: 0.2em 0.4em;
border-radius: 3px;
font-size: 0.9em;
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
}
.markdown-content pre {
background: var(--md-code-bg-color);
padding: 1rem;
border-radius: 6px;
overflow-x: auto;
margin: 1rem 0;
}
.markdown-content pre code {
background: none;
padding: 0;
font-size: 0.9em;
}
[data-md-color-scheme="slate"] .markdown-content {
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/9.1.6/marked.min.js"></script>
<script>
window.addEventListener('load', function() {
function extractText(responseText) {
try {
console.log('responseText: ', responseText);
const results = JSON.parse(responseText);
const msg = results.message;
if (!msg || msg.trim() === '') {
return "No results found";
}
return msg;
} catch (error) {
console.error('Error parsing results:', error);
throw new Error("Failed parsing response message");
}
}
function displayResults(msg) {
const resultsContainer = document.getElementById('results');
const spinner = document.getElementById('spinner');
const searchContainer = document.querySelector('.search-container');
// Hide spinner
spinner.style.display = 'none';
// Scroll to search bar
searchContainer.scrollIntoView({ behavior: 'smooth', block: 'start' });
try {
marked.setOptions({
breaks: true,
gfm: true,
headerIds: false,
sanitize: false
});
const htmlContent = marked.parse(msg);
resultsContainer.className = 'markdown-content';
resultsContainer.innerHTML = htmlContent;
// Scroll after content is rendered
setTimeout(() => {
const searchContainer = document.querySelector('.search-container');
const offset = 55; // Offset from top in pixels
const elementPosition = searchContainer.getBoundingClientRect().top;
const offsetPosition = elementPosition + window.pageYOffset - offset;
window.scrollTo({
top: offsetPosition,
behavior: 'smooth'
});
}, 100);
} catch (error) {
console.error('Error parsing results:', error);
resultsContainer.innerHTML = '<div class="error-message">Cannot process results</div>';
}
}
async function performSearch() {
const searchInput = document.getElementById('searchInput');
const resultsContainer = document.getElementById('results');
const spinner = document.getElementById('spinner');
const searchTerm = searchInput.value.trim();
if (!searchTerm) {
resultsContainer.innerHTML = '<div class="error-message">Please enter a search term</div>';
return;
}
// Show spinner, clear results
spinner.style.display = 'flex';
resultsContainer.innerHTML = '';
try {
const data = {
"query": searchTerm
};
const options = {
method: 'POST',
headers: {
'accept': 'text/plain',
'content-type': 'application/json',
},
body: JSON.stringify(data)
};
//const API_ENDPOINT = 'http://0.0.0.0:3000/api/v1/docs_help';
const API_ENDPOINT = 'https://help.merge.qodo.ai/api/v1/docs_help';
const response = await fetch(API_ENDPOINT, options);
const responseText = await response.text();
const msg = extractText(responseText);
if (!response.ok) {
throw new Error(`An error (${response.status}) occurred during search: "${msg}"`);
}
displayResults(msg);
} catch (error) {
spinner.style.display = 'none';
const errorDiv = document.createElement('div');
errorDiv.className = 'error-message';
errorDiv.textContent = error instanceof Error ? error.message : String(error);
resultsContainer.replaceChildren(errorDiv);
}
}
// Add event listeners
const searchButton = document.getElementById('searchButton');
const searchInput = document.getElementById('searchInput');
if (searchButton) {
searchButton.addEventListener('click', performSearch);
}
if (searchInput) {
searchInput.addEventListener('keypress', function(e) {
if (e.key === 'Enter') {
performSearch();
}
});
}
});
</script>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 KiB

After

Width:  |  Height:  |  Size: 57 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9 KiB

After

Width:  |  Height:  |  Size: 24 KiB

BIN
docs/docs/assets/logo_.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -1,5 +1,4 @@
We take your code's security and privacy seriously:
- The Chrome extension will not send your code to any external servers.
- For private repositories, we will first validate the user's identity and permissions. After authentication, we generate responses using the existing PR-Agent Pro integration.
- For private repositories, we will first validate the user's identity and permissions. After authentication, we generate responses using the existing Qodo Merge integration.

View file

@ -1,21 +1,25 @@
### PR Chat
### PR chat
The PR-Chat feature allows to freely chat with your PR code, within your GitHub environment.
It will seamlessly add the PR code as context to your chat session, and provide AI-powered feedback.
It will seamlessly use the PR as context to your chat session, and provide AI-powered feedback.
To enable private chat, simply install the PR-Agent Chrome extension. After installation, each PR's file-changed tab will include a chat box, where you may ask questions about your code.
To enable private chat, simply install the Qodo Merge Chrome extension. After installation, each PR's file-changed tab will include a chat box, where you may ask questions about your code.
This chat session is **private**, and won't be visible to other users.
All open-source repositories are supported.
For private repositories, you will also need to install PR-Agent Pro, After installation, make sure to open at least one new PR to fully register your organization. Once done, you can chat with both new and existing PRs across all installed repositories.
For private repositories, you will also need to install Qodo Merge. After installation, make sure to open at least one new PR to fully register your organization. Once done, you can chat with both new and existing PRs across all installed repositories.
<img src="https://codium.ai/images/pr_agent/pr_chat1.png" width="768">
<img src="https://codium.ai/images/pr_agent/pr_chat2.png" width="768">
#### Context-aware PR chat
Qodo Merge constructs a comprehensive context for each pull request, incorporating the PR description, commit messages, and code changes with extended dynamic context. This contextual information, along with additional PR-related data, forms the foundation for an AI-powered chat session. The agent then leverages this rich context to provide intelligent, tailored responses to user inquiries about the pull request.
<img src="https://codium.ai/images/pr_agent/pr_chat_1.png" width="768">
<img src="https://codium.ai/images/pr_agent/pr_chat_2.png" width="768">
### Toolbar extension
With PR-Agent Chrome extension, it's [easier than ever](https://www.youtube.com/watch?v=gT5tli7X4H4) to interactively configure and experiment with the different tools and configuration options.
With Qodo Merge Chrome extension, it's [easier than ever](https://www.youtube.com/watch?v=gT5tli7X4H4) to interactively configure and experiment with the different tools and configuration options.
For private repositories, after you found the setup that works for you, you can also easily export it as a persistent configuration file, and use it for automatic commands.
@ -23,25 +27,23 @@ For private repositories, after you found the setup that works for you, you can
<img src="https://codium.ai/images/pr_agent/toolbar2.png" width="512">
### PR-Agent filters
### Qodo Merge filters
PR-Agent filters is a sidepanel option. that allows you to filter different message in the conversation tab.
Qodo Merge filters is a sidepanel option. that allows you to filter different message in the conversation tab.
For example, you can choose to present only message from PR-Agent, or filter those messages, focusing only on user's comments.
For example, you can choose to present only message from Qodo Merge, or filter those messages, focusing only on user's comments.
<img src="https://codium.ai/images/pr_agent/pr_agent_filters1.png" width="256">
<img src="https://codium.ai/images/pr_agent/pr_agent_filters2.png" width="256">
### Enhanced code suggestions
PR-Agent Chrome extension adds the following capabilities to code suggestions tool's comments:
Qodo Merge Chrome extension adds the following capabilities to code suggestions tool's comments:
- Auto-expand the table when you are viewing a code block, to avoid clipping.
- Adding a "quote-and-reply" button, that enables to address and comment on a specific suggestion (for example, asking the author to fix the issue)
<img src="https://codium.ai/images/pr_agent/chrome_extension_code_suggestion1.png" width="512">
<img src="https://codium.ai/images/pr_agent/chrome_extension_code_suggestion2.png" width="512">

View file

@ -1,8 +1,114 @@
[PR-Agent Chrome extension](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl) is a collection of tools that integrates seamlessly with your GitHub environment, aiming to enhance your Git usage experience, and providing AI-powered capabilities to your PRs.
`Platforms supported: GitHub Cloud`
With a single-click installation you will gain access to a context-aware PR chat with top models, a toolbar extension with multiple AI feedbacks, PR-Agent filters, and additional abilities.
[Qodo Merge Chrome extension](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl){:target="_blank"} is a collection of tools that integrates seamlessly with your GitHub environment, aiming to enhance your Git usage experience, and providing AI-powered capabilities to your PRs.
All the extension's features are free to use on public repositories. For private repositories, you will need to install in addition to the extension [PR-Agent Pro](https://github.com/apps/codiumai-pr-agent-pro) (fast and easy installation with two weeks of trial, no credit card required).
With a single-click installation you will gain access to a context-aware chat on your pull requests code, a toolbar extension with multiple AI feedbacks, Qodo Merge filters, and additional abilities.
<img src="https://codium.ai/images/pr_agent/pr_chat1.png" width="768">
<img src="https://codium.ai/images/pr_agent/pr_chat2.png" width="768">
The extension is powered by top code models like GPT-5. All the extension's features are free to use on public repositories.
For private repositories, you will need to install [Qodo Merge](https://github.com/apps/qodo-merge-pro){:target="_blank"} in addition to the extension.
For a demonstration of how to install Qodo Merge 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){:target="_blank"}.
<img src="https://codium.ai/images/pr_agent/PR-AgentChat.gif" width="768">
### Supported browsers
The extension is supported on all Chromium-based browsers, including Google Chrome, Arc, Opera, Brave, and Microsoft Edge.
## Features
### PR chat
The PR-Chat feature allows to freely chat with your PR code, within your GitHub environment.
It will seamlessly use the PR as context to your chat session, and provide AI-powered feedback.
To enable private chat, simply install the Qodo Merge Chrome extension. After installation, each PR's file-changed tab will include a chat box, where you may ask questions about your code.
This chat session is **private**, and won't be visible to other users.
All open-source repositories are supported.
For private repositories, you will also need to install Qodo Merge. After installation, make sure to open at least one new PR to fully register your organization. Once done, you can chat with both new and existing PRs across all installed repositories.
#### Context-aware PR chat
Qodo Merge constructs a comprehensive context for each pull request, incorporating the PR description, commit messages, and code changes with extended dynamic context. This contextual information, along with additional PR-related data, forms the foundation for an AI-powered chat session. The agent then leverages this rich context to provide intelligent, tailored responses to user inquiries about the pull request.
<img src="https://codium.ai/images/pr_agent/pr_chat_1.png" width="768">
<img src="https://codium.ai/images/pr_agent/pr_chat_2.png" width="768">
### Toolbar extension
With Qodo Merge Chrome extension, it's [easier than ever](https://www.youtube.com/watch?v=gT5tli7X4H4) to interactively configure and experiment with the different tools and configuration options.
For private repositories, after you found the setup that works for you, you can also easily export it as a persistent configuration file, and use it for automatic commands.
<img src="https://codium.ai/images/pr_agent/toolbar1.png" width="512">
<img src="https://codium.ai/images/pr_agent/toolbar2.png" width="512">
### Qodo Merge filters
Qodo Merge filters is a sidepanel option. that allows you to filter different message in the conversation tab.
For example, you can choose to present only message from Qodo Merge, or filter those messages, focusing only on user's comments.
<img src="https://codium.ai/images/pr_agent/pr_agent_filters1.png" width="256">
<img src="https://codium.ai/images/pr_agent/pr_agent_filters2.png" width="256">
### Enhanced code suggestions
Qodo Merge Chrome extension adds the following capabilities to code suggestions tool's comments:
- Auto-expand the table when you are viewing a code block, to avoid clipping.
- Adding a "quote-and-reply" button, that enables to address and comment on a specific suggestion (for example, asking the author to fix the issue)
<img src="https://codium.ai/images/pr_agent/chrome_extension_code_suggestion1.png" width="512">
<img src="https://codium.ai/images/pr_agent/chrome_extension_code_suggestion2.png" width="512">
## Data Privacy
We take your code's security and privacy seriously:
- The Chrome extension will not send your code to any external servers.
- For private repositories, we will first validate the user's identity and permissions. After authentication, we generate responses using the existing Qodo Merge integration.
## Options and Configurations
### Accessing the Options Page
To access the options page for the Qodo Merge Chrome extension:
1. Find the extension icon in your Chrome toolbar (usually in the top-right corner of your browser)
2. Right-click on the extension icon
3. Select "Options" from the context menu that appears
Alternatively, you can access the options page directly using this URL:
[chrome-extension://ephlnjeghhogofkifjloamocljapahnl/options.html](chrome-extension://ephlnjeghhogofkifjloamocljapahnl/options.html)
<img src="https://codium.ai/images/pr_agent/chrome_ext_options.png" width="256">
### Configuration Options
<img src="https://codium.ai/images/pr_agent/chrome_ext_settings_page.png" width="512">
#### API Base Host
For single-tenant customers, you can configure the extension to communicate directly with your company's Qodo Merge server instance.
To set this up:
- Enter your organization's Qodo Merge API endpoint in the "API Base Host" field
- This endpoint should be provided by your Qodo DevOps Team
*Note: The extension does not send your code to the server, but only triggers your previously installed Qodo Merge application.*
#### Interface Options
You can customize the extension's interface by:
- Toggling the "Show Qodo Merge Toolbar" option
- When disabled, the toolbar will not appear in your Github comment bar
Remember to click "Save Settings" after making any changes.

View file

@ -0,0 +1,39 @@
## Options and Configurations
### Accessing the Options Page
To access the options page for the Qodo Merge Chrome extension:
1. Find the extension icon in your Chrome toolbar (usually in the top-right corner of your browser)
2. Right-click on the extension icon
3. Select "Options" from the context menu that appears
Alternatively, you can access the options page directly using this URL:
[chrome-extension://ephlnjeghhogofkifjloamocljapahnl/options.html](chrome-extension://ephlnjeghhogofkifjloamocljapahnl/options.html)
<img src="https://codium.ai/images/pr_agent/chrome_ext_options.png" width="256">
### Configuration Options
<img src="https://codium.ai/images/pr_agent/chrome_ext_settings_page.png" width="512">
#### API Base Host
For single-tenant customers, you can configure the extension to communicate directly with your company's Qodo Merge server instance.
To set this up:
- Enter your organization's Qodo Merge API endpoint in the "API Base Host" field
- This endpoint should be provided by your Qodo DevOps Team
*Note: The extension does not send your code to the server, but only triggers your previously installed Qodo Merge application.*
#### Interface Options
You can customize the extension's interface by:
- Toggling the "Show Qodo Merge Toolbar" option
- When disabled, the toolbar will not appear in your Github comment bar
Remember to click "Save Settings" after making any changes.

View file

@ -0,0 +1,83 @@
# Auto-approval 💎
`Supported Git Platforms: GitHub, GitLab, Bitbucket`
Under specific conditions, Qodo Merge can auto-approve a PR when a manual comment is invoked, or when the PR meets certain criteria.
**To ensure safety, the auto-approval feature is disabled by default.**
To enable auto-approval features, you need to actively set one or both of the following options in a pre-defined _configuration file_:
```toml
[config]
enable_comment_approval = true # For approval via comments
enable_auto_approval = true # For criteria-based auto-approval
```
!!! note "Notes"
- These flags above cannot be set with a command line argument, only in the configuration file, committed to the repository.
- Enabling auto-approval must be a deliberate decision by the repository owner.
## **Approval by commenting**
To enable approval by commenting, set in the configuration file:
```toml
[config]
enable_comment_approval = true
```
After enabling, by commenting on a PR:
```
/review auto_approve
```
Qodo Merge will approve the PR and add a comment with the reason for the approval.
## **Auto-approval when the PR meets certain criteria**
To enable auto-approval based on specific criteria, first, you need to enable the top-level flag:
```toml
[config]
enable_auto_approval = true
```
There are two possible paths leading to this auto-approval - one via the `review` tool, and one via the `improve` tool. Each tool can independently trigger auto-approval.
### Auto-approval via the `review` tool
- **Review effort score criteria**
```toml
[config]
enable_auto_approval = true
auto_approve_for_low_review_effort = X # X is a number between 1 and 5
```
When the [review effort score](https://www.qodo.ai/images/pr_agent/review3.png) is lower than or equal to X, the PR will be auto-approved (unless ticket compliance is enabled and fails, see below).
- **Ticket compliance criteria**
```toml
[config]
enable_auto_approval = true
ensure_ticket_compliance = true # Default is false
```
If `ensure_ticket_compliance` is set to `true`, auto-approval for the `review` toll path will be disabled if no ticket is linked to the PR, or if the PR is not fully compliant with a linked ticket. This ensures that PRs are only auto-approved if their associated tickets are properly resolved.
You can also prevent auto-approval if the PR exceeds the ticket's scope (see [here](https://qodo-merge-docs.qodo.ai/core-abilities/fetching_ticket_context/#configuration-options)).
### Auto-approval via the `improve` tool
PRs can be auto-approved when the `improve` tool doesn't find code suggestions.
To enable this feature, set the following in the configuration file:
```toml
[config]
enable_auto_approval = true
auto_approve_for_no_suggestions = true
```

View file

@ -0,0 +1,63 @@
# Auto Best Practices 💎
`Supported Git Platforms: GitHub`
## Overview
![Auto best practice suggestion graph](https://www.qodo.ai/images/pr_agent/auto_best_practices_graph.png){width=684}
> Note - enabling a [Wiki](https://qodo-merge-docs.qodo.ai/usage-guide/enabling_a_wiki/) is required for this feature.
### Finding Code Problems - Exploration Phase
The `improve` tool identifies potential issues, problems and bugs in Pull Request (PR) code changes.
Rather than focusing on minor issues like code style or formatting, the tool intelligently analyzes code to detect meaningful problems.
The analysis intentionally takes a flexible, _exploratory_ approach to identify meaningful potential issues, allowing the tool to surface relevant code suggestions without being constrained by predefined categories.
### Tracking Implemented Suggestions
Qodo Merge features a novel [tracking system](https://qodo-merge-docs.qodo.ai/tools/improve/#suggestion-tracking) that automatically detects when PR authors implement AI-generated code suggestions.
All accepted suggestions are aggregated in a repository-specific wiki page called [`.pr_agent_accepted_suggestions`](https://github.com/qodo-ai/pr-agent/wiki/.pr_agent_accepted_suggestions)
### Learning and Applying Auto Best Practices
Monthly, Qodo Merge analyzes the collection of accepted suggestions to generate repository-specific best practices, stored in [`.pr_agent_auto_best_practices`](https://github.com/qodo-ai/pr-agent/wiki/.pr_agent_auto_best_practices) wiki file.
These best practices reflect recurring patterns in accepted code improvements.
The `improve` tool will incorporate these best practices as an additional analysis layer, checking PR code changes against known patterns of previously accepted improvements.
This creates a two-phase analysis:
1. Open exploration for general code issues
2. Targeted checking against established best practices - exploiting the knowledge gained from past suggestions
By keeping these phases decoupled, the tool remains free to discover new or unseen issues and problems, while also learning from past experiences.
When presenting the suggestions generated by the `improve` tool, Qodo Merge will add a dedicated label for each suggestion generated from the auto best practices - 'Learned best practice':
![Auto best practice suggestion](https://www.qodo.ai/images/pr_agent/auto_best_practices.png){width=684}
## Auto Best Practices vs Custom Best Practices
Teams and companies can also manually define their own [custom best practices](https://qodo-merge-docs.qodo.ai/tools/improve/#best-practices) in Qodo Merge.
When custom best practices exist, Qodo Merge will use both the auto-generated best practices and your custom best practices together. The auto best practices file provides additional insights derived from suggestions your team found valuable enough to implement, while also demonstrating effective patterns for writing AI-friendly best practices.
We recommend utilizing both auto and custom best practices to get the most comprehensive code improvement suggestions for your team.
## Relevant configurations
```toml
[auto_best_practices]
# Disable all auto best practices usage or generation
enable_auto_best_practices = true
# Disable usage of auto best practices file in the 'improve' tool
utilize_auto_best_practices = true
# Extra instructions to the auto best practices generation prompt
extra_instructions = ""
# Max number of patterns to be detected
max_patterns = 5
```

View file

@ -0,0 +1,55 @@
# Chat on code suggestions 💎
`Supported Git Platforms: GitHub, GitLab`
## Overview
Qodo Merge implements an orchestrator agent that enables interactive code discussions, listening and responding to comments without requiring explicit tool calls.
The orchestrator intelligently analyzes your responses to determine if you want to implement a suggestion, ask a question, or request help, then delegates to the appropriate specialized tool.
To minimize unnecessary notifications and maintain focused discussions, the orchestrator agent will only respond to comments made directly within the inline code suggestion discussions it has created (`/improve`) or within discussions initiated by the `/implement` command.
## Getting Started
### Setup
Enable interactive code discussions by adding the following to your configuration file (default is `True`):
```toml
[pr_code_suggestions]
enable_chat_in_code_suggestions = true
```
### Activation
#### `/improve`
To obtain dynamic responses, the following steps are required:
1. Run the `/improve` command (mostly automatic)
2. Check the `/improve` recommendation checkboxes (_Apply this suggestion_) to have Qodo Merge generate a new inline code suggestion discussion
3. The orchestrator agent will then automatically listen to and reply to comments within the discussion without requiring additional commands
#### `/implement`
To obtain dynamic responses, the following steps are required:
1. Select code lines in the PR diff and run the `/implement` command
2. Wait for Qodo Merge to generate a new inline code suggestion
3. The orchestrator agent will then automatically listen to and reply to comments within the discussion without requiring additional commands
## Explore the available interaction patterns
!!! tip "Tip: Direct the agent with keywords"
Use "implement" or "apply" for code generation. Use "explain", "why", or "how" for information and help.
=== "Asking for Details"
![Chat on code suggestions ask](https://codium.ai/images/pr_agent/improve_chat_on_code_suggestions_ask.png){width=512}
=== "Implementing Suggestions"
![Chat on code suggestions implement](https://codium.ai/images/pr_agent/improve_chat_on_code_suggestions_implement.png){width=512}
=== "Providing Additional Help"
![Chat on code suggestions help](https://codium.ai/images/pr_agent/improve_chat_on_code_suggestions_help.png){width=512}

View file

@ -0,0 +1,45 @@
# Code Validation 💎
`Supported Git Platforms: GitHub, GitLab, Bitbucket`
## Introduction
The Git environment usually represents the final stage before code enters production. Hence, Detecting bugs and issues during the review process is critical.
The [`improve`](https://qodo-merge-docs.qodo.ai/tools/improve/) tool provides actionable code suggestions for your pull requests, aiming to help detect and fix bugs and problems.
By default, suggestions appear as a comment in a table format:
![code_suggestions_as_comment_closed.png](https://codium.ai/images/pr_agent/code_suggestions_as_comment_closed.png){width=512}
![code_suggestions_as_comment_open.png](https://codium.ai/images/pr_agent/code_suggestions_as_comment_open.png){width=512}
## Validation of Code Suggestions
Each suggestion in the table can be "applied" by clicking on the `Apply this suggestion` checkbox, converting it to a committable Git code change that can be committed directly to the PR.
This approach allows to fix issues without returning to your IDE for manual edits — significantly faster and more convenient.
However, committing a suggestion in a Git environment carries more risk than in a local IDE, as you don't have the opportunity to fully run and test the code before committing.
To balance convenience with safety, Qodo Merge implements a dual validation system for each generated code suggestion:
1) **Localization** - Qodo Merge confirms that the suggestion's line numbers and surrounding code, as predicted by the model, actually match the repo code. This means that the model correctly identified the context and location of the code to be changed.
2) **"Compilation"** - Using static code analysis, Qodo Merge verifies that after applying the suggestion, the modified file will still be valid, meaning tree-sitter syntax processing will not throw an error. This process is relevant for multiple programming languages, see [here](https://pypi.org/project/tree-sitter-languages/) for the full list of supported languages.
When a suggestion fails to meet these validation criteria, it may still provide valuable feedback, but isn't suitable for direct application to the PR.
In such cases, Qodo Merge will omit the 'apply' checkbox and instead display:
`[To ensure code accuracy, apply this suggestion manually]`
All suggestions that pass these validations undergo a final stage of **self-reflection**, where the AI model evaluates, scores, and re-ranks its own suggestions, eliminating any that are irrelevant or incorrect.
Read more about this process in the [self-reflection](https://qodo-merge-docs.qodo.ai/core-abilities/self_reflection/) page.
## Conclusion
The validation methods described above enhance the reliability of code suggestions and help PR authors determine which suggestions are safer to apply in the Git environment.
Of course, additional factors should be considered, such as suggestion complexity and potential code impact.
Human judgment remains essential. After clicking 'apply', Qodo Merge still presents the 'before' and 'after' code snippets for review, allowing you to assess the changes before finalizing the commit.
![improve](https://codium.ai/images/pr_agent/improve.png){width=512}

View file

@ -0,0 +1,57 @@
`Supported Git Platforms: GitHub, GitLab, Bitbucket`
## Overview
There are two scenarios:
1. The PR is small enough to fit in a single prompt (including system and user prompt)
2. The PR is too large to fit in a single prompt (including system and user prompt)
For both scenarios, we first use the following strategy
#### Repo language prioritization strategy
We prioritize the languages of the repo based on the following criteria:
1. Exclude binary files and non code files (e.g. images, pdfs, etc)
2. Given the main languages used in the repo
3. We sort the PR files by the most common languages in the repo (in descending order):
* ```[[file.py, file2.py],[file3.js, file4.jsx],[readme.md]]```
### Small PR
In this case, we can fit the entire PR in a single prompt:
1. Exclude binary files and non code files (e.g. images, pdfs, etc)
2. We Expand the surrounding context of each patch to 3 lines above and below the patch
### Large PR
#### Motivation
Pull Requests can be very long and contain a lot of information with varying degree of relevance to the pr-agent.
We want to be able to pack as much information as possible in a single LMM prompt, while keeping the information relevant to the pr-agent.
#### Compression strategy
We prioritize additions over deletions:
* Combine all deleted files into a single list (`deleted files`)
* File patches are a list of hunks, remove all hunks of type deletion-only from the hunks in the file patch
#### Adaptive and token-aware file patch fitting
We use [tiktoken](https://github.com/openai/tiktoken) to tokenize the patches after the modifications described above, and we use the following strategy to fit the patches into the prompt:
1. Within each language we sort the files by the number of tokens in the file (in descending order):
* ```[[file2.py, file.py],[file4.jsx, file3.js],[readme.md]]```
2. Iterate through the patches in the order described above
3. Add the patches to the prompt until the prompt reaches a certain buffer from the max token length
4. If there are still patches left, add the remaining patches as a list called `other modified files` to the prompt until the prompt reaches the max token length (hard stop), skip the rest of the patches.
5. If we haven't reached the max token length, add the `deleted files` to the prompt until the prompt reaches the max token length (hard stop), skip the rest of the patches.
#### Example
![Core Abilities](https://codium.ai/images/git_patch_logic.png){width=768}

View file

@ -0,0 +1,75 @@
`Supported Git Platforms: GitHub, GitLab, Bitbucket`
Qodo Merge uses an **asymmetric and dynamic context strategy** to improve AI analysis of code changes in pull requests.
It provides more context before changes than after, and dynamically adjusts the context based on code structure (e.g., enclosing functions or classes).
This approach balances providing sufficient context for accurate analysis, while avoiding needle-in-the-haystack information overload that could degrade AI performance or exceed token limits.
## Introduction
Pull request code changes are retrieved in a unified diff format, showing three lines of context before and after each modified section, with additions marked by '+' and deletions by '-'.
```diff
@@ -12,5 +12,5 @@ def func1():
code line that already existed in the file...
code line that already existed in the file...
code line that already existed in the file....
-code line that was removed in the PR
+new code line added in the PR
code line that already existed in the file...
code line that already existed in the file...
code line that already existed in the file...
@@ -26,2 +26,4 @@ def func2():
...
```
This unified diff format can be challenging for AI models to interpret accurately, as it provides limited context for understanding the full scope of code changes.
The presentation of code using '+', '-', and ' ' symbols to indicate additions, deletions, and unchanged lines respectively also differs from the standard code formatting typically used to train AI models.
## Challenges of expanding the context window
While expanding the context window is technically feasible, it presents a more fundamental trade-off:
Pros:
- Enhanced context allows the model to better comprehend and localize the code changes, results (potentially) in more precise analysis and suggestions. Without enough context, the model may struggle to understand the code changes and provide relevant feedback.
Cons:
- Excessive context may overwhelm the model with extraneous information, creating a "needle in a haystack" scenario where focusing on the relevant details (the code that actually changed) becomes challenging.
LLM quality is known to degrade when the context gets larger.
Pull requests often encompass multiple changes across many files, potentially spanning hundreds of lines of modified code. This complexity presents a genuine risk of overwhelming the model with excessive context.
- Increased context expands the token count, increasing processing time and cost, and may prevent the model from processing the entire pull request in a single pass.
## Asymmetric and dynamic context
To address these challenges, Qodo Merge employs an **asymmetric** and **dynamic** context strategy, providing the model with more focused and relevant context information for each code change.
**Asymmetric:**
We start by recognizing that the context preceding a code change is typically more crucial for understanding the modification than the context following it.
Consequently, Qodo Merge implements an asymmetric context policy, decoupling the context window into two distinct segments: one for the code before the change and another for the code after.
By independently adjusting each context window, Qodo Merge can supply the model with a more tailored and pertinent context for individual code changes.
**Dynamic:**
We also employ a "dynamic" context strategy.
We start by recognizing that the optimal context for a code change often corresponds to its enclosing code component (e.g., function, class), rather than a fixed number of lines.
Consequently, we dynamically adjust the context window based on the code's structure, ensuring the model receives the most pertinent information for each modification.
To prevent overwhelming the model with excessive context, we impose a limit on the number of lines searched when identifying the enclosing component.
This balance allows for comprehensive understanding while maintaining efficiency and limiting context token usage.
## Appendix - relevant configuration options
```toml
[config]
patch_extension_skip_types =[".md",".txt"] # Skip files with these extensions when trying to extend the context
allow_dynamic_context=true # Allow dynamic context extension
max_extra_lines_before_dynamic_context = 8 # will try to include up to X extra lines before the hunk in the patch, until we reach an enclosing function or class
patch_extra_lines_before = 3 # Number of extra lines (+3 default ones) to include before each hunk in the patch
patch_extra_lines_after = 1 # Number of extra lines (+3 default ones) to include after each hunk in the patch
```

View file

@ -0,0 +1,527 @@
# Fetching Ticket Context for PRs
`Supported Git Platforms: GitHub, GitLab, Bitbucket`
## Overview
Qodo Merge 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.
**Ticket systems supported**:
- [GitHub/Gitlab Issues](https://qodo-merge-docs.qodo.ai/core-abilities/fetching_ticket_context/#githubgitlab-issues-integration)
- [Jira (💎)](https://qodo-merge-docs.qodo.ai/core-abilities/fetching_ticket_context/#jira-integration)
- [Linear (💎)](https://qodo-merge-docs.qodo.ai/core-abilities/fetching_ticket_context/#linear-integration)
- [Monday (💎)](https://qodo-merge-docs.qodo.ai/core-abilities/fetching_ticket_context/#monday-integration)
**Ticket data fetched:**
1. Ticket Title
2. Ticket Description
3. Custom Fields (Acceptance criteria)
4. Subtasks (linked tasks)
5. Labels
6. Attached Images/Screenshots
## Affected Tools
Ticket Recognition Requirements:
- The PR description should contain a link to the ticket or if the branch name starts with the ticket id / number.
- 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.
### Describe tool
Qodo Merge will recognize the ticket and use the ticket content (title, description, labels) to provide additional context for the code changes.
By understanding the reasoning and intent behind modifications, the LLM can offer more insightful and relevant code analysis.
### Review tool
Similarly to the `describe` tool, the `review` tool will use the ticket content to provide additional context for the code changes.
In addition, this feature will evaluate how well a Pull Request (PR) adheres to its original purpose/intent as defined by the associated ticket or issue mentioned in the PR description.
Each ticket will be assigned a label (Compliance/Alignment level), Indicates the degree to which the PR fulfills its original purpose:
- Fully Compliant
- Partially Compliant
- Not Compliant
- PR Code Verified
![Ticket Compliance](https://www.qodo.ai/images/pr_agent/ticket_compliance_review.png){width=768}
A `PR Code Verified` label indicates the PR code meets ticket requirements, but requires additional manual testing beyond the code scope. For example - validating UI display across different environments (Mac, Windows, mobile, etc.).
#### Configuration options
-
By default, the `review` tool will automatically validate if the PR complies with the referenced ticket.
If you want to disable this feedback, add the following line to your configuration file:
```toml
[pr_reviewer]
require_ticket_analysis_review=false
```
-
If you set:
```toml
[pr_reviewer]
check_pr_additional_content=true
```
(default: `false`)
the `review` tool will also validate that the PR code doesn't contain any additional content that is not related to the ticket. If it does, the PR will be labeled at best as `PR Code Verified`, and the `review` tool will provide a comment with the additional unrelated content found in the PR code.
### Compliance tool
The `compliance` tool also uses ticket context to validate that PR changes fulfill the requirements specified in linked tickets.
#### Configuration options
-
By default, the `compliance` tool will automatically validate if the PR complies with the referenced ticket.
If you want to disable ticket compliance checking in the compliance tool, add the following line to your configuration file:
```toml
[pr_compliance]
require_ticket_analysis_review=false
```
-
If you set:
```toml
[pr_compliance]
check_pr_additional_content=true
```
(default: `false`)
the `compliance` tool will also validate that the PR code doesn't contain any additional content that is not related to the ticket.
## GitHub/Gitlab Issues Integration
Qodo Merge will automatically recognize GitHub/Gitlab issues mentioned in the PR description and fetch the issue content.
Examples of valid GitHub/Gitlab issue references:
- `https://github.com/<ORG_NAME>/<REPO_NAME>/issues/<ISSUE_NUMBER>` or `https://gitlab.com/<ORG_NAME>/<REPO_NAME>/-/issues/<ISSUE_NUMBER>`
- `#<ISSUE_NUMBER>`
- `<ORG_NAME>/<REPO_NAME>#<ISSUE_NUMBER>`
Branch names can also be used to link issues, for example:
- `123-fix-bug` (where `123` is the issue number)
Since Qodo Merge is integrated with GitHub, it doesn't require any additional configuration to fetch GitHub issues.
## Jira Integration 💎
We support both Jira Cloud and Jira Server/Data Center.
### Jira Cloud
There are two ways to authenticate with Jira Cloud:
**1) Jira App Authentication**
The recommended way to authenticate with Jira Cloud is to install the Qodo Merge app in your Jira Cloud instance. This will allow Qodo Merge to access Jira data on your behalf.
Installation steps:
1. Go to the [Qodo Merge integrations page](https://app.qodo.ai/qodo-merge/integrations)
2. Click on the Connect **Jira Cloud** button to connect the Jira Cloud app
3. Click the `accept` button.<br>
![Jira Cloud App Installation](https://www.qodo.ai/images/pr_agent/jira_app_installation2.png){width=384}
4. After installing the app, you will be redirected to the Qodo Merge registration page. and you will see a success message.<br>
![Jira Cloud App success message](https://www.qodo.ai/images/pr_agent/jira_app_success.png){width=384}
5. Now Qodo Merge will be able to fetch Jira ticket context for your PRs.
**2) Email/Token Authentication**
You can create an API token from your Atlassian account:
1. Log in to https://id.atlassian.com/manage-profile/security/api-tokens.
2. Click Create API token.
3. From the dialog that appears, enter a name for your new token and click Create.
4. Click Copy to clipboard.
![Jira Cloud API Token](https://images.ctfassets.net/zsv3d0ugroxu/1RYvh9lqgeZjjNe5S3Hbfb/155e846a1cb38f30bf17512b6dfd2229/screenshot_NewAPIToken){width=384}
5. In your [configuration file](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/) add the following lines:
```toml
[jira]
jira_api_token = "YOUR_API_TOKEN"
jira_api_email = "YOUR_EMAIL"
```
### Jira Data Center/Server
[//]: # ()
[//]: # (##### Local App Authentication &#40;For Qodo Merge On-Premise Customers&#41;)
[//]: # ()
[//]: # (##### 1. Step 1: Set up an application link in Jira Data Center/Server)
[//]: # (* Go to Jira Administration > Applications > Application Links > Click on `Create link`)
[//]: # ()
[//]: # (![application links]&#40;https://www.qodo.ai/images/pr_agent/jira_app_links.png&#41;{width=384})
[//]: # (* Choose `External application` and set the direction to `Incoming` and then click `Continue`)
[//]: # ()
[//]: # (![external application]&#40;https://www.qodo.ai/images/pr_agent/jira_create_link.png&#41;{width=256})
[//]: # (* In the following screen, enter the following details:)
[//]: # ( * Name: `Qodo Merge`)
[//]: # ( * Redirect URL: Enter your Qodo Merge URL followed `https://{QODO_MERGE_ENDPOINT}/register_ticket_provider`)
[//]: # ( * Permission: Select `Read`)
[//]: # ( * Click `Save`)
[//]: # ()
[//]: # (![external application details]&#40;https://www.qodo.ai/images/pr_agent/jira_fill_app_link.png&#41;{width=384})
[//]: # (* Copy the `Client ID` and `Client secret` and set them in your `.secrets` file:)
[//]: # ()
[//]: # (![client id and secret]&#40;https://www.qodo.ai/images/pr_agent/jira_app_credentionals.png&#41;{width=256})
[//]: # (```toml)
[//]: # ([jira])
[//]: # (jira_app_secret = "...")
[//]: # (jira_client_id = "...")
[//]: # (```)
[//]: # ()
[//]: # (##### 2. Step 2: Authenticate with Jira Data Center/Server)
[//]: # (* Open this URL in your browser: `https://{QODO_MERGE_ENDPOINT}/jira_auth`)
[//]: # (* Click on link)
[//]: # ()
[//]: # (![jira auth success]&#40;https://www.qodo.ai/images/pr_agent/jira_auth_page.png&#41;{width=384})
[//]: # ()
[//]: # (* You will be redirected to Jira Data Center/Server, click `Allow`)
[//]: # (* You will be redirected back to Qodo Merge and you will see a success message.)
[//]: # (Personal Access Token &#40;PAT&#41; Authentication)
#### Using Basic Authentication for Jira Data Center/Server
You can use your Jira username and password to authenticate with Jira Data Center/Server.
In your Configuration file/Environment variables/Secrets file, add the following lines:
```toml
jira_api_email = "your_username"
jira_api_token = "your_password"
```
(Note that indeed the 'jira_api_email' field is used for the username, and the 'jira_api_token' field is used for the user password.)
##### Validating Basic authentication via Python script
If you are facing issues retrieving tickets in Qodo Merge with Basic auth, you can validate the flow using a Python script.
This following steps will help you check if the basic auth is working correctly, and if you can access the Jira ticket details:
1. run `pip install jira==3.8.0`
2. run the following Python script (after replacing the placeholders with your actual values):
???- example "Script to validate basic auth"
```python
from jira import JIRA
if __name__ == "__main__":
try:
# Jira server URL
server = "https://..."
# Basic auth
username = "..."
password = "..."
# Jira ticket code (e.g. "PROJ-123")
ticket_id = "..."
print("Initializing JiraServerTicketProvider with JIRA server")
# Initialize JIRA client
jira = JIRA(
server=server,
basic_auth=(username, password),
timeout=30
)
if jira:
print(f"JIRA client initialized successfully")
else:
print("Error initializing JIRA client")
# Fetch ticket details
ticket = jira.issue(ticket_id)
print(f"Ticket title: {ticket.fields.summary}")
except Exception as e:
print(f"Error fetching JIRA ticket details: {e}")
```
#### Using a Personal Access Token (PAT) for Jira Data Center/Server
1. Create a [Personal Access Token (PAT)](https://confluence.atlassian.com/enterprise/using-personal-access-tokens-1026032365.html) in your Jira account
2. In your Configuration file/Environment variables/Secrets file, add the following lines:
```toml
[jira]
jira_base_url = "YOUR_JIRA_BASE_URL" # e.g. https://jira.example.com
jira_api_token = "YOUR_API_TOKEN"
```
##### Validating PAT token via Python script
If you are facing issues retrieving tickets in Qodo Merge with PAT token, you can validate the flow using a Python script.
This following steps will help you check if the token is working correctly, and if you can access the Jira ticket details:
1. run `pip install jira==3.8.0`
2. run the following Python script (after replacing the placeholders with your actual values):
??? example- "Script to validate PAT token"
```python
from jira import JIRA
if __name__ == "__main__":
try:
# Jira server URL
server = "https://..."
# Jira PAT token
token_auth = "..."
# Jira ticket code (e.g. "PROJ-123")
ticket_id = "..."
print("Initializing JiraServerTicketProvider with JIRA server")
# Initialize JIRA client
jira = JIRA(
server=server,
token_auth=token_auth,
timeout=30
)
if jira:
print(f"JIRA client initialized successfully")
else:
print("Error initializing JIRA client")
# Fetch ticket details
ticket = jira.issue(ticket_id)
print(f"Ticket title: {ticket.fields.summary}")
except Exception as e:
print(f"Error fetching JIRA ticket details: {e}")
```
### Multi-JIRA Server Configuration 💎
Qodo Merge supports connecting to multiple JIRA servers using different authentication methods.
=== "Email/Token (Basic Auth)"
Configure multiple servers using Email/Token authentication:
- `jira_servers`: List of JIRA server URLs
- `jira_api_token`: List of API tokens (for Cloud) or passwords (for Data Center)
- `jira_api_email`: List of emails (for Cloud) or usernames (for Data Center)
- `jira_base_url`: Default server for ticket IDs like `PROJ-123`, Each repository can configure (local config file) its own `jira_base_url` to choose which server to use by default.
**Example Configuration:**
```toml
[jira]
# Server URLs
jira_servers = ["https://company.atlassian.net", "https://datacenter.jira.com"]
# API tokens/passwords
jira_api_token = ["cloud_api_token_here", "datacenter_password"]
# Emails/usernames (both required)
jira_api_email = ["user@company.com", "datacenter_username"]
# Default server for ticket IDs
jira_base_url = "https://company.atlassian.net"
```
=== "PAT Auth"
Configure multiple servers using Personal Access Token authentication:
- `jira_servers`: List of JIRA server URLs
- `jira_api_token`: List of PAT tokens
- `jira_api_email`: Not needed (can be omitted or left empty)
- `jira_base_url`: Default server for ticket IDs like `PROJ-123`, Each repository can configure (local config file) its own `jira_base_url` to choose which server to use by default.
**Example Configuration:**
```toml
[jira]
# Server URLs
jira_servers = ["https://server1.jira.com", "https://server2.jira.com"]
# PAT tokens only
jira_api_token = ["pat_token_1", "pat_token_2"]
# Default server for ticket IDs
jira_base_url = "https://server1.jira.com"
```
**Mixed Authentication (Email/Token + PAT):**
```toml
[jira]
jira_servers = ["https://company.atlassian.net", "https://server.jira.com"]
jira_api_token = ["cloud_api_token", "server_pat_token"]
jira_api_email = ["user@company.com", ""] # Empty for PAT
```
=== "Jira Cloud App"
For Jira Cloud instances using App Authentication:
1. Install the Qodo Merge app on each JIRA Cloud instance you want to connect to
2. Set the default server for ticket ID resolution:
```toml
[jira]
jira_base_url = "https://primary-team.atlassian.net"
```
Full URLs (e.g., `https://other-team.atlassian.net/browse/TASK-456`) will automatically use the correct connected instance.
### How to link a PR to a Jira ticket
To integrate with Jira, you can link your PR to a ticket using either of these methods:
**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` (without prefix or suffix for the shortened ID).
**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"
For shortened ticket IDs or branch detection (method 2 for JIRA cloud), you must configure the Jira base URL in your configuration file under the [jira] section:
```toml
[jira]
jira_base_url = "https://<JIRA_ORG>.atlassian.net"
```
Where `<JIRA_ORG>` is your Jira organization identifier (e.g., `mycompany` for `https://mycompany.atlassian.net`).
## Linear Integration 💎
### Linear App Authentication
The recommended way to authenticate with Linear is to connect the Linear app through the Qodo Merge portal.
Installation steps:
1. Go to the [Qodo Merge integrations page](https://app.qodo.ai/qodo-merge/integrations)
2. Navigate to the **Integrations** tab
3. Click on the **Linear** button to connect the Linear app
4. Follow the authentication flow to authorize Qodo Merge to access your Linear workspace
5. Once connected, Qodo Merge will be able to fetch Linear ticket context for your PRs
### How to link a PR to a Linear ticket
Qodo Merge will automatically detect Linear tickets using either of these methods:
**Method 1: Description Reference:**
Include a ticket reference in your PR description using either:
- The complete Linear ticket URL: `https://linear.app/[ORG_ID]/issue/[TICKET_ID]`
- The shortened ticket ID: `[TICKET_ID]` (e.g., `ABC-123`) - requires linear_base_url configuration (see below).
**Method 2: Branch Name Detection:**
Name your branch with the ticket ID as a prefix (e.g., `ABC-123-feature-description` or `feature/ABC-123/feature-description`).
!!! note "Linear Base URL"
For shortened ticket IDs or branch detection (method 2), you must configure the Linear base URL in your configuration file under the [linear] section:
```toml
[linear]
linear_base_url = "https://linear.app/[ORG_ID]"
```
Replace `[ORG_ID]` with your Linear organization identifier.
## Monday Integration 💎
### Monday App Authentication
The recommended way to authenticate with Monday is to connect the Monday app through the Qodo Merge portal.
Installation steps:
1. Go to the [Qodo Merge integrations page](https://app.qodo.ai/qodo-merge/integrations)
2. Navigate to the **Integrations** tab
3. Click on the **Monday** button to connect the Monday app
4. Follow the authentication flow to authorize Qodo Merge to access your Monday workspace
5. Once connected, Qodo Merge will be able to fetch Monday ticket context for your PRs
### Monday Ticket Context
`Ticket Context and Ticket Compliance are supported for Monday items, but not yet available in the "PR to Ticket" feature.`
When Qodo Merge processes your PRs, it extracts the following information from Monday items:
* **Item ID and Name:** The unique identifier and title of the Monday item
* **Item URL:** Direct link to the Monday item in your workspace
* **Ticket Description:** All long text type columns and their values from the item
* **Status and Labels:** Current status values and color-coded labels for quick context
* **Sub-items:** Names, IDs, and descriptions of all related sub-items with hierarchical structure
### How Monday Items are Detected
Qodo Merge automatically detects Monday items from:
* PR Descriptions: Full Monday URLs like https://workspace.monday.com/boards/123/pulses/456
* Branch Names: Item IDs in branch names (6-12 digit patterns) - requires `monday_base_url` configuration
### Configuration Setup (Optional)
If you want to extract Monday item references from branch names or use standalone item IDs, you need to set the `monday_base_url` in your configuration file:
To support Monday ticket referencing from branch names, item IDs (6-12 digits) should be part of the branch names and you need to configure `monday_base_url`:
```toml
[monday]
monday_base_url = "https://your_monday_workspace.monday.com"
```
Examples of supported branch name patterns:
* `feature/123456789` → extracts item ID 123456789
* `bugfix/456789012-login-fix` → extracts item ID 456789012
* `123456789` → extracts item ID 123456789
* `456789012-login-fix` → extracts item ID 456789012

View file

@ -0,0 +1,19 @@
# High-level Code Suggestions 💎
`Supported Git Platforms: GitHub, GitLab, Bitbucket Cloud, Bitbucket Server`
## Overview
High-level code suggestions, generated by the `improve` tool, offer big-picture code suggestions for your pull request. They focus on broader improvements rather than local fixes, and provide before-and-after code snippets to illustrate the recommended changes and guide implementation.
### How it works
=== "Example of a high-level suggestion"
![code_suggestions_update](https://www.qodo.ai/images/pr_agent/high_level_suggestion_closed.png){width=512}
![code_suggestions_update](https://www.qodo.ai/images/pr_agent/high_level_suggestion_open.png){width=512}
___
### Benefits for Developers
- Help spot systematic issues in the pull request
- Give the author another review angle, while giving them the freedom on how to address the suggestion.

View file

@ -0,0 +1,51 @@
# Impact Evaluation 💎
`Supported Git Platforms: GitHub, GitLab, Bitbucket`
Demonstrating the return on investment (ROI) of AI-powered initiatives is crucial for modern organizations.
To address this need, Qodo Merge has developed an AI impact measurement tools and metrics, providing advanced analytics to help businesses quantify the tangible benefits of AI adoption in their PR review process.
## Auto Impact Validator - Real-Time Tracking of Implemented Qodo Merge Suggestions
### How It Works
When a user pushes a new commit to the pull request, Qodo Merge automatically compares the updated code against the previous suggestions, marking them as implemented if the changes address these recommendations, whether directly or indirectly:
1. **Direct Implementation:** The user directly addresses the suggestion as-is in the PR, either by clicking on the "apply code suggestion" checkbox or by making the changes manually.
2. **Indirect Implementation:** Qodo Merge recognizes when a suggestion's intent is fulfilled, even if the exact code changes differ from the original recommendation. It marks these suggestions as implemented, acknowledging that users may achieve the same goal through alternative solutions.
### Real-Time Visual Feedback
Upon confirming that a suggestion was implemented, Qodo Merge automatically adds a ✅ (check mark) to the relevant suggestion, enabling transparent tracking of Qodo Merge's impact analysis.
Qodo Merge will also add, inside the relevant suggestions, an explanation of how the new code was impacted by each suggestion.
![Suggestion_checkmark](https://codium.ai/images/pr_agent/auto_suggestion_checkmark.png){width=512}
### Dashboard Metrics
The dashboard provides macro-level insights into the overall impact of Qodo Merge on the pull-request process with key productivity metrics.
By offering clear, data-driven evidence of Qodo Merge's impact, it empowers leadership teams to make informed decisions about the tool's effectiveness and ROI.
Here are key metrics that the dashboard tracks:
#### Qodo Merge Impacts per 1K Lines
![Dashboard](https://codium.ai/images/pr_agent/impacts_per_1k_llines.png){width=512}
> Explanation: for every 1K lines of code (additions/edits), Qodo Merge had on average ~X suggestions implemented.
**Why This Metric Matters:**
1. **Standardized and Comparable Measurement:** By measuring impacts per 1K lines of code additions, you create a standardized metric that can be compared across different projects, teams, customers, and time periods. This standardization is crucial for meaningful analysis, benchmarking, and identifying where Qodo Merge is most effective.
2. **Accounts for PR Variability and Incentivizes Quality:** This metric addresses the fact that "Not all PRs are created equal." By normalizing against lines of code rather than PR count, you account for the variability in PR sizes and focus on the quality and impact of suggestions rather than just the number of PRs affected.
3. **Quantifies Value and ROI:** The metric directly correlates with the value Qodo Merge is providing, showing how frequently it offers improvements relative to the amount of new code being written. This provides a clear, quantifiable way to demonstrate Qodo Merge's return on investment to stakeholders.
#### Suggestion Effectiveness Across Categories
![Impacted_Suggestion_Score](https://codium.ai/images/pr_agent/impact_by_category.png){width=512}
> Explanation: This chart illustrates the distribution of implemented suggestions across different categories, enabling teams to better understand Qodo Merge's impact on various aspects of code quality and development practices.
#### Suggestion Score Distribution
![Impacted_Suggestion_Score](https://codium.ai/images/pr_agent/impacted_score_dist.png){width=512}
> Explanation: The distribution of the suggestion score for the implemented suggestions, ensuring that higher-scored suggestions truly represent more significant improvements.

View file

@ -0,0 +1,33 @@
# Incremental Update 💎
`Supported Git Platforms: GitHub, GitLab (Both cloud & server. For server: Version 17 and above)`
## Overview
The Incremental Update feature helps users focus on feedback for their newest changes, making large PRs more manageable.
### How it works
=== "Update Option on Subsequent Commits"
![code_suggestions_update](https://www.qodo.ai/images/pr_agent/inc_update_before.png){width=512}
=== "Generation of Incremental Update"
![code_suggestions_inc_update_result](https://www.qodo.ai/images/pr_agent/inc_update_shown.png){width=512}
___
Whenever new commits are pushed following a recent code suggestions report for this PR, an Update button appears (as seen above).
Once the user clicks on the button:
- The `improve` tool identifies the new changes (the "delta")
- Provides suggestions on these recent changes
- Combines these suggestions with the overall PR feedback, prioritizing delta-related comments
- Marks delta-related comments with a textual indication followed by an asterisk (*) with a link to this page, so they can easily be identified
### Benefits for Developers
- Focus on what matters: See feedback on newest code first
- Clearer organization: Comments on recent changes are clearly marked
- Better workflow: Address feedback more systematically, starting with recent changes

View file

@ -1,52 +1,39 @@
## PR Compression Strategy
There are two scenarios:
# Core Abilities
1. The PR is small enough to fit in a single prompt (including system and user prompt)
2. The PR is too large to fit in a single prompt (including system and user prompt)
Qodo Merge utilizes a variety of core abilities to provide a comprehensive and efficient code review experience. These abilities include:
For both scenarios, we first use the following strategy
- [Auto approval](https://qodo-merge-docs.qodo.ai/core-abilities/auto_approval/)
- [Auto best practices](https://qodo-merge-docs.qodo.ai/core-abilities/auto_best_practices/)
- [Chat on code suggestions](https://qodo-merge-docs.qodo.ai/core-abilities/chat_on_code_suggestions/)
- [Chrome extension](https://qodo-merge-docs.qodo.ai/chrome-extension/)
- [Code validation](https://qodo-merge-docs.qodo.ai/core-abilities/code_validation/) <!-- - [Compression strategy](https://qodo-merge-docs.qodo.ai/core-abilities/compression_strategy/) -->
- [Dynamic context](https://qodo-merge-docs.qodo.ai/core-abilities/dynamic_context/)
- [Fetching ticket context](https://qodo-merge-docs.qodo.ai/core-abilities/fetching_ticket_context/)
- [High-level Suggestions](https://qodo-merge-docs.qodo.ai/core-abilities/high_level_suggestions/)
- [Impact evaluation](https://qodo-merge-docs.qodo.ai/core-abilities/impact_evaluation/)
- [Incremental Update](https://qodo-merge-docs.qodo.ai/core-abilities/incremental_update/)
- [Interactivity](https://qodo-merge-docs.qodo.ai/core-abilities/interactivity/)
- [Local and global metadata](https://qodo-merge-docs.qodo.ai/core-abilities/metadata/)
- [RAG context enrichment](https://qodo-merge-docs.qodo.ai/core-abilities/rag_context_enrichment/)
- [Self-reflection](https://qodo-merge-docs.qodo.ai/core-abilities/self_reflection/)
- [Static code analysis](https://qodo-merge-docs.qodo.ai/core-abilities/static_code_analysis/)
#### Repo language prioritization strategy
We prioritize the languages of the repo based on the following criteria:
## Blogs
1. Exclude binary files and non code files (e.g. images, pdfs, etc)
2. Given the main languages used in the repo
3. We sort the PR files by the most common languages in the repo (in descending order):
* ```[[file.py, file2.py],[file3.js, file4.jsx],[readme.md]]```
Here are some additional technical blogs from Qodo, that delve deeper into the core capabilities and features of Large Language Models (LLMs) when applied to coding tasks.
These resources provide more comprehensive insights into leveraging LLMs for software development.
### Code Generation and LLMs
### Small PR
In this case, we can fit the entire PR in a single prompt:
1. Exclude binary files and non code files (e.g. images, pdfs, etc)
2. We Expand the surrounding context of each patch to 3 lines above and below the patch
- [Effective AI code suggestions: less is more](https://www.qodo.ai/blog/effective-code-suggestions-llms-less-is-more/)
- [State-of-the-art Code Generation with AlphaCodium From Prompt Engineering to Flow Engineering](https://www.qodo.ai/blog/qodoflow-state-of-the-art-code-generation-for-code-contests/)
- [RAG for a Codebase with 10k Repos](https://www.qodo.ai/blog/rag-for-large-scale-code-repos/)
### Large PR
### Development Processes
#### Motivation
Pull Requests can be very long and contain a lot of information with varying degree of relevance to the pr-agent.
We want to be able to pack as much information as possible in a single LMM prompt, while keeping the information relevant to the pr-agent.
- [Understanding the Challenges and Pain Points of the Pull Request Cycle](https://www.qodo.ai/blog/understanding-the-challenges-and-pain-points-of-the-pull-request-cycle/)
- [Introduction to Code Coverage Testing](https://www.qodo.ai/blog/introduction-to-code-coverage-testing/)
#### Compression strategy
We prioritize additions over deletions:
- Combine all deleted files into a single list (`deleted files`)
- File patches are a list of hunks, remove all hunks of type deletion-only from the hunks in the file patch
### Cost Optimization
#### Adaptive and token-aware file patch fitting
We use [tiktoken](https://github.com/openai/tiktoken) to tokenize the patches after the modifications described above, and we use the following strategy to fit the patches into the prompt:
1. Within each language we sort the files by the number of tokens in the file (in descending order):
- ```[[file2.py, file.py],[file4.jsx, file3.js],[readme.md]]```
2. Iterate through the patches in the order described above
3. Add the patches to the prompt until the prompt reaches a certain buffer from the max token length
4. If there are still patches left, add the remaining patches as a list called `other modified files` to the prompt until the prompt reaches the max token length (hard stop), skip the rest of the patches.
5. If we haven't reached the max token length, add the `deleted files` to the prompt until the prompt reaches the max token length (hard stop), skip the rest of the patches.
#### Example
![Core Abilities](https://codium.ai/images/git_patch_logic.png){width=768}
## YAML Prompting
TBD
## Static Code Analysis 💎
TBD
- [Reduce Your Costs by 30% When Using GPT for Python Code](https://www.qodo.ai/blog/reduce-your-costs-by-30-when-using-gpt-3-for-python-code/)

View file

@ -0,0 +1,41 @@
# Interactivity 💎
`Supported Git Platforms: GitHub, GitLab`
## Overview
Qodo Merge transforms static code reviews into interactive experiences by enabling direct actions from pull request (PR) comments.
Developers can immediately trigger actions and apply changes with simple checkbox clicks.
This focused workflow maintains context while dramatically reducing the time between PR creation and final merge.
The approach eliminates manual steps, provides clear visual indicators, and creates immediate feedback loops all within the same interface.
## Key Interactive Features
### 1\. Interactive `/improve` Tool
The [`/improve`](https://qodo-merge-docs.qodo.ai/tools/improve/) command delivers a comprehensive interactive experience:
- _**Apply this suggestion**_: Clicking this checkbox instantly converts a suggestion into a committable code change. When committed to the PR, changes made to code that was flagged for improvement will be marked with a check mark, allowing developers to easily track and review implemented recommendations.
- _**More**_: Triggers additional suggestions generation while keeping each suggestion focused and relevant as the original set
- _**Update**_: Triggers a re-analysis of the code, providing updated suggestions based on the latest changes
- _**Author self-review**_: Interactive acknowledgment that developers have opened and reviewed collapsed suggestions
### 2\. Interactive `/analyze` Tool
The [`/analyze`](https://qodo-merge-docs.qodo.ai/tools/analyze/) command provides component-level analysis with interactive options for each identified code component:
- Interactive checkboxes to generate tests, documentation, and code suggestions for specific components
- On-demand similar code search that activates when a checkbox is clicked
- Component-specific actions that trigger only for the selected elements, providing focused assistance
### 3\. Interactive `/help` Tool
The [`/help`](https://qodo-merge-docs.qodo.ai/tools/help/) command not only lists available tools and their descriptions but also enables immediate tool invocation through interactive checkboxes.
When a user checks a tool's checkbox, Qodo Merge instantly triggers that tool without requiring additional commands.
This transforms the standard help menu into an interactive launch pad for all Qodo Merge capabilities, eliminating context switching by keeping developers within their PR workflow.

View file

@ -0,0 +1,58 @@
# Local and global metadata injection with multi-stage analysis
`Supported Git Platforms: GitHub, GitLab, Bitbucket`
1\.
Qodo Merge initially retrieves for each PR the following data:
- PR title and branch name
- PR original description
- Commit messages history
- PR diff patches, in [hunk diff](https://loicpefferkorn.net/2014/02/diff-files-what-are-hunks-and-how-to-extract-them/) format
- The entire content of the files that were modified in the PR
!!! tip "Tip: Organization-level metadata"
In addition to the inputs above, Qodo Merge can incorporate supplementary preferences provided by the user, like [`extra_instructions` and `organization best practices`](https://qodo-merge-docs.qodo.ai/tools/improve/#extra-instructions-and-best-practices). This information can be used to enhance the PR analysis.
2\.
By default, the first command that Qodo Merge executes is [`describe`](https://qodo-merge-docs.qodo.ai/tools/describe/), which generates three types of outputs:
- PR Type (e.g. bug fix, feature, refactor, etc)
- PR Description - a bullet point summary of the PR
- Changes walkthrough - for each modified file, provide a one-line summary followed by a detailed bullet point list of the changes.
These AI-generated outputs are now considered as part of the PR metadata, and can be used in subsequent commands like `review` and `improve`.
This effectively enables multi-stage chain-of-thought analysis, without doing any additional API calls which will cost time and money.
For example, when generating code suggestions for different files, Qodo Merge can inject the AI-generated ["Changes walkthrough"](https://github.com/Codium-ai/pr-agent/pull/1202#issue-2511546839) file summary in the prompt:
```diff
## File: 'src/file1.py'
### AI-generated file summary:
- edited function `func1` that does X
- Removed function `func2` that was not used
- ....
@@ ... @@ def func1():
__new hunk__
11 unchanged code line0
12 unchanged code line1
13 +new code line2 added
14 unchanged code line3
__old hunk__
unchanged code line0
unchanged code line1
-old code line2 removed
unchanged code line3
@@ ... @@ def func2():
__new hunk__
...
__old hunk__
...
```
3\. The entire PR files that were retrieved are also used to expand and enhance the PR context (see [Dynamic Context](https://qodo-merge-docs.qodo.ai/core-abilities/dynamic_context/)).
4\. All the metadata described above represents several level of cumulative analysis - ranging from hunk level, to file level, to PR level, to organization level.
This comprehensive approach enables Qodo Merge AI models to generate more precise and contextually relevant suggestions and feedback.

View file

@ -0,0 +1,84 @@
# RAG Context Enrichment 💎
`Supported Git Platforms: GitHub, GitLab, Bitbucket, Bitbucket Data Center`
!!! info "Prerequisites"
- RAG is available only for Qodo enterprise plan users, with single tenant or on-premises setup.
- Database setup and codebase indexing must be completed before proceeding. [Contact support](https://www.qodo.ai/contact/) for more information.
## Overview
### What is RAG Context Enrichment?
A feature that enhances AI analysis by retrieving and referencing relevant code patterns from your project, enabling context-aware insights during code reviews.
### How does RAG Context Enrichment work?
Using Retrieval-Augmented Generation (RAG), it searches your configured repositories for contextually relevant code segments, enriching pull request (PR) insights and accelerating review accuracy.
## Getting started
### Configuration options
In order to enable the RAG feature, add the following lines to your configuration file:
```toml
[rag_arguments]
enable_rag=true
```
???+ example "RAG Arguments Options"
<table>
<tr>
<td><b>enable_rag</b></td>
<td>If set to true, repository enrichment using RAG will be enabled. Default is false.</td>
</tr>
<tr>
<td><b>rag_repo_list</b></td>
<td>A list of repositories that will be used by the semantic search for RAG. Use `['all']` to consider the entire codebase or a select list of repositories, for example: ['my-org/my-repo', ...]. Default: the repository from which the PR was opened.</td>
</tr>
</table>
### Applications
RAG capability is exclusively available in the following tools:
=== "`/ask`"
The [`/ask`](https://qodo-merge-docs.qodo.ai/tools/ask/) tool can access broader repository context through the RAG feature when answering questions that go beyond the PR scope alone.
The _References_ section displays the additional repository content consulted to formulate the answer.
![RAGed ask tool](https://codium.ai/images/pr_agent/rag_ask.png){width=640}
=== "`/compliance`"
The [`/compliance`](https://qodo-merge-docs.qodo.ai/tools/compliance/) tool offers the _Codebase Code Duplication Compliance_ section which contains feedback based on the RAG references.
This section highlights possible code duplication issues in the PR, providing developers with insights into potential code quality concerns.
![RAGed compliance tool](https://codium.ai/images/pr_agent/rag_compliance.png){width=640}
=== "`/implement`"
The [`/implement`](https://qodo-merge-docs.qodo.ai/tools/implement/) tool utilizes the RAG feature to provide comprehensive context of the repository codebase, allowing it to generate more refined code output.
The _References_ section contains links to the content used to support the code generation.
![RAGed implement tool](https://codium.ai/images/pr_agent/rag_implement.png){width=640}
=== "`/review`"
The [`/review`](https://qodo-merge-docs.qodo.ai/tools/review/) tool offers the _Focus area from RAG data_ which contains feedback based on the RAG references analysis.
The complete list of references found relevant to the PR will be shown in the _References_ section, helping developers understand the broader context by exploring the provided references.
![RAGed review tool](https://codium.ai/images/pr_agent/rag_review.png){width=640}
## Limitations
### Querying the codebase presents significant challenges
- **Search Method**: RAG uses natural language queries to find semantically relevant code sections
- **Result Quality**: No guarantee that RAG results will be useful for all queries
- **Scope Recommendation**: To reduce noise, focus on the PR repository rather than searching across multiple repositories
### This feature has several requirements and restrictions
- **Codebase**: Must be properly indexed for search functionality
- **Security**: Requires secure and private indexed codebase implementation
- **Deployment**: Only available for Qodo Merge Enterprise plan using single tenant or on-premises setup

View file

@ -0,0 +1,49 @@
`Supported Git Platforms: GitHub, GitLab, Bitbucket`
Qodo Merge implements a **self-reflection** process where the AI model reflects, scores, and re-ranks its own suggestions, eliminating irrelevant or incorrect ones.
This approach improves the quality and relevance of suggestions, saving users time and enhancing their experience.
Configuration options allow users to set a score threshold for further filtering out suggestions.
## Introduction - Efficient Review with Hierarchical Presentation
Given that not all generated code suggestions will be relevant, it is crucial to enable users to review them in a fast and efficient way, allowing quick identification and filtering of non-applicable ones.
To achieve this goal, Qodo Merge offers a dedicated hierarchical structure when presenting suggestions to users:
- A "category" section groups suggestions by their category, allowing users to quickly dismiss irrelevant suggestions.
- Each suggestion is first described by a one-line summary, which can be expanded to a full description by clicking on a collapsible.
- Upon expanding a suggestion, the user receives a more comprehensive description, and a code snippet demonstrating the recommendation.
!!! note "Fast Review"
This hierarchical structure is designed to facilitate rapid review of each suggestion, with users spending an average of ~5-10 seconds per item.
## Self-reflection and Re-ranking
The AI model is initially tasked with generating suggestions, and outputting them in order of importance.
However, in practice we observe that models often struggle to simultaneously generate high-quality code suggestions and rank them well in a single pass.
Furthermore, the initial set of generated suggestions sometimes contains easily identifiable errors.
To address these issues, we implemented a "self-reflection" process that refines suggestion ranking and eliminates irrelevant or incorrect proposals.
This process consists of the following steps:
1. Presenting the generated suggestions to the model in a follow-up call.
2. Instructing the model to score each suggestion on a scale of 0-10 and provide a rationale for the assigned score.
3. Utilizing these scores to re-rank the suggestions and filter out incorrect ones (with a score of 0).
4. Optionally, filtering out all suggestions below a user-defined score threshold.
Note that presenting all generated suggestions simultaneously provides the model with a comprehensive context, enabling it to make more informed decisions compared to evaluating each suggestion individually.
To conclude, the self-reflection process enables Qodo Merge to prioritize suggestions based on their importance, eliminate inaccurate or irrelevant proposals, and optionally exclude suggestions that fall below a specified threshold of significance.
This results in a more refined and valuable set of suggestions for the user, saving time and improving the overall experience.
## Example Results
![self_reflection](https://codium.ai/images/pr_agent/self_reflection1.png){width=768}
![self_reflection](https://codium.ai/images/pr_agent/self_reflection2.png){width=768}
## Appendix - Relevant Configuration Options
```toml
[pr_code_suggestions]
suggestions_score_threshold = 0 # Filter out suggestions with a score below this threshold (0-10)
```

View file

@ -0,0 +1,77 @@
# Static Code Analysis 💎
` Supported Git Platforms: GitHub, GitLab, Bitbucket`
By combining static code analysis with LLM capabilities, Qodo Merge can provide a comprehensive analysis of the PR code changes on a component level.
It scans the PR code changes, finds all the code components (methods, functions, classes) that changed, and enables to interactively generate tests, docs, code suggestions and similar code search for each component.
!!! note "Language that are currently supported:"
Python, Java, C++, JavaScript, TypeScript, C#, Go, Kotlin
## Capabilities
### Analyze PR
The [`analyze`](https://qodo-merge-docs.qodo.ai/tools/analyze/) tool enables to interactively generate tests, docs, code suggestions and similar code search for each component that changed in the PR.
It can be invoked manually by commenting on any PR:
```
/analyze
```
An example result:
![Analyze 1](https://codium.ai/images/pr_agent/analyze_1.png){width=768}
Clicking on each checkbox will trigger the relevant tool for the selected component.
### Generate Tests
The [`test`](https://qodo-merge-docs.qodo.ai/tools/test/) tool generate tests for a selected component, based on the PR code changes.
It can be invoked manually by commenting on any PR:
```
/test component_name
```
where 'component_name' is the name of a specific component in the PR, Or be triggered interactively by using the `analyze` tool.
![test1](https://codium.ai/images/pr_agent/test1.png){width=768}
### Generate Docs for a Component
The [`add_docs`](https://qodo-merge-docs.qodo.ai/tools/documentation/) tool scans the PR code changes, and automatically generate docstrings for any code components that changed in the PR.
It can be invoked manually by commenting on any PR:
```
/add_docs component_name
```
Or be triggered interactively by using the `analyze` tool.
![Docs single component](https://codium.ai/images/pr_agent/docs_single_component.png){width=768}
### Generate Code Suggestions for a Component
The [`improve_component`](https://qodo-merge-docs.qodo.ai/tools/improve_component/) tool generates code suggestions for a specific code component that changed in the PR.
It can be invoked manually by commenting on any PR:
```
/improve_component component_name
```
Or be triggered interactively by using the `analyze` tool.
![improve_component2](https://codium.ai/images/pr_agent/improve_component2.png){width=768}
### Find Similar Code
The [`similar code`](https://qodo-merge-docs.qodo.ai/tools/similar_code/) tool retrieves the most similar code components from inside the organization's codebase or from open-source code, including details about the license associated with each repository.
For example:
`Global Search` for a method called `chat_completion`:
![similar code global](https://codium.ai/images/pr_agent/similar_code_global2.png){width=768}

122
docs/docs/faq/index.md Normal file
View file

@ -0,0 +1,122 @@
# FAQ
??? note "Q: Can Qodo Merge serve as a substitute for a human reviewer?"
#### Answer:<span style="display:none;">1</span>
Qodo Merge is designed to assist, not replace, human reviewers.
Reviewing PRs is a tedious and time-consuming task often seen as a "chore". In addition, the longer the PR the shorter the relative feedback, since long PRs can overwhelm reviewers, both in terms of technical difficulty, and the actual review time.
Qodo Merge aims to address these pain points, and to assist and empower both the PR author and reviewer.
However, Qodo Merge has built-in safeguards to ensure the developer remains in the driver's seat. For example:
1. Preserves user's original PR header
2. Places user's description above the AI-generated PR description
3. Won't approve PRs; approval remains reviewer's responsibility
4. The code suggestions are optional, and aim to:
- Encourage self-review and self-reflection
- Highlight potential bugs or oversights
- Enhance code quality and promote best practices
Read more about this issue in our [blog](https://www.codium.ai/blog/understanding-the-challenges-and-pain-points-of-the-pull-request-cycle/)
___
??? note "Q: I received an incorrect or irrelevant suggestion. Why?"
#### Answer:<span style="display:none;">2</span>
- Modern AI models, like Claude Sonnet and GPT-5, are improving rapidly but remain imperfect. Users should critically evaluate all suggestions rather than accepting them automatically.
- AI errors are rare, but possible. A main value from reviewing the code suggestions lies in their high probability of catching **mistakes or bugs made by the PR author**. We believe it's worth spending 30-60 seconds reviewing suggestions, even if some aren't relevant, as this practice can enhance code quality and prevent bugs in production.
- The hierarchical structure of the suggestions is designed to help the user _quickly_ understand them, and to decide which ones are relevant and which are not:
- Only if the `Category` header is relevant, the user should move to the summarized suggestion description.
- Only if the summarized suggestion description is relevant, the user should click on the collapsible, to read the full suggestion description with a code preview example.
- In addition, we recommend to use the [`extra_instructions`](https://qodo-merge-docs.qodo.ai/tools/improve/#extra-instructions-and-best-practices) field to guide the model to suggestions that are more relevant to the specific needs of the project.
- The interactive [PR chat](https://qodo-merge-docs.qodo.ai/chrome-extension/) also provides an easy way to get more tailored suggestions and feedback from the AI model.
___
??? note "Q: How can I get more tailored suggestions?"
#### Answer:<span style="display:none;">3</span>
See [here](https://qodo-merge-docs.qodo.ai/tools/improve/#extra-instructions-and-best-practices) for more information on how to use the `extra_instructions` and `best_practices` configuration options, to guide the model to more tailored suggestions.
___
??? note "Q: Will you store my code? Are you using my code to train models?"
#### Answer:<span style="display:none;">4</span>
No. Qodo Merge strict privacy policy ensures that your code is not stored or used for training purposes.
For a detailed overview of our data privacy policy, please refer to [this link](https://qodo-merge-docs.qodo.ai/overview/data_privacy/)
___
??? note "Q: Can I use my own LLM keys with Qodo Merge?"
#### Answer:<span style="display:none;">5</span>
When you self-host the [open-source](https://github.com/Codium-ai/pr-agent) version, you use your own keys.
Qodo Merge with SaaS deployment is a hosted version of Qodo Merge, where Qodo manages the infrastructure and the keys.
For enterprise customers, on-prem deployment is also available. [Contact us](https://www.codium.ai/contact/#pricing) for more information.
___
??? note "Q: Can Qodo Merge review draft/offline PRs?"
#### Answer:<span style="display:none;">6</span>
Yes. While Qodo Merge won't automatically review draft PRs, you can still get feedback by manually requesting it through [online commenting](https://qodo-merge-docs.qodo.ai/usage-guide/automations_and_usage/#online-usage).
For active PRs, you can customize the automatic feedback settings [here](https://qodo-merge-docs.qodo.ai/usage-guide/automations_and_usage/#qodo-merge-automatic-feedback) to match your team's workflow.
___
??? note "Q: Can the 'Review effort' feedback be calibrated or customized?"
#### Answer:<span style="display:none;">7</span>
Yes, you can customize review effort estimates using the `extra_instructions` configuration option (see [documentation](https://qodo-merge-docs.qodo.ai/tools/review/#configuration-options)).
Example mapping:
- Effort 1: < 30 minutes review time
- Effort 2: 30-60 minutes review time
- Effort 3: 60-90 minutes review time
- ...
Note: The effort levels (1-5) are primarily meant for _comparative_ purposes, helping teams prioritize reviewing smaller PRs first. The actual review duration may vary, as the focus is on providing consistent relative effort estimates.
___
??? note "Q: How to reduce the noise generated by Qodo Merge?"
#### Answer:<span style="display:none;">3</span>
The default configuration of Qodo Merge is designed to balance helpful feedback with noise reduction. It reduces noise through several approaches:
- Auto-feedback uses three highly structured tools (`/describe`, `/review`, and `/improve`), designed to be accessible at a glance without creating large visual overload
- Suggestions are presented in a table format rather than as committable comments, which are far noisier
- The 'File Walkthrough' section is folded by default, as it tends to be verbose
- Intermediate comments are avoided when creating new PRs (like "Qodo Merge is now reviewing your PR..."), which would generate email noise
From our experience, especially in large teams or organizations, complaints about "noise" sometimes stem from the following issues:
- **Feedback from multiple bots**: When multiple bots provide feedback on the same PR, it creates confusion and noise. We recommend using Qodo Merge as the primary feedback tool to streamline the process and reduce redundancy.
- **Getting familiar with the tool**: Unlike many tools that provide feedback only on demand, Qodo Merge automatically analyzes and suggests improvements for every code change. While this proactive approach can feel intimidating at first, it's designed to continuously enhance code quality and catch bugs and problems when they occur. We recommend reviewing [this guide](https://qodo-merge-docs.qodo.ai/tools/improve/#understanding-ai-code-suggestions) to help align expectations and maximize the value of Qodo Merge's auto-feedback.
Therefore, at a global configuration level, we recommend using the default configuration, which is designed to reduce noise while providing valuable feedback.
However, if you still find the feedback too noisy, you can adjust the configuration. Since each user and team has different needs, it's definitely possible - and even recommended - to adjust configurations for specific repos as needed.
Ways to adjust the configuration for noise reduction include for example:
- [Score thresholds for code suggestions](https://qodo-merge-docs.qodo.ai/tools/improve/#configuration-options)
- [Utilizing the `extra_instructions` field for more tailored feedback](https://qodo-merge-docs.qodo.ai/tools/improve/#extra-instructions)
- [Controlling which tools run automatically](https://qodo-merge-docs.qodo.ai/usage-guide/automations_and_usage/#github-app-automatic-tools-when-a-new-pr-is-opened)
Note that some users may prefer the opposite - more thorough and detailed feedback. Qodo Merge is designed to be flexible and customizable, allowing you to tailor the feedback to your team's specific needs and preferences.
Examples of ways to increase feedback include:
- [`Exhaustive` code suggestions](https://qodo-merge-docs.qodo.ai/tools/improve/#controlling-suggestions-depth)
- [Dual-publishing mode](https://qodo-merge-docs.qodo.ai/tools/improve/#dual-publishing-mode)
- [Interactive usage](https://qodo-merge-docs.qodo.ai/core-abilities/interactivity/)
___

View file

@ -1,93 +0,0 @@
# PR-Agent Code Fine-tuning Benchmark
On coding tasks, the gap between open-source models and top closed-source models such as GPT4 is significant.
<br>
In practice, open-source models are unsuitable for most real-world code tasks, and require further fine-tuning to produce acceptable results.
_PR-Agent fine-tuning benchmark_ aims to benchmark open-source models on their ability to be fine-tuned for a coding task.
Specifically, we chose to fine-tune open-source models on the task of analyzing a pull request, and providing useful feedback and code suggestions.
Here are the results:
<br>
<br>
**Model performance:**
| Model name | Model size [B] | Better than gpt-4 rate, after fine-tuning [%] |
|-----------------------------|----------------|----------------------------------------------|
| **DeepSeek 34B-instruct** | **34** | **40.7** |
| DeepSeek 34B-base | 34 | 38.2 |
| Phind-34b | 34 | 38 |
| Granite-34B | 34 | 37.6 |
| Codestral-22B-v0.1 | 22 | 32.7 |
| QWEN-1.5-32B | 32 | 29 |
| | | |
| **CodeQwen1.5-7B** | **7** | **35.4** |
| Llama-3.1-8B-Instruct | 8 | 35.2 |
| Granite-8b-code-instruct | 8 | 34.2 |
| CodeLlama-7b-hf | 7 | 31.8 |
| Gemma-7B | 7 | 27.2 |
| DeepSeek coder-7b-instruct | 7 | 26.8 |
| Llama-3-8B-Instruct | 8 | 26.8 |
| Mistral-7B-v0.1 | 7 | 16.1 |
<br>
**Fine-tuning impact:**
| Model name | Model size [B] | Fine-tuned | Better than gpt-4 rate [%] |
|---------------------------|----------------|------------|----------------------------|
| DeepSeek 34B-instruct | 34 | yes | 40.7 |
| DeepSeek 34B-instruct | 34 | no | 3.6 |
## Results analysis
- **Fine-tuning is a must** - without fine-tuning, open-source models provide poor results on most real-world code tasks, which include complicated prompt and lengthy context. We clearly see that without fine-tuning, deepseek model was 96.4% of the time inferior to GPT-4, while after fine-tuning, it is better 40.7% of the time.
- **Always start from a code-dedicated model** — When fine-tuning, always start from a code-dedicated model, and not from a general-usage model. The gaps in downstream results are very big.
- **Don't believe the hype** —newer models, or models from big-tech companies (Llama3, Gemma, Mistral), are not always better for fine-tuning.
- **The best large model** - For large 34B code-dedicated models, the gaps when doing proper fine-tuning are small. The current top model is **DeepSeek 34B-instruct**
- **The best small model** - For small 7B code-dedicated models, the gaps when fine-tuning are much larger. **CodeQWEN 1.5-7B** is by far the best model for fine-tuning.
- **Base vs. instruct** - For the top model (deepseek), we saw small advantage when starting from the instruct version. However, we recommend testing both versions on each specific task, as the base model is generally considered more suitable for fine-tuning.
## The dataset
### Training dataset
Our training dataset comprises 25,000 pull requests, aggregated from permissive license repos. For each pull request, we generated responses for the three main tools of PR-Agent:
[Describe](https://pr-agent-docs.codium.ai/tools/describe/), [Review](https://pr-agent-docs.codium.ai/tools/improve/) and [Improve](https://pr-agent-docs.codium.ai/tools/improve/).
On the raw data collected, we employed various automatic and manual cleaning techniques to ensure the outputs were of the highest quality, and suitable for instruct-tuning.
Here are the prompts, and example outputs, used as input-output pairs to fine-tune the models:
| Tool | Prompt | Example output |
|----------|------------------------------------------------------------------------------------------------------------|----------------|
| Describe | [link](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/pr_description_prompts.toml) | [link](https://github.com/Codium-ai/pr-agent/pull/910#issue-2303989601) |
| Review | [link](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/pr_reviewer_prompts.toml) | [link](https://github.com/Codium-ai/pr-agent/pull/910#issuecomment-2118761219) |
| Improve | [link](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/pr_code_suggestions_prompts.toml) | [link](https://github.com/Codium-ai/pr-agent/pull/910#issuecomment-2118761309) |
### Evaluation dataset
- For each tool, we aggregated 100 additional examples to be used for evaluation. These examples were not used in the training dataset, and were manually selected to represent diverse real-world use-cases.
- For each test example, we generated two responses: one from the fine-tuned model, and one from the best code model in the world, `gpt-4-turbo-2024-04-09`.
- We used a third LLM to judge which response better answers the prompt, and will likely be perceived by a human as better response.
<br>
We experimented with three model as judges: `gpt-4-turbo-2024-04-09`, `gpt-4o`, and `claude-3-opus-20240229`. All three produced similar results, with the same ranking order. This strengthens the validity of our testing protocol.
The evaluation prompt can be found [here](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/pr_evaluate_prompt_response.toml)
Here is an example of a judge model feedback:
```
command: improve
model1_score: 9,
model2_score: 6,
why: |
Response 1 is better because it provides more actionable and specific suggestions that directly
enhance the code's maintainability, performance, and best practices. For example, it suggests
using a variable for reusable widget instances and using named routes for navigation, which
are practical improvements. In contrast, Response 2 focuses more on general advice and less
actionable suggestions, such as changing variable names and adding comments, which are less
critical for immediate code improvement."
```

View file

@ -1,72 +1,108 @@
# Overview
CodiumAI PR-Agent is an open-source tool to help efficiently review and handle pull requests.
[PR-Agent](https://github.com/Codium-ai/pr-agent) is an open-source tool to help efficiently review and handle pull requests.
Qodo Merge is a hosted version of PR-Agent, designed for companies and teams that require additional features and capabilities
- See the [Installation Guide](./installation/index.md) for instructions on installing and running the tool on different git platforms.
- See the [Usage Guide](./usage-guide/index.md) for instructions on running the PR-Agent commands via different interfaces, including _CLI_, _online usage_, or by _automatically triggering_ them when a new PR is opened.
- See the [Usage Guide](./usage-guide/index.md) for instructions on running commands via different interfaces, including _CLI_, _online usage_, or by _automatically triggering_ them when a new PR is opened.
- See the [Tools Guide](./tools/index.md) for a detailed description of the different tools.
- See the video tutorials [[1](https://www.youtube.com/playlist?list=PLRTpyDOSgbwFMA_VBeKMnPLaaZKwjGBFT), [2](https://www.youtube.com/watch?v=7-yJLd7zu40)] for practical demonstrations on how to use the tools.
## PR-Agent Features
PR-Agent offers extensive pull request functionalities across various git providers.
## Docs Smart Search
| | | GitHub | Gitlab | Bitbucket | Azure DevOps |
|-------|-----------------------------------------------------------------------------------------------------------------------|:------:|:------:|:---------:|:------------:|
| TOOLS | Review | ✅ | ✅ | ✅ | ✅ |
| | ⮑ Incremental | ✅ | | | |
| | ⮑ [SOC2 Compliance](https://pr-agent-docs.codium.ai/tools/review/#soc2-ticket-compliance){:target="_blank"} 💎 | ✅ | ✅ | ✅ | |
| | Ask | ✅ | ✅ | ✅ | ✅ |
| | Describe | ✅ | ✅ | ✅ | ✅ |
| | ⮑ [Inline file summary](https://pr-agent-docs.codium.ai/tools/describe/#inline-file-summary){:target="_blank"} 💎 | ✅ | ✅ | | |
| | Improve | ✅ | ✅ | ✅ | ✅ |
| | ⮑ Extended | ✅ | ✅ | ✅ | ✅ |
| | [Custom Prompt](./tools/custom_prompt.md){:target="_blank"} 💎 | ✅ | ✅ | ✅ | |
| | Reflect and Review | ✅ | ✅ | ✅ | |
| | Update CHANGELOG.md | ✅ | ✅ | ✅ | |
| | Find Similar Issue | ✅ | | | |
| | [Add PR Documentation](./tools/documentation.md){:target="_blank"} 💎 | ✅ | ✅ | | |
| | [Generate Custom Labels](./tools/describe.md#handle-custom-labels-from-the-repos-labels-page-💎){:target="_blank"} 💎 | ✅ | ✅ | | |
| | [Analyze PR Components](./tools/analyze.md){:target="_blank"} 💎 | ✅ | ✅ | | |
| | | | | | |
| USAGE | CLI | ✅ | ✅ | ✅ | ✅ |
| | App / webhook | ✅ | ✅ | ✅ | ✅ |
| | Actions | ✅ | | | |
| | | | | |
| CORE | PR compression | ✅ | ✅ | ✅ | ✅ |
| | Repo language prioritization | ✅ | ✅ | ✅ | ✅ |
| | Adaptive and token-aware file patch fitting | ✅ | ✅ | ✅ | ✅ |
| | Multiple models support | ✅ | ✅ | ✅ | ✅ |
| | Incremental PR review | ✅ | | | |
| | [Static code analysis](./tools/analyze.md/){:target="_blank"} 💎 | ✅ | ✅ | ✅ | |
| | [Multiple configuration options](./usage-guide/configuration_options.md){:target="_blank"} 💎 | ✅ | ✅ | ✅ | |
To search the documentation site using natural language:
💎 marks a feature available only in [PR-Agent Pro](https://www.codium.ai/pricing/){:target="_blank"}
1) Comment `/help "your question"` in either:
- A pull request where Qodo Merge is installed
- A [PR Chat](https://qodo-merge-docs.qodo.ai/chrome-extension/features/#pr-chat)
2) The bot will respond with an [answer](https://github.com/Codium-ai/pr-agent/pull/1241#issuecomment-2365259334) that includes relevant documentation links.
## Features
PR-Agent and Qodo Merge offer comprehensive pull request functionalities integrated with various git providers:
| | | GitHub | GitLab | Bitbucket | Azure DevOps | Gitea |
| ----- |---------------------------------------------------------------------------------------------------------------------|:------:|:------:|:---------:|:------------:|:-----:|
| [TOOLS](https://qodo-merge-docs.qodo.ai/tools/) | [Describe](https://qodo-merge-docs.qodo.ai/tools/describe/) | ✅ | ✅ | ✅ | ✅ | ✅ |
| | [Review](https://qodo-merge-docs.qodo.ai/tools/review/) | ✅ | ✅ | ✅ | ✅ | ✅ |
| | [Improve](https://qodo-merge-docs.qodo.ai/tools/improve/) | ✅ | ✅ | ✅ | ✅ | ✅ |
| | [Ask](https://qodo-merge-docs.qodo.ai/tools/ask/) | ✅ | ✅ | ✅ | ✅ | |
| | ⮑ [Ask on code lines](https://qodo-merge-docs.qodo.ai/tools/ask/#ask-lines) | ✅ | ✅ | | | |
| | [Help Docs](https://qodo-merge-docs.qodo.ai/tools/help_docs/?h=auto#auto-approval) | ✅ | ✅ | ✅ | | |
| | [Update CHANGELOG](https://qodo-merge-docs.qodo.ai/tools/update_changelog/) | ✅ | ✅ | ✅ | ✅ | |
| | [Add Documentation](https://qodo-merge-docs.qodo.ai/tools/documentation/) 💎 | ✅ | ✅ | | | |
| | [Analyze](https://qodo-merge-docs.qodo.ai/tools/analyze/) 💎 | ✅ | ✅ | | | |
| | [Auto-Approve](https://qodo-merge-docs.qodo.ai/tools/improve/?h=auto#auto-approval) 💎 | ✅ | ✅ | ✅ | | |
| | [CI Feedback](https://qodo-merge-docs.qodo.ai/tools/ci_feedback/) 💎 | ✅ | | | | |
| | [Compliance](https://qodo-merge-docs.qodo.ai/tools/compliance/) 💎 | ✅ | ✅ | ✅ | | |
| | [Custom Prompt](https://qodo-merge-docs.qodo.ai/tools/custom_prompt/) 💎 | ✅ | ✅ | ✅ | | |
| | [Generate Custom Labels](https://qodo-merge-docs.qodo.ai/tools/custom_labels/) 💎 | ✅ | ✅ | | | |
| | [Generate Tests](https://qodo-merge-docs.qodo.ai/tools/test/) 💎 | ✅ | ✅ | | | |
| | [Implement](https://qodo-merge-docs.qodo.ai/tools/implement/) 💎 | ✅ | ✅ | ✅ | | |
| | [PR Chat](https://qodo-merge-docs.qodo.ai/chrome-extension/features/#pr-chat) 💎 | ✅ | | | | |
| | [PR to Ticket](https://qodo-merge-docs.qodo.ai/tools/pr_to_ticket/) 💎 | ✅ | ✅ | ✅ | | |
| | [Scan Repo Discussions](https://qodo-merge-docs.qodo.ai/tools/scan_repo_discussions/) 💎 | ✅ | | | | |
| | [Similar Code](https://qodo-merge-docs.qodo.ai/tools/similar_code/) 💎 | ✅ | | | | |
| | [Suggestion Tracking](https://qodo-merge-docs.qodo.ai/tools/improve/#suggestion-tracking) 💎 | ✅ | ✅ | | | |
| | [Utilizing Best Practices](https://qodo-merge-docs.qodo.ai/tools/improve/#best-practices) 💎 | ✅ | ✅ | ✅ | | |
| | | | | | | |
| [USAGE](https://qodo-merge-docs.qodo.ai/usage-guide/) | [CLI](https://qodo-merge-docs.qodo.ai/usage-guide/automations_and_usage/#local-repo-cli) | ✅ | ✅ | ✅ | ✅ | ✅ |
| | [App / webhook](https://qodo-merge-docs.qodo.ai/usage-guide/automations_and_usage/#github-app) | ✅ | ✅ | ✅ | ✅ | ✅ |
| | [Tagging bot](https://github.com/Codium-ai/pr-agent#try-it-now) | ✅ | | | | |
| | [Actions](https://qodo-merge-docs.qodo.ai/installation/github/#run-as-a-github-action) | ✅ | ✅ | ✅ | ✅ | |
| | | | | | | |
| [CORE](https://qodo-merge-docs.qodo.ai/core-abilities/) | [Adaptive and token-aware file patch fitting](https://qodo-merge-docs.qodo.ai/core-abilities/compression_strategy/) | ✅ | ✅ | ✅ | ✅ | |
| | [Auto Best Practices 💎](https://qodo-merge-docs.qodo.ai/core-abilities/auto_best_practices/) | ✅ | | | | |
| | [Chat on code suggestions](https://qodo-merge-docs.qodo.ai/core-abilities/chat_on_code_suggestions/) | ✅ | ✅ | | | |
| | [Code Validation 💎](https://qodo-merge-docs.qodo.ai/core-abilities/code_validation/) | ✅ | ✅ | ✅ | ✅ | |
| | [Dynamic context](https://qodo-merge-docs.qodo.ai/core-abilities/dynamic_context/) | ✅ | ✅ | ✅ | ✅ | |
| | [Fetching ticket context](https://qodo-merge-docs.qodo.ai/core-abilities/fetching_ticket_context/) | ✅ | ✅ | ✅ | | |
| | [Global and wiki configurations](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/) 💎 | ✅ | ✅ | ✅ | | |
| | [Impact Evaluation](https://qodo-merge-docs.qodo.ai/core-abilities/impact_evaluation/) 💎 | ✅ | ✅ | | | |
| | [Incremental Update 💎](https://qodo-merge-docs.qodo.ai/core-abilities/incremental_update/) | ✅ | | | | |
| | [Interactivity](https://qodo-merge-docs.qodo.ai/core-abilities/interactivity/) | ✅ | ✅ | | | |
| | [Local and global metadata](https://qodo-merge-docs.qodo.ai/core-abilities/metadata/) | ✅ | ✅ | ✅ | ✅ | |
| | [Multiple models support](https://qodo-merge-docs.qodo.ai/usage-guide/changing_a_model/) | ✅ | ✅ | ✅ | ✅ | |
| | [PR compression](https://qodo-merge-docs.qodo.ai/core-abilities/compression_strategy/) | ✅ | ✅ | ✅ | ✅ | |
| | [PR interactive actions](https://www.qodo.ai/images/pr_agent/pr-actions.mp4) 💎 | ✅ | ✅ | | | |
| | [RAG context enrichment](https://qodo-merge-docs.qodo.ai/core-abilities/rag_context_enrichment/) | ✅ | | ✅ | | |
| | [Self reflection](https://qodo-merge-docs.qodo.ai/core-abilities/self_reflection/) | ✅ | ✅ | ✅ | ✅ | |
| | [Static code analysis](https://qodo-merge-docs.qodo.ai/core-abilities/static_code_analysis/) 💎 | ✅ | ✅ | | | |
!!! note "💎 means Qodo Merge only"
All along the documentation, 💎 marks a feature available only in [Qodo Merge](https://www.codium.ai/pricing/){:target="_blank"}, and not in the open-source version.
## Example Results
<hr>
#### [/describe](https://github.com/Codium-ai/pr-agent/pull/530)
<figure markdown="1">
![/describe](https://www.codium.ai/images/pr_agent/describe_new_short_main.png){width=512}
</figure>
<hr>
#### [/review](https://github.com/Codium-ai/pr-agent/pull/732#issuecomment-1975099151)
<figure markdown="1">
![/review](https://www.codium.ai/images/pr_agent/review_new_short_main.png){width=512}
</figure>
<hr>
#### [/improve](https://github.com/Codium-ai/pr-agent/pull/732#issuecomment-1975099159)
<figure markdown="1">
![/improve](https://www.codium.ai/images/pr_agent/improve_new_short_main.png){width=512}
</figure>
<hr>
#### [/generate_labels](https://github.com/Codium-ai/pr-agent/pull/530)
<figure markdown="1">
![/generate_labels](https://www.codium.ai/images/pr_agent/geneare_custom_labels_main_short.png){width=300}
</figure>
@ -74,8 +110,8 @@ PR-Agent offers extensive pull request functionalities across various git provid
## How it Works
The following diagram illustrates PR-Agent tools and their flow:
The following diagram illustrates Qodo Merge tools and their flow:
![PR-Agent Tools](https://codium.ai/images/pr_agent/diagram-v0.9.png)
![Qodo Merge Tools](https://codium.ai/images/pr_agent/diagram-v0.9.png)
Check out the [PR Compression strategy](core-abilities/index.md) page for more details on how we convert a code diff to a manageable LLM prompt

View file

@ -1,17 +1,23 @@
## Azure DevOps Pipeline
You can use a pre-built Action Docker image to run PR-Agent as an Azure devops pipeline.
add the following file to your repository under `azure-pipelines.yml`:
You can use a pre-built Action Docker image to run PR-Agent as an Azure DevOps pipeline.
Add the following file to your repository under `azure-pipelines.yml`:
```yaml
# Opt out of CI triggers
trigger: none
# Configure PR trigger
pr:
branches:
include:
- '*'
autoCancel: true
drafts: false
# pr:
# branches:
# include:
# - '*'
# autoCancel: true
# drafts: false
# NOTE for Azure Repos Git:
# Azure Repos does not honor YAML pr: triggers. Configure Build Validation
# via Branch Policies instead (see note below). You can safely omit pr:.
stages:
- stage: pr_agent
@ -47,47 +53,66 @@ stages:
env:
azure_devops__pat: $(azure_devops_pat)
openai__key: $(OPENAI_KEY)
displayName: 'Run PR Agent'
displayName: 'Run Qodo Merge'
```
This script will run PR-Agent on every new merge request, with the `improve`, `review`, and `describe` commands.
This script will run Qodo Merge on every new merge request, with the `improve`, `review`, and `describe` commands.
Note that you need to export the `azure_devops__pat` and `OPENAI_KEY` variables in the Azure DevOps pipeline settings (Pipelines -> Library -> + Variable group):
![PR Agent Pro](https://codium.ai/images/pr_agent/azure_devops_pipeline_secrets.png){width=468}
![Qodo Merge](https://codium.ai/images/pr_agent/azure_devops_pipeline_secrets.png){width=468}
Make sure to give pipeline permissions to the `pr_agent` variable group.
> Note that Azure Pipelines lacks support for triggering workflows from PR comments. If you find a viable solution, please contribute it to our [issue tracker](https://github.com/Codium-ai/pr-agent/issues)
### Azure Repos Git PR triggers and Build Validation
Azure Repos Git does not use YAML `pr:` triggers for pipelines. Instead, configure Build Validation on the target branch to run the PR Agent pipeline for pull requests:
1. Go to Project Settings → Repositories → Branches.
2. Select the target branch and open Branch Policies.
3. Under Build Validation, add a policy:
- Select the PR Agent pipeline (the `azure-pipelines.yml` above).
- Set it as Required.
4. Remove the `pr:` section from your YAML (not needed for Azure Repos Git).
This distinction applies specifically to Azure Repos Git. Other providers like GitHub and Bitbucket Cloud can use YAML-based PR triggers.
## Azure DevOps from CLI
To use Azure DevOps provider use the following settings in configuration.toml:
```
```toml
[config]
git_provider="azure"
```
Azure DevOps provider supports [PAT token](https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=Windows) or [DefaultAzureCredential](https://learn.microsoft.com/en-us/azure/developer/python/sdk/authentication-overview#authentication-in-server-environments) authentication.
PAT is faster to create, but has build in expiration date, and will use the user identity for API calls.
PAT is faster to create, but has built-in expiration date, and will use the user identity for API calls.
Using DefaultAzureCredential you can use managed identity or Service principle, which are more secure and will create separate ADO user identity (via AAD) to the agent.
If PAT was chosen, you can assign the value in .secrets.toml.
If DefaultAzureCredential was chosen, you can assigned the additional env vars like AZURE_CLIENT_SECRET directly,
or use managed identity/az cli (for local development) without any additional configuration.
in any case, 'org' value must be assigned in .secrets.toml:
```
```toml
[azure_devops]
org = "https://dev.azure.com/YOUR_ORGANIZATION/"
# pat = "YOUR_PAT_TOKEN" needed only if using PAT for authentication
```
### Azure DevOps Webhook
## Azure DevOps Webhook
To trigger from an Azure webhook, you need to manually [add a webhook](https://learn.microsoft.com/en-us/azure/devops/service-hooks/services/webhooks?view=azure-devops).
Use the "Pull request created" type to trigger a review, or "Pull request commented on" to trigger any supported comment with /<command> <args> comment on the relevant PR. Note that for the "Pull request commented on" trigger, only API v2.0 is supported.
For webhook security, create a sporadic username/password pair and configure the webhook username and password on both the server and Azure DevOps webhook. These will be sent as basic Auth data by the webhook with each request:
```
```toml
[azure_devops_server]
webhook_username = "<basic auth user>"
webhook_password = "<basic auth password>"
```
> :warning: **Ensure that the webhook endpoint is only accessible over HTTPS** to mitigate the risk of credential interception when using basic authentication.

View file

@ -1,9 +1,8 @@
## Run as a Bitbucket Pipeline
You can use the Bitbucket Pipeline system to run PR-Agent on every pull request open or update.
1. Add the following file in your repository bitbucket_pipelines.yml
1. Add the following file in your repository bitbucket-pipelines.yml
```yaml
pipelines:
@ -11,27 +10,24 @@ pipelines:
'**':
- step:
name: PR Agent Review
image: python:3.10
services:
- docker
image: codiumai/pr-agent:latest
script:
- docker run -e CONFIG.GIT_PROVIDER=bitbucket -e OPENAI.KEY=$OPENAI_API_KEY -e BITBUCKET.BEARER_TOKEN=$BITBUCKET_BEARER_TOKEN codiumai/pr-agent:latest --pr_url=https://bitbucket.org/$BITBUCKET_WORKSPACE/$BITBUCKET_REPO_SLUG/pull-requests/$BITBUCKET_PR_ID review
- pr-agent --pr_url=https://bitbucket.org/$BITBUCKET_WORKSPACE/$BITBUCKET_REPO_SLUG/pull-requests/$BITBUCKET_PR_ID review
```
2. Add the following secure variables to your repository under Repository settings > Pipelines > Repository variables.
OPENAI_API_KEY: `<your key>`
BITBUCKET_BEARER_TOKEN: `<your token>`
- CONFIG__GIT_PROVIDER: `bitbucket`
- OPENAI__KEY: `<your key>`
- BITBUCKET__AUTH_TYPE: `basic` or `bearer` (default is `bearer`)
- BITBUCKET__BEARER_TOKEN: `<your token>` (required when auth_type is bearer)
- BITBUCKET__BASIC_TOKEN: `<your token>` (required when auth_type is basic)
You can get a Bitbucket token for your repository by following Repository Settings -> Security -> Access Tokens.
For basic auth, you can generate a base64 encoded token from your username:password combination.
Note that comments on a PR are not supported in Bitbucket Pipeline.
## Run using CodiumAI-hosted Bitbucket app 💎
Please contact visit [PR-Agent pro](https://www.codium.ai/pricing/) if you're interested in a hosted BitBucket app solution that provides full functionality including PR reviews and comment handling. It's based on the [bitbucket_app.py](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/git_providers/bitbucket_provider.py) implementation.
## Bitbucket Server and Data Center
Login into your on-prem instance of Bitbucket with your service account username and password.
@ -43,6 +39,13 @@ Generate the token and add it to .secret.toml under `bitbucket_server` section
bearer_token = "<your key>"
```
Don't forget to also set the URL of your Bitbucket Server instance (either in `.secret.toml` or in `configuration.toml`):
```toml
[bitbucket_server]
url = "<full URL to your Bitbucket instance, e.g.: https://git.bitbucket.com>"
```
### Run it as CLI
Modify `configuration.toml`:
@ -51,20 +54,24 @@ Modify `configuration.toml`:
git_provider="bitbucket_server"
```
and pass the Pull request URL:
```shell
python cli.py --pr_url https://git.onpreminstanceofbitbucket.com/projects/PROJECT/repos/REPO/pull-requests/1 review
python cli.py --pr_url https://git.on-prem-instance-of-bitbucket.com/projects/PROJECT/repos/REPO/pull-requests/1 review
```
### Run it as service
To run pr-agent as webhook, build the docker image:
```
To run PR-Agent as webhook, build the docker image:
```bash
docker build . -t codiumai/pr-agent:bitbucket_server_webhook --target bitbucket_server_webhook -f docker/Dockerfile
docker push codiumai/pr-agent:bitbucket_server_webhook # Push to your Docker repository
```
Navigate to `Projects` or `Repositories`, `Settings`, `Webhooks`, `Create Webhook`.
Fill the name and URL, Authentication None select the Pull Request Opened checkbox to receive that event as webhook.
Fill in the name and URL. For Authentication, select 'None'. Select the 'Pull Request Opened' checkbox to receive that event as a webhook.
The URL should end with `/webhook`, for example: https://domain.com/webhook

View file

@ -0,0 +1,47 @@
## Run a Gitea webhook server
1. In Gitea create a new user and give it "Reporter" role ("Developer" if using Pro version of the agent) for the intended group or project.
2. For the user from step 1. generate a `personal_access_token` with `api` access.
3. Generate a random secret for your app, and save it for later (`webhook_secret`). For example, you can use:
```bash
WEBHOOK_SECRET=$(python -c "import secrets; print(secrets.token_hex(10))")
```
4. Clone this repository:
```bash
git clone https://github.com/qodo-ai/pr-agent.git
```
5. Prepare variables and secrets. Skip this step if you plan on setting these as environment variables when running the agent:
- In the configuration file/variables:
- Set `config.git_provider` to "gitea"
- In the secrets file/variables:
- Set your AI model key in the respective section
- In the [Gitea] section, set `personal_access_token` (with token from step 2) and `webhook_secret` (with secret from step 3)
6. Build a Docker image for the app and optionally push it to a Docker repository. We'll use Dockerhub as an example:
```bash
docker build -f /docker/Dockerfile -t pr-agent:gitea_app --target gitea_app .
docker push codiumai/pr-agent:gitea_webhook # Push to your Docker repository
```
7. Set the environmental variables, the method depends on your docker runtime. Skip this step if you included your secrets/configuration directly in the Docker image.
```bash
CONFIG__GIT_PROVIDER=gitea
GITEA__PERSONAL_ACCESS_TOKEN=<personal_access_token>
GITEA__WEBHOOK_SECRET=<webhook_secret>
GITEA__URL=https://gitea.com # Or self host
OPENAI__KEY=<your_openai_api_key>
GITEA__SKIP_SSL_VERIFICATION=false # or true
GITEA__SSL_CA_CERT=/path/to/cacert.pem
```
8. Create a webhook in your Gitea project. Set the URL to `http[s]://<PR_AGENT_HOSTNAME>/api/v1/gitea_webhooks`, the secret token to the generated secret from step 3, and enable the triggers `push`, `comments` and `merge request events`.
9. Test your installation by opening a merge request or commenting on a merge request using one of PR Agent's commands.

View file

@ -1,3 +1,5 @@
In this page we will cover how to install and run PR-Agent as a GitHub Action or GitHub App, and how to configure it for your needs.
## Run as a GitHub Action
You can use our pre-built Github Action Docker image to run PR-Agent as a Github Action.
@ -21,13 +23,470 @@ jobs:
steps:
- name: PR Agent action step
id: pragent
uses: Codium-ai/pr-agent@main
uses: qodo-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 and variables > Actions > New repository secret > Add secret`:
```
Name = OPENAI_KEY
Secret = <your key>
```
The GITHUB_TOKEN secret is automatically created by GitHub.
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.
4) You may configure Qodo Merge by adding environment variables under the env section corresponding to any configurable property in the [configuration](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml) file. Some examples:
```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
```
See detailed usage instructions in the [USAGE GUIDE](https://qodo-merge-docs.qodo.ai/usage-guide/automations_and_usage/#github-action)
### Configuration Examples
This section provides detailed, step-by-step examples for configuring PR-Agent with different models and advanced options in GitHub Actions.
#### Quick Start Examples
##### Basic Setup (OpenAI Default)
Copy this minimal workflow to get started with the default OpenAI models:
```yaml
name: PR Agent
on:
pull_request:
types: [opened, reopened, ready_for_review]
issue_comment:
jobs:
pr_agent_job:
if: ${{ github.event.sender.type != 'Bot' }}
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
contents: write
steps:
- name: PR Agent action step
uses: qodo-ai/pr-agent@main
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
##### Gemini Setup
Ready-to-use workflow for Gemini models:
```yaml
name: PR Agent (Gemini)
on:
pull_request:
types: [opened, reopened, ready_for_review]
issue_comment:
jobs:
pr_agent_job:
if: ${{ github.event.sender.type != 'Bot' }}
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
contents: write
steps:
- name: PR Agent action step
uses: qodo-ai/pr-agent@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
config.model: "gemini/gemini-1.5-flash"
config.fallback_models: '["gemini/gemini-1.5-flash"]'
GOOGLE_AI_STUDIO.GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "true"
```
#### Claude Setup
Ready-to-use workflow for Claude models:
```yaml
name: PR Agent (Claude)
on:
pull_request:
types: [opened, reopened, ready_for_review]
issue_comment:
jobs:
pr_agent_job:
if: ${{ github.event.sender.type != 'Bot' }}
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
contents: write
steps:
- name: PR Agent action step
uses: qodo-ai/pr-agent@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
config.model: "anthropic/claude-3-opus-20240229"
config.fallback_models: '["anthropic/claude-3-haiku-20240307"]'
ANTHROPIC.KEY: ${{ secrets.ANTHROPIC_KEY }}
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "true"
```
#### Basic Configuration with Tool Controls
Start with this enhanced workflow that includes tool configuration:
```yaml
on:
pull_request:
types: [opened, reopened, ready_for_review]
issue_comment:
jobs:
pr_agent_job:
if: ${{ github.event.sender.type != 'Bot' }}
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
contents: write
name: Run pr agent on every pull request, respond to user comments
steps:
- name: PR Agent action step
id: pragent
uses: qodo-ai/pr-agent@main
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Enable/disable automatic tools
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "true"
# Configure which PR events trigger the action
github_action_config.pr_actions: '["opened", "reopened", "ready_for_review", "review_requested"]'
```
#### Switching Models
##### Using Gemini (Google AI Studio)
To use Gemini models instead of the default OpenAI models:
```yaml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Set the model to Gemini
config.model: "gemini/gemini-1.5-flash"
config.fallback_models: '["gemini/gemini-1.5-flash"]'
# Add your Gemini API key
GOOGLE_AI_STUDIO.GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
# Tool configuration
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "true"
```
**Required Secrets:**
- Add `GEMINI_API_KEY` to your repository secrets (get it from [Google AI Studio](https://aistudio.google.com/))
**Note:** When using non-OpenAI models like Gemini, you don't need to set `OPENAI_KEY` - only the model-specific API key is required.
##### Using Claude (Anthropic)
To use Claude models:
```yaml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Set the model to Claude
config.model: "anthropic/claude-3-opus-20240229"
config.fallback_models: '["anthropic/claude-3-haiku-20240307"]'
# Add your Anthropic API key
ANTHROPIC.KEY: ${{ secrets.ANTHROPIC_KEY }}
# Tool configuration
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "true"
```
**Required Secrets:**
- Add `ANTHROPIC_KEY` to your repository secrets (get it from [Anthropic Console](https://console.anthropic.com/))
**Note:** When using non-OpenAI models like Claude, you don't need to set `OPENAI_KEY` - only the model-specific API key is required.
##### Using Azure OpenAI
To use Azure OpenAI services:
```yaml
env:
OPENAI_KEY: ${{ secrets.AZURE_OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Azure OpenAI configuration
OPENAI.API_TYPE: "azure"
OPENAI.API_VERSION: "2023-05-15"
OPENAI.API_BASE: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
OPENAI.DEPLOYMENT_ID: ${{ secrets.AZURE_OPENAI_DEPLOYMENT }}
# Set the model to match your Azure deployment
config.model: "gpt-4o"
config.fallback_models: '["gpt-4o"]'
# Tool configuration
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "true"
```
**Required Secrets:**
- `AZURE_OPENAI_KEY`: Your Azure OpenAI API key
- `AZURE_OPENAI_ENDPOINT`: Your Azure OpenAI endpoint URL
- `AZURE_OPENAI_DEPLOYMENT`: Your deployment name
##### Using Local Models (Ollama)
To use local models via Ollama:
```yaml
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Set the model to a local Ollama model
config.model: "ollama/qwen2.5-coder:32b"
config.fallback_models: '["ollama/qwen2.5-coder:32b"]'
config.custom_model_max_tokens: "128000"
# Ollama configuration
OLLAMA.API_BASE: "http://localhost:11434"
# Tool configuration
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "true"
```
**Note:** For local models, you'll need to use a self-hosted runner with Ollama installed, as GitHub Actions hosted runners cannot access localhost services.
#### Advanced Configuration Options
##### Custom Review Instructions
Add specific instructions for the review process:
```yaml
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Custom review instructions
pr_reviewer.extra_instructions: "Focus on security vulnerabilities and performance issues. Check for proper error handling."
# Tool configuration
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "true"
```
##### Language-Specific Configuration
Configure for specific programming languages:
```yaml
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Language-specific settings
pr_reviewer.extra_instructions: "Focus on Python best practices, type hints, and docstrings."
pr_code_suggestions.num_code_suggestions: "8"
pr_code_suggestions.suggestions_score_threshold: "7"
# Tool configuration
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "true"
```
##### Selective Tool Execution
Run only specific tools automatically:
```yaml
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Only run review and describe, skip improve
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "false"
# Only trigger on PR open and reopen
github_action_config.pr_actions: '["opened", "reopened"]'
```
#### Using Configuration Files
Instead of setting all options via environment variables, you can use a `.pr_agent.toml` file in your repository root:
1. Create a `.pr_agent.toml` file in your repository root:
```toml
[config]
model = "gemini/gemini-1.5-flash"
fallback_models = ["anthropic/claude-3-opus-20240229"]
[pr_reviewer]
extra_instructions = "Focus on security issues and code quality."
[pr_code_suggestions]
num_code_suggestions = 6
suggestions_score_threshold = 7
```
2. Use a simpler workflow file:
```yaml
on:
pull_request:
types: [opened, reopened, ready_for_review]
issue_comment:
jobs:
pr_agent_job:
if: ${{ github.event.sender.type != 'Bot' }}
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
contents: write
name: Run pr agent on every pull request, respond to user comments
steps:
- name: PR Agent action step
id: pragent
uses: qodo-ai/pr-agent@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GOOGLE_AI_STUDIO.GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
ANTHROPIC.KEY: ${{ secrets.ANTHROPIC_KEY }}
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "true"
```
#### Troubleshooting Common Issues
##### Model Not Found Errors
If you get model not found errors:
1. **Check model name format**: Ensure you're using the correct model identifier format (e.g., `gemini/gemini-1.5-flash`, not just `gemini-1.5-flash`)
2. **Verify API keys**: Make sure your API keys are correctly set as repository secrets
3. **Check model availability**: Some models may not be available in all regions or may require specific access
##### Environment Variable Format
Remember these key points about environment variables:
- Use dots (`.`) or double underscores (`__`) to separate sections and keys
- Boolean values should be strings: `"true"` or `"false"`
- Arrays should be JSON strings: `'["item1", "item2"]'`
- Model names are case-sensitive
##### Rate Limiting
If you encounter rate limiting:
```yaml
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Add fallback models for better reliability
config.fallback_models: '["gpt-4o", "gpt-3.5-turbo"]'
# Increase timeout for slower models
config.ai_timeout: "300"
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "true"
```
##### Common Error Messages and Solutions
**Error: "Model not found"**
- **Solution**: Check the model name format and ensure it matches the exact identifier. See the [Changing a model in PR-Agent](../usage-guide/changing_a_model.md) guide for supported models and their correct identifiers.
**Error: "API key not found"**
- **Solution**: Verify that your API key is correctly set as a repository secret and the environment variable name matches exactly
- **Note**: For non-OpenAI models (Gemini, Claude, etc.), you only need the model-specific API key, not `OPENAI_KEY`
**Error: "Rate limit exceeded"**
- **Solution**: Add fallback models or increase the `config.ai_timeout` value
**Error: "Permission denied"**
- **Solution**: Ensure your workflow has the correct permissions set:
```yaml
permissions:
issues: write
pull-requests: write
contents: write
```
**Error: "Invalid JSON format"**
- **Solution**: Check that arrays are properly formatted as JSON strings:
```yaml
Correct:
config.fallback_models: '["model1", "model2"]'
Incorrect (interpreted as a YAML list, not a string):
config.fallback_models: ["model1", "model2"]
```
##### Debugging Tips
1. **Enable verbose logging**: Add `config.verbosity_level: "2"` to see detailed logs
2. **Check GitHub Actions logs**: Look at the step output for specific error messages
3. **Test with minimal configuration**: Start with just the basic setup and add options one by one
4. **Verify secrets**: Double-check that all required secrets are set in your repository settings
##### Performance Optimization
For better performance with large repositories:
```yaml
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Optimize for large PRs
config.large_patch_policy: "clip"
config.max_model_tokens: "32000"
config.patch_extra_lines_before: "3"
config.patch_extra_lines_after: "1"
github_action_config.auto_review: "true"
github_action_config.auto_describe: "true"
github_action_config.auto_improve: "true"
```
#### Reference
For more detailed configuration options, see:
- [Changing a model in PR-Agent](../usage-guide/changing_a_model.md)
- [Configuration options](../usage-guide/configuration_options.md)
- [Automations and usage](../usage-guide/automations_and_usage.md#github-action)
### Using a specific release
!!! tip ""
if you want to pin your action to a specific release (v0.23 for example) for stability reasons, use:
```yaml
...
@ -48,31 +507,22 @@ For enhanced security, you can also specify the Docker image by its [digest](htt
...
```
2) Add the following secret to your repository under `Settings > Secrets and variables > Actions > New repository secret > Add secret`:
### Action for GitHub enterprise server
```
Name = OPENAI_KEY
Secret = <your key>
```
!!! tip ""
To use the action with a GitHub enterprise server, add an environment variable `GITHUB.BASE_URL` with the API URL of your GitHub server.
The GITHUB_TOKEN secret is automatically created by GitHub.
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.
4) You may configure PR-Agent by adding environment variables under the env section corresponding to any configurable property in the [configuration](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml) file. Some examples:
For example, if your GitHub server is at `https://github.mycompany.com`, add the following to your workflow file:
```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
GITHUB.BASE_URL: "https://github.mycompany.com/api/v3"
```
See detailed usage instructions in the [USAGE GUIDE](https://pr-agent-docs.codium.ai/usage-guide/automations_and_usage/#github-action)
---
## Run as a GitHub App
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).
@ -89,7 +539,7 @@ Allowing you to automate the review process on your private or public repositori
2) Generate a random secret for your app, and save it for later. For example, you can use:
```
```bash
WEBHOOK_SECRET=$(python -c "import secrets; print(secrets.token_hex(10))")
```
@ -100,13 +550,13 @@ WEBHOOK_SECRET=$(python -c "import secrets; print(secrets.token_hex(10))")
4) Clone this repository:
```
```bash
git clone https://github.com/Codium-ai/pr-agent.git
```
5) Copy the secrets template file and fill in the following:
```
```bash
cp pr_agent/settings/.secrets_template.toml pr_agent/settings/.secrets.toml
# Edit .secrets.toml file
```
@ -122,6 +572,7 @@ cp pr_agent/settings/.secrets_template.toml pr_agent/settings/.secrets.toml
> In most production environments, you would inject the secrets file as environment variables or as mounted volumes.
> For example, in order to inject a secrets file as a volume in a Kubernetes environment you can update your pod spec to include the following,
> assuming you have a secret named `pr-agent-settings` with a key named `.secrets.toml`:
```
volumes:
- name: settings-volume
@ -139,7 +590,7 @@ cp pr_agent/settings/.secrets_template.toml pr_agent/settings/.secrets.toml
6) Build a Docker image for the app and optionally push it to a Docker repository. We'll use Dockerhub as an example:
```
```bash
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
```
@ -155,61 +606,90 @@ cp pr_agent/settings/.secrets_template.toml pr_agent/settings/.secrets.toml
9. Install the app by navigating to the "Install App" tab and selecting your desired repositories.
> **Note:** When running PR-Agent from GitHub App, the default configuration file (configuration.toml) will be loaded.
> **Note:** When running Qodo Merge from GitHub app, the default configuration file (configuration.toml) will be loaded.
> However, you can override the default tool parameters by uploading a local configuration file `.pr_agent.toml`
> For more information please check out the [USAGE GUIDE](../usage-guide/automations_and_usage.md#github-app)
---
## Deploy as a Lambda Function
## Additional deployment methods
### Deploy as a Lambda Function
Note that since AWS Lambda env vars cannot have "." in the name, you can replace each "." in an env variable with "__".<br>
For example: `GITHUB.WEBHOOK_SECRET` --> `GITHUB__WEBHOOK_SECRET`
1. Follow steps 1-5 from [here](#run-as-a-github-app).
2. Build a docker image that can be used as a lambda function
```shell
docker buildx build --platform=linux/amd64 . -t codiumai/pr-agent:serverless -f docker/Dockerfile.lambda
docker buildx build --platform=linux/amd64 . -t codiumai/pr-agent:github_lambda --target github_lambda -f docker/Dockerfile.lambda
```
(Note: --target github_lambda is optional as it's the default target)
3. Push image to ECR
```shell
docker tag codiumai/pr-agent:serverless <AWS_ACCOUNT>.dkr.ecr.<AWS_REGION>.amazonaws.com/codiumai/pr-agent:serverless
docker push <AWS_ACCOUNT>.dkr.ecr.<AWS_REGION>.amazonaws.com/codiumai/pr-agent:serverless
docker tag codiumai/pr-agent:github_lambda <AWS_ACCOUNT>.dkr.ecr.<AWS_REGION>.amazonaws.com/codiumai/pr-agent:github_lambda
docker push <AWS_ACCOUNT>.dkr.ecr.<AWS_REGION>.amazonaws.com/codiumai/pr-agent:github_lambda
```
4. Create a lambda function that uses the uploaded image. Set the lambda timeout to be at least 3m.
5. Configure the lambda function to have a Function URL.
6. In the environment variables of the Lambda function, specify `AZURE_DEVOPS_CACHE_DIR` to a writable location such as /tmp. (see [link](https://github.com/Codium-ai/pr-agent/pull/450#issuecomment-1840242269))
7. Go back to steps 8-9 of [Method 5](#run-as-a-github-app) with the function url as your Webhook URL.
The Webhook URL would look like `https://<LAMBDA_FUNCTION_URL>/api/v1/github_webhooks`
#### Using AWS Secrets Manager
For production Lambda deployments, use AWS Secrets Manager instead of environment variables:
1. Create a secret in AWS Secrets Manager with JSON format like this:
```json
{
"openai.key": "sk-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"github.webhook_secret": "your-webhook-secret-from-step-2",
"github.private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA...\n-----END RSA PRIVATE KEY-----"
}
```
2. Add IAM permission `secretsmanager:GetSecretValue` to your Lambda execution role
3. Set these environment variables in your Lambda:
```bash
AWS_SECRETS_MANAGER__SECRET_ARN=arn:aws:secretsmanager:us-east-1:123456789012:secret:pr-agent-secrets-AbCdEf
CONFIG__SECRET_PROVIDER=aws_secrets_manager
```
---
## AWS CodeCommit Setup
### AWS CodeCommit Setup
Not all features have been added to CodeCommit yet. As of right now, CodeCommit has been implemented to run the pr-agent CLI on the command line, using AWS credentials stored in environment variables. (More features will be added in the future.) The following is a set of instructions to have pr-agent do a review of your CodeCommit pull request from the command line:
Not all features have been added to CodeCommit yet. As of right now, CodeCommit has been implemented to run the Qodo Merge CLI on the command line, using AWS credentials stored in environment variables. (More features will be added in the future.) The following is a set of instructions to have Qodo Merge do a review of your CodeCommit pull request from the command line:
1. Create an IAM user that you will use to read CodeCommit pull requests and post comments
* Note: That user should have CLI access only, not Console access
- Note: That user should have CLI access only, not Console access
2. Add IAM permissions to that user, to allow access to CodeCommit (see IAM Role example below)
3. Generate an Access Key for your IAM user
4. Set the Access Key and Secret using environment variables (see Access Key example below)
5. Set the `git_provider` value to `codecommit` in the `pr_agent/settings/configuration.toml` settings file
6. Set the `PYTHONPATH` to include your `pr-agent` project directory
* Option A: Add `PYTHONPATH="/PATH/TO/PROJECTS/pr-agent` to your `.env` file
* Option B: Set `PYTHONPATH` and run the CLI in one command, for example:
* `PYTHONPATH="/PATH/TO/PROJECTS/pr-agent python pr_agent/cli.py [--ARGS]`
- Option A: Add `PYTHONPATH="/PATH/TO/PROJECTS/pr-agent` to your `.env` file
- Option B: Set `PYTHONPATH` and run the CLI in one command, for example:
- `PYTHONPATH="/PATH/TO/PROJECTS/pr-agent python pr_agent/cli.py [--ARGS]`
---
#### AWS CodeCommit IAM Role Example
##### AWS CodeCommit IAM Role Example
Example IAM permissions to that user to allow access to CodeCommit:
* Note: The following is a working example of IAM permissions that has read access to the repositories and write access to allow posting comments
* Note: If you only want pr-agent to review your pull requests, you can tighten the IAM permissions further, however this IAM example will work, and allow the pr-agent to post comments to the PR
* Note: You may want to replace the `"Resource": "*"` with your list of repos, to limit access to only those repos
- Note: The following is a working example of IAM permissions that has read access to the repositories and write access to allow posting comments
- Note: If you only want pr-agent to review your pull requests, you can tighten the IAM permissions further, however this IAM example will work, and allow the pr-agent to post comments to the PR
- Note: You may want to replace the `"Resource": "*"` with your list of repos, to limit access to only those repos
```
```json
{
"Version": "2012-10-17",
"Statement": [
@ -233,7 +713,7 @@ Example IAM permissions to that user to allow access to CodeCommit:
}
```
#### AWS CodeCommit Access Key and Secret
##### AWS CodeCommit Access Key and Secret
Example setting the Access Key and Secret using environment variables
@ -243,7 +723,7 @@ export AWS_SECRET_ACCESS_KEY="XXXXXXXXXXXXXXXX"
export AWS_DEFAULT_REGION="us-east-1"
```
#### AWS CodeCommit CLI Example
##### AWS CodeCommit CLI Example
After you set up AWS CodeCommit using the instructions above, here is an example CLI run that tells pr-agent to **review** a given pull request.
(Replace your specific PYTHONPATH and PR URL in the example)

View file

@ -1,7 +1,9 @@
## Run as a GitLab Pipeline
You can use a pre-built Action Docker image to run PR-Agent as a GitLab pipeline. This is a simple way to get started with PR-Agent without setting up your own server.
You can use a pre-built Action Docker image to run PR-Agent as a GitLab pipeline. This is a simple way to get started with Qodo Merge without setting up your own server.
(1) Add the following file to your repository under `.gitlab-ci.yml`:
```yaml
stages:
- pr_agent
@ -16,6 +18,7 @@ pr_agent_job:
- echo "Running PR Agent action step"
- export MR_URL="$CI_MERGE_REQUEST_PROJECT_URL/merge_requests/$CI_MERGE_REQUEST_IID"
- echo "MR_URL=$MR_URL"
- export gitlab__url=$CI_SERVER_PROTOCOL://$CI_SERVER_FQDN
- export gitlab__PERSONAL_ACCESS_TOKEN=$GITLAB_PERSONAL_ACCESS_TOKEN
- export config__git_provider="gitlab"
- export openai__key=$OPENAI_KEY
@ -25,9 +28,9 @@ pr_agent_job:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
```
This script will run PR-Agent on every new merge request. You can modify the `rules` section to run PR-Agent on different events.
You can also modify the `script` section to run different PR-Agent commands, or with different parameters by exporting different environment variables.
This script will run Qodo Merge on every new merge request. You can modify the `rules` section to run Qodo Merge on different events.
You can also modify the `script` section to run different Qodo Merge commands, or with different parameters by exporting different environment variables.
(2) Add the following masked variables to your GitLab repository (CI/CD -> Variables):
@ -37,25 +40,116 @@ You can also modify the `script` section to run different PR-Agent commands, or
Note that if your base branches are not protected, don't set the variables as `protected`, since the pipeline will not have access to them.
> **Note**: The `$CI_SERVER_FQDN` variable is available starting from GitLab version 16.10. If you're using an earlier version, this variable will not be available. However, you can combine `$CI_SERVER_HOST` and `$CI_SERVER_PORT` to achieve the same result. Please ensure you're using a compatible version or adjust your configuration.
> **Note**: The `gitlab__SSL_VERIFY` environment variable can be used to specify the path to a custom CA certificate bundle for SSL verification. GitLab exposes the `$CI_SERVER_TLS_CA_FILE` variable, which points to the custom CA certificate file configured in your GitLab instance.
> Alternatively, SSL verification can be disabled entirely by setting `gitlab__SSL_VERIFY=false`, although this is not recommended.
## Run a GitLab webhook server
1. From the GitLab workspace or group, create an access token. Enable the "api" scope only.
1. In GitLab create a new user and give it "Reporter" role ("Developer" if using Pro version of the agent) for the intended group or project.
2. Generate a random secret for your app, and save it for later. For example, you can use:
2. For the user from step 1, generate a `personal_access_token` with `api` access.
3. Generate a random secret for your app, and save it for later (`shared_secret`). For example, you can use:
```bash
SHARED_SECRET=$(python -c "import secrets; print(secrets.token_hex(10))")
```
WEBHOOK_SECRET=$(python -c "import secrets; print(secrets.token_hex(10))")
4. Clone this repository:
```bash
git clone https://github.com/qodo-ai/pr-agent.git
```
3. Follow the instructions to build the Docker image, setup a secrets file and deploy on your own server from [here](https://pr-agent-docs.codium.ai/installation/github/#run-as-a-github-app) steps 4-7.
4. In the secrets file, fill in the following:
- Your OpenAI key.
- In the [gitlab] section, fill in personal_access_token and shared_secret. The access token can be a personal access token, or a group or project access token.
- Set deployment_type to 'gitlab' in [configuration.toml](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml)
5. Prepare variables and secrets. Skip this step if you plan on setting these as environment variables when running the agent:
1. In the configuration file/variables:
- Set `config.git_provider` to "gitlab"
5. Create a webhook in GitLab. Set the URL to ```http[s]://<PR_AGENT_HOSTNAME>/webhook```. Set the secret token to the generated secret from step 2.
In the "Trigger" section, check the comments and merge request events boxes.
2. In the secrets file/variables:
- Set your AI model key in the respective section
- In the [gitlab] section, set `personal_access_token` (with token from step 2) and `shared_secret` (with secret from step 3)
- **Authentication type**: Set `auth_type` to `"private_token"` for older GitLab versions (e.g., 11.x) or private deployments. Default is `"oauth_token"` for gitlab.com and newer versions.
6. Test your installation by opening a merge request or commenting or a merge request using one of CodiumAI's commands.
6. Build a Docker image for the app and optionally push it to a Docker repository. We'll use Dockerhub as an example:
```bash
docker build . -t gitlab_pr_agent --target gitlab_webhook -f docker/Dockerfile
docker push codiumai/pr-agent:gitlab_webhook # Push to your Docker repository
```
7. Set the environmental variables, the method depends on your docker runtime. Skip this step if you included your secrets/configuration directly in the Docker image.
```bash
CONFIG__GIT_PROVIDER=gitlab
GITLAB__PERSONAL_ACCESS_TOKEN=<personal_access_token>
GITLAB__SHARED_SECRET=<shared_secret>
GITLAB__URL=https://gitlab.com
GITLAB__AUTH_TYPE=oauth_token # Use "private_token" for older GitLab versions
OPENAI__KEY=<your_openai_api_key>
```
8. Create a webhook in your GitLab project. Set the URL to `http[s]://<PR_AGENT_HOSTNAME>/webhook`, the secret token to the generated secret from step 3, and enable the triggers `push`, `comments` and `merge request events`.
9. Test your installation by opening a merge request or commenting on a merge request using one of PR Agent's commands.
## Deploy as a Lambda Function
Note that since AWS Lambda env vars cannot have "." in the name, you can replace each "." in an env variable with "__".<br>
For example: `GITLAB.PERSONAL_ACCESS_TOKEN` --> `GITLAB__PERSONAL_ACCESS_TOKEN`
1. Follow steps 1-5 from [Run a GitLab webhook server](#run-a-gitlab-webhook-server).
2. Build a docker image that can be used as a lambda function
```shell
docker buildx build --platform=linux/amd64 . -t codiumai/pr-agent:gitlab_lambda --target gitlab_lambda -f docker/Dockerfile.lambda
```
3. Push image to ECR
```shell
docker tag codiumai/pr-agent:gitlab_lambda <AWS_ACCOUNT>.dkr.ecr.<AWS_REGION>.amazonaws.com/codiumai/pr-agent:gitlab_lambda
docker push <AWS_ACCOUNT>.dkr.ecr.<AWS_REGION>.amazonaws.com/codiumai/pr-agent:gitlab_lambda
```
4. Create a lambda function that uses the uploaded image. Set the lambda timeout to be at least 3m.
5. Configure the lambda function to have a Function URL.
6. In the environment variables of the Lambda function, specify `AZURE_DEVOPS_CACHE_DIR` to a writable location such as /tmp. (see [link](https://github.com/Codium-ai/pr-agent/pull/450#issuecomment-1840242269))
7. Go back to steps 8-9 of [Run a GitLab webhook server](#run-a-gitlab-webhook-server) with the function URL as your Webhook URL.
The Webhook URL would look like `https://<LAMBDA_FUNCTION_URL>/webhook`
### Using AWS Secrets Manager
For production Lambda deployments, use AWS Secrets Manager instead of environment variables:
1. Create individual secrets for each GitLab webhook with this JSON format (e.g., secret name: `project-webhook-secret-001`)
```json
{
"gitlab_token": "glpat-xxxxxxxxxxxxxxxxxxxxxxxx",
"token_name": "project-webhook-001"
}
```
2. Create a main configuration secret for common settings (e.g., secret name: `pr-agent-main-config`)
```json
{
"openai.key": "sk-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
```
3. Set these environment variables in your Lambda:
```bash
CONFIG__SECRET_PROVIDER=aws_secrets_manager
AWS_SECRETS_MANAGER__SECRET_ARN=arn:aws:secretsmanager:us-east-1:123456789012:secret:pr-agent-main-config-AbCdEf
```
4. In your GitLab webhook configuration, set the **Secret Token** to the **Secret name** created in step 1:
- Example: `project-webhook-secret-001`
**Important**: When using Secrets Manager, GitLab's webhook secret must be the Secrets Manager secret name.
5. Add IAM permission `secretsmanager:GetSecretValue` to your Lambda execution role

View file

@ -1,21 +1,19 @@
# Installation
## Self-hosted PR-Agent
If you choose to host you own PR-Agent, you first need to acquire two tokens:
1. An OpenAI key from [here](https://platform.openai.com/api-keys), with access to GPT-4 (or a key for other [language models](https://pr-agent-docs.codium.ai/usage-guide/changing_a_model/), if you prefer).
2. A GitHub\GitLab\BitBucket personal access token (classic), with the repo scope. [GitHub from [here](https://github.com/settings/tokens)]
There are several ways to use self-hosted PR-Agent:
- [Locally](./locally.md)
- [GitHub](./github.md)
- [GitLab](./gitlab.md)
- [BitBucket](./bitbucket.md)
- [Azure DevOps](./azure.md)
- [GitHub integration](./github.md)
- [GitLab integration](./gitlab.md)
- [BitBucket integration](./bitbucket.md)
- [Azure DevOps integration](./azure.md)
- [Gitea integration](./gitea.md)
## PR-Agent Pro 💎
PR-Agent Pro, an app hosted by CodiumAI for GitHub\GitLab\BitBucket, is also available.
## Qodo Merge 💎
Qodo Merge, an app hosted by QodoAI for GitHub\GitLab\BitBucket, is also available.
<br>
With PR-Agent Pro, installation is as simple as signing up and adding the PR-Agent app to your relevant repo.
See [here](https://pr-agent-docs.codium.ai/installation/pr_agent_pro/) for more details.
With Qodo Merge, installation is as simple as adding the Qodo Merge app to your relevant repositories.
See [here](https://qodo-merge-docs.qodo.ai/installation/qodo_merge/) for more details.

View file

@ -1,8 +1,100 @@
To run PR-Agent locally, you first need to acquire two keys:
1. An OpenAI key from [here](https://platform.openai.com/api-keys){:target="_blank"}, with access to GPT-4 and o4-mini (or a key for other [language models](https://qodo-merge-docs.qodo.ai/usage-guide/changing_a_model/), if you prefer).
2. A personal access token from your Git platform (GitHub, GitLab, BitBucket,Gitea) with repo scope. GitHub token, for example, can be issued from [here](https://github.com/settings/tokens){:target="_blank"}
## Using Docker image
A list of the relevant tools can be found in the [tools guide](../tools/).
To invoke a tool (for example `review`), you can run PR-Agent directly from the Docker image. Here's how:
- For GitHub:
```bash
docker run --rm -it -e OPENAI.KEY=<your_openai_key> -e GITHUB.USER_TOKEN=<your_github_token> codiumai/pr-agent:latest --pr_url <pr_url> review
```
If you are using GitHub enterprise server, you need to specify the custom url as variable.
For example, if your GitHub server is at `https://github.mycompany.com`, add the following to the command:
```bash
-e GITHUB.BASE_URL=https://github.mycompany.com/api/v3
```
- For GitLab:
```bash
docker run --rm -it -e OPENAI.KEY=<your key> -e CONFIG.GIT_PROVIDER=gitlab -e GITLAB.PERSONAL_ACCESS_TOKEN=<your token> codiumai/pr-agent:latest --pr_url <pr_url> review
```
If you have a dedicated GitLab instance, you need to specify the custom url as variable:
```bash
-e GITLAB.URL=<your gitlab instance url>
```
- For BitBucket:
```bash
docker run --rm -it -e CONFIG.GIT_PROVIDER=bitbucket -e OPENAI.KEY=$OPENAI_API_KEY -e BITBUCKET.BEARER_TOKEN=$BITBUCKET_BEARER_TOKEN codiumai/pr-agent:latest --pr_url=<pr_url> review
```
- For Gitea:
```bash
docker run --rm -it -e OPENAI.KEY=<your key> -e CONFIG.GIT_PROVIDER=gitea -e GITEA.PERSONAL_ACCESS_TOKEN=<your token> codiumai/pr-agent:latest --pr_url <pr_url> review
```
If you have a dedicated Gitea instance, you need to specify the custom url as variable:
```bash
-e GITEA.URL=<your gitea instance url>
```
For other git providers, update `CONFIG.GIT_PROVIDER` accordingly and check the [`pr_agent/settings/.secrets_template.toml`](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/.secrets_template.toml) file for environment variables expected names and values.
### Utilizing environment variables
It is also possible to provide or override the configuration by setting the corresponding environment variables.
You can define the corresponding environment variables by following this convention: `<TABLE>__<KEY>=<VALUE>` or `<TABLE>.<KEY>=<VALUE>`.
The `<TABLE>` refers to a table/section in a configuration file and `<KEY>=<VALUE>` refers to the key/value pair of a setting in the configuration file.
For example, suppose you want to run `pr_agent` that connects to a self-hosted GitLab instance similar to an example above.
You can define the environment variables in a plain text file named `.env` with the following content:
```bash
CONFIG__GIT_PROVIDER="gitlab"
GITLAB__URL="<your url>"
GITLAB__PERSONAL_ACCESS_TOKEN="<your token>"
OPENAI__KEY="<your key>"
```
Then, you can run `pr_agent` using Docker with the following command:
```shell
docker run --rm -it --env-file .env codiumai/pr-agent:latest <tool> <tool parameter>
```
---
### I get an error when running the Docker image. What should I do?
If you encounter an error when running the Docker image, it is almost always due to a misconfiguration of api keys or tokens.
Note that litellm, which is used by pr-agent, sometimes returns non-informative error messages such as `APIError: OpenAIException - Connection error.`
Carefully check the api keys and tokens you provided and make sure they are correct.
Adjustments may be needed depending on your llm provider.
For example, for Azure OpenAI, additional keys are [needed](https://qodo-merge-docs.qodo.ai/usage-guide/changing_a_model/#azure).
Same goes for other providers, make sure to check the [documentation](https://qodo-merge-docs.qodo.ai/usage-guide/changing_a_model/#changing-a-model)
## Using pip package
Install the package:
```
```bash
pip install pr-agent
```
@ -16,8 +108,8 @@ from pr_agent.config_loader import get_settings
def main():
# Fill in the following values
provider = "github" # GitHub provider
user_token = "..." # GitHub user token
provider = "github" # github/gitlab/bitbucket/azure_devops
user_token = "..." # user token
openai_key = "..." # OpenAI key
pr_url = "..." # PR URL, for example 'https://github.com/Codium-ai/pr-agent/pull/809'
command = "/review" # Command to run (e.g. '/review', '/describe', '/ask="What is the purpose of this PR?"', ...)
@ -35,60 +127,17 @@ if __name__ == '__main__':
main()
```
## Using Docker image
A list of the relevant tools can be found in the [tools guide](../tools/ask.md).
To invoke a tool (for example `review`), you can run directly from the Docker image. Here's how:
- For GitHub:
```
docker run --rm -it -e OPENAI.KEY=<your key> -e GITHUB.USER_TOKEN=<your token> codiumai/pr-agent:latest --pr_url <pr_url> review
```
- For GitLab:
```
docker run --rm -it -e OPENAI.KEY=<your key> -e CONFIG.GIT_PROVIDER=gitlab -e GITLAB.PERSONAL_ACCESS_TOKEN=<your token> codiumai/pr-agent:latest --pr_url <pr_url> review
```
Note: If you have a dedicated GitLab instance, you need to specify the custom url as variable:
```
docker run --rm -it -e OPENAI.KEY=<your key> -e CONFIG.GIT_PROVIDER=gitlab -e GITLAB.PERSONAL_ACCESS_TOKEN=<your token> -e GITLAB.URL=<your gitlab instance url> codiumai/pr-agent:latest --pr_url <pr_url> review
```
- For BitBucket:
```
docker run --rm -it -e CONFIG.GIT_PROVIDER=bitbucket -e OPENAI.KEY=$OPENAI_API_KEY -e BITBUCKET.BEARER_TOKEN=$BITBUCKET_BEARER_TOKEN codiumai/pr-agent:latest --pr_url=<pr_url> review
```
For other git providers, update CONFIG.GIT_PROVIDER accordingly, and check the `pr_agent/settings/.secrets_template.toml` file for the environment variables expected names and values.
---
If you want to ensure you're running a specific version of the Docker image, consider using the image's digest:
```bash
docker run --rm -it -e OPENAI.KEY=<your key> -e GITHUB.USER_TOKEN=<your token> codiumai/pr-agent@sha256:71b5ee15df59c745d352d84752d01561ba64b6d51327f97d46152f0c58a5f678 --pr_url <pr_url> review
```
Or you can run a [specific released versions](https://github.com/Codium-ai/pr-agent/blob/main/RELEASE_NOTES.md) of pr-agent, for example:
```
codiumai/pr-agent@v0.9
```
---
## Run from source
1. Clone this repository:
```
```bash
git clone https://github.com/Codium-ai/pr-agent.git
```
2. Navigate to the `/pr-agent` folder and install the requirements in your favorite virtual environment:
```
```bash
pip install -e .
```
@ -96,7 +145,7 @@ pip install -e .
3. Copy the secrets template file and fill in your OpenAI key and your GitHub user token:
```
```bash
cp pr_agent/settings/.secrets_template.toml pr_agent/settings/.secrets.toml
chmod 600 pr_agent/settings/.secrets.toml
# Edit .secrets.toml file
@ -104,7 +153,7 @@ chmod 600 pr_agent/settings/.secrets.toml
4. Run the cli.py script:
```
```bash
python3 -m pr_agent.cli --pr_url <pr_url> review
python3 -m pr_agent.cli --pr_url <pr_url> ask <your question>
python3 -m pr_agent.cli --pr_url <pr_url> describe
@ -115,7 +164,8 @@ python3 -m pr_agent.cli --issue_url <issue_url> similar_issue
...
```
[Optional] Add the pr_agent folder to your PYTHONPATH
```
[Optional] Add the pr_agent folder to your PYTHONPATH
```bash
export PYTHONPATH=$PYTHONPATH:<PATH to pr_agent folder>
```

View file

@ -0,0 +1,49 @@
# PR-Agent Installation Guide
PR-Agent can be deployed in various environments and platforms. Choose the installation method that best suits your needs:
## 🖥️ Local Installation
Learn how to run PR-Agent locally using:
- Docker image
- pip package
- CLI from source code
[View Local Installation Guide →](https://qodo-merge-docs.qodo.ai/installation/locally/)
## 🐙 GitHub Integration
Set up PR-Agent with GitHub as:
- GitHub Action
- Local GitHub App
[View GitHub Integration Guide →](https://qodo-merge-docs.qodo.ai/installation/github/)
## 🦊 GitLab Integration
Deploy PR-Agent on GitLab as:
- GitLab pipeline job
- Local GitLab webhook server
[View GitLab Integration Guide →](https://qodo-merge-docs.qodo.ai/installation/gitlab/)
## 🟦 BitBucket Integration
Implement PR-Agent in BitBucket as:
- BitBucket pipeline job
- Local BitBucket server
[View BitBucket Integration Guide →](https://qodo-merge-docs.qodo.ai/installation/bitbucket/)
## 🔷 Azure DevOps Integration
Configure PR-Agent with Azure DevOps as:
- Azure DevOps pipeline job
- Local Azure DevOps webhook
[View Azure DevOps Integration Guide →](https://qodo-merge-docs.qodo.ai/installation/azure/)

View file

@ -1,68 +0,0 @@
## Getting Started with PR-Agent Pro
PR-Agent Pro is a versatile application compatible with GitHub, GitLab, and BitBucket, hosted by CodiumAI.
See [here](https://pr-agent-docs.codium.ai/#pr-agent-pro) for more details about the benefits of using PR-Agent Pro.
Interested parties can subscribe to PR-Agent Pro through the following [link](https://www.codium.ai/pricing/).
After subscribing, you are granted the ability to easily install the application across any of your repositories.
![PR Agent Pro](https://codium.ai/images/pr_agent/pr_agent_pro_install.png){width=468}
Each user who wants to use PR-Agent pro needs to buy a seat.
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 PR-Agent Pro across any repository where it was enabled.
Users without a purchased seat who interact with a repository featuring PR-Agent Pro are entitled to receive up to five complimentary feedbacks.
Beyond this limit, PR-Agent Pro will cease to respond to their inquiries unless a seat is purchased.
## Install PR-Agent Pro for GitHub Enterprise Server
You can install PR-Agent Pro application on your GitHub Enterprise Server, and enjoy two weeks of free trial.
After the trial period, to continue using PR-Agent Pro, you will need to contact us for an [Enterprise license](https://www.codium.ai/pricing/).
## Install PR-Agent Pro for GitLab (Teams & Enterprise)
Since GitLab platform does not support apps, installing PR-Agent Pro for GitLab is a bit more involved, and requires the following steps:
### Step 1
Acquire a personal, project or group level access token. Enable the “api” scope in order to allow PR-Agent to read pull requests, comment and respond to requests.
<figure markdown="1">
![Step 1](https://www.codium.ai/images/pr_agent/gitlab_pro_pat.png){width=750}
</figure>
Store the token in a safe place, you wont be able to access it again after it was generated.
### 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).
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 wont be able to access it again after it was generated.
### Step 3
Install a webhook for your repository or groups, by clicking “webhooks” on the settings menu. Click the “Add new webhook” button.
<figure markdown="1">
![Step 3.1](https://www.codium.ai/images/pr_agent/gitlab_pro_add_webhook.png)
</figure>
In the webhook definition form, fill in the following fields:
URL: https://pro.gitlab.pr-agent.codium.ai/webhook
Secret token: Your CodiumAI key
Trigger: Check the comments and merge request events boxes.
Enable SSL verification: Check the box.
<figure markdown="1">
![Step 3.2](https://www.codium.ai/images/pr_agent/gitlab_pro_webhooks.png){width=750}
</figure>
### Step 4
Youre all set!
Open a new merge request or add a MR comment with one of PR-Agents commands such as /review, /describe or /improve.

View file

@ -0,0 +1,130 @@
Qodo Merge is a versatile application compatible with GitHub, GitLab, and BitBucket, hosted by QodoAI.
See [here](https://qodo-merge-docs.qodo.ai/overview/pr_agent_pro/) for more details about the benefits of using Qodo Merge.
## Usage and Licensing
### Cloud Users
Non-paying users will enjoy feedback on up to 75 PRs per git organization per month. Above this limit, PRs will not receive feedback until a new month begins.
For unlimited access, user licenses (seats) are required. Each user requires an individual seat license.
After purchasing seats, the team owner can assign them to specific users through the management portal.
With an assigned seat, users can seamlessly deploy the application across any of their code repositories in a git organization, and receive feedback on all their PRs.
### Enterprise Account
For companies who require an Enterprise account, please [contact](https://www.qodo.ai/contact/#pricing) us to initiate a trial period, and to discuss pricing and licensing options.
## Install Qodo Merge for GitHub
### GitHub Cloud
Qodo Merge for GitHub cloud is available for installation through the [GitHub Marketplace](https://github.com/apps/qodo-merge-pro).
![Qodo Merge](https://codium.ai/images/pr_agent/pr_agent_pro_install.png){width=468}
### GitHub Enterprise Server
To use Qodo Merge on your private GitHub Enterprise Server, you will need to [contact](https://www.qodo.ai/contact/#pricing) Qodo for starting an Enterprise trial.
(Note: The marketplace app is not compatible with GitHub Enterprise Server. Installation requires creating a private GitHub App instead.)
### GitHub Open Source Projects
For open-source projects, Qodo Merge is available for free usage. To install Qodo Merge for your open-source repositories, use the following marketplace [link](https://github.com/marketplace/qodo-merge-pro-for-open-source).
## Install Qodo Merge for Bitbucket
### Bitbucket Cloud
Qodo Merge for Bitbucket Cloud is available for installation through the following [link](https://bitbucket.org/site/addons/authorize?addon_key=d6df813252c37258)
![Qodo Merge](https://qodo.ai/images/pr_agent/pr_agent_pro_bitbucket_install.png){width=468}
### Bitbucket Server
To use Qodo Merge application on your private Bitbucket Server, you will need to contact us for starting an [Enterprise](https://www.qodo.ai/pricing/) trial.
## Install Qodo Merge for GitLab
### GitLab Cloud
Installing Qodo Merge for GitLab uses GitLab's OAuth 2.0 application system and requires the following steps:
#### Step 1: Create a GitLab OAuth 2.0 Application
Create a new OAuth 2.0 application in your GitLab instance:
1. Navigate to your GitLab group or subgroup settings
2. Go to "Applications" in the left sidebar
3. Click on "Add new application"
4. Fill in the application details:
- **Name**: You can give any name you wish (e.g., "Qodo Merge")
- **Redirect URI**: `https://register.oauth.app.gitlab.merge.qodo.ai/oauth/callback`
- **Confidential**: Check this checkbox
- **Scopes**: Check the "api" scope
<figure markdown="1">
![Step 1](https://www.codium.ai/images/pr_agent/gitlab_pro_oauth_app_creation_image.png){width=750}
</figure>
5. Click "Save application"
6. Copy both the **Application ID** and **Secret** - store them safely as you'll need them for the next step
#### Step 2: Register Your OAuth Application
1. Browse to: <https://register.oauth.app.gitlab.merge.qodo.ai>
2. Fill in the registration form:
- **Host Address**: Leave empty if using gitlab.com ([for self-hosted GitLab servers](#gitlab-server), enter your GitLab base URL including scheme (e.g., https://gitlab.mycorp-inc.com) without trailing slash. Do not include paths or query strings.
- **OAuth Application ID**: Enter the Application ID from Step 1
- **OAuth Application Secret**: Enter the Secret from Step 1
<figure markdown="1">
![Step 2](https://www.codium.ai/images/pr_agent/gitlab_pro_registration_form_image.png){width=750}
</figure>
3. Click "Submit"
#### Step 3: Authorize the OAuth Application
If all fields show green checkmarks, a redirect popup from GitLab will appear requesting authorization for the OAuth app to access the "api" scope. Click "Authorize" to approve the application.
#### Step 4: Copy the Webhook Secret Token
If the authorization is successful, a message will appear displaying a generated webhook secret token. Copy this token and store it safely - you'll need it for the next step.
#### Step 5: Install Webhooks
Install a webhook for your repository or groups by following these steps:
1. Navigate to your repository or group settings
2. Click "Webhooks" in the settings menu
3. Click the "Add new webhook" button
<figure markdown="1">
![Step 5.1](https://www.codium.ai/images/pr_agent/gitlab_pro_add_webhook.png)
</figure>
4. In the webhook definition form, fill in the following fields:
- **URL**: `https://pro.gitlab.pr-agent.codium.ai/webhook`
- **Secret token**: The webhook secret token generated in Step 4
- **Trigger**: Check the 'Comments' and 'Merge request events' boxes
- **Enable SSL verification**: Check this box
<figure markdown="1">
![Step 5.2](https://www.codium.ai/images/pr_agent/gitlab_pro_webhooks.png){width=750}
</figure>
5. Click "Add webhook"
**Note**: Repeat this webhook installation for each group or repository that is under the group or subgroup where the OAuth 2.0 application was created in Step 1.
#### Step 6: Youre all set!
Open a new merge request or add a MR comment with one of Qodo Merges commands such as /review, /describe or /improve.
### GitLab Server
For [limited free usage](https://qodo-merge-docs.qodo.ai/installation/qodo_merge/#cloud-users) on private GitLab Server, the same [installation steps](#gitlab-cloud) as for GitLab Cloud apply, aside from the [Host Address field mentioned in Step 2](#step-2-register-your-oauth-application) (where you fill in the hostname for your GitLab server, such as: https://gitlab.mycorp-inc.com). For unlimited usage, you will need to [contact](https://www.qodo.ai/contact/#pricing) Qodo for moving to an Enterprise account.

View file

@ -1,16 +1,15 @@
## Self-hosted PR-Agent
- If you self-host PR-Agent with your OpenAI (or other LLM provider) API key, it is between you and the provider. We don't send your code data to PR-Agent servers.
- If you self-host PR-Agent with your OpenAI (or other LLM provider) API key, it is between you and the provider. We don't send your code data to Qodo servers.
## PR-Agent Pro 💎
## Qodo Merge 💎
- When using PR-Agent Pro 💎, hosted by CodiumAI, we will not store any of your data, nor will we use it for training. You will also benefit from an OpenAI account with zero data retention.
- When using Qodo Merge💎, hosted by Qodo, we will not store any of your data, nor will we use it for training. You will also benefit from an OpenAI account with zero data retention.
- For certain clients, CodiumAI-hosted PR-Agent Pro will use CodiumAIs proprietary models. If this is the case, you will be notified.
- For certain clients, Qodo Merge will use Qodos proprietary models. If this is the case, you will be notified.
- No passive collection of Code and Pull Requests data — PR-Agent will be active only when you invoke it, and it will then extract and analyze only data relevant to the executed command and queried pull request.
- No passive collection of Code and Pull Requests data — Qodo Merge will be active only when you invoke it, and it will then extract and analyze only data relevant to the executed command and queried pull request.
## Qodo Merge Chrome extension
## PR-Agent Chrome extension
- The [PR-Agent Chrome extension](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl) will not send your code to any external servers.
- The [Qodo Merge Chrome extension](https://chromewebstore.google.com/detail/pr-agent-chrome-extension/ephlnjeghhogofkifjloamocljapahnl) will not send your code to any external servers.

View file

@ -1,81 +0,0 @@
# Overview
CodiumAI PR-Agent is an open-source tool to help efficiently review and handle pull requests.
- See the [Installation Guide](./installation/index.md) for instructions on installing and running the tool on different git platforms.
- See the [Usage Guide](./usage-guide/index.md) for instructions on running the PR-Agent commands via different interfaces, including _CLI_, _online usage_, or by _automatically triggering_ them when a new PR is opened.
- See the [Tools Guide](./tools/index.md) for a detailed description of the different tools.
## PR-Agent Features
PR-Agent offers extensive pull request functionalities across various git providers.
| | | GitHub | Gitlab | Bitbucket | Azure DevOps |
|-------|-----------------------------------------------------------------------------------------------------------------------|:------:|:------:|:---------:|:------------:|
| TOOLS | Review | ✅ | ✅ | ✅ | ✅ |
| | ⮑ Incremental | ✅ | | | |
| | ⮑ [SOC2 Compliance](https://pr-agent-docs.codium.ai/tools/review/#soc2-ticket-compliance){:target="_blank"} 💎 | ✅ | ✅ | ✅ | ✅ |
| | Ask | ✅ | ✅ | ✅ | ✅ |
| | Describe | ✅ | ✅ | ✅ | ✅ |
| | ⮑ [Inline file summary](https://pr-agent-docs.codium.ai/tools/describe/#inline-file-summary){:target="_blank"} 💎 | ✅ | ✅ | | ✅ |
| | Improve | ✅ | ✅ | ✅ | ✅ |
| | ⮑ Extended | ✅ | ✅ | ✅ | ✅ |
| | [Custom Prompt](./tools/custom_prompt.md){:target="_blank"} 💎 | ✅ | ✅ | ✅ | ✅ |
| | Reflect and Review | ✅ | ✅ | ✅ | ✅ |
| | Update CHANGELOG.md | ✅ | ✅ | ✅ | |
| | Find Similar Issue | ✅ | | | |
| | [Add PR Documentation](./tools/documentation.md){:target="_blank"} 💎 | ✅ | ✅ | | ✅ |
| | [Generate Custom Labels](./tools/describe.md#handle-custom-labels-from-the-repos-labels-page-💎){:target="_blank"} 💎 | ✅ | ✅ | | ✅ |
| | [Analyze PR Components](./tools/analyze.md){:target="_blank"} 💎 | ✅ | ✅ | | ✅ |
| | | | | | |
| USAGE | CLI | ✅ | ✅ | ✅ | ✅ |
| | App / webhook | ✅ | ✅ | ✅ | ✅ |
| | Actions | ✅ | | | |
| | | | | |
| CORE | PR compression | ✅ | ✅ | ✅ | ✅ |
| | Repo language prioritization | ✅ | ✅ | ✅ | ✅ |
| | Adaptive and token-aware file patch fitting | ✅ | ✅ | ✅ | ✅ |
| | Multiple models support | ✅ | ✅ | ✅ | ✅ |
| | Incremental PR review | ✅ | | | |
| | [Static code analysis](./tools/analyze.md/){:target="_blank"} 💎 | ✅ | ✅ | ✅ | ✅ |
| | [Multiple configuration options](./usage-guide/configuration_options.md){:target="_blank"} 💎 | ✅ | ✅ | ✅ | ✅ |
💎 marks a feature available only in [PR-Agent Pro](https://www.codium.ai/pricing/){:target="_blank"}
## Example Results
<hr>
#### [/describe](https://github.com/Codium-ai/pr-agent/pull/530)
<figure markdown="1">
![/describe](https://www.codium.ai/images/pr_agent/describe_new_short_main.png){width=512}
</figure>
<hr>
#### [/review](https://github.com/Codium-ai/pr-agent/pull/732#issuecomment-1975099151)
<figure markdown="1">
![/review](https://www.codium.ai/images/pr_agent/review_new_short_main.png){width=512}
</figure>
<hr>
#### [/improve](https://github.com/Codium-ai/pr-agent/pull/732#issuecomment-1975099159)
<figure markdown="1">
![/improve](https://www.codium.ai/images/pr_agent/improve_new_short_main.png){width=512}
</figure>
<hr>
#### [/generate_labels](https://github.com/Codium-ai/pr-agent/pull/530)
<figure markdown="1">
![/generate_labels](https://www.codium.ai/images/pr_agent/geneare_custom_labels_main_short.png){width=300}
</figure>
<hr>
## How it Works
The following diagram illustrates PR-Agent tools and their flow:
![PR-Agent Tools](https://codium.ai/images/pr_agent/diagram-v0.9.png)
Check out the [PR Compression strategy](core-abilities/index.md) page for more details on how we convert a code diff to a manageable LLM prompt

View file

@ -1,42 +1,56 @@
[PR-Agent Pro](https://www.codium.ai/pricing/) is a hosted version of PR-Agent, provided by CodiumAI. A complimentary two-week trial is offered, followed by a monthly subscription fee.
PR-Agent Pro is designed for companies and teams that require additional features and capabilities. It provides the following benefits:
### Overview
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 PR-Agent app to your GitHub\GitLab\BitBucket repo.
[Qodo Merge](https://www.codium.ai/pricing/){:target="_blank"} is a hosted version of the open-source [PR-Agent](https://github.com/Codium-ai/pr-agent){:target="_blank"}.
It is designed for companies and teams that require additional features and capabilities.
2. **Improved privacy** - No data will be stored or used to train models. PR-Agent Pro will employ zero data retention, and will use an OpenAI account with zero data retention.
Free users receive a quota of 75 monthly PR feedbacks per git organization. Unlimited usage requires a paid subscription. See [details](https://qodo-merge-docs.qodo.ai/installation/qodo_merge/#cloud-users).
3. **Improved support** - PR-Agent Pro users will receive priority support, and will be able to request new features and capabilities.
4. **Supporting self-hosted git servers** - PR-Agent Pro can be installed on GitHub Enterprise Server, GitLab, and BitBucket. For more information, see the [installation guide](https://pr-agent-docs.codium.ai/installation/pr_agent_pro/).
Qodo Merge provides the following benefits:
**Additional features:**
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.
Here are some of the additional features and capabilities that PR-Agent Pro offers:
2. **Improved privacy** - No data will be stored or used to train models. Qodo Merge will employ zero data retention, and will use an OpenAI and Claude accounts with zero data retention.
3. **Improved support** - Qodo Merge users will receive priority support, and will be able to request new features and capabilities.
4. **Supporting self-hosted git servers** - Qodo Merge can be installed on GitHub Enterprise Server, GitLab, and BitBucket. For more information, see the [installation guide](https://qodo-merge-docs.qodo.ai/installation/pr_agent_pro/).
5. **PR Chat** - Qodo Merge allows you to engage in [private chat](https://qodo-merge-docs.qodo.ai/chrome-extension/features/#pr-chat) about your pull requests on private repositories.
### Additional features
Here are some of the additional features and capabilities that Qodo Merge offers, and are not available in the open-source version of PR-Agent:
| Feature | Description |
|----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [**Model selection**](https://pr-agent-docs.codium.ai/usage-guide/PR_agent_pro_models/#pr-agent-pro-models) | Choose the model that best fits your needs, among top models like `GPT4` and `Claude-Sonnet-3.5`
| [**Global and wiki configuration**](https://pr-agent-docs.codium.ai/usage-guide/configuration_options/) | Control configurations for many repositories from a single location; <br>Edit configuration of a single repo without commiting code |
| [**Apply suggestions**](https://pr-agent-docs.codium.ai/tools/improve/#overview) | Generate commitable code from the relevant suggestions interactively by clicking on a checkbox |
| [**Suggestions impact**](https://pr-agent-docs.codium.ai/tools/improve/#assessing-impact) | Automatically mark suggestions that were implemented by the user (either directly in GitHub, or indirectly in the IDE) to enable tracking of the impact of the suggestions |
| [**CI feedback**](https://pr-agent-docs.codium.ai/tools/ci_feedback/) | Automatically analyze failed CI checks on GitHub and provide actionable feedback in the PR conversation, helping to resolve issues quickly |
| [**Advanced usage statistics**](https://www.codium.ai/contact/#/) | PR-Agent Pro offers detailed statistics at user, repository, and company levels, including metrics about PR-Agent usage, and also general statistics and insights |
| [**Incorporating companies' best practices**](https://pr-agent-docs.codium.ai/tools/improve/#best-practices) | Use the companies' best practices as reference to increase the effectiveness and the relevance of the code suggestions |
| [**Interactive triggering**](https://pr-agent-docs.codium.ai/tools/analyze/#example-usage) | Interactively apply different tools via the `analyze` command |
| [**SOC2 compliance check**](https://pr-agent-docs.codium.ai/tools/review/#configuration-options) | Ensures the PR contains a ticket to a project management system (e.g., Jira, Asana, Trello, etc.)
| [**Custom labels**](https://pr-agent-docs.codium.ai/tools/describe/#handle-custom-labels-from-the-repos-labels-page) | Define custom labels for PR-Agent to assign to the PR |
| -------------------------------------------------------------------------------------------------------------------- |--------------------------------------------------------------------------------------------------------------------------------------------------------|
| [**Model selection**](https://qodo-merge-docs.qodo.ai/usage-guide/PR_agent_pro_models/) | Choose the model that best fits your needs |
| [**Global and wiki configuration**](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/) | Control configurations for many repositories from a single location; <br>Edit configuration of a single repo without committing code |
| [**Apply suggestions**](https://qodo-merge-docs.qodo.ai/tools/improve/#overview) | Generate committable code from the relevant suggestions interactively by clicking on a checkbox |
| [**Suggestions impact**](https://qodo-merge-docs.qodo.ai/tools/improve/#assessing-impact) | Automatically mark suggestions that were implemented by the user (either directly in GitHub, or indirectly in the IDE) to enable tracking of the impact of the suggestions |
| [**CI feedback**](https://qodo-merge-docs.qodo.ai/tools/ci_feedback/) | Automatically analyze failed CI checks on GitHub and provide actionable feedback in the PR conversation, helping to resolve issues quickly |
| [**Advanced usage statistics**](https://www.codium.ai/contact/#/) | Qodo Merge offers detailed statistics at user, repository, and company levels, including metrics about Qodo Merge usage, and also general statistics and insights |
| [**Incorporating companies' best practices**](https://qodo-merge-docs.qodo.ai/tools/improve/#best-practices) | Use the companies' best practices as reference to increase the effectiveness and the relevance of the code suggestions |
| [**Interactive triggering**](https://qodo-merge-docs.qodo.ai/tools/analyze/#example-usage) | Interactively apply different tools via the `analyze` command |
| [**Custom labels**](https://qodo-merge-docs.qodo.ai/tools/describe/#handle-custom-labels-from-the-repos-labels-page) | Define custom labels for Qodo Merge to assign to the PR |
**Additional tools:**
### Additional tools
Here are additional tools that are available only for PR-Agent Pro users:
Here are additional tools that are available only for Qodo Merge users:
| Feature | Description |
|---------|-------------|
| [**Custom Prompt Suggestions**](https://pr-agent-docs.codium.ai/tools/custom_prompt/) | Generate code suggestions based on custom prompts from the user |
| [**Analyze PR components**](https://pr-agent-docs.codium.ai/tools/analyze/) | Identify the components that changed in the PR, and enable to interactively apply different tools to them |
| [**Tests**](https://pr-agent-docs.codium.ai/tools/test/) | Generate tests for code components that changed in the PR |
| [**PR documentation**](https://pr-agent-docs.codium.ai/tools/documentation/) | Generate docstring for code components that changed in the PR |
| [**Improve Component**](https://pr-agent-docs.codium.ai/tools/improve_component/) | Generate code suggestions for code components that changed in the PR |
| [**Similar code search**](https://pr-agent-docs.codium.ai/tools/similar_code/) | Search for similar code in the repository, organization, or entire GitHub |
| ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| [**Custom Prompt Suggestions**](https://qodo-merge-docs.qodo.ai/tools/custom_prompt/) | Generate code suggestions based on custom prompts from the user |
| [**Analyze PR components**](https://qodo-merge-docs.qodo.ai/tools/analyze/) | Identify the components that changed in the PR, and enable to interactively apply different tools to them |
| [**Tests**](https://qodo-merge-docs.qodo.ai/tools/test/) | Generate tests for code components that changed in the PR |
| [**PR documentation**](https://qodo-merge-docs.qodo.ai/tools/documentation/) | Generate docstring for code components that changed in the PR |
| [**Improve Component**](https://qodo-merge-docs.qodo.ai/tools/improve_component/) | Generate code suggestions for code components that changed in the PR |
| [**Similar code search**](https://qodo-merge-docs.qodo.ai/tools/similar_code/) | Search for similar code in the repository, organization, or entire GitHub |
| [**Code implementation**](https://qodo-merge-docs.qodo.ai/tools/implement/) | Generates implementation code from review suggestions |
### Supported languages
Qodo Merge leverages the world's leading code models, such as Claude 4 Sonnet, o4-mini and Gemini-2.5-Pro.
As a result, its primary tools such as `describe`, `review`, and `improve`, as well as the PR-chat feature, support virtually all programming languages.
For specialized commands that require static code analysis, Qodo Merge offers support for specific languages. For more details about features that require static code analysis, please refer to the [documentation](https://qodo-merge-docs.qodo.ai/tools/analyze/#overview).

View file

@ -0,0 +1,506 @@
# Qodo Merge Pull Request Benchmark
## Methodology
Qodo Merge PR Benchmark evaluates and compares the performance of Large Language Models (LLMs) in analyzing pull request code and providing meaningful code suggestions.
Our diverse dataset contains 400 pull requests from over 100 repositories, spanning multiple [programming languages](#programming-languages) to reflect real-world scenarios.
- For each pull request, we have pre-generated suggestions from eleven different top-performing models using the Qodo Merge `improve` tool. The prompt for response generation can be found [here](https://github.com/qodo-ai/pr-agent/blob/main/pr_agent/settings/code_suggestions/pr_code_suggestions_prompts_not_decoupled.toml).
- To benchmark a model, we generate its suggestions for the same pull requests and ask a high-performing judge model to **rank** the new model's output against the pre-generated baseline suggestions. We utilize OpenAI's `o3` model as the judge, though other models have yielded consistent results. The prompt for this ranking judgment is available [here](https://github.com/Codium-ai/pr-agent-settings/tree/main/benchmark).
- We aggregate ranking outcomes across all pull requests, calculating performance metrics for the evaluated model.
- We also analyze the qualitative feedback from the judge to identify the model's comparative strengths and weaknesses against the established baselines.
This approach provides not just a quantitative score but also a detailed analysis of each model's strengths and weaknesses.
A list of the models used for generating the baseline suggestions, and example results, can be found in the [Appendix](#appendix-example-results).
[//]: # (Note that this benchmark focuses on quality: the ability of an LLM to process complex pull request with multiple files and nuanced task to produce high-quality code suggestions.)
[//]: # (Other factors like speed, cost, and availability, while also relevant for model selection, are outside this benchmark's scope. We do specify the thinking budget used by each model, which can be a factor in the model's performance.)
[//]: # ()
## PR Benchmark Results
<table>
<thead>
<tr>
<th style="text-align:left;">Model Name</th>
<th style="text-align:left;">Version (Date)</th>
<th style="text-align:left;">Thinking budget tokens</th>
<th style="text-align:center;">Score</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">GPT-5-pro</td>
<td style="text-align:left;">2025-10-06</td>
<td style="text-align:left;"></td>
<td style="text-align:center;"><b>73.4</b></td>
</tr>
<tr>
<td style="text-align:left;">GPT-5</td>
<td style="text-align:left;">2025-08-07</td>
<td style="text-align:left;">medium</td>
<td style="text-align:center;"><b>72.2</b></td>
</tr>
<tr>
<td style="text-align:left;">GPT-5</td>
<td style="text-align:left;">2025-08-07</td>
<td style="text-align:left;">low</td>
<td style="text-align:center;"><b>67.8</b></td>
</tr>
<tr>
<td style="text-align:left;">GPT-5</td>
<td style="text-align:left;">2025-08-07</td>
<td style="text-align:left;">minimal</td>
<td style="text-align:center;"><b>62.7</b></td>
</tr>
<tr>
<td style="text-align:left;">o3</td>
<td style="text-align:left;">2025-04-16</td>
<td style="text-align:left;">'medium' (<a href="https://ai.google.dev/gemini-api/docs/openai">8000</a>)</td>
<td style="text-align:center;"><b>62.5</b></td>
</tr>
<tr>
<td style="text-align:left;">o4-mini</td>
<td style="text-align:left;">2025-04-16</td>
<td style="text-align:left;">'medium' (<a href="https://ai.google.dev/gemini-api/docs/openai">8000</a>)</td>
<td style="text-align:center;"><b>57.7</b></td>
</tr>
<tr>
<td style="text-align:left;">Gemini-3-pro-review</td>
<td style="text-align:left;">2025-11-18</td>
<td style="text-align:left;">high</td>
<td style="text-align:center;"><b>57.3</b></td>
</tr>
<tr>
<td style="text-align:left;">Gemini-2.5-pro</td>
<td style="text-align:left;">2025-06-05</td>
<td style="text-align:left;">4096</td>
<td style="text-align:center;"><b>56.3</b></td>
</tr>
<tr>
<td style="text-align:left;">Gemini-3-pro-review</td>
<td style="text-align:left;">2025-11-18</td>
<td style="text-align:left;">low</td>
<td style="text-align:center;"><b>55.6</b></td>
</tr>
<tr>
<td style="text-align:left;">Claude-haiku-4.5</td>
<td style="text-align:left;">2025-10-01</td>
<td style="text-align:left;">4096</td>
<td style="text-align:center;"><b>48.8</b></td>
</tr>
<tr>
<td style="text-align:left;">GPT-5.1</td>
<td style="text-align:left;">2025-11-13</td>
<td style="text-align:left;">medium</td>
<td style="text-align:center;"><b>44.9</b></td>
</tr>
<tr>
<td style="text-align:left;">Gemini-2.5-pro</td>
<td style="text-align:left;">2025-06-05</td>
<td style="text-align:left;">1024</td>
<td style="text-align:center;"><b>44.3</b></td>
</tr>
<tr>
<td style="text-align:left;">Claude-sonnet-4.5</td>
<td style="text-align:left;">2025-09-29</td>
<td style="text-align:left;">4096</td>
<td style="text-align:center;"><b>44.2</b></td>
</tr>
<tr>
<td style="text-align:left;">Claude-haiku-4.5</td>
<td style="text-align:left;">2025-10-01</td>
<td style="text-align:left;"></td>
<td style="text-align:center;"><b>40.7</b></td>
</tr>
<tr>
<td style="text-align:left;">Claude-sonnet-4.5</td>
<td style="text-align:left;">2025-09-29</td>
<td style="text-align:left;"></td>
<td style="text-align:center;"><b>40.7</b></td>
</tr>
<tr>
<td style="text-align:left;">Claude-4-sonnet</td>
<td style="text-align:left;">2025-05-14</td>
<td style="text-align:left;">4096</td>
<td style="text-align:center;"><b>39.7</b></td>
</tr>
<tr>
<td style="text-align:left;">Claude-4-sonnet</td>
<td style="text-align:left;">2025-05-14</td>
<td style="text-align:left;"></td>
<td style="text-align:center;"><b>39.0</b></td>
</tr>
<tr>
<td style="text-align:left;">Codex-mini</td>
<td style="text-align:left;">2025-06-20</td>
<td style="text-align:left;"><a href="https://platform.openai.com/docs/models/codex-mini-latest">unknown</a></td>
<td style="text-align:center;"><b>37.2</b></td>
</tr>
<tr>
<td style="text-align:left;">Gemini-2.5-flash</td>
<td style="text-align:left;">2025-04-17</td>
<td style="text-align:left;"></td>
<td style="text-align:center;"><b>33.5</b></td>
</tr>
<tr>
<td style="text-align:left;">Grok-4</td>
<td style="text-align:left;">2025-07-09</td>
<td style="text-align:left;">unknown</td>
<td style="text-align:center;"><b>32.8</b></td>
</tr>
<tr>
<td style="text-align:left;">Claude-4-opus-20250514</td>
<td style="text-align:left;">2025-05-14</td>
<td style="text-align:left;"></td>
<td style="text-align:center;"><b>32.8</b></td>
</tr>
<tr>
<td style="text-align:left;">Claude-3.7-sonnet</td>
<td style="text-align:left;">2025-02-19</td>
<td style="text-align:left;"></td>
<td style="text-align:center;"><b>32.4</b></td>
</tr>
<tr>
<td style="text-align:left;">Claude-opus-4.5</td>
<td style="text-align:left;">2025-11-01</td>
<td style="text-align:left;">high</td>
<td style="text-align:center;"><b>30.3</b></td>
</tr>
<tr>
<td style="text-align:left;">GPT-4.1</td>
<td style="text-align:left;">2025-04-14</td>
<td style="text-align:left;"></td>
<td style="text-align:center;"><b>26.5</b></td>
</tr>
</tbody>
</table>
## Results Analysis (Latest Additions)
### GPT-5-pro
Final score: **73.4**
Strengths:
- **High bugfinding accuracy and depth:** In many cases the model uncovers the core compile-time or run-time regression that other answers miss and frequently combines several distinct critical issues into one reply.
- **Actionable, minimal patches:** Suggestions almost always include clear before/after code blocks that touch only the added lines and respect the ≤3-suggestion limit, making them easy to apply.
- **Good guideline compliance:** The model generally honours the task rules—no edits to unchanged code, no version bumps, no more than three items—and shows solid judgment about when an empty list is appropriate.
- **Concise, impact-oriented reasoning:** Explanations focus on severity, crash potential and build breakage rather than style, helping reviewers prioritise fixes.
Weaknesses:
- **Coverage gaps:** In a noticeable minority of examples the model misses a higher-impact defect that several other answers catch, or returns an empty list despite clear bugs.
- **Occasional incorrect or harmful fixes:** A few replies introduce new errors or rest on wrong assumptions about functionality or language-specific behavior.
- **Formatting / guideline slips:** Sporadic duplication of suggestions, missing or empty `improved_code` blocks, or YAML mishaps undermine otherwise good answers.
- **Uneven criticality judgement:** Some suggestions drift into low-impact territory while overlooking more severe problems, indicating inconsistent prioritisation.
### O3
Final score: **62.5**
Strengths:
- **High precision & compliance:** Generally respects task rules (limits, “added lines” scope, YAML schema) and avoids false-positive advice, often returning an empty list when appropriate.
- **Clear, actionable output:** Suggestions are concise, well-explained and include correct before/after patches, so reviewers can apply them directly.
- **Good critical-bug detection rate:** Frequently spots compile-breakers or obvious runtime faults (nil / NPE, overflow, race, wrong selector, etc.), putting it at least on par with many peers.
- **Consistent formatting:** Produces syntactically valid YAML with correct labels, making automated consumption easy.
Weaknesses:
- **Narrow coverage:** Tends to stop after 1-2 issues; regularly misses additional critical defects that better answers catch, so it is seldom the top-ranked review.
- **Occasional inaccuracies:** A few replies introduce new bugs, give partial/duplicate fixes, or (rarely) violate rules (e.g., import suggestions), hurting trust.
- **Conservative bias:** Prefers silence over risk; while this keeps precision high, it lowers recall and overall usefulness on larger diffs.
- **Little added insight:** Rarely offers broader context, optimisations or holistic improvements, causing it to rank only mid-tier in many comparisons.
### O4 Mini ('medium' thinking tokens)
Final score: **57.7**
Strengths:
- **Good rule adherence:** Most answers respect the “new-lines only”, 3-suggestion, and YAML-schema limits, and frequently choose the safe empty list when the diff truly adds no critical bug.
- **Clear, minimal patches:** When the model does spot a defect it usually supplies terse, valid before/after snippets and short, targeted explanations, making fixes easy to read and apply.
- **Language & domain breadth:** Demonstrates competence across many ecosystems (C/C++, Java, TS/JS, Go, Rust, Python, Bash, Markdown, YAML, SQL, CSS, translation files, etc.) and can detect both compile-time and runtime mistakes.
- **Often competitive:** In a sizeable minority of cases the model ties for best or near-best answer, occasionally being the only response to catch a subtle crash or build blocker.
Weaknesses:
- **High miss rate:** A large share of examples show the model returning an empty list or only minor advice while other reviewers catch clear, high-impact bugs—indicative of weak defect-detection recall.
- **False or harmful fixes:** Several answers introduce new compilation errors, propose out-of-scope changes, or violate explicit rules (e.g., adding imports, version bumps, touching untouched lines), reducing trustworthiness.
- **Shallow coverage:** Even when it identifies one real issue it often stops there, missing additional critical problems found by stronger peers; breadth and depth are inconsistent.
### Gemini-3-pro-review (high thinking budget)
Final score: **57.3**
Strengths:
- **Good schema & format discipline:** Consistently returns well-formed YAML with correct fields and respects the 3-suggestion limit; rarely breaks the required output structure.
- **Reasonable guideline awareness:** Often recognises when a diff contains only data / translations and properly emits an empty list, avoiding over-reporting.
- **Clear, actionable patches when correct:** When it does find a bug it usually supplies minimal-diff, compilable code snippets with concise explanations, and occasionally surfaces issues no other model spotted.
Weaknesses:
- **Spot-coverage gaps on critical defects:** In a large share of cases it overlooks the principal regression the tests were written for, while fixating on minor style or performance nits.
- **False or speculative fixes:** A noticeable number of answers invent non-existent problems or propose changes that would not compile or would re-introduce removed behaviour.
- **Guideline violations creep in:** Sometimes touches unchanged lines, adds forbidden imports / labels, or supplies more than "critical" advice, showing imperfect rule adherence.
- **High variance / inconsistency:** Quality swings from best-in-class to harmful within consecutive examples, indicating unstable defect-prioritisation and review depth.
### Gemini-2.5 Pro (4096 thinking tokens)
Final score: **56.3**
Strengths:
- **High formatting compliance:** The model almost always produces valid YAML, respects the three-suggestion limit, and supplies clear before/after code snippets and short rationales.
- **Good “first-bug” detection:** It frequently notices the single most obvious regression (crash, compile error, nil/NPE risk, wrong path, etc.) and gives a minimal, correct patch—often judged “on-par” with other solid answers.
- **Clear, concise writing:** Explanations are brief yet understandable for reviewers; fixes are scoped to the changed lines and rarely include extraneous context.
- **Low rate of harmful fixes:** Truly dangerous or build-breaking advice is rare; most mistakes are omissions rather than wrong code.
Weaknesses:
- **Limited breadth of review:** The model regularly stops after the first or second issue, missing additional critical problems that stronger answers surface, so it is often out-ranked by more comprehensive peers.
- **Occasional guideline violations:** A noticeable minority of answers touch unchanged lines, exceed the 3-item cap, suggest adding imports, or drop the required YAML wrapper, leading to automatic downgrades.
- **False positives / speculative fixes:** In several cases it flags non-issues (style, performance, redundant code) or supplies debatable “improvements”, lowering precision and sometimes breaching the “critical bugs only” rule.
- **Inconsistent error coverage:** For certain domains (build scripts, schema files, test code) it either returns an empty list when real regressions exist or proposes cosmetic edits, indicating gaps in specialised knowledge.
### Gemini-3-pro-review (low thinking budget)
Final score: **55.6**
Strengths:
- **Concise, well-structured patches:** Suggestions are usually expressed in short, self-contained YAML items with clear before/after code blocks and just enough rationale, making them easy for reviewers to apply.
- **Good eye for crash-level defects:** When the model does spot a problem it often focuses on high-impact issues such as compile-time errors, NPEs, nil-pointer races, buffer overflows, etc., and supplies a minimal, correct fix.
- **High guideline compliance (format & scope):** In most cases it respects the 1-3-item limit and the "new lines only" rule, avoids changing imports, and keeps snippets syntactically valid.
Weaknesses:
- **Coverage inconsistency:** Many answers miss other obvious or even more critical regressions spotted by peers; breadth fluctuates from excellent to empty, leaving reviewers with partial insight.
- **False positives & speculative advice:** A noticeable share of suggestions target stylistic or non-critical tweaks, or even introduce wrong changes, betraying occasional mis-reading of the diff and hurting trust.
- **Rule violations still occur:** There are repeated instances of touching unchanged code, recommending version bumps/imports, mis-labelling severities, or outputting malformed snippets—showing lapses in instruction adherence.
- **Quality variance / empty outputs:** Some responses provide no suggestions despite real bugs, while others supply harmful fixes; this volatility lowers overall reliability.
### Claude-haiku-4.5 (4096 thinking tokens)
Final score: **48.8**
Strengths:
- **High precision on detected issues:** When the model does flag a problem it is usually a real, high-impact bug; many answers are judged equal or better than strong baselines because the proposed fix is correct, minimal and easy to apply.
- **Language- and domain-agnostic competence:** It successfully diagnoses defects across a wide range of languages (Python, Go, C/C++, Rust, JS/TS, CSS, SQL, Markdown, etc.) and domains (backend logic, build files, tests, docs).
- **Clear, actionable patches:** Suggested code is typically concise, well-explained and scoped exactly to the added lines, making it practical for reviewers to adopt.
Weaknesses:
- **Low recall / narrow coverage:** The model often stops after one or two findings, leaving other obvious critical bugs unmentioned; in many examples stronger answers simply covered more ground.
- **Occasional faulty or speculative fixes:** A non-trivial number of responses either mis-diagnose the issue or introduce new errors (e.g., wrong logic, undeclared imports), dropping them below baseline quality.
- **Inconsistent output robustness:** Several cases show truncated or malformed responses, reducing value despite correct analysis elsewhere.
- **Frequent false negatives:** The model sometimes returns an empty list even when clear regressions exist, indicating conservative behaviour that misses mandatory fixes.
### GPT-5.1 ('medium' thinking budget)
Final score: **44.9**
Strengths:
- **High precision & guideline compliance:** When the model does emit suggestions they are almost always technically sound, respect the "new-lines-only / ≤3 suggestions / no-imports" rules, and are formatted correctly. It rarely introduces harmful changes and often provides clear, runnable patches.
- **Ability to spot subtle or unique defects:** In several cases the model caught a critical issue that most or all baselines missed, showing good deep-code reasoning when it does engage.
- **Good judgment on noise-free diffs:** On purely data or documentation changes the model frequently (and correctly) returns an empty list, avoiding false-positive "nit" feedback.
Weaknesses:
- **Very low recall / over-conservatism:** In a large fraction of examples it outputs an empty suggestion list while clear critical bugs exist (well over 50 % of cases), making it inferior to almost every baseline answer that offered any fix.
- **Narrow coverage when it speaks:** Even when it flags one bug, it often stops there and ignores other equally critical problems present in the same diff, leaving reviewers with partial insight.
- **Occasional misdiagnosis or harmful fix:** A minority of suggestions are wrong or counter-productive, showing that precision, while good, is not perfect.
### Claude-sonnet-4.5 (4096 thinking tokens)
Final score: **44.2**
Strengths:
- **High precision / low noise:** When the model does offer fixes they are usually correct, concise and confined to the new '+' lines, rarely introducing spurious or off-scope changes.
- **Clear, actionable patches:** Suggestions come with well-explained reasoning and minimal but valid code snippets, making them easy for a reviewer to apply.
- **Good rule compliance:** It almost always respects the 1-3 suggestion limit, avoids touching unchanged code and seldom violates formatting or other task guidelines.
Weaknesses:
- **Low recall / frequent omissions:** In a large share of cases the model returns an empty list or only one minor tip while overlooking obvious, higher-impact regressions found by peers.
- **Narrow coverage when it does respond:** Even in non-empty outputs it typically fixes a single issue and ignores related defects in the same diff, indicating shallow analysis.
- **Occasional harmful or incomplete fixes:** A few suggestions introduce new errors (e.g., wrong logic, missing imports, malformed snippets) or mark non-critical style nits as "critical", reducing trust.
### Claude-sonnet-4.5
Final score: **40.7**
Strengths:
- **Concise & well-formatted output:** Most replies strictly follow the schema, stay within the 3-suggestion limit, and include clear, copy-paste-ready patches, making them easy to apply.
- **Can spot headline bugs:** When a single, obvious regression is present (e.g. duplicated regex block, missing null-check, wrong macro name) the model often detects it and proposes an accurate, minimal fix.
- **Scope discipline (usually):** It frequently restricts changes to newly-added lines and avoids broad refactors, so many answers comply with the “new code only / critical bugs only” rule.
- **Reasonable explanations:** The accompanying rationales are typically short but precise, helping reviewers understand why the change is needed.
Weaknesses:
- **Low recall of critical issues:** In a large fraction of examples the model misses the primary bug or flags nothing at all while other reviewers find clear problems. Coverage is therefore unreliable.
- **False or harmful fixes:** A notable number of suggestions mis-diagnose the code, touch unchanged lines, violate task rules, or would break compilation/runtime (wrong paths, bad types, guideline-forbidden advice).
- **Priority mistakes:** The model often downgrades severe defects to “general” or upgrades cosmetic nits to “critical”, showing weak bug-severity judgment.
- **Inconsistent quality:** Performance swings widely between excellent and poor; reviewers cannot predict whether a given answer will be thorough, partial, or incorrect.
### Claude-haiku-4.5
Final score: 40.7
Strengths:
- **Good format & clarity: Consistently produces valid YAML and readable, minimally-intrusive patches with clear before/after snippets, so its outputs are easy to apply.
- **Basic bug-spotting ability: Often detects the most obvious new-line defect (e.g., syntax error, missing guard, wrong constant) and supplies a correct, concise fix; rarely ranks last in the set.
- **Rule compliance in many cases: Usually stays within the 3-suggestion limit, touches only '+' lines, and avoids speculative refactors—returning an empty list when no code was added.
Weaknesses:
- **Shallow coverage: Frequently fixes just one surface-level issue and misses additional, higher-impact bugs that stronger reviewers catch, leaving regressions in place.
- **Occasional incorrect or no-op patches: A noticeable share of suggestions either leave code unchanged, contain invalid code, or introduce new errors, lowering trust.
- **Guideline slips: In several examples it edits unchanged lines, adds forbidden imports/version bumps, mis-labels severities, or supplies non-critical stylistic advice.
- **Inconsistent diligence: Roughly a quarter of the cases return an empty list despite real problems, while others duplicate existing PR changes, indicating weak diff comprehension.
### OpenAI codex-mini
Final score: **37.2**
Strengths:
- **Can spot high-impact defects:** When it "locks on", codex-mini often identifies the main runtime or security regression (e.g., race-conditions, logic inversions, blocking I/O, resource leaks) and proposes a minimal, direct patch that compiles and respects neighbouring style.
- **Produces concise, scoped fixes:** Valid answers usually stay within the allowed 3-suggestion limit, reference only the added lines, and contain clear before/after snippets that reviewers can apply verbatim.
- **Occasional broad coverage:** In a minority of cases the model catches multiple independent issues (logic + tests + docs) and outperforms every baseline answer, showing good contextual understanding of heterogeneous diffs.
Weaknesses:
- **Output instability / format errors:** A very large share of responses are unusable—plain refusals, shell commands, or malformed/empty YAML—indicating brittle adherence to the required schema and tanking overall usefulness.
- **Critical-miss rate:** Even when the format is correct the model frequently overlooks the single most serious bug the diff introduces, instead focusing on stylistic nits or speculative refactors.
- **Introduces new problems:** Several suggestions add unsupported APIs, undeclared variables, wrong types, or break compilation, hurting trust in the recommendations.
- **Rule violations:** It often edits lines outside the diff, exceeds the 3-suggestion cap, or labels cosmetic tweaks as "critical", showing inconsistent guideline compliance.
### Gemini-2.5 Flash
Final score: **33.5**
Strengths:
- **High precision / low false-positive rate:** The model often stays silent or gives a single, well-justified fix, so when it does speak the suggestion is usually correct and seldom touches unchanged lines, keeping guideline compliance high.
- **Good guideline awareness:** YAML structure is consistently valid; suggestions rarely exceed the 3-item limit and generally restrict themselves to newly-added lines.
- **Clear, concise patches:** When a defect is found, the model produces short rationales and tidy “improved_code” blocks that reviewers can apply directly.
- **Risk-averse behaviour pays off in “no-bug” PRs:** In examples where the diff truly contained no critical issue, the models empty output ranked above peers that offered speculative or stylistic advice.
Weaknesses:
- **Very low recall / shallow coverage:** In a large majority of cases it gives 0-1 suggestions and misses other evident, critical bugs highlighted by peer models, leading to inferior rankings.
- **Occasional incorrect or harmful fixes:** A noticeable subset of answers propose changes that break functionality or misunderstand the code (e.g. bad constant, wrong header logic, speculative rollbacks).
- **Non-actionable placeholders:** Some “improved_code” sections contain comments or “…” rather than real patches, reducing practical value.
### Claude-4 Opus
Final score: **32.8**
Strengths:
- **Format & rule adherence:** Almost always returns valid YAML, stays within the ≤3-suggestion limit, and usually restricts edits to newly-added lines, so its output is easy to apply automatically.
- **Concise, focused patches:** When it does find a real bug it gives short, well-scoped explanations plus minimal diff snippets, often outperforming verbose baselines in clarity.
- **Able to catch subtle edge-cases:** In several examples it detected overflow, race-condition or enum-mismatch issues that many other models missed, showing solid codeanalysis capability.
Weaknesses:
- **Low recall / narrow coverage:** In a large share of the 399 examples the model produced an empty list or only one minor tip while more serious defects were present, causing it to be rated inferior to most baselines.
- **Frequent incorrect or no-op fixes:** It sometimes supplies identical “before/after” code, flags non-issues, or suggests changes that would break compilation or logic, reducing reviewer trust.
- **Shaky guideline consistency:** Although generally compliant, it still occasionally violates rules (touches unchanged lines, offers stylistic advice, adds imports) and duplicates suggestions, indicating unstable internal checks.
### Grok-4
Final score: **32.8**
Strengths:
- **Focused and concise fixes:** When the model does detect a problem it usually proposes a minimal, well-scoped patch that compiles and directly addresses the defect without unnecessary noise.
- **Good critical-bug instinct:** It often prioritises show-stoppers (compile failures, crashes, security issues) over cosmetic matters and occasionally spots subtle issues that all other reviewers miss.
- **Clear explanations & snippets:** Explanations are short, readable and paired with ready-to-paste code, making the advice easy to apply.
Weaknesses:
- **High miss rate:** In a large fraction of examples the model returned an empty list or covered only one minor issue while overlooking more serious newly-introduced bugs.
- **Inconsistent accuracy:** A noticeable subset of answers contain wrong or even harmful fixes (e.g., removing valid flags, creating compile errors, re-introducing bugs).
- **Limited breadth:** Even when it finds a real defect it rarely reports additional related problems that peers catch, leading to partial reviews.
- **Occasional guideline slips:** A few replies modify unchanged lines, suggest new imports, or duplicate suggestions, showing imperfect compliance with instructions.
### Claude-Opus-4.5 (high thinking budget)
Final score: **30.3**
Strengths:
- **High rule compliance & formatting:** Consistently produces valid YAML, respects the ≤3-suggestion limit, and usually confines edits to added lines, avoiding many guideline violations seen in peers.
- **Low false-positive rate:** Tends to stay silent unless convinced of a real problem; when the diff is a pure version bump / docs tweak it often (correctly) returns an empty list, beating noisier baselines.
- **Clear, focused patches when it fires:** In the minority of cases where it does spot a bug, it explains the issue crisply and supplies concise, copy-paste-able code snippets.
Weaknesses:
- **Very low recall:** In the vast majority of examples it misses obvious critical issues or suggests only a subset, frequently returning an empty list; this places it below most baselines on overall usefulness.
- **Shallow coverage:** Even when it catches a defect it typically lists a single point and overlooks other high-impact problems present in the same diff.
- **Occasional incorrect or incomplete fixes:** A non-trivial number of suggestions are wrong, compile-breaking, duplicate unchanged code, or touch out-of-scope lines, reducing trust.
- **Inconsistent severity tagging & duplication:** Sometimes mis-labels critical vs general, repeats the same suggestion, or leaves `improved_code` blocks empty.
## Appendix - Example Results
Some examples of benchmarked PRs and their results:
- [Example 1](https://www.qodo.ai/images/qodo_merge_benchmark/example_results1.html)
- [Example 2](https://www.qodo.ai/images/qodo_merge_benchmark/example_results2.html)
- [Example 3](https://www.qodo.ai/images/qodo_merge_benchmark/example_results3.html)
- [Example 4](https://www.qodo.ai/images/qodo_merge_benchmark/example_results4.html)
### Models Used for Benchmarking
The following models were used for generating the benchmark baseline:
```markdown
(1) anthropic_sonnet_3.7_v1:0
(2) claude-4-opus-20250514
(3) claude-4-sonnet-20250514
(4) claude-4-sonnet-20250514_thinking_2048
(5) gemini-2.5-flash-preview-04-17
(6) gemini-2.5-pro-preview-05-06
(7) gemini-2.5-pro-preview-06-05_1024
(8) gemini-2.5-pro-preview-06-05_4096
(9) gpt-4.1
(10) o3
(11) o4-mini_medium
```
### Programming Languages
The PR benchmark dataset includes pull requests containing code in the following programming languages:
```markdown
["Python", "JavaScript", "TypeScript", "Java", "CSharp", "PHP", "C++", "Go", "Rust", "Swift", "Kotlin", "Ruby", "Dart", "Scala"
```
Pull requests may also include non-code files such as `YAML`, `JSON`, `Markdown`, `Dockerfile` ,`Shell`, etc.
The benchmarked models should also analyze these files, as they commonly appear in real-world pull requests.

View file

@ -0,0 +1,34 @@
# Review and Implement AI Suggestions from Your Terminal
**Qodo Merge CLI** utilizes [Qodo Command](https://docs.qodo.ai/qodo-documentation/qodo-command) to bring AI-powered code suggestions directly to your terminal.
Review, implement, and manage Qodo Merge suggestions without leaving your development environment.
![Qodo Merge CLI Main Interface](https://www.qodo.ai/images/pr_agent/qm_cli_main_table_fix_all.png){width=768}
## Mission
The CLI can bridge the gap between Qodo Merge feedback and code implementation in your local enviroment:
- **Seamlessly generate and manage PR suggestions** without context switching
- Remote Suggestions: Fetches Qodo Merge suggestions from your Git Environment
- Local Suggestions: Get real-time suggestions against your local changes
- **Interactive review and implementation** of AI feedback directly in your terminal
- **Track implementation status** of each suggestion (pending/implemented/declined)
## Remote Suggestions Flow
1. Open a Pull Request on your Git environment and receive Qodo Merge feedback
2. Pull the remote suggestions into your terminal with Qodo Merge CLI
3. Explore, Review, and implement suggestions interactively
4. Commit changes back to your branch seamlessly
## Local Suggestions Flow
Work in progress - coming soon!
## Quick Start
1. **[Install](installation.md)** Qodo Merge CLI
2. **[Usage](usage.md)** - Navigate, explore, and implement suggestions
---
*Part of the Qodo Merge ecosystem - closing the loop between AI feedback and code implementation.*

View file

@ -0,0 +1,70 @@
# Installation
> For remote suggestions, Qodo Merge needs to be installed and active on your Git repository (GitHub / GitLab), and provide code suggestions in a table format for your Pull Requests (PRs).
## Install Qodo Command
Qodo Merge CLI is a review tool within [Qodo Command](https://docs.qodo.ai/qodo-documentation/qodo-command), a command-line interface for running and managing AI agents.
To use Qodo Command, you'll need first Node.js and npm installed.
Then, to install Qodo Command, run:
```bash
npm install -g @qodo/command
```
**Login and Setup**
To start using Qodo Command, you need to log in first:
```bash
qodo login
```
Once login is completed, you'll receive an API key in the terminal.
The API key is also saved locally in the .qodo folder in your home directory, and can be reused (e.g., in CI).
The key is tied to your user account and subject to the same usage limits.
## Using Qodo Merge CLI
After you set up Qodo Command, you can start using Qodo Merge CLI by running:
```bash
qodo merge
```
### Set Up Git Client
On first run, the CLI will check for your Git client (GitHub CLI or GitLab CLI).
If not found, it will guide you through the installation process.
![GH Installation](https://www.qodo.ai/images/pr_agent/qm_cli_gh_install_prompt.png){width=384}
## Quick Usage
There are two ways to specify which PR to review:
(1) **Auto Detect PR from current branch**
run this command in your CLI:
```bash
qodo merge
```
(2) **Specify PR number or URL**
```bash
qodo merge 303
qodo merge https://github.com/owner/repo/pull/303
```
Then the tool will automatically fetch the suggestions from the PR and display them in an interactive table.
![Fix All Mode](https://www.qodo.ai/images/pr_agent/qm_cli_main_table_fix_all.png){width=768}
## Next Steps
**[Usage](usage.md)** - Navigate, explore, and implement suggestions

View file

@ -0,0 +1,211 @@
# Usage Guide for Qodo Merge CLI
## Understanding the Interface
### Why a Structured Table?
The suggestions table serves as the core interface for reviewing and managing AI feedback.
The table provides a structured overview of all suggestions with key metadata.
Users can efficiently prioritize, explore, and implement suggestions through an intuitive workflow.
The interface guides you from high-level overviews to detailed implementation context.
This consistent user-friendly structure streamlines the review process, reducing time from feedback to implementation.
![Fix All Mode](https://www.qodo.ai/images/pr_agent/qm_cli_main_table_fix_all.png){width=768}
### Navigation Instructions
Use `↑`/`↓` to navigate suggestions, `Enter` to implement, `Space` for multi-select, and `ESC` to exit.
The table includes:
- **Selection** (`○`/`◉`): Multi-selection mode
- **Category**: Security, Performance, General, etc.
- **Impact**: High, Medium, Low importance
- **Suggestion**: Brief description
- **Status**: `✓` implemented, `✗` declined, blank = pending
- **Detail Panel** (if wide enough): Full suggestion text, affected files, impact analysis
## Flow
### Explore the suggestions
You can explore the suggestions in detail before implementing them.
You can view the proposed code changes in a diff format, jump to the relevant code in your IDE, or chat about any suggestion for clarification.
!!! note "Exploring the suggestions"
[//]: # ( === "Details Panel")
[//]: # ()
[//]: # ( ![Detail Panel]&#40;https://www.qodo.ai/images/pr_agent/qm_cli_tabl_detail_view.png&#41;{width=768})
[//]: # ( )
[//]: # ( **Enhanced Layout &#40;≥120 columns&#41;**)
[//]: # ( )
[//]: # ( - **Detail Panel**: Extended information for selected suggestions)
[//]: # ( - **File Information**: Affected files and line ranges)
[//]: # ( - **Complete Description**: Full suggestion explanation)
[//]: # ( - **Impact Assessment**: Detailed importance analysis)
=== "Diff View (`D/S`)"
=== "Unified Diff View (`D`)"
![Unified Diff](https://www.qodo.ai/images/pr_agent/qm_cli_unified_diffview.png){width=768}
- Press `D` to view proposed code changes
- Standard unified diff format with line numbers
- Syntax highlighting for additions/removals
- `↑`/`↓` to scroll through changes
=== "Side-by-Side View (`S`)"
![Side-by-Side Diff](https://www.qodo.ai/images/pr_agent/qm_cli_side_by_side_diffview.png){width=768}
- Press `S` for side-by-side diff view
- Enhanced layout for complex changes
- Better context understanding
- Clear before/after comparison
=== "Jump to Code (`O`)"
**IDE Integration**
- Press `O` to open the suggestion's source file in your IDE
- Supports all major IDEs when terminal is running inside them
- Direct navigation to relevant code location
- Seamless transition between CLI and editor
=== "Chat (`C`)"
**Suggestion-Specific Discussion**
![Chat Interface](https://www.qodo.ai/images/pr_agent/qm_cli_suggestion_chat_pre_impl.png){width=768}
- Press `C` to discuss the current suggestion
- Context automatically included (files, lines, description)
- Ask questions, request modifications
- `Ctrl+J` for new lines, `ESC` to return
### Implement
You can implement a single suggestion, multiple selected suggestions, or all suggestions at once. You can also chat about any suggestion before implementing it.
!!! note "Multiple implementation modes available"
=== "1. Single Suggestion"
![Main Table](https://www.qodo.ai/images/pr_agent/qm_cli_tabl_detail_view.png){width=768}
**Direct individual implementation**
1. Navigate to any specific suggestion
2. Press `Enter` to implement just that suggestion
=== "2. Multi-Select"
![Multi-Selection](https://www.qodo.ai/images/pr_agent/qm_cli_multi_select.png){width=768}
**Select multiple related suggestions**
1. Use `Space` to select specific suggestions (◉)
2. Navigate and select multiple related suggestions
3. Press `Enter` on any selected suggestion to start implementation
4. AI implements selected suggestions together
=== "3. Address All"
![Fix All Mode](https://www.qodo.ai/images/pr_agent/qm_cli_main_table_fix_all.png){width=768}
**Reflect and address all suggestions (Always available as first row)**
1. Press `Enter` on the first row "Reflect and address all suggestions"
2. AI implements all suggestions simultaneously and intelligently
3. Handles conflicts and dependencies automatically
4. Review the comprehensive summary
=== "4. Chat then Implement"
![Chat Interface](https://www.qodo.ai/images/pr_agent/qm_cli_suggestion_chat_pre_impl.png){width=768}
**Discuss then implement**
1. Press `C` on any suggestion to start a chat
2. Ask questions, request modifications, get clarifications
3. Once satisfied, request implementation via chat
4. AI implements based on your discussion
___
#### Implementation Summary
After the AI completes the implementation, you receive a **structured output** showing detailed results for each suggestion:
- **Status**: `✓ IMPLEMENTED`, `SKIPPED`, or `✗ REJECTED`
- **Suggestion**: Brief description of what was addressed
- **Reasoning**: Explanation of the implementation approach
- **Changes**: Summary of code modifications made
![Next Actions](https://www.qodo.ai/images/pr_agent/qm_cli_impl_success_next_actions.png){width=768}
Each suggestion gets its own implementation summary, providing full transparency into what was done and why.
### Finalize
After implementing the suggestions, you have several options to proceed:
!!! note "Post Implementation Actions"
=== "Return to Table (`ESC`)"
![Status Updates](https://www.qodo.ai/images/pr_agent/qm_cli_suggestion_status_update_add_v_sign.png){width=768}
The first option returns you to the main table where you can see:
- **Updated Status**: Implemented suggestions now show `✓` green checkmark
- **Real-time Updates**: Status changes reflect immediately
- **Continue Workflow**: Handle remaining pending suggestions
=== "Continue Chatting (`C`)"
![Continue Chat](https://www.qodo.ai/images/pr_agent/qm_cli_continue_chat.png){width=768}
Discuss the implementation details:
- Review changes made by the AI
- Request refinements or modifications
- Get explanations of implementation approach
- Continuous improvement cycle
=== "Commit Changes (`M`)"
![Commit Message](https://www.qodo.ai/images/pr_agent/qm_cli_commit_message.png){width=512}
Auto-generate commit messages:
- AI-generated commit messages based on changes
- Editable before committing
- Standard git conventions
- Seamless workflow integration
=== "Open Edited File (`O`)"
Open the implemented code directly in your IDE:
- View the exact changes made
- See implementation in full context
- Continue development seamlessly
- Integrated with your existing workflow
## Tips for Success
- **Start with "Fix All"** to let AI handle everything intelligently
- **Use Chat liberally** - ask questions about unclear suggestions
- **Decline appropriately** - press `X` and provide reasons for inappropriate suggestions
- **Multi-select strategically** - group related suggestions together
---

View file

@ -0,0 +1,24 @@
# Recent Updates and Future Roadmap
This page summarizes recent enhancements to Qodo Merge.
It also outlines our development roadmap for the upcoming three months. Please note that the roadmap is subject to change, and features may be adjusted, added, or reprioritized.
=== "Recent Updates"
| Date | Feature | Description |
|---|---|---|
| 2025-09-17 | **Qodo Merge CLI** | A new command-line interface for Qodo Merge, enabling developers to implement code suggestions directly in your terminal. ([Learn more](https://qodo-merge-docs.qodo.ai/qodo-merge-cli/)) |
| 2025-09-12 | **Repo Metadata** | You can now add metadata from files like `AGENTS.md`, which will be applied to all PRs in that repository. ([Learn more](https://qodo-merge-docs.qodo.ai/usage-guide/additional_configurations/#bringing-additional-repository-metadata-to-qodo-merge)) |
| 2025-08-11 | **RAG support for GitLab** | All Qodo Merge RAG features are now available in GitLab. ([Learn more](https://qodo-merge-docs.qodo.ai/core-abilities/rag_context_enrichment/)) |
| 2025-07-29 | **High-level Suggestions** | Qodo Merge now also provides high-level code suggestion for PRs. ([Learn more](https://qodo-merge-docs.qodo.ai/core-abilities/high_level_suggestions/)) |
| 2025-07-20 | **PR to Ticket** | Generate tickets in your tracking systems based on PR content. ([Learn more](https://qodo-merge-docs.qodo.ai/tools/pr_to_ticket/)) |
| 2025-07-17 | **Compliance** | Comprehensive compliance checks for security, ticket requirements, and custom organizational rules. ([Learn more](https://qodo-merge-docs.qodo.ai/tools/compliance/)) |
| 2025-06-21 | **Mermaid Diagrams** | Qodo Merge now generates by default Mermaid diagrams for PRs, providing a visual representation of code changes. ([Learn more](https://qodo-merge-docs.qodo.ai/tools/describe/#sequence-diagram-support)) |
| 2025-06-11 | **Best Practices Hierarchy** | Introducing support for structured best practices, such as for folders in monorepos or a unified best practice file for a group of repositories. ([Learn more](https://qodo-merge-docs.qodo.ai/tools/improve/#global-hierarchical-best-practices)) |
| 2025-06-01 | **CLI Endpoint** | A new Qodo Merge endpoint that accepts a lists of before/after code changes, executes Qodo Merge commands, and return the results. Currently available for enterprise customers. Contact [Qodo](https://www.qodo.ai/contact/) for more information. |
=== "Future Roadmap"
- **`Compliance` tool to replace `review` as default**: Planning to make the `compliance` tool the default automatic command instead of the current `review` tool.
- **Smarter context retrieval**: Leverage AST and LSP analysis to gather relevant context from across the entire repository.
- **Enhanced portal experience**: Improved user experience in the Qodo Merge portal with new options and capabilities.

84
docs/docs/summary.md Normal file
View file

@ -0,0 +1,84 @@
# Table of contents
* [Overview](index.md)
* [💎 Qodo Merge](overview/pr_agent_pro.md)
* [Data Privacy](overview/data_privacy.md)
## Installation
* [Installation](installation/index.md)
* [PR-Agent](installation/pr_agent.md)
* [💎 Qodo Merge](installation/qodo_merge.md)
## Usage Guide
* [Usage Guide](usage-guide/index.md)
* [Introduction](usage-guide/introduction.md)
* [Enabling a Wiki](usage-guide/enabling_a_wiki.md)
* [Configuration File](usage-guide/configuration_options.md)
* [Usage and Automation](usage-guide/automations_and_usage.md)
* [Managing Mail Notifications](usage-guide/mail_notifications.md)
* [Changing a Model](usage-guide/changing_a_model.md)
* [Additional Configurations](usage-guide/additional_configurations.md)
* [Frequently Asked Questions](faq/index.md)
* [Qodo Merge Models](usage-guide/qodo_merge_models.md)
## Tools
* [Tools](tools/index.md)
* [Describe](tools/describe.md)
* [Review](tools/review.md)
* [Improve](tools/improve.md)
* [Ask](tools/ask.md)
* [Help](tools/help.md)
* [Help Docs](tools/help_docs.md)
* [Update Changelog](tools/update_changelog.md)
* [💎 Add Documentation](tools/documentation.md)
* [💎 Analyze](tools/analyze.md)
* [💎 CI Feedback](tools/ci_feedback.md)
* [💎 Compliance](tools/compliance.md)
* [💎 Custom Prompt](tools/custom_prompt.md)
* [💎 Generate Labels](tools/custom_labels.md)
* [💎 Generate Tests](tools/test.md)
* [💎 Implement](tools/implement.md)
* [💎 Improve Components](tools/improve_component.md)
* [💎 PR to Ticket](tools/pr_to_ticket.md)
* [💎 Scan Repo Discussions](tools/scan_repo_discussions.md)
* [💎 Similar Code](tools/similar_code.md)
## Core Abilities
* [Core Abilities](core-abilities/index.md)
* [Auto approval](core-abilities/auto_approval.md)
* [Auto best practices](core-abilities/auto_best_practices.md)
* [Chat on code suggestions](core-abilities/chat_on_code_suggestions.md)
* [Chrome extension](chrome-extension/index.md)
* [Code validation](core-abilities/code_validation.md)
* [Dynamic context](core-abilities/dynamic_context.md)
* [Fetching ticket context](core-abilities/fetching_ticket_context.md)
* [High-level Suggestions](core-abilities/high_level_suggestions.md)
* [Impact evaluation](core-abilities/impact_evaluation.md)
* [Incremental Update](core-abilities/incremental_update.md)
* [Interactivity](core-abilities/interactivity.md)
* [Local and global metadata](core-abilities/metadata.md)
* [RAG context enrichment](core-abilities/rag_context_enrichment.md)
* [Self-reflection](core-abilities/self_reflection.md)
* [Static code analysis](core-abilities/static_code_analysis.md)
## Qodo Merge CLI
* [Overview](qodo-merge-cli/index.md)
* [Installation](qodo-merge-cli/installation.md)
* [Usage](qodo-merge-cli/usage.md)
## PR Benchmark
* [PR Benchmark](pr_benchmark/index.md)
## Recent Updates
* [Recent Updates](recent_updates/index.md)
## AI Docs Search
* [AI Docs Search](ai_search/index.md)

View file

@ -1,9 +1,11 @@
## Overview
The `analyze` tool combines advanced static code analysis with LLM capabilities to provide a comprehensive analysis of the PR code changes.
The tool scans the PR code changes, find the code components (methods, functions, classes) that changed, and enables to interactively generate tests, docs, code suggestions and similar code search for each component.
The tool scans the PR code changes, finds the code components (methods, functions, classes) that changed, and enables to interactively generate tests, docs, code suggestions and similar code search for each component.
It can be invoked manually by commenting on any PR:
```
/analyze
```
@ -14,6 +16,5 @@ An example result:
![Analyze 1](https://codium.ai/images/pr_agent/analyze_1.png){width=750}
**Notes**
- Language that are currently supported: Python, Java, C++, JavaScript, TypeScript, C#.
!!! note "Languages that are currently supported:"
Python, Java, C++, JavaScript, TypeScript, C#, Go, Kotlin

View file

@ -2,6 +2,7 @@
The `ask` tool answers questions about the PR, based on the PR code changes. Make sure to be specific and clear in your questions.
It can be invoked manually by commenting on any PR:
```
/ask "..."
```
@ -15,6 +16,7 @@ It can be invoked manually by commenting on any PR:
## Ask lines
You can run `/ask` on specific lines of code in the PR from the PR's diff view. The tool will answer questions based on the code changes in the selected lines.
- Click on the '+' sign next to the line number to select the line.
- To select multiple lines, click on the '+' sign of the first line and then hold and drag to select the rest of the lines.
- write `/ask "..."` in the comment box and press `Add single comment` button.
@ -28,32 +30,33 @@ Note that the tool does not have "memory" of previous questions, and answers eac
You can also ask questions about images that appear in the comment, where the entire PR code will be used as context.
<br>
The basic syntax is:
```
/ask "..."
[Image](https://real_link_to_image)
```
where `https://real_link_to_image` is the direct link to the image.
Note that GitHub has a built-in mechanism of pasting images in comments. However, pasted image does not provide a direct link.
To get a direct link to an image, we recommend using the following scheme:
1) First, post a comment that contains **only** the image:
1\. First, post a comment that contains **only** the image:
![Ask image1](https://codium.ai/images/pr_agent/ask_images1.png){width=512}
2) Quote reply to that comment:
2\. Quote reply to that comment:
![Ask image2](https://codium.ai/images/pr_agent/ask_images2.png){width=512}
3) In the screen opened, type the question below the image:
3\. In the screen opened, type the question below the image:
![Ask image3](https://codium.ai/images/pr_agent/ask_images3.png){width=512}
![Ask image4](https://codium.ai/images/pr_agent/ask_images4.png){width=512}
4) Post the comment, and receive the answer:
4\. Post the comment, and receive the answer:
![Ask image5](https://codium.ai/images/pr_agent/ask_images5.png){width=512}
See a full video tutorial [here](https://codium.ai/images/pr_agent/ask_image_video.mov)

View file

@ -18,20 +18,24 @@ The tool analyzes the failed checks and provides several feedbacks:
___
In addition to being automatically triggered, the tool can also be invoked manually by commenting on a PR:
```
/checks "https://github.com/{repo_name}/actions/runs/{run_number}/job/{job_number}"
```
where `{repo_name}` is the name of the repository, `{run_number}` is the run number of the failed check, and `{job_number}` is the job number of the failed check.
## Disabling the tool from running automatically
If you wish to disable the tool from running automatically, you can do so by adding the following configuration to the configuration file:
```
[checks]
enable_auto_checks_feedback = false
```
## Configuration options
- `enable_auto_checks_feedback` - if set to true, the tool will automatically provide feedback when a check is failed. Default is true.
- `excluded_checks_list` - a list of checks to exclude from the feedback, for example: ["check1", "check2"]. Default is an empty list.
- `persistent_comment` - if set to true, the tool will overwrite a previous checks comment with the new feedback. Default is true.

View file

@ -0,0 +1,375 @@
`Platforms supported: GitHub, GitLab, Bitbucket`
## Overview
The `compliance` tool performs comprehensive compliance checks on PR code changes, validating them against security standards, ticket requirements, and custom organizational compliance checklists, thereby helping teams, enterprises, and agents maintain consistent code quality and security practices while ensuring that development work aligns with business requirements.
=== "Fully Compliant"
![compliance_overview](https://codium.ai/images/pr_agent/compliance_full.png){width=512}
=== "Partially Compliant"
![compliance_overview](https://codium.ai/images/pr_agent/compliance_partial.png){width=512}
___
[//]: # (???+ note "The following features are available only for Qodo Merge 💎 users:")
[//]: # ( - Custom compliance checklists and hierarchical compliance checklists)
[//]: # ( - Ticket compliance validation with Jira/Linear integration)
[//]: # ( - Auto-approval based on compliance status)
[//]: # ( - Compliance labels and automated enforcement)
## Example Usage
### Manual Triggering
Invoke the tool manually by commenting `/compliance` on any PR. The compliance results are presented in a comprehensive table:
To edit [configurations](#configuration-options) related to the `compliance` tool, use the following template:
```toml
/compliance --pr_compliance.some_config1=... --pr_compliance.some_config2=...
```
For example, you can enable ticket compliance labels by running:
```toml
/compliance --pr_compliance.enable_ticket_labels=true
```
### Automatic Triggering
The tool can be triggered automatically every time a new PR is [opened](https://qodo-merge-docs.qodo.ai/usage-guide/automations_and_usage/#github-app-automatic-tools-when-a-new-pr-is-opened), or in a [push](https://qodo-merge-docs.qodo.ai/usage-guide/automations_and_usage/?h=push#github-app-automatic-tools-for-push-actions-commits-to-an-open-pr) event to an existing PR.
To run the `compliance` tool automatically when a PR is opened, define the following in the [configuration file](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/):
```toml
[github_app] # for example
pr_commands = [
"/compliance",
...
]
```
## Compliance Categories
The compliance tool evaluates three main categories:
### 1. Security Compliance
Scans for security vulnerabilities and potential exploits in the PR code changes:
- **Verified Security Concerns** 🔴: Clear security vulnerabilities that require immediate attention
- **Possible Security Risks** ⚪: Potential security issues that need human verification
- **No Security Concerns** 🟢: No security vulnerabilities detected
Examples of security issues:
- Exposure of sensitive information (API keys, passwords, secrets)
- SQL injection vulnerabilities
- Cross-site scripting (XSS) risks
- Cross-site request forgery (CSRF) vulnerabilities
- Insecure data handling patterns
### 2. Ticket Compliance
???+ tip "How to set up ticket compliance"
Follow the guide on how to set up [ticket compliance](https://qodo-merge-docs.qodo.ai/core-abilities/fetching_ticket_context/) with Qodo Merge.
???+ tip "Auto-create ticket"
Follow this [guide](https://qodo-merge-docs.qodo.ai/tools/pr_to_ticket/) to learn how to enable triggering `create tickets` based on PR content.
![ticket creation via compliance tool](https://codium.ai/images/pr_agent/ticket_creation_from_compliance1.png){width=256}
Validates that PR changes fulfill the requirements specified in linked tickets:
- **Fully Compliant** 🟢: All ticket requirements are satisfied
- **Partially Compliant** 🟡: Some requirements are met, others need attention
- **Not Compliant** 🔴: Clear violations of ticket requirements
- **Requires Verification** ⚪: Requirements that need human review
### 3. RAG Code Duplication Compliance
???+ tip "Learn more about RAG"
For detailed information about RAG context enrichment, see the [RAG Context Enrichment guide](../core-abilities/rag_context_enrichment.md).
Analyzes code changes using RAG endpoint to detect potential code duplication from the codebase:
- **Fully Compliant** 🟢: No code duplication found
- **Not Compliant** 🔴: Full code duplication found
- **Requires Verification** ⚪: Near code duplication
### 4. Custom Compliance
Validates against an organization-specific compliance checklist:
- **Fully Compliant** 🟢: All custom compliance are satisfied
- **Not Compliant** 🔴: Violations of custom compliance
- **Requires Verification** ⚪: Compliance that need human assessment
## Custom Compliance
### Setting Up Custom Compliance
Each compliance is defined in a YAML file as follows:
- `title` (required): A clear, descriptive title that identifies what is being checked
- `compliance_label` (required): Determines whether this compliance generates labels for non-compliance issues (set to `true` or `false`)
- `objective` (required): A detailed description of the goal or purpose this compliance aims to achieve
- `success_criteria` and `failure_criteria` (at least one required; both recommended): Define the conditions for compliance
???+ tip "Example of a compliance checklist"
```yaml
# pr_compliance_checklist.yaml
pr_compliances:
- title: "Error Handling"
compliance_label: true
objective: "All external API calls must have proper error handling"
success_criteria: "Try-catch blocks around external calls with appropriate logging"
failure_criteria: "External API calls without error handling or logging"
...
```
???+ tip "Writing effective compliance checklists"
- Avoid overly complex or subjective compliances that are hard to verify
- Keep compliances focused on security, business requirements, and critical standards
- Use clear, actionable language that developers can understand
- Focus on meaningful compliance requirements, not style preferences
???+ tip "Ready-to-use compliance templates"
For production-ready compliance checklist templates organized by programming languages and technology stacks, check out the [PR Compliance Templates repository](https://github.com/qodo-ai/pr-compliance-templates).
### Local Compliance Checklists
For basic usage, create a `pr_compliance_checklist.yaml` file in your repository's root directory containing the compliance requirements specific to your repository.
The AI model will use this `pr_compliance_checklist.yaml` file as a reference, and if the PR code violates any of the compliance requirements, it will be shown in the compliance tool's comment.
### Global Hierarchical Compliance
Qodo Merge supports hierarchical compliance checklists using a dedicated global configuration repository.
#### Setting up global hierarchical compliance
1\. Create a new repository named `pr-agent-settings` in your organization or workspace.
2\. Build the folder hierarchy in your `pr-agent-settings` repository:
```bash
pr-agent-settings/
├── metadata.yaml # Maps repos/folders to compliance paths
└── codebase_standards/ # Root for all compliance definitions
├── global/ # Global compliance, inherited widely
│ └── pr_compliance_checklist.yaml
├── groups/ # For groups of repositories
│ ├── frontend_repos/
│ │ └── pr_compliance_checklist.yaml
│ ├── backend_repos/
│ │ └── pr_compliance_checklist.yaml
│ ├── python_repos/
│ │ └── pr_compliance_checklist.yaml
│ ├── cpp_repos/
│ │ └── pr_compliance_checklist.yaml
│ └── ...
├── repo_a/ # For standalone repositories
│ └── pr_compliance_checklist.yaml
├── monorepo-name/ # For monorepo-specific compliance
│ ├── pr_compliance_checklist.yaml # Root-level monorepo compliance
│ ├── service-a/ # Subproject compliance
│ │ └── pr_compliance_checklist.yaml
│ └── service-b/ # Another subproject
│ └── pr_compliance_checklist.yaml
└── ... # More repositories
```
> **Note:** In this structure, `pr-agent-settings`, `codebase_standards`, `global`, `groups`, `metadata.yaml`, and `pr_compliance_checklist.yaml` are hardcoded names that must be used exactly as shown. All other names (such as `frontend_repos`, `backend_repos`, `repo_a`, `monorepo-name`, `service-a`, etc.) are examples and should be replaced with your actual repository and service names.
???+ tip "Grouping and categorizing compliance checklists"
- Each folder (including the global folder) can contain a single `pr_compliance_checklist.yaml` file
- Organize repository compliance checklists by creating subfolders within the `groups` folder. Group them by purpose, programming languages, or other categories
3\. Define the metadata file `metadata.yaml` in the root of `pr-agent-settings`:
```yaml
# Standalone repos
repo_a:
pr_compliance_checklist_paths:
- "repo_a"
# Group-associated repos
repo_b:
pr_compliance_checklist_paths:
- "groups/backend_repos"
# Multi-group repos
repo_c:
pr_compliance_checklist_paths:
- "groups/frontend_repos"
- "groups/backend_repos"
# Monorepo with subprojects
monorepo-name:
pr_compliance_checklist_paths:
- "monorepo-name"
monorepo_subprojects:
service-a:
pr_compliance_checklist_paths:
- "monorepo-name/service-a"
service-b:
pr_compliance_checklist_paths:
- "monorepo-name/service-b"
```
4\. Set the following configuration:
```toml
[pr_compliance]
enable_global_pr_compliance = true
```
???- info "Compliance checklist loading strategy"
1. **Global Checklists**: Hierarchical compliance from `pr-agent-settings` repository
1.1 If the repository is mapped in `metadata.yaml`, it uses the specified paths and the global compliance checklist
1.2 For monorepos, it automatically collects compliance checklists matching PR file paths
1.3 If the repository is not mapped in `metadata.yaml`, global checklists are not loaded
2. **Local Repository Checklist**: `pr_compliance_checklist.yaml` file in the repository
2.1 Loaded if present in the repository
2.2 Content is merged with global checklists (if loaded) to create the final compliance checklist
## Configuration Options
???+ example "General options"
<table>
<tr>
<td><b>extra_instructions</b></td>
<td>Optional extra instructions for the tool. For example: "Ensure that all error-handling paths in the code contain appropriate logging statements". Default is empty string.</td>
</tr>
<tr>
<td><b>persistent_comment</b></td>
<td>If set to true, the compliance comment will be persistent, meaning that every new compliance request will edit the previous one. Default is true.</td>
</tr>
<tr>
<td><b>enable_user_defined_compliance_labels</b></td>
<td>If set to true, the tool will add the label `Failed compliance check` for custom compliance violations. Default is true.</td>
</tr>
<tr>
<td><b>enable_estimate_effort_to_review</b></td>
<td>If set to true, the tool will estimate the effort required to review the PR (1-5 scale) as a label. Default is true.</td>
</tr>
<tr>
<td><b>enable_todo_scan</b></td>
<td>If set to true, the tool will scan for TODO comments in the PR code. Default is false.</td>
</tr>
<tr>
<td><b>enable_update_pr_compliance_checkbox</b></td>
<td>If set to true, the tool will add an update checkbox to refresh compliance status following push events. Default is true.</td>
</tr>
<tr>
<td><b>enable_help_text</b></td>
<td>If set to true, the tool will display help text in the comment. Default is false.</td>
</tr>
</table>
???+ example "Section visibility options"
<table>
<tr>
<td><b>enable_security_section</b></td>
<td>If set to true, the security compliance section will be displayed in the output. When false, the entire security section is hidden. Default is true.</td>
</tr>
<tr>
<td><b>enable_ticket_section</b></td>
<td>If set to true, the ticket compliance section will be displayed in the output. When false, the entire ticket section is hidden. Default is true.</td>
</tr>
<tr>
<td><b>enable_codebase_duplication_section</b></td>
<td>If set to true, the codebase duplication compliance section will be displayed in the output. When false, the entire codebase duplication section is hidden. Default is true.</td>
</tr>
<tr>
<td><b>enable_custom_compliance_section</b></td>
<td>If set to true, the custom compliance section will be displayed in the output. When false, the entire custom section is hidden. Default is true.</td>
</tr>
</table>
???+ example "Security compliance options"
<table>
<tr>
<td><b>enable_security_compliance</b></td>
<td>If set to true, the tool will check for security vulnerabilities. Default is true.</td>
</tr>
<tr>
<td><b>enable_compliance_labels_security</b></td>
<td>If set to true, the tool will add a `Possible security concern` label to the PR when security-related concerns are detected. Default is true.</td>
</tr>
</table>
???+ example "Ticket compliance options"
<table>
<tr>
<td><b>require_ticket_analysis_review</b></td>
<td>If set to true, the tool will fetch and analyze ticket context for compliance validation. Default is true.</td>
</tr>
<tr>
<td><b>enable_ticket_labels</b></td>
<td>If set to true, the tool will add ticket compliance labels to the PR. Default is false.</td>
</tr>
<tr>
<td><b>enable_no_ticket_labels</b></td>
<td>If set to true, the tool will add a label when no ticket is found. Default is false.</td>
</tr>
<tr>
<td><b>check_pr_additional_content</b></td>
<td>If set to true, the tool will check if the PR contains content not related to the ticket. Default is false.</td>
</tr>
</table>
???+ example "Generic custom compliance checklist options"
<table>
<tr>
<td><b>enable_generic_custom_compliance_checklist</b></td>
<td>If set to true, the tool will apply generic custom compliance checklist rules. Default is true.</td>
</tr>
<tr>
<td><b>persist_generic_custom_compliance_checklist</b></td>
<td>If set to false, generic compliance checklist will not be kept with custom compliance. Default is false.</td>
</tr>
</table>
## Usage Tips
### Blocking PRs Based on Compliance
!!! tip ""
You can configure CI/CD Actions to prevent merging PRs with specific compliance labels:
- `Possible security concern` - Block PRs with potential security issues
- `Failed compliance check` - Block PRs that violate custom compliance checklists
Implement a dedicated [GitHub Action](https://medium.com/sequra-tech/quick-tip-block-pull-request-merge-using-labels-6cc326936221) to enforce these checklists.

View file

@ -1,7 +1,11 @@
`Platforms supported: GitHub, GitLab`
## Overview
The `generate_labels` tool scans the PR code changes, and given a list of labels and their descriptions, it automatically suggests labels that match the PR code changes.
It can be invoked manually by commenting on any PR:
```
/generate_labels
```
@ -19,21 +23,26 @@ When running the `generate_labels` tool on a PR that includes changes in SQL que
Note that in addition to the dedicated tool `generate_labels`, the custom labels will also be used by the `describe` tool.
### How to enable custom labels
There are 3 ways to enable custom labels:
#### 1. CLI (local configuration file)
When working from CLI, you need to apply the [configuration changes](#configuration-options) to the [custom_labels file](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/custom_labels.toml):
#### 2. Repo configuration file
To enable custom labels, you need to apply the [configuration changes](#configuration-options) to the local `.pr_agent.toml` file in you repository.
To enable custom labels, you need to apply the [configuration changes](#configuration-options) to the local `.pr_agent.toml` file in your repository.
#### 3. Handle custom labels from the Repo's labels page 💎
> This feature is available only in PR-Agent Pro
> This feature is available only in Qodo Merge
* GitHub : `https://github.com/{owner}/{repo}/labels`, or click on the "Labels" tab in the issues or PRs page.
* GitLab : `https://gitlab.com/{owner}/{repo}/-/labels`, or click on "Manage" -> "Labels" on the left menu.
b. Add/edit the custom labels. It should be formatted as follows:
* Label name: The name of the custom label.
* Description: Start the description of with prefix `pr_agent:`, for example: `pr_agent: Description of when AI should suggest this label`.<br>
The description should be comprehensive and detailed, indicating when to add the desired label.
@ -45,8 +54,9 @@ c. Now the custom labels will be included in the `generate_labels` tool.
> This feature is supported in GitHub and GitLab.
## Configuration options
- Change `enable_custom_labels` to True: This will turn off the default labels and enable the custom labels provided in the custom_labels.toml file.
- Add the custom labels. It should be formatted as follows:
* Change `enable_custom_labels` to True: This will turn off the default labels and enable the custom labels provided in the custom_labels.toml file.
* Add the custom labels. It should be formatted as follows:
```
[config]
@ -58,3 +68,7 @@ description = "Description of when AI should suggest this label"
[custom_labels."Custom Label 2"]
description = "Description of when AI should suggest this label 2"
```
???+ tip "Auto-remove custom label when no longer relevant"
If the custom label is no longer relevant, it will be automatically removed from the PR by running the `generate_labels` tool or the `describe` tool.

View file

@ -1,4 +1,5 @@
## Overview
The `custom_prompt` tool scans the PR code changes, and automatically generates suggestions for improving the PR code.
It shares similarities with the `improve` tool, but with one main difference: the `custom_prompt` tool will **only propose suggestions that follow specific guidelines defined by the prompt** in: `pr_custom_prompt.prompt` configuration.
@ -17,7 +18,7 @@ The code suggestions should focus only on the following:
With a [configuration file](../usage-guide/automations_and_usage.md#github-app), use the following template:
```
```toml
[pr_custom_prompt]
prompt="""\
The suggestions should focus only on the following:
@ -33,7 +34,8 @@ You might benefit from several trial-and-error iterations, until you get the cor
## Example usage
Here is an example of a possible prompt, defined in the configuration file:
```
```toml
[pr_custom_prompt]
prompt="""\
The code suggestions should focus only on the following:
@ -51,8 +53,8 @@ Results obtained with the prompt above:
## Configuration options
`prompt`: the prompt for the tool. It should be a multi-line string.
- `prompt`: the prompt for the tool. It should be a multi-line string.
`num_code_suggestions`: number of code suggestions provided by the 'custom_prompt' tool. Default is 4.
- `num_code_suggestions_per_chunk`: number of code suggestions provided by the 'custom_prompt' tool, per chunk. Default is 3.
`enable_help_text`: if set to true, the tool will display a help text in the comment. Default is true.
- `enable_help_text`: if set to true, the tool will display a help text in the comment. Default is true.

View file

@ -1,7 +1,9 @@
## Overview
The `describe` tool scans the PR code changes, and generates a description for the PR - title, type, summary, walkthrough and labels.
The tool can be triggered automatically every time a new PR is [opened](../usage-guide/automations_and_usage.md#github-app-automatic-tools-when-a-new-pr-is-opened), or it can be invoked manually by commenting on any PR:
```
/describe
```
@ -19,13 +21,15 @@ After ~30 seconds, the tool will generate a description for the PR:
![Describe New](https://codium.ai/images/pr_agent/describe_new.png){width=512}
If you want to edit [configurations](#configuration-options), add the relevant ones to the command:
```
/describe --pr_description.some_config1=... --pr_description.some_config2=...
```
### Automatic triggering
To run the `describe` automatically when a PR is opened, define in a [configuration file](https://pr-agent-docs.codium.ai/usage-guide/configuration_options/#wiki-configuration-file):
To run the `describe` automatically when a PR is opened, define in a [configuration file](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/#wiki-configuration-file):
```
[github_app]
pr_commands = [
@ -34,22 +38,59 @@ pr_commands = [
]
[pr_description]
publish_labels = ...
publish_labels = true
...
```
- The `pr_commands` lists commands that will be executed automatically when a PR is opened.
- The `[pr_description]` section contains the configurations for the `describe` tool you want to edit (if any).
## Preserving the original user description
By default, Qodo Merge tries to preserve your original PR description by placing it above the generated content.
This requires including your description during the initial PR creation.
"Qodo removed the original description from the PR. Why"?
From our experience, there are two possible reasons:
- If you edit the description _while_ the automated tool is running, a race condition may occur, potentially causing your original description to be lost. Hence, create a description before launching the PR.
- When _updating_ PR descriptions, the `/describe` tool considers everything above the "PR Type" field as user content and will preserve it.
Everything below this marker is treated as previously auto-generated content and will be replaced.
![Describe comment](https://codium.ai/images/pr_agent/pr_description_user_description.png){width=512}
## Sequence Diagram Support
The `/describe` tool includes a Mermaid sequence diagram showing component/function interactions.
This option is enabled by default via the `pr_description.enable_pr_diagram` param.
[//]: # (### How to enable\disable)
[//]: # ()
[//]: # (In your configuration:)
[//]: # ()
[//]: # (```)
[//]: # (toml)
[//]: # ([pr_description])
[//]: # (enable_pr_diagram = true)
[//]: # (```)
## Configuration options
!!! example "Possible configurations"
???+ example "Possible configurations"
<table>
<tr>
<td><b>publish_labels</b></td>
<td>If set to true, the tool will publish the labels to the PR. Default is true.</td>
<td>If set to true, the tool will publish labels to the PR. Default is false.</td>
</tr>
<tr>
<td><b>publish_description_as_comment</b></td>
@ -77,27 +118,38 @@ publish_labels = ...
</tr>
<tr>
<td><b>final_update_message</b></td>
<td>If set to true, it will add a comment message [`PR Description updated to latest commit...`](https://github.com/Codium-ai/pr-agent/pull/499#issuecomment-1837412176) after finishing calling `/describe`. Default is false.</td>
<td>If set to true, it will add a comment message [`PR Description updated to latest commit...`](https://github.com/Codium-ai/pr-agent/pull/499#issuecomment-1837412176) after finishing calling `/describe`. Default is true.</td>
</tr>
<tr>
<td><b>enable_semantic_files_types</b></td>
<td>If set to true, "Changes walkthrough" section will be generated. Default is true.</td>
</tr>
<tr>
<td><b>file_table_collapsible_open_by_default</b></td>
<td>If set to true, the file list in the "Changes walkthrough" section will be open by default. If set to false, it will be closed by default. Default is false.</td>
</tr>
<tr>
<td><b>collapsible_file_list</b></td>
<td>If set to true, the file list in the "Changes walkthrough" section will be collapsible. If set to "adaptive", the file list will be collapsible only if there are more than 8 files. Default is "adaptive".</td>
</tr>
<tr>
<td><b>enable_large_pr_handling</b></td>
<td>Pro feature. If set to true, in case of a large PR the tool will make several calls to the AI and combine them to be able to cover more files. Default is true.</td>
<td><b>enable_large_pr_handling 💎</b></td>
<td>If set to true, in case of a large PR the tool will make several calls to the AI and combine them to be able to cover more files. Default is true.</td>
</tr>
<tr>
<td><b>enable_help_text</b></td>
<td>If set to true, the tool will display a help text in the comment. Default is false.</td>
</tr>
<tr>
<td><b>enable_pr_diagram</b></td>
<td>If set to true, the tool will generate a horizontal Mermaid flowchart summarizing the main pull request changes. This field remains empty if not applicable. Default is true.</td>
</tr>
<tr>
<td><b>auto_create_ticket</b></td>
<td>If set to true, this will <a href="https://qodo-merge-docs.qodo.ai/tools/pr_to_ticket/">automatically create a ticket</a> in the ticketing system when a PR is opened. Default is false.</td>
</tr>
</table>
## Inline file summary 💎
This feature enables you to copy the `changes walkthrough` table to the "Files changed" tab, so you can quickly understand the changes in each file while reviewing the code changes (diff view).
@ -120,13 +172,13 @@ If you prefer to have the file summaries appear in the "Files changed" tab on ev
**Note**: that this feature is currently available only for GitHub.
## Markers template
To enable markers, set `pr_description.use_description_markers=true`.
Markers enable to easily integrate user's content and auto-generated content, with a template-like mechanism.
For example, if the PR original description was:
```
User content...
@ -138,32 +190,43 @@ pr_agent:summary
## PR Walkthrough:
pr_agent:walkthrough
## PR Diagram:
pr_agent:diagram
```
The marker `pr_agent:type` will be replaced with the PR type, `pr_agent:summary` will be replaced with the PR summary, and `pr_agent:walkthrough` will be replaced with the PR walkthrough.
The marker `pr_agent:type` will be replaced with the PR type, `pr_agent:summary` will be replaced with the PR summary, `pr_agent:walkthrough` will be replaced with the PR walkthrough, and `pr_agent:diagram` will be replaced with the sequence diagram (if enabled).
![Describe markers before](https://codium.ai/images/pr_agent/describe_markers_before.png){width=512}
&rarr;
becomes
![Describe markers after](https://codium.ai/images/pr_agent/describe_markers_after.png){width=512}
**Configuration params**:
- `use_description_markers`: if set to true, the tool will use markers template. It replaces every marker of the form `pr_agent:marker_name` with the relevant content. Default is false.
- `include_generated_by_header`: if set to true, the tool will add a dedicated header: 'Generated by PR Agent at ...' to any automatic content. Default is true.
- `diagram`: if present as a marker, will be replaced by the PR sequence diagram (if enabled).
## Custom labels
The default labels of the describe tool are quite generic, since they are meant to be used in any repo: [`Bug fix`, `Tests`, `Enhancement`, `Documentation`, `Other`].
You can define custom labels that are relevant for your repo and use cases.
Custom labels can be defined in a [configuration file](https://pr-agent-docs.codium.ai/tools/custom_labels/#configuration-options), or directly in the repo's [labels page](#handle-custom-labels-from-the-repos-labels-page).
Custom labels can be defined in a [configuration file](https://qodo-merge-docs.qodo.ai/tools/custom_labels/#configuration-options), or directly in the repo's [labels page](#handle-custom-labels-from-the-repos-labels-page).
Make sure to provide proper title, and a detailed and well-phrased description for each label, so the tool will know when to suggest it.
Each label description should be a **conditional statement**, that indicates if to add the label to the PR or not, according to the PR content.
???+ tip "Auto-remove custom label when no longer relevant"
If the custom label is no longer relevant, it will be automatically removed from the PR by running the `generate_labels` tool or the `describe` tool.
### Handle custom labels from a configuration file
Example for a custom labels configuration setup in a configuration file:
```
[config]
enable_custom_labels=true
@ -182,13 +245,13 @@ description = "use when a PR primarily contains new tests"
You can also control the custom labels that will be suggested by the `describe` tool from the repo's labels page:
* GitHub : go to `https://github.com/{owner}/{repo}/labels` (or click on the "Labels" tab in the issues or PRs page)
* GitLab : go to `https://gitlab.com/{owner}/{repo}/-/labels` (or click on "Manage" -> "Labels" on the left menu)
- GitHub : go to `https://github.com/{owner}/{repo}/labels` (or click on the "Labels" tab in the issues or PRs page)
- GitLab : go to `https://gitlab.com/{owner}/{repo}/-/labels` (or click on "Manage" -> "Labels" on the left menu)
Now add/edit the custom labels. they should be formatted as follows:
* Label name: The name of the custom label.
* Description: Start the description of with prefix `pr_agent:`, for example: `pr_agent: Description of when AI should suggest this label`.<br>
- Label name: The name of the custom label.
- Description: Start the description of with prefix `pr_agent:`, for example: `pr_agent: Description of when AI should suggest this label`.<br>
Examples for custom labels:
@ -201,21 +264,21 @@ Examples for custom labels:
The description should be comprehensive and detailed, indicating when to add the desired label. For example:
![Add native custom labels](https://codium.ai/images/pr_agent/add_native_custom_labels.png){width=768}
## Usage Tips
!!! tip "Automation"
- When you first install PR-Agent app, the [default mode](../usage-guide/automations_and_usage.md#github-app) for the describe tool is:
- When you first install Qodo Merge app, the [default mode](../usage-guide/automations_and_usage.md#github-app) for the describe tool is:
```
pr_commands = ["/describe", ...]
```
meaning the `describe` tool will run automatically on every PR, with the default configurations.
- Markers are an alternative way to control the generated description, to give maximal control to the user. If you set:
```
pr_commands = ["/describe --pr_description.use_description_markers=true", ...]
```
the tool will replace every marker of the form `pr_agent:marker_name` in the PR description with the relevant content, where `marker_name` is one of the following:
*`type`: the PR type.
* `summary`: the PR summary.

View file

@ -1,7 +1,9 @@
## Overview
The `add_docs` tool scans the PR code changes, and automatically suggests documentation for any code components that changed in the PR (functions, classes, etc.).
It can be invoked manually by commenting on any PR:
```
/add_docs
```
@ -19,15 +21,36 @@ The tool will generate documentation for all the components that changed in the
![Docs single component](https://codium.ai/images/pr_agent/docs_single_component.png){width=768}
You can state a name of a specific component in the PR to get documentation only for that component:
```
/add_docs component_name
```
## Manual triggering
Comment `/add_docs` on a PR to invoke it manually.
## Automatic triggering
To automatically run the `add_docs` tool when a pull request is opened, define in a [configuration file](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/):
```toml
[github_app]
pr_commands = [
"/add_docs",
...
]
```
The `pr_commands` list defines commands that run automatically when a PR is opened.
Since this is under the [github_app] section, it only applies when using the Qodo Merge GitHub App in GitHub environments.
## Configuration options
- `docs_style`: The exact style of the documentation (for python docstring). you can choose between: `google`, `numpy`, `sphinx`, `restructuredtext`, `plain`. Default is `sphinx`.
- `extra_instructions`: Optional extra instructions to the tool. For example: "focus on the changes in the file X. Ignore change in ...".
**Notes**
- Language that are currently fully supported: Python, Java, C++, JavaScript, TypeScript, C#.
!!! note "Notes"
- The following languages are currently supported: `Python, Java, C++, JavaScript, TypeScript, C#, Go, Ruby, PHP, Rust, Kotlin, Scala`
- This tool can also be triggered interactively by using the [`analyze`](./analyze.md) tool.

View file

@ -1,17 +1,21 @@
## Overview
The `help` tool provides a list of all the available tools and their descriptions.
For PR-Agent Pro users, it also enables to trigger each tool by checking the relevant box.
For Qodo Merge users, it also enables to trigger each tool by checking the relevant box.
It can be invoked manually by commenting on any PR:
```
/help
```
## Example usage
An example [result](https://github.com/Codium-ai/pr-agent/pull/546#issuecomment-1868524805):
![Help 1](https://codium.ai/images/pr_agent/help1.png){width=750}
Invoke the `help` tool by commenting on a PR with:
&rarr;
![Help tool input](https://codium.ai/images/pr_agent/help1.png){width=750}
![Analyze 2](https://codium.ai/images/pr_agent/help2.png){width=750}
Response will include a list of available tools:
![Help tool output](https://codium.ai/images/pr_agent/help2.png){width=750}

View file

@ -0,0 +1,111 @@
## Overview
The `help_docs` tool can answer a free-text question based on a git documentation folder.
It can be invoked manually by commenting on any PR or Issue:
```
/help_docs "..."
```
Or configured to be triggered automatically when a [new issue is opened](#run-as-a-github-action).
The tool assumes by default that the documentation is located in the root of the repository, at `/docs` folder.
However, this can be customized by setting the `docs_path` configuration option:
```toml
[pr_help_docs]
repo_url = "" # The repository to use as context
docs_path = "docs" # The documentation folder
repo_default_branch = "main" # The branch to use in case repo_url overwritten
```
See more configuration options in the [Configuration options](#configuration-options) section.
## Example usage
[//]: # (#### Asking a question about this repository:)
[//]: # (![help_docs on the documentation of this repository]&#40;https://codium.ai/images/pr_agent/help_docs_comment.png&#41;{width=512})
**Asking a question about another repository**
![help_docs on the documentation of another repository](https://codium.ai/images/pr_agent/help_docs_comment_explicit_git.png){width=512}
**Response**:
![help_docs response](https://codium.ai/images/pr_agent/help_docs_response.png){width=512}
## Run automatically when a new issue is opened
You can configure PR-Agent to run `help_docs` automatically on any newly created issue.
This can be useful, for example, for providing immediate feedback to users who open issues with questions on open-source projects with extensive documentation.
Here's how:
1) Follow the steps depicted under [Run as a Github Action](https://qodo-merge-docs.qodo.ai/installation/github/#run-as-a-github-action) to create a new workflow, such as:`.github/workflows/help_docs.yml`:
2) Edit your yaml file to the following:
```yaml
name: Run pr agent on every opened issue, respond to user comments on an issue
#When the action is triggered
on:
issues:
types: [opened] #New issue
# Read env. variables
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_API_URL: ${{ github.api_url }}
GIT_REPO_URL: ${{ github.event.repository.clone_url }}
ISSUE_URL: ${{ github.event.issue.html_url || github.event.comment.html_url }}
ISSUE_BODY: ${{ github.event.issue.body || github.event.comment.body }}
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
# The actual set of actions
jobs:
issue_agent:
runs-on: ubuntu-latest
if: ${{ github.event.sender.type != 'Bot' }} #Do not respond to bots
# Set required permissions
permissions:
contents: read # For reading repository contents
issues: write # For commenting on issues
steps:
- name: Run PR Agent on Issues
if: ${{ env.ISSUE_URL != '' }}
uses: docker://codiumai/pr-agent:latest
with:
entrypoint: /bin/bash #Replace invoking cli.py directly with a shell
args: |
-c "cd /app && \
echo 'Running Issue Agent action step on ISSUE_URL=$ISSUE_URL' && \
export config__git_provider='github' && \
export github__user_token=$GITHUB_TOKEN && \
export github__base_url=$GITHUB_API_URL && \
export openai__key=$OPENAI_KEY && \
python -m pr_agent.cli --issue_url=$ISSUE_URL --pr_help_docs.repo_url="..." --pr_help_docs.docs_path="..." --pr_help_docs.openai_key=$OPENAI_KEY && \
help_docs "$ISSUE_BODY"
```
3) Following completion of the remaining steps (such as adding secrets and relevant configurations, such as `repo_url` and `docs_path`) merge this change to your main branch.
When a new issue is opened, you should see a comment from `github-actions` bot with an auto response, assuming the question is related to the documentation of the repository.
---
## Configuration options
Under the section `pr_help_docs`, the [configuration file](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml#L50) contains options to customize the 'help docs' tool:
- `repo_url`: If not overwritten, will use the repo from where the context came from (issue or PR), otherwise - use the given repo as context.
- `repo_default_branch`: The branch to use in case repo_url overwritten, otherwise - has no effect.
- `docs_path`: Relative path from root of repository (either the one this PR has been issued for, or above repo url).
- `exclude_root_readme`: Whether or not to exclude the root README file for querying the model.
- `supported_doc_exts` : Which file extensions should be included for the purpose of querying the model.
---

View file

@ -0,0 +1,57 @@
`Platforms supported: GitHub, GitLab, Bitbucket`
## Overview
The `implement` tool converts human code review discussions and feedback into ready-to-commit code changes.
It leverages LLM technology to transform PR comments and review suggestions into concrete implementation code, helping developers quickly turn feedback into working solutions.
## Usage Scenarios
=== "For Reviewers"
Reviewers can request code changes by:
1. Selecting the code block to be modified.
2. Adding a comment with the syntax:
```
/implement <code-change-description>
```
![implement1](https://codium.ai/images/pr_agent/implement1.png){width=640}
=== "For PR Authors"
PR authors can implement suggested changes by replying to a review comment using either:
1. Add specific implementation details as described above
```
/implement <code-change-description>
```
2. Use the original review comment as instructions
```
/implement
```
![implement2](https://codium.ai/images/pr_agent/implement2.png){width=640}
=== "For Referencing Comments"
You can reference and implement changes from any comment by:
```
/implement <link-to-an-inline-comment>
```
![implement3](https://codium.ai/images/pr_agent/implement3.png){width=640}
Note that the implementation will occur within the review discussion thread.
## Configuration options
- Use `/implement` to implement code change within and based on the review discussion.
- Use `/implement <code-change-description>` inside a review discussion to implement specific instructions.
- Use `/implement <link-to-an-inline-comment>` to respond to an inline comment by triggering the tool from anywhere in the thread.

View file

@ -1,16 +1,26 @@
## Overview
The `improve` tool scans the PR code changes, and automatically generates [meaningful](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/pr_code_suggestions_prompts.toml#L41) suggestions for improving the PR code.
The `improve` tool scans the PR code changes, and automatically generates meaningful suggestions for improving the PR code.
The tool can be triggered automatically every time a new PR is [opened](../usage-guide/automations_and_usage.md#github-app-automatic-tools-when-a-new-pr-is-opened), or it can be invoked manually by commenting on any PR:
```
```toml
/improve
```
![code_suggestions_as_comment_closed.png](https://codium.ai/images/pr_agent/code_suggestions_as_comment_closed.png){width=512}
## How it looks
![code_suggestions_as_comment_open.png](https://codium.ai/images/pr_agent/code_suggestions_as_comment_open.png){width=512}
=== "Suggestions Overview"
![code_suggestions_as_comment_closed](https://codium.ai/images/pr_agent/code_suggestions_as_comment_closed.png){width=512}
Note that the `Apply this suggestion` checkbox, which interactively converts a suggestion into a commitable code comment, is available only for PR-Agent Pro 💎 users.
=== "Selecting a specific suggestion"
![code_suggestions_as_comment_open](https://codium.ai/images/pr_agent/code_suggestions_as_comment_open.png){width=512}
___
!!! note "The following features are available only for Qodo Merge 💎 users:"
- The `Apply / Chat` checkbox, which interactively converts a suggestion into a committable code comment
- The `More` checkbox to generate additional suggestions
- On Bitbucket (Cloud & Data Center) and GitLab Server (v16 and earlier), you can invoke [More Suggestions manually](#manual-more-suggestions)
## Example usage
@ -18,26 +28,33 @@ Note that the `Apply this suggestion` checkbox, which interactively converts a s
Invoke the tool manually by commenting `/improve` on any PR. The code suggestions by default are presented as a single comment:
To edit [configurations](#configuration-options) related to the improve tool, use the following template:
```
To edit [configurations](#configuration-options) related to the `improve` tool, use the following template:
```toml
/improve --pr_code_suggestions.some_config1=... --pr_code_suggestions.some_config2=...
```
For example, you can choose to present all the suggestions as commitable code comments, by running the following command:
```
For example, you can choose to present all the suggestions as committable code comments, by running the following command:
```toml
/improve --pr_code_suggestions.commitable_code_suggestions=true
```
![improve](https://codium.ai/images/pr_agent/improve.png){width=512}
As can be seen, a single table comment has a significantly smaller PR footprint. We recommend this mode for most cases.
Also note that collapsible are not supported in _Bitbucket_. Hence, the suggestions can only be presented in Bitbucket as code comments.
#### Manual more suggestions
To generate more suggestions (distinct from the ones already generated), for git-providers that don't support interactive checkbox option, you can manually run:
```
/improve --more_suggestions=true
```
### Automatic triggering
To run the `improve` automatically when a PR is opened, define in a [configuration file](https://pr-agent-docs.codium.ai/usage-guide/configuration_options/#wiki-configuration-file):
```
To run the `improve` automatically when a PR is opened, define in a [configuration file](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/#wiki-configuration-file):
```toml
[github_app]
pr_commands = [
"/improve",
@ -52,120 +69,554 @@ num_code_suggestions_per_chunk = ...
- The `pr_commands` lists commands that will be executed automatically when a PR is opened.
- The `[pr_code_suggestions]` section contains the configurations for the `improve` tool you want to edit (if any)
### Assessing Impact 💎
### Table vs Committable code comments
Note that PR-Agent pro tracks two types of implementations:
Qodo Merge supports two modes for presenting code suggestions:
1) [Table](https://codium.ai/images/pr_agent/code_suggestions_as_comment_closed.png) mode
2) [Inline Committable](https://codium.ai/images/pr_agent/improve.png) code comments mode.
The table format offers several key advantages:
- **Reduced noise**: Creates a cleaner PR experience with less clutter
- **Quick overview and prioritization**: Enables quick review of one-liner summaries, impact levels, and easy prioritization
- **High-level suggestions**: High-level suggestions that aren't tied to specific code chunks are presented only in the table mode
- **Interactive features**: Provides 'more' and 'update' functionality via clickable buttons
- **Centralized tracking**: Shows suggestion implementation status in one place
- **IDE integration**: Allows applying suggestions directly in your IDE via [Qodo Command](https://github.com/qodo-ai/agents)
Table mode is the default of Qodo Merge, and is recommended approach for most users due to these benefits.
![code_suggestions_as_comment_closed.png](https://codium.ai/images/pr_agent/code_suggestions_as_comment_closed.png){width=512}
Teams with specific preferences can enable committable code comments mode in their local configuration, or use [dual publishing mode](#dual-publishing-mode).
> `Note - due to platform limitations, Bitbucket cloud and server supports only committable code comments mode.`
### Assessing Impact
>`💎 feature`
Qodo Merge tracks two types of implementations for tracking implemented suggestions:
- Direct implementation - when the user directly applies the suggestion by clicking the `Apply` checkbox.
- Indirect implementation - when the user implements the suggestion in their IDE environment. In this case, PR-Agent will utilize, after each commit, a dedicated logic to identify if a suggestion was implemented, and will mark it as implemented.
- Indirect implementation - when the user implements the suggestion in their IDE environment. In this case, Qodo Merge will utilize, after each commit, a dedicated logic to identify if a suggestion was implemented, and will mark it as implemented.
![code_suggestions_asses_impact](https://codium.ai/images/pr_agent/code_suggestions_asses_impact.png){width=512}
![code_suggestions_assess_impact](https://codium.ai/images/pr_agent/code_suggestions_asses_impact.png){width=512}
In post-process, PR-Agent counts the number of suggestions that were implemented, and provides general statistics and insights about the suggestions' impact on the PR process.
In post-process, Qodo Merge counts the number of suggestions that were implemented, and provides general statistics and insights about the suggestions' impact on the PR process.
![code_suggestions_asses_impact_stats_1](https://codium.ai/images/pr_agent/code_suggestions_asses_impact_stats_1.png){width=512}
![code_suggestions_assess_impact_stats_1](https://codium.ai/images/pr_agent/code_suggestions_asses_impact_stats_1.png){width=512}
![code_suggestions_asses_impact_stats_2](https://codium.ai/images/pr_agent/code_suggestions_asses_impact_stats_2.png){width=512}
![code_suggestions_assess_impact_stats_2](https://codium.ai/images/pr_agent/code_suggestions_asses_impact_stats_2.png){width=512}
## Suggestion tracking
>`💎 feature. Platforms supported: GitHub, GitLab`
Qodo Merge employs a novel detection system to automatically [identify](https://qodo-merge-docs.qodo.ai/core-abilities/impact_evaluation/) AI code suggestions that PR authors have accepted and implemented.
Accepted suggestions are also automatically documented in a dedicated wiki page called `.pr_agent_accepted_suggestions`, allowing users to track historical changes, assess the tool's effectiveness, and learn from previously implemented recommendations in the repository.
An example [result](https://github.com/Codium-ai/pr-agent/wiki/.pr_agent_accepted_suggestions):
[![pr_agent_accepted_suggestions1.png](https://qodo.ai/images/pr_agent/pr_agent_accepted_suggestions1.png){width=768}](https://github.com/Codium-ai/pr-agent/wiki/.pr_agent_accepted_suggestions)
This dedicated wiki page will also serve as a foundation for future AI model improvements, allowing it to learn from historically implemented suggestions and generate more targeted, contextually relevant recommendations.
This feature is controlled by a boolean configuration parameter: `pr_code_suggestions.wiki_page_accepted_suggestions` (default is true).
!!! note "Wiki must be enabled"
While the aggregation process is automatic, GitHub repositories require a one-time manual wiki setup.
To initialize the wiki: navigate to `Wiki`, select `Create the first page`, then click `Save page`.
![pr_agent_accepted_suggestions_create_first_page.png](https://qodo.ai/images/pr_agent/pr_agent_accepted_suggestions_create_first_page.png){width=768}
Once a wiki repo is created, the tool will automatically use this wiki for tracking suggestions.
!!! note "Why a wiki page?"
Your code belongs to you, and we respect your privacy. Hence, we won't store any code suggestions in an external database.
Instead, we leverage a dedicated private page, within your repository wiki, to track suggestions. This approach offers convenient secure suggestion tracking while avoiding pull requests or any noise to the main repository.
## `Extra instructions` and `best practices`
The `improve` tool can be further customized by providing additional instructions and best practices to the AI model.
### Extra instructions
You can use the `extra_instructions` configuration option to give the AI model additional instructions for the `improve` tool.
Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter.
Examples for possible instructions:
```toml
[pr_code_suggestions]
extra_instructions="""\
(1) Answer in Japanese
(2) Don't suggest to add try-except block
(3) Ignore changes in toml files
...
"""
```
Use triple quotes to write multi-line instructions. Use bullet points or numbers to make the instructions more readable.
### Best practices
> `💎 feature. Platforms supported: GitHub, GitLab, Bitbucket`
Qodo Merge supports both simple and hierarchical best practices configurations to provide guidance to the AI model for generating relevant code suggestions.
???- tip "Writing effective best practices files"
The following guidelines apply to all best practices files:
- Write clearly and concisely
- Include brief code examples when helpful with before/after patterns
- Focus on project-specific guidelines that will result in relevant suggestions you actually want to get
- Keep each file relatively short, under 800 lines, since:
- AI models may not process effectively very long documents
- Long files tend to contain generic guidelines already known to AI
- Maximum multiple file accumulated content is limited to 2000 lines.
- Use pattern-based structure rather than simple bullet points for better clarity
???- tip "Example of a best practices file"
Pattern 1: Add proper error handling with try-except blocks around external function calls.
Example code before:
```python
# Some code that might raise an exception
return process_pr_data(data)
```
Example code after:
```python
try:
# Some code that might raise an exception
return process_pr_data(data)
except Exception as e:
logger.exception("Failed to process request", extra={"error": e})
```
Pattern 2: Add defensive null/empty checks before accessing object properties or performing operations on potentially null variables to prevent runtime errors.
Example code before:
```python
def get_pr_code(pr_data):
if "changed_code" in pr_data:
return pr_data.get("changed_code", "")
return ""
```
Example code after:
```python
def get_pr_code(pr_data):
if pr_data is None:
return ""
if "changed_code" in pr_data:
return pr_data.get("changed_code", "")
return ""
```
#### Local best practices
For basic usage, create a `best_practices.md` file in your repository's root directory containing a list of best practices, coding standards, and guidelines specific to your repository.
The AI model will use this `best_practices.md` file as a reference, and in case the PR code violates any of the guidelines, it will create additional suggestions, with a dedicated label: `Organization best practice`.
#### Global hierarchical best practices
For organizations managing multiple repositories with different requirements, Qodo Merge supports a hierarchical best practices system using a dedicated global configuration repository.
**Supported scenarios:**
1. **Standalone repositories**: Individual repositories can have their own specific best practices tailored to their unique requirements
2. **Groups of repositories**: Repositories can be mapped to shared group-level best practices for consistent standards across similar projects
3. **Monorepos with subprojects**: Large monorepos can have both repository-level and subproject-level best practices, with automatic path-based matching
#### Setting up global hierarchical best practices
1\. Create a new repository named `pr-agent-settings` in your organization/workspace.
2\. Build the folder hierarchy in your `pr-agent-settings` repository, for example:
```bash
pr-agent-settings/
├── metadata.yaml # Maps repos/folders to best practice paths
└── codebase_standards/ # Root for all best practice definitions
├── global/ # Global rules, inherited widely
│ └── best_practices.md
├── groups/ # For groups of repositories
│ ├── frontend_repos/
│ │ └── best_practices.md
│ ├── backend_repos/
│ │ └── best_practices.md
│ ├── python_repos/
│ │ └── best_practices.md
│ ├── cpp_repos/
│ │ └── best_practices.md
│ └── ...
├── repo_a/ # For standalone repositories
│ └── best_practices.md
├── monorepo-name/ # For monorepo-specific rules
│ ├── best_practices.md # Root level monorepo rules
│ ├── service-a/ # Subproject best practices
│ │ └── best_practices.md
│ └── service-b/ # Another subproject
│ └── best_practices.md
└── ... # More repositories
```
> **Note:** In this structure, `pr-agent-settings`, `codebase_standards`, `global`, `groups`, `metadata.yaml`, and `best_practices.md` are hardcoded names that must be used exactly as shown. All other names (such as `frontend_repos`, `backend_repos`, `repo_a`, `monorepo-name`, `service-a`, etc.) are examples and should be replaced with your actual repository and service names.
???+ tip "Grouping and categorizing best practices"
- Each folder (including the global folder) can contain a single `best_practices.md` file
- Organize repository best practices by creating subfolders within the `groups` folder. Group them by purpose, programming languages, or other categories
3\. Define the metadata file `metadata.yaml` that maps your repositories to their relevant best practices paths, for example:
```yaml
# Standalone repos
repo_a:
best_practices_paths:
- "repo_a"
# Group-associated repos
repo_b:
best_practices_paths:
- "groups/backend_repos"
# Multi-group repos
repo_c:
best_practices_paths:
- "groups/frontend_repos"
- "groups/backend_repos"
# Monorepo with subprojects
monorepo-name:
best_practices_paths:
- "monorepo-name"
monorepo_subprojects:
service-a:
best_practices_paths:
- "monorepo-name/service-a"
service-b:
best_practices_paths:
- "monorepo-name/service-b"
```
4\. Set the following configuration in your global configuration file:
```toml
[best_practices]
enable_global_best_practices = true
```
???- info "Best practices priority and fallback behavior"
When global best practices are enabled, Qodo Merge follows this priority order:
1\. **Primary**: Global hierarchical best practices from `pr-agent-settings` repository:
1.1 If the repository is mapped in `metadata.yaml`, it uses the specified paths
1.2 For monorepos, it automatically collects best practices matching PR file paths
1.3 If no mapping exists, it falls back to the global best practices
2\. **Fallback**: Local repository `best_practices.md` file:
2.1 Used when global best practices are not found or configured
2.2 Acts as a safety net for repositories not yet configured in the global system
2.3 Local best practices are completely ignored when global best practices are successfully loaded
???- info "Edge cases and behavior"
- **Missing paths**: If specified paths in `metadata.yaml` don't exist in the file system, those paths are skipped
- **Monorepo subproject matching**: For monorepos, Qodo Merge automatically matches PR file paths against subproject paths to apply relevant best practices
- **Multiple group inheritance**: Repositories can inherit from multiple groups, and all applicable best practices are combined
[//]: # (#### Best practices for multiple languages)
[//]: # ()
[//]: # (For a git organization working with multiple programming languages, you can maintain a centralized global `best_practices.md` file containing language-specific guidelines.)
[//]: # (When reviewing pull requests, Qodo Merge automatically identifies the programming language and applies the relevant best practices from this file.)
[//]: # ()
[//]: # (To do this, structure your `best_practices.md` file using the following format:)
[//]: # ()
[//]: # (```)
[//]: # (# [Python])
[//]: # (...)
[//]: # (# [Java])
[//]: # (...)
[//]: # (# [JavaScript])
[//]: # (...)
[//]: # (```)
???- info "Dedicated label for best practices suggestions"
Best practice suggestions are labeled as `Organization best practice` by default.
To customize this label, modify it in your configuration file:
```toml
[best_practices]
organization_name = "..."
```
And the label will be: `{organization_name} best practice`.
#### Example results
![best_practice](https://codium.ai/images/pr_agent/org_best_practice.png){width=512}
### Auto best practices
>`💎 feature. Platforms supported: GitHub.`
`Auto best practices` is a novel Qodo Merge capability that:
1. Identifies recurring patterns from accepted suggestions
2. **Automatically** generates [best practices page](https://github.com/qodo-ai/pr-agent/wiki/.pr_agent_auto_best_practices) based on what your team consistently values
3. Applies these learned patterns to future code reviews
This creates an automatic feedback loop where the system continuously learns from your team's choices to provide increasingly relevant suggestions.
The system maintains two analysis phases:
- Open exploration for new issues
- Targeted checking against established best practices
Note that when a [custom best practices](https://qodo-merge-docs.qodo.ai/tools/improve/#best-practices) exist, Qodo Merge will still generate an 'auto best practices' wiki file, though it won't use it in the `improve` tool.
Learn more about utilizing 'auto best practices' in our [detailed guide](https://qodo-merge-docs.qodo.ai/core-abilities/auto_best_practices/).
#### Relevant configurations
```toml
[auto_best_practices]
# Disable all auto best practices usage or generation
enable_auto_best_practices = true
# Disable usage of auto best practices file in the 'improve' tool
utilize_auto_best_practices = true
# Extra instructions to the auto best practices generation prompt
extra_instructions = ""
# Max number of patterns to be detected
max_patterns = 5
```
### Multiple best practices sources
The `improve` tool will combine best practices from all available sources - global configuration, local configuration, and auto-generated files - to provide you with comprehensive recommendations.
### Combining 'extra instructions' and 'best practices'
> `💎 feature`
The `extra instructions` configuration is more related to the `improve` tool prompt. It can be used, for example, to avoid specific suggestions ("Don't suggest to add try-except block", "Ignore changes in toml files", ...) or to emphasize specific aspects or formats ("Answer in Japanese", "Give only short suggestions", ...)
In contrast, the `best_practices.md` file is a general guideline for the way code should be written in the repo.
Using a combination of both can help the AI model to provide relevant and tailored suggestions.
## Usage Tips
### Self-review
If you set in a configuration file:
### Implementing the proposed code suggestions
Each generated suggestion consists of three key elements:
1. A single-line summary of the proposed change
2. An expandable section containing a comprehensive description of the suggestion
3. A diff snippet showing the recommended code modification (before and after)
We advise users to apply critical analysis and judgment when implementing the proposed suggestions.
In addition to mistakes (which may happen, but are rare), sometimes the presented code modification may serve more as an _illustrative example_ than a directly applicable solution.
In such cases, we recommend prioritizing the suggestion's detailed description, using the diff snippet primarily as a supporting reference.
### Dual publishing mode
Our recommended approach for presenting code suggestions is through a [table](https://qodo-merge-docs.qodo.ai/tools/improve/#overview) (`--pr_code_suggestions.commitable_code_suggestions=false`).
This method significantly reduces the PR footprint and allows for quick and easy digestion of multiple suggestions.
We also offer a complementary **dual publishing mode**. When enabled, suggestions exceeding a certain score threshold are not only displayed in the table, but also presented as committable PR comments.
This mode helps highlight suggestions deemed more critical.
To activate dual publishing mode, use the following setting:
```toml
[pr_code_suggestions]
dual_publishing_score_threshold = x
```
Where x represents the minimum score threshold (>=) for suggestions to be presented as committable PR comments in addition to the table. Default is -1 (disabled).
### Controlling suggestions depth
> `💎 feature`
You can control the depth and comprehensiveness of the code suggestions by using the `pr_code_suggestions.suggestions_depth` parameter.
Available options:
- `selective` - Shows only suggestions above a score threshold of 6
- `regular` - Default mode with balanced suggestion coverage
- `exhaustive` - Provides maximum suggestion comprehensiveness
(Alternatively, use numeric values: 1, 2, or 3 respectively)
We recommend starting with `regular` mode, then exploring `exhaustive` mode, which can provide more comprehensive suggestions and enhanced bug detection.
### Self-review
> `💎 feature. Platforms supported: GitHub, GitLab`
If you set in a configuration file:
```toml
[pr_code_suggestions]
demand_code_suggestions_self_review = true
```
The `improve` tool will add a checkbox below the suggestions, prompting user to acknowledge that they have reviewed the suggestions.
You can set the content of the checkbox text via:
```
```toml
[pr_code_suggestions]
code_suggestions_self_review_text = "... (your text here) ..."
```
![self_review_1](https://codium.ai/images/pr_agent/self_review_1.png){width=512}
!!! tip "Tip - Reducing visual footprint after self-review 💎"
💎 In addition, by setting:
```
The configuration parameter `pr_code_suggestions.fold_suggestions_on_self_review` (default is True)
can be used to automatically fold the suggestions after the user clicks the self-review checkbox.
This reduces the visual footprint of the suggestions, and also indicates to the PR reviewer that the suggestions have been reviewed by the PR author, and don't require further attention.
!!! tip "Tip - Demanding self-review from the PR author 💎"
By setting:
```toml
[pr_code_suggestions]
approve_pr_on_self_review = true
```
the tool can automatically approve the PR when the user checks the self-review checkbox.
the tool can automatically add an approval when the PR author clicks the self-review checkbox.
!!! tip "Tip - demanding self-review from the PR author"
If you set the number of required reviewers for a PR to 2, this effectively means that the PR author must click the self-review checkbox before the PR can be merged (in addition to a human reviewer).
- If you set the number of required reviewers for a PR to 2, this effectively means that the PR author must click the self-review checkbox before the PR can be merged (in addition to a human reviewer).
![self_review_2](https://codium.ai/images/pr_agent/self_review_2.png){width=512}
### `Extra instructions` and `best practices`
- If you keep the number of required reviewers for a PR to 1 and enable this configuration, this effectively means that the PR author can approve the PR by actively clicking the self-review checkbox.
#### Extra instructions
You can use the `extra_instructions` configuration option to give the AI model additional instructions for the `improve` tool.
Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter. Specify relevant aspects that you want the model to focus on.
To prevent unauthorized approvals, this configuration defaults to false, and cannot be altered through online comments; enabling requires a direct update to the configuration file and a commit to the repository. This ensures that utilizing the feature demands a deliberate documented decision by the repository owner.
Examples for possible instructions:
```
### How many code suggestions are generated?
Qodo Merge uses a dynamic strategy to generate code suggestions based on the size of the pull request (PR). Here's how it works:
#### 1. Chunking large PRs
- Qodo Merge divides large PRs into 'chunks'.
- Each chunk contains up to `config.max_model_tokens` tokens (default: 32,000).
#### 2. Generating suggestions
- For each chunk, Qodo Merge generates up to `pr_code_suggestions.num_code_suggestions_per_chunk` suggestions (default: 3).
This approach has two main benefits:
- Scalability: The number of suggestions scales with the PR size, rather than being fixed.
- Quality: By processing smaller chunks, the AI can maintain higher quality suggestions, as larger contexts tend to decrease AI performance.
Note: Chunking is primarily relevant for large PRs. For most PRs (up to 600 lines of code), Qodo Merge will be able to process the entire code in a single call.
#### Maximum coverage configuration
> `💎 feature`
For critical code reviews requiring maximum coverage, you can combine several settings to achieve a "super exhaustive" analysis. This is not a built-in mode, but a configuration recipe for advanced use cases.
```toml
# Recipe for maximum suggestion comprehensiveness
[pr_code_suggestions]
extra_instructions="""\
(1) Answer in japanese
(2) Don't suggest to add try-excpet block
(3) Ignore changes in toml files
...
"""
suggestions_depth = "exhaustive"
enable_suggestion_type_reuse = true
num_code_suggestions_per_chunk = 100
num_best_practice_suggestions = 100
```
Use triple quotes to write multi-line instructions. Use bullet points or numbers to make the instructions more readable.
#### Best practices 💎
Another option to give additional guidance to the AI model is by creating a dedicated [**wiki page**](https://github.com/Codium-ai/pr-agent/wiki) called `best_practices.md`.
This page can contain a list of best practices, coding standards, and guidelines that are specific to your repo/organization
This configuration is recommended for:
The AI model will use this page as a reference, and in case the PR code violates any of the guidelines, it will suggest improvements accordingly, with a dedicated label: `Organization
best practice`.
- Critical code reviews requiring maximum coverage
- Final reviews before major releases
- Code quality audits
Example for a `best_practices.md` content can be found [here](https://github.com/Codium-ai/pr-agent/blob/main/docs/docs/usage-guide/EXAMPLE_BEST_PRACTICE.md) (adapted from Google's [pyguide](https://google.github.io/styleguide/pyguide.html)).
This file is only an example. Since it is used as a prompt for an AI model, we want to emphasize the following:
???- warning "Performance considerations"
- It should be written in a clear and concise manner
- If needed, it should give short relevant code snippets as examples
- Up to 800 lines are allowed
This configuration will significantly increase:
- Analysis time and API costs
- Number of suggestions generated (potentially overwhelming)
- Comment volume in your PR
Example results:
![best_practice](https://codium.ai/images/pr_agent/org_best_practice.png){width=512}
Note that while the `extra instructions` are more related to the way the `improve` tool behaves, the `best_practices.md` file is a general guideline for the way code should be written in the repo.
Using a combination of both can help the AI model to provide relevant and tailored suggestions.
Use this configuration judiciously and consider your team's review capacity.
## Configuration options
!!! example "General options"
???+ example "General options"
<table>
<tr>
<td><b>num_code_suggestions</b></td>
<td>Number of code suggestions provided by the 'improve' tool. Default is 4 for CLI, 0 for auto tools.</td>
</tr>
<tr>
<td><b>extra_instructions</b></td>
<td>Optional extra instructions to the tool. For example: "focus on the changes in the file X. Ignore change in ...".</td>
</tr>
<tr>
<td><b>rank_suggestions</b></td>
<td>If set to true, the tool will rank the suggestions, based on importance. Default is false.</td>
<td><b>commitable_code_suggestions</b></td>
<td>If set to true, the tool will display the suggestions as committable code comments. Default is false.</td>
</tr>
<tr>
<td><b>commitable_code_suggestions</b></td>
<td>If set to true, the tool will display the suggestions as commitable code comments. Default is false.</td>
<td><b>enable_chat_in_code_suggestions</b></td>
<td>If set to true, QM bot will interact with comments made on code changes it has proposed. Default is true.</td>
</tr>
<tr>
<td><b>suggestions_depth 💎</b></td>
<td> Controls the depth of the suggestions. Can be set to 'selective', 'regular', or 'exhaustive'. Default is 'regular'.</td>
</tr>
<tr>
<td><b>dual_publishing_score_threshold</b></td>
<td>Minimum score threshold for suggestions to be presented as committable PR comments in addition to the table. Default is -1 (disabled).</td>
</tr>
<tr>
<td><b>focus_only_on_problems</b></td>
<td>If set to true, suggestions will focus primarily on identifying and fixing code problems, and less on style considerations like best practices, maintainability, or readability. Default is true.</td>
</tr>
<tr>
<td><b>persistent_comment</b></td>
<td>If set to true, the improve comment will be persistent, meaning that every new improve request will edit the previous one. Default is false.</td>
</tr>
<tr>
<td><b>self_reflect_on_suggestions</b></td>
<td>If set to true, the improve tool will calculate an importance score for each suggestion [1-10], and sort the suggestion labels group based on this score. Default is true.</td>
<td>If set to true, the improve comment will be persistent, meaning that every new improve request will edit the previous one. Default is true.</td>
</tr>
<tr>
<td><b>suggestions_score_threshold</b></td>
@ -175,46 +626,59 @@ Using a combination of both can help the AI model to provide relevant and tailor
<td><b>apply_suggestions_checkbox</b></td>
<td> Enable the checkbox to create a committable suggestion. Default is true.</td>
</tr>
<tr>
<td><b>enable_more_suggestions_checkbox</b></td>
<td> Enable the checkbox to generate more suggestions. Default is true.</td>
</tr>
<tr>
<td><b>enable_help_text</b></td>
<td>If set to true, the tool will display a help text in the comment. Default is true.</td>
<td>If set to true, the tool will display a help text in the comment. Default is false.</td>
</tr>
<tr>
<td><b>enable_chat_text</b></td>
<td>If set to true, the tool will display a reference to the PR chat in the comment. Default is false.</td>
</tr>
<tr>
<td><b>publish_output_no_suggestions</b></td>
<td>If set to true, the tool will publish a comment even if no suggestions were found. Default is true.</td>
<tr>
<td><b>wiki_page_accepted_suggestions</b></td>
<td>If set to true, the tool will automatically track accepted suggestions in a dedicated wiki page called `.pr_agent_accepted_suggestions`. Default is true.</td>
</tr>
<tr>
<td><b>allow_thumbs_up_down</b></td>
<td>If set to true, all code suggestions will have thumbs up and thumbs down buttons, to encourage users to provide feedback on the suggestions. Default is false. Note that this feature is for statistics tracking. It will not affect future feedback from the AI model.</td>
</tr>
</table>
!!! example "params for 'extended' mode"
???+ example "Params for number of suggestions and AI calls"
<table>
<tr>
<td><b>auto_extended_mode</b></td>
<td>Enable extended mode automatically (no need for the --extended option). Default is true.</td>
<td>Enable chunking the PR code and running the tool on each chunk. Default is true.</td>
</tr>
<tr>
<td><b>num_code_suggestions_per_chunk</b></td>
<td>Number of code suggestions provided by the 'improve' tool, per chunk. Default is 5.</td>
<td>Number of code suggestions provided by the 'improve' tool, per chunk. Default is 3.</td>
</tr>
<tr>
<td><b>rank_extended_suggestions</b></td>
<td>If set to true, the tool will rank the suggestions, based on importance. Default is true.</td>
<td><b>num_best_practice_suggestions 💎</b></td>
<td>Number of code suggestions provided by the 'improve' tool for best practices. Default is 1.</td>
</tr>
<tr>
<td><b>max_number_of_calls</b></td>
<td>Maximum number of chunks. Default is 5.</td>
</tr>
<tr>
<td><b>final_clip_factor</b></td>
<td>Factor to remove suggestions with low confidence. Default is 0.9.</td>
<td>Maximum number of chunks. Default is 3.</td>
</tr>
</table>
## A note on code suggestions quality
## Understanding AI Code Suggestions
- While the current AI for code is getting better and better (GPT-4), it's not flawless. Not all the suggestions will be perfect, and a user should not accept all of them automatically. Critical reading and judgment are required.
- While mistakes of the AI are rare but can happen, a real benefit from the suggestions of the `improve` (and [`review`](https://pr-agent-docs.codium.ai/tools/review/)) tool is to catch, with high probability, **mistakes or bugs done by the PR author**, when they happen. So, it's a good practice to spend the needed ~30-60 seconds to review the suggestions, even if not all of them are always relevant.
- The hierarchical structure of the suggestions is designed to help the user to _quickly_ understand them, and to decide which ones are relevant and which are not:
- Only if the `Category` header is relevant, the user should move to the summarized suggestion description
- Only if the summarized suggestion description is relevant, the user should click on the collapsible, to read the full suggestion description with a code preview example.
In addition, we recommend to use the `extra_instructions` field to guide the model to suggestions that are more relevant to the specific needs of the project.
<br>
Consider also trying the [Custom Prompt Tool](./custom_prompt.md) 💎, that will **only** propose code suggestions that follow specific guidelines defined by user.
- **AI Limitations:** AI models for code are getting better and better, but they are not flawless. Not all the suggestions will be perfect, and a user should not accept all of them automatically. Critical reading and judgment are required. Mistakes of the AI are rare but can happen, and it is usually quite easy for a human to spot them.
- **Purpose of Suggestions:**
- **Self-reflection:** The suggestions aim to enable developers to _self-reflect_ and improve their pull requests. This process can help to identify blind spots, uncover missed edge cases, and enhance code readability and coherency. Even when a specific code suggestion isn't suitable, the underlying issue it highlights often reveals something important that might deserve attention.
- **Bug detection:** The suggestions also alert on any _critical bugs_ that may have been identified during the analysis. This provides an additional safety net to catch potential issues before they make it into production. It's perfectly acceptable to implement only the suggestions you find valuable for your specific context.
- **Hierarchy:** Presenting the suggestions in a structured hierarchical table enables the user to _quickly_ understand them, and to decide which ones are relevant and which are not.
- **Customization:** To guide the model to suggestions that are more relevant to the specific needs of your project, we recommend using the [`extra_instructions`](https://qodo-merge-docs.qodo.ai/tools/improve/#extra-instructions-and-best-practices) and [`best practices`](https://qodo-merge-docs.qodo.ai/tools/improve/#best-practices) fields.
- **Model Selection:** SaaS users can also [choose](https://qodo-merge-docs.qodo.ai/usage-guide/qodo_merge_models/) between different models. For specific programming languages or use cases, some models may perform better than others.
- **Interactive usage:** The interactive [PR chat](https://qodo-merge-docs.qodo.ai/chrome-extension/) also provides an easy way to get more tailored suggestions and feedback from the AI model.

View file

@ -1,13 +1,14 @@
## Overview
The `improve_component` tool generates code suggestions for a specific code component that changed in the PR.
The `improve_component` tool generates code suggestions for a specific code component that has changed in the PR.
it can be invoked manually by commenting on any PR:
```
/improve_component component_name
```
To get a list of the components that changed in the PR and choose the relevant component interactively, use the [`analyze`](./analyze.md) tool.
## Example usage
Invoke the tool manually by commenting `/improve_component` on any PR:
@ -18,11 +19,12 @@ The tool will generate code suggestions for the selected component (if no compon
![improve_component2](https://codium.ai/images/pr_agent/improve_component2.png){width=768}
**Notes**
- Language that are currently supported by the tool: Python, Java, C++, JavaScript, TypeScript, C#.
!!! note "Notes"
- Languages that are currently supported by the tool: `Python, Java, C++, JavaScript, TypeScript, C#, Go, Kotlin`
- This tool can also be triggered interactively by using the [`analyze`](./analyze.md) tool.
## Configuration options
- `num_code_suggestions`: number of code suggestions to provide. Default is 4
- `extra_instructions`: Optional extra instructions to the tool. For example: "focus on ...".
- `file`: in case there are several components with the same name, you can specify the relevant file.

View file

@ -1,6 +1,6 @@
# Tools
Here is a list of PR-Agent tools, each with a dedicated page that explains how to use it:
Here is a list of Qodo Merge tools, each with a dedicated page that explains how to use it:
| Tool | Description |
|------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|
@ -8,15 +8,20 @@ Here is a list of PR-Agent tools, each with a dedicated page that explains how t
| **[PR Review (`/review`](./review.md))** | Adjustable feedback about the PR, possible issues, security concerns, review effort and more |
| **[Code Suggestions (`/improve`](./improve.md))** | Code suggestions for improving the PR |
| **[Question Answering (`/ask ...`](./ask.md))** | Answering free-text questions about the PR, or on specific code lines |
| **[Update Changelog (`/update_changelog`](./update_changelog.md))** | Automatically updating the CHANGELOG.md file with the PR changes |
| **[Find Similar Issue (`/similar_issue`](./similar_issues.md))** | Automatically retrieves and presents similar issues |
| **[Help (`/help`](./help.md))** | Provides a list of all the available tools. Also enables to trigger them interactively (💎) |
| **[Help Docs (`/help_docs`](./help_docs.md))** | Answer a free-text question based on a git documentation folder. |
| **[Update Changelog (`/update_changelog`](./update_changelog.md))** | Automatically updating the CHANGELOG.md file with the PR changes |
| **💎 [Add Documentation (`/add_docs`](./documentation.md))** | Generates documentation to methods/functions/classes that changed in the PR |
| **💎 [Generate Custom Labels (`/generate_labels`](./custom_labels.md))** | Generates custom labels for the PR, based on specific guidelines defined by the user |
| **💎 [Analyze (`/analyze`](./analyze.md))** | Identify code components that changed in the PR, and enables to interactively generate tests, docs, and code suggestions for each component |
| **💎 [Custom Prompt (`/custom_prompt`](./custom_prompt.md))** | Automatically generates custom suggestions for improving the PR code, based on specific guidelines defined by the user |
| **💎 [Generate Tests (`/test component_name`](./test.md))** | Automatically generates unit tests for a selected component, based on the PR code changes |
| **💎 [Improve Component (`/improve_component component_name`](./improve_component.md))** | Generates code suggestions for a specific code component that changed in the PR |
| **💎 [CI Feedback (`/checks ci_job`](./ci_feedback.md))** | Automatically generates feedback and analysis for a failed CI job |
| **💎 [Compliance (`/compliance`](./compliance.md))** | Comprehensive compliance checks for security, ticket requirements, and custom organizational rules |
| **💎 [Custom Prompt (`/custom_prompt`](./custom_prompt.md))** | Automatically generates custom suggestions for improving the PR code, based on specific guidelines defined by the user |
| **💎 [Generate Custom Labels (`/generate_labels`](./custom_labels.md))** | Generates custom labels for the PR, based on specific guidelines defined by the user |
| **💎 [Generate Tests (`/test`](./test.md))** | Automatically generates unit tests for a selected component, based on the PR code changes |
| **💎 [Implement (`/implement`](./implement.md))** | Generates implementation code from review suggestions |
| **💎 [Improve Component (`/improve_component component_name`](./improve_component.md))** | Generates code suggestions for a specific code component that changed in the PR |
| **💎 [PR to Ticket (`/create_ticket`](./pr_to_ticket.md))** | Generates ticket in the ticket tracking systems (Jira, Linear, or Git provider issues) based on PR content |
| **💎 [Scan Repo Discussions (`/scan_repo_discussions`](./scan_repo_discussions.md))** | Generates `best_practices.md` file based on previous discussions in the repository |
| **💎 [Similar Code (`/similar_code`](./similar_code.md))** | Retrieves the most similar code components from inside the organization's codebase, or from open-source code. |
Note that the tools marked with 💎 are available only for PR-Agent Pro users.
Note that the tools marked with 💎 are available only for Qodo Merge users.

View file

@ -0,0 +1,89 @@
`Platforms supported: GitHub, GitLab, Bitbucket`
`Supported Ticket providers: Jira, Linear, GitHub Issues, Gitlab Issues`
## Overview
The `create_ticket` tool automatically generates tickets in ticket tracking systems (`Jira`, `Linear`, or `GitHub Issues` and `Gitlab issues`) based on PR content.
It analyzes the PR's data (code changes, commit messages, and description) to create well-structured tickets that capture the essence of the development work, helping teams maintain traceability between code changes and project management systems.
When a ticket is created, it appears in the PR description under an `Auto-created Ticket` section, complete with a link to the generated ticket.
![auto_created_ticket_in_description](https://codium.ai/images/pr_agent/auto_created_ticket_in_description.png){width=512}
!!! info "Pre-requisites"
- To use this tool you need to integrate your ticketing system with Qodo-merge, follow the [Ticket Compliance Documentation](https://qodo-merge-docs.qodo.ai/core-abilities/fetching_ticket_context/).
- For Jira Cloud users, please re-integrate your connection through the [qodo merge integration page](https://app.qodo.ai/qodo-merge/integrations) to enable the `update` permission required for ticket creation
- You need to configure the project key in ticket corresponding to the repository where the PR is created. This is done by adding the `default_project_key`.
```toml
[pr_to_ticket]
default_project_key = "PROJECT_KEY" # e.g., "SCRUM"
```
## Usage
there are 3 ways to use the `create_ticket` tool:
1. [**Automatic Ticket Creation**](#automatic-ticket-creation)
2. [**Interactive Triggering via Compliance Tool**](#interactive-triggering-via-compliance-tool)
3. [**Manual Ticket Creation**](#manual-ticket-creation)
### Automatic Ticket Creation
The tool can be configured to automatically create tickets when a PR is opened or updated and the PR does not already have a ticket associated with it.
This ensures that every code change is documented in the ticketing system without manual intervention.
To configure automatic ticket creation, add the following to `.pr_agent.toml`:
```toml
[pr_description]
auto_create_ticket = true
```
### Interactive Triggering via Compliance Tool
`Supported only in Github and Gitlab`
The tool can be triggered interactively through a checkbox in the compliance tool. This allows users to create tickets as part of their PR Compliance Review workflow.
![ticket creation via compliance tool](https://codium.ai/images/pr_agent/ticket_creation_from_compliance1.png){width=512}
- After clicking the checkbox, the tool will create a ticket and will add/update the `PR Description` with a section called `Auto-created Ticket` with the link to the created ticket.
- Then you can click `update` in the `Ticket compliance` section in the `Compliance` tool
![compliance_auto_created_ticket_final](https://codium.ai/images/pr_agent/compliance_auto_created_ticket_final.png){width=512}
### Manual Ticket Creation
Users can manually trigger the ticket creation process from the PR interface.
To trigger ticket creation manually, the user can call this tool from the PR comment:
```
/create_ticket
```
After triggering, the tool will create a ticket and will add/update the `PR Description` with a section called `Auto-created Ticket` with the link to the created ticket.
## Configuration
## Configuration Options
???+ example "Configuration"
<table>
<tr>
<td><b>default_project_key</b></td>
<td>The default project key for your ticketing system (e.g., `SCRUM`). This is required unless `fallback_to_git_provider_issues` is set to `true`.</td>
</tr>
<tr>
<td><b>default_base_url</b></td>
<td>If your organization have integrated to multiple ticketing systems, you can set the default base URL for the ticketing system. This will be used to create tickets in the default system. Example: `https://YOUR-ORG.atlassian.net`.</td>
</tr>
<tr>
<td><b>fallback_to_git_provider_issues</b></td>
<td>If set to `true`, the tool will create issues in the Git provider's issue tracker (GitHub, Gitlab) if the `default_project_key` is not configured in the repository configuration. Default is `false`.</td>
</tr>
</table>
## Helping Your Organization Meet SOC-2 Requirements
The `create_ticket` tool helps your organization satisfy SOC-2 compliance. By automatically creating tickets from PRs and establishing bidirectional links between them, it ensures every code change is traceable to its corresponding business requirement or task.

View file

@ -1,12 +1,16 @@
## Overview
The `review` tool scans the PR code changes, and generates a list of feedbacks about the PR, aiming to aid the reviewing process.
The `review` tool scans the PR code changes, and generates feedback about the PR, aiming to aid the reviewing process.
<br>
The tool can be triggered automatically every time a new PR is [opened](../usage-guide/automations_and_usage.md#github-app-automatic-tools-when-a-new-pr-is-opened), or can be invoked manually by commenting on any PR:
```
/review
```
Note that the main purpose of the `review` tool is to provide the **PR reviewer** with useful feedbacks and insights. The PR author, in contrast, may prefer to save time and focus on the output of the [improve](./improve.md) tool, which provides actionable code suggestions.
Note that the main purpose of the `review` tool is to provide the **PR reviewer** with useful feedback and insights. The PR author, in contrast, may prefer to save time and focus on the output of the [improve](./improve.md) tool, which provides actionable code suggestions.
(Read more about the different personas in the PR process and how Qodo Merge aims to assist them in our [blog](https://www.codium.ai/blog/understanding-the-challenges-and-pain-points-of-the-pull-request-cycle/))
## Example usage
@ -21,13 +25,15 @@ After ~30 seconds, the tool will generate a review for the PR:
![review](https://codium.ai/images/pr_agent/review3.png){width=512}
If you want to edit [configurations](#configuration-options), add the relevant ones to the command:
```
/review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...
```
### Automatic triggering
To run the `review` automatically when a PR is opened, define in a [configuration file](https://pr-agent-docs.codium.ai/usage-guide/configuration_options/#wiki-configuration-file):
To run the `review` automatically when a PR is opened, define in a [configuration file](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/#wiki-configuration-file):
```
[github_app]
pr_commands = [
@ -36,83 +42,41 @@ pr_commands = [
]
[pr_reviewer]
num_code_suggestions = ...
extra_instructions = "..."
...
```
- The `pr_commands` lists commands that will be executed automatically when a PR is opened.
- The `[pr_reviewer]` section contains the configurations for the `review` tool you want to edit (if any).
[//]: # ()
[//]: # (### Incremental Mode)
[//]: # (Incremental review only considers changes since the last PR-Agent review. This can be useful when working on the PR in an iterative manner, and you want to focus on the changes since the last review instead of reviewing the entire PR again.)
[//]: # (For invoking the incremental mode, the following command can be used:)
[//]: # (```)
[//]: # (/review -i)
[//]: # (```)
[//]: # (Note that the incremental mode is only available for GitHub.)
[//]: # ()
[//]: # (![incremental review]&#40;https://codium.ai/images/pr_agent/incremental_review_2.png&#41;{width=512})
[//]: # (### PR Reflection)
[//]: # ()
[//]: # (By invoking:)
[//]: # (```)
[//]: # (/reflect_and_review)
[//]: # (```)
[//]: # (The tool will first ask the author questions about the PR, and will guide the review based on their answers.)
[//]: # ()
[//]: # (![reflection questions]&#40;https://codium.ai/images/pr_agent/reflection_questions.png&#41;{width=512})
[//]: # ()
[//]: # (![reflection answers]&#40;https://codium.ai/images/pr_agent/reflection_answers.png&#41;{width=512})
[//]: # ()
[//]: # (![reflection insights]&#40;https://codium.ai/images/pr_agent/reflection_insights.png&#41;{width=512})
## Configuration options
!!! example "General options"
???+ example "General options"
<table>
<tr>
<td><b>num_code_suggestions</b></td>
<td>Number of code suggestions provided by the 'review' tool. Default is 0, meaning no code suggestions will be provided by the `review` tool.</td>
</tr>
<tr>
<td><b>inline_code_comments</b></td>
<td>If set to true, the tool will publish the code suggestions as comments on the code diff. Default is false. Note that you need to set `num_code_suggestions`>0 to get code suggestions </td>
</tr>
<tr>
<td><b>persistent_comment</b></td>
<td>If set to true, the review comment will be persistent, meaning that every new review request will edit the previous one. Default is true.</td>
</tr>
<tr>
<td><b>final_update_message</b></td>
<td>When set to true, updating a persistent review comment during online commenting will automatically add a short comment with a link to the updated review in the pull request .Default is true.</td>
</tr>
<tr>
<td><b>extra_instructions</b></td>
<td>Optional extra instructions to the tool. For example: "focus on the changes in the file X. Ignore change in ...".</td>
</tr>
<tr>
<td><b>enable_help_text</b></td>
<td>If set to true, the tool will display a help text in the comment. Default is true.</td>
<td>If set to true, the tool will display a help text in the comment. Default is false.</td>
</tr>
<tr>
<td><b>num_max_findings</b></td>
<td>Number of maximum returned findings. Default is 3.</td>
</tr>
</table>
!!! example "Enable\\disable specific sub-sections"
???+ example "Enable\\disable specific sub-sections"
<table>
<tr>
@ -127,6 +91,10 @@ num_code_suggestions = ...
<td><b>require_estimate_effort_to_review</b></td>
<td>If set to true, the tool will add a section that estimates the effort needed to review the PR. Default is true.</td>
</tr>
<tr>
<td><b>require_estimate_contribution_time_cost</b></td>
<td>If set to true, the tool will add a section that estimates the time required for a senior developer to create and submit such changes. Default is false.</td>
</tr>
<tr>
<td><b>require_can_be_split_review</b></td>
<td>If set to true, the tool will add a section that checks if the PR contains several themes, and can be split into smaller PRs. Default is false.</td>
@ -135,24 +103,18 @@ num_code_suggestions = ...
<td><b>require_security_review</b></td>
<td>If set to true, the tool will add a section that checks if the PR contains a possible security or vulnerability issue. Default is true.</td>
</tr>
</table>
!!! example "SOC2 ticket compliance 💎"
This sub-tool checks if the PR description properly contains a ticket to a project management system (e.g., Jira, Asana, Trello, etc.), as required by SOC2 compliance. If not, it will add a label to the PR: "Missing SOC2 ticket".
<table>
<tr>
<td><b>require_soc2_ticket</b></td>
<td>If set to true, the SOC2 ticket checker sub-tool will be enabled. Default is false.</td>
<td><b>require_todo_scan</b></td>
<td>If set to true, the tool will add a section that lists TODO comments found in the PR code changes. Default is false.
</td>
</tr>
<tr>
<td><b>soc2_ticket_prompt</b></td>
<td>The prompt for the SOC2 ticket review. Default is: `Does the PR description include a link to ticket in a project management system (e.g., Jira, Asana, Trello, etc.) ?`. Edit this field if your compliance requirements are different.</td>
<td><b>require_ticket_analysis_review</b></td>
<td>If set to true, and the PR contains a GitHub or Jira ticket link, the tool will add a section that checks if the PR in fact fulfilled the ticket requirements. Default is true.</td>
</tr>
</table>
!!! example "Adding PR labels"
???+ example "Adding PR labels"
You can enable\disable the `review` tool to add specific labels to the PR:
@ -163,55 +125,58 @@ You can enable\disable the `review` tool to add specific labels to the PR:
</tr>
<tr>
<td><b>enable_review_labels_effort</b></td>
<td>If set to true, the tool will publish a 'Review effort [1-5]: x' label. Default is true.</td>
</tr>
</table>
!!! example "Auto-approval"
If enabled, the `review` tool can approve a PR when a specific comment, `/review auto_approve`, is invoked.
<table>
<tr>
<td><b>enable_auto_approval</b></td>
<td>If set to true, the tool will approve the PR when invoked with the 'auto_approve' command. Default is false. This flag can be changed only from a configuration file.</td>
</tr>
<tr>
<td><b>maximal_review_effort</b></td>
<td>Maximal effort level for auto-approval. If the PR's estimated review effort is above this threshold, the auto-approval will not run. Default is 5.</td>
<td>If set to true, the tool will publish a 'Review effort x/5' label (15 scale). Default is true.</td>
</tr>
</table>
## Usage Tips
!!! tip "General guidelines"
### General guidelines
!!! tip ""
The `review` tool provides a collection of configurable feedbacks about a PR.
It is recommended to review the [Configuration options](#configuration-options) section, and choose the relevant options for your use case.
Some of the features that are disabled by default are quite useful, and should be considered for enabling. For example:
`require_score_review`, `require_soc2_ticket`, and more.
`require_score_review`, and more.
On the other hand, if you find one of the enabled features to be irrelevant for your use case, disable it. No default configuration can fit all use cases.
!!! tip "Automation"
When you first install PR-Agent app, the [default mode](../usage-guide/automations_and_usage.md#github-app-automatic-tools-when-a-new-pr-is-opened) for the `review` tool is:
### Automation
!!! tip ""
When you first install Qodo Merge app, the [default mode](../usage-guide/automations_and_usage.md#github-app-automatic-tools-when-a-new-pr-is-opened) for the `review` tool is:
```
pr_commands = ["/review --pr_reviewer.num_code_suggestions=0", ...]
pr_commands = ["/review", ...]
```
Meaning the `review` tool will run automatically on every PR, without providing code suggestions.
Meaning the `review` tool will run automatically on every PR, without any additional configurations.
Edit this field to enable/disable the tool, or to change the configurations used.
!!! tip "Possible labels from the review tool"
### Auto-generated PR labels by the Review Tool
The `review` tool can auto-generate two specific types of labels for a PR:
!!! tip ""
- a `possible security issue` label that detects if a possible [security issue](https://github.com/Codium-ai/pr-agent/blob/tr/user_description/pr_agent/settings/pr_reviewer_prompts.toml#L136) exists in the PR code (`enable_review_labels_security` flag)
- a `Review effort [1-5]: x` label, where x is the estimated effort to review the PR (`enable_review_labels_effort` flag)
The `review` can tool automatically add labels to your Pull Requests:
Both modes are useful, and we recommended to enable them.
- **`possible security issue`**: This label is applied if the tool detects a potential [security vulnerability](https://github.com/qodo-ai/pr-agent/blob/main/pr_agent/settings/pr_reviewer_prompts.toml#L103) in the PR's code. This feedback is controlled by the 'enable_review_labels_security' flag (default is true).
- **`review effort [x/5]`**: This label estimates the [effort](https://github.com/qodo-ai/pr-agent/blob/main/pr_agent/settings/pr_reviewer_prompts.toml#L90) required to review the PR on a relative scale of 1 to 5, where 'x' represents the assessed effort. This feedback is controlled by the 'enable_review_labels_effort' flag (default is true).
- **`ticket compliance`**: Adds a label indicating code compliance level ("Fully compliant" | "PR Code Verified" | "Partially compliant" | "Not compliant") to any GitHub/Jira/Linea ticket linked in the PR. Controlled by the 'require_ticket_labels' flag (default: false). If 'require_no_ticket_labels' is also enabled, PRs without ticket links will receive a "No ticket found" label.
!!! tip "Extra instructions"
### Auto-blocking PRs from being merged based on the generated labels
!!! tip ""
You can configure a CI/CD Action to prevent merging PRs with specific labels. For example, implement a dedicated [GitHub Action](https://medium.com/sequra-tech/quick-tip-block-pull-request-merge-using-labels-6cc326936221).
This approach helps ensure PRs with potential security issues or ticket compliance problems will not be merged without further review.
Since AI may make mistakes or lack complete context, use this feature judiciously. For flexibility, users with appropriate permissions can remove generated labels when necessary. When a label is removed, this action will be automatically documented in the PR discussion, clearly indicating it was a deliberate override by an authorized user to allow the merge.
### Extra instructions
!!! tip ""
Extra instructions are important.
The `review` tool can be configured with extra instructions, which can be used to guide the model to a feedback tailored to the needs of your project.
@ -230,40 +195,3 @@ If enabled, the `review` tool can approve a PR when a specific comment, `/review
"""
```
Use triple quotes to write multi-line instructions. Use bullet points to make the instructions more readable.
!!! tip "Auto-approval"
PR-Agent can approve a PR when a specific comment is invoked.
To ensure safety, the auto-approval feature is disabled by default. To enable auto-approval, you need to actively set in a pre-defined configuration file the following:
```
[pr_reviewer]
enable_auto_approval = true
```
(this specific flag cannot be set with a command line argument, only in the configuration file, committed to the repository)
After enabling, by commenting on a PR:
```
/review auto_approve
```
PR-Agent will automatically approve the PR, and add a comment with the approval.
You can also enable auto-approval only if the PR meets certain requirements, such as that the `estimated_review_effort` label is equal or below a certain threshold, by adjusting the flag:
```
[pr_reviewer]
maximal_review_effort = 5
```
[//]: # (!!! tip "Code suggestions")
[//]: # ()
[//]: # ( If you set `num_code_suggestions`>0 , the `review` tool will also provide code suggestions.)
[//]: # ( )
[//]: # ( Notice If you are interested **only** in the code suggestions, it is recommended to use the [`improve`]&#40;./improve.md&#41; feature instead, since it is a dedicated only to code suggestions, and usually gives better results.)
[//]: # ( Use the `review` tool if you want to get more comprehensive feedback, which includes code suggestions as well.)

View file

@ -0,0 +1,44 @@
`Platforms supported: GitHub`
## Overview
The `scan_repo_discussions` tool analyzes code discussions (meaning review comments over code lines) from merged pull requests over the past 12 months.
It processes these discussions alongside other PR metadata to identify recurring patterns related to best practices in team feedback and code reviews, generating a comprehensive [`best_practices.md`](https://github.com/qodo-ai/pr-agent/blob/qodo-merge-best-practices_2025-04-16_1018/best_practices.md) document that distills key insights and recommendations.
This file captures repository-specific patterns derived from your team's actual workflow and discussions, rather than more generic best practices.
It will be utilized by Qodo Merge to provide tailored suggestions for improving code quality in future pull requests.
!!! note "Active repositories are needed"
The tool is designed to work with real-life repositories, as it relies on actual discussions to generate meaningful insights.
At least 50 merged PRs are required to generate the `best_practices.md` file.
!!! note "Additional customization"
Teams are encouraged to further customize and refine these insights to better align with their specific development priorities and contexts.
This can be done by editing the `best_practices.md` file directly when the PR is created, or iteratively over time to enhance the 'best practices' suggestions provided by Qodo Merge.
The tool can be invoked manually by commenting on any PR:
```
/scan_repo_discussions
```
As a response, the bot will create a new PR that contains an auto-generated `best_practices.md` file.
Note that the scan can take several minutes to complete, since up to 250 PRs are scanned.
## Example usage
![scan1](https://codium.ai/images/pr_agent/scan_repo_discussions_1.png){width=640}
The PR created by the bot:
![scan1](https://codium.ai/images/pr_agent/scan_repo_discussions_2.png){width=640}
The `best_practices.md` file in the PR:
![scan1](https://codium.ai/images/pr_agent/scan_repo_discussions_3.png){width=640}
### Configuration options
- Use `/scan_repo_discussions --scan_repo_discussions.force_scan=true` to force generating a PR with a new `best_practices.md` file, even if it already exists (by default, the bot will not generate a new file if it already exists).
- Use `/scan_repo_discussions --scan_repo_discussions.days_back=X` to specify the number of days back to scan for discussions. The default is 365 days.
- Use `/scan_repo_discussions --scan_repo_discussions.minimal_number_of_prs=X` to specify the minimum number of merged PRs needed to generate the `best_practices.md` file. The default is 50 PRs.

View file

@ -1,16 +1,18 @@
`Platforms supported: GitHub`
## Overview
The similar code tool retrieves the most similar code components from inside the organization's codebase, or from open-source code.
For example:
`Global Search` for a method called `chat_completion`:
A `Global Search` for a method called `chat_completion`:
![similar code global](https://codium.ai/images/pr_agent/similar_code_global2.png){width=768}
Qodo Merge will examine the code component and will extract the most relevant keywords to search for similar code:
PR-Agent will examine the code component and will extract the most relevant keywords to search for similar code:
- `extracted keywords`: the keywords that were extracted from the code by PR-Agent. the link will open a search page with the extracted keywords, to allow the user to modify the search if needed.
- `extracted keywords`: the keywords that were extracted from the code by Qodo Merge. the link will open a search page with the extracted keywords, to allow the user to modify the search if needed.
- `search context`: the context in which the search will be performed, organization's codebase or open-source code (Global).
- `similar code`: the most similar code components found. the link will open the code component in the relevant file.
- `relevant repositories`: the open-source repositories in which that are relevant to the searched code component and it's keywords.
@ -19,18 +21,20 @@ Search result link example:
![code search result single](https://codium.ai/images/pr_agent/code_search_result_single.png){width=768}
`Organization Search`:
An `Organization Search`:
![similar code org](https://codium.ai/images/pr_agent/similar_code_org.png){width=768}
## How to use
### Manually
To invoke the `similar code` tool manually, comment on the PR:
```
/find_similar_component COMPONENT_NAME
```
Where `COMPONENT_NAME` should be the name of a code component in the PR (class, method, function).
If there is a name ambiguity, there are two configurations that will help the tool to find the correct component:
@ -39,23 +43,27 @@ If there is a name ambiguity, there are two configurations that will help the to
- `--pr_find_similar_component.class_name`: in case there are several methods with the same name in the same file, you can specify the relevant class name.
example:
```
/find_similar_component COMPONENT_NAME --pr_find_similar_component.file=FILE_NAME
```
### Automatically (via Analyze table)
It can be invoked automatically from the analyze table, can be accessed by:
```
/analyze
```
Choose the components you want to find similar code for, and click on the `similar` checkbox.
![analyze similar](https://codium.ai/images/pr_agent/analyze_similar.png){width=768}
If you are looking to search for similar code in the organization's codebase, you can click on the `Organization` checkbox, and it will invoke a new search command just for the organization's codebase.
You can search for similar code either within the organization's codebase or globally, which includes open-source repositories. Each result will include the relevant code components along with their associated license details.
![similar code global](https://codium.ai/images/pr_agent/similar_code_global.png){width=768}
## Configuration options
- `search_from_org`: if set to true, the tool will search for similar code in the organization's codebase. Default is false.

View file

@ -1,11 +1,12 @@
## Overview
The similar issue tool retrieves the most similar issues to the current issue.
It can be invoked manually by commenting on any PR:
```
/similar_issue
```
## Example usage
![similar_issue_original_issue](https://codium.ai/images/pr_agent/similar_issue_original_issue.png){width=768}
@ -16,24 +17,51 @@ It can be invoked manually by commenting on any PR:
Note that to perform retrieval, the `similar_issue` tool indexes all the repo previous issues (once).
### Selecting a Vector Database
**Select VectorDBs** by changing `pr_similar_issue` parameter in `configuration.toml` file
Configure your preferred database by changing the `pr_similar_issue` parameter in `configuration.toml` file.
#### Available Options
Choose from the following Vector Databases:
2 VectorDBs are available to switch in
1. LanceDB
2. Pinecone
3. Qdrant
To enable usage of the '**similar issue**' tool for Pinecone, you need to set the following keys in `.secrets.toml` (or in the relevant environment variables):
#### Pinecone Configuration
To use Pinecone with the `similar issue` tool, add these credentials to `.secrets.toml` (or set as environment variables):
```
[pinecone]
api_key = "..."
environment = "..."
```
These parameters can be obtained by registering to [Pinecone](https://app.pinecone.io/?sessionType=signup/).
#### Qdrant Configuration
To use Qdrant with the `similar issue` tool, add these credentials to `.secrets.toml` (or set as environment variables):
```
[qdrant]
url = "https://YOUR-QDRANT-URL" # e.g., https://xxxxxxxx-xxxxxxxx.eu-central-1-0.aws.cloud.qdrant.io
api_key = "..."
```
Then select Qdrant in `configuration.toml`:
```
[pr_similar_issue]
vectordb = "qdrant"
```
You can get a free managed Qdrant instance from [Qdrant Cloud](https://cloud.qdrant.io/).
## How to use
- To invoke the 'similar issue' tool from **CLI**, run:
`python3 cli.py --issue_url=... similar_issue`

View file

@ -1,32 +1,30 @@
## Overview
By combining LLM abilities with static code analysis, the `test` tool generate tests for a selected component, based on the PR code changes.
By combining LLM abilities with static code analysis, the `test` tool generates tests for a selected component, based on the PR code changes.
It can be invoked manually by commenting on any PR:
```
/test component_name
```
where 'component_name' is the name of a specific component in the PR.
To get a list of the components that changed in the PR and choose the relevant component interactively, use the [`analyze`](./analyze.md) tool.
## Example usage
Invoke the tool manually by commenting `/test` on any PR:
![test1](https://codium.ai/images/pr_agent/test1.png){width=704}
The tool will generate tests for the selected component (if no component is stated, it will generate tests for largest component):
![test2](https://codium.ai/images/pr_agent/test2.png){width=768}
![test3](https://codium.ai/images/pr_agent/test3.png){width=768}
![test1](https://codium.ai/images/pr_agent/test1.png){width=768}
(Example taken from [here](https://github.com/Codium-ai/pr-agent/pull/598#issuecomment-1913679429)):
**Notes**
- Language that are currently supported by the tool: Python, Java, C++, JavaScript, TypeScript, C#.
!!! note "Notes"
- The following languages are currently supported: `Python, Java, C++, JavaScript, TypeScript, C#, Go, Kotlin`
- This tool can also be triggered interactively by using the [`analyze`](./analyze.md) tool.
## Configuration options
- `num_tests`: number of tests to generate. Default is 3.
- `testing_framework`: the testing framework to use. If not set, for Python it will use `pytest`, for Java it will use `JUnit`, for C++ it will use `Catch2`, and for JavaScript and TypeScript it will use `jest`.
- `avoid_mocks`: if set to true, the tool will try to avoid using mocks in the generated tests. Note that even if this option is set to true, the tool might still use mocks if it cannot generate a test without them. Default is true.

View file

@ -1,6 +1,8 @@
## Overview
The `update_changelog` tool automatically updates the CHANGELOG.md file with the PR changes.
It can be invoked manually by commenting on any PR:
```
/update_changelog
```
@ -15,5 +17,7 @@ It can be invoked manually by commenting on any PR:
Under the section `pr_update_changelog`, the [configuration file](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml#L50) contains options to customize the 'update changelog' tool:
- `push_changelog_changes`: whether to push the changes to CHANGELOG.md, or just print them. Default is false (print only).
- `extra_instructions`: Optional extra instructions to the tool. For example: "focus on the changes in the file X. Ignore change in ...
- `push_changelog_changes`: whether to push the changes to CHANGELOG.md, or just publish them as a comment. Default is false (publish as comment).
- `extra_instructions`: Optional extra instructions to the tool. For example: "Use the following structure: ..."
- `add_pr_link`: whether the model should try to add a link to the PR in the changelog. Default is true.
- `skip_ci_on_push`: whether the commit message (when `push_changelog_changes` is true) will include the term "[skip ci]", preventing CI tests to be triggered on the changelog commit. Default is true.

View file

@ -1,4 +1,5 @@
## Recommend Python Best Practices
This document outlines a series of recommended best practices for Python development. These guidelines aim to improve code quality, maintainability, and readability.
### Imports
@ -85,6 +86,7 @@ No:
The directory the main binary is located in should not be assumed to be in `sys.path` despite that happening in some environments. This being the case, code should assume that `import jodie` refers to a third-party or top-level package named `jodie`, not a local `jodie.py`.
### Default Iterators and Operators
Use default iterators and operators for types that support them, like lists, dictionaries, and files.
#### Definition
@ -158,7 +160,6 @@ No: def foo(a, b: Mapping = {}): # Could still get passed to unchecked code.
### True/False Evaluations
Use the “implicit” false if possible, e.g., `if foo:` rather than `if foo != []:`
### Lexical Scoping
@ -175,11 +176,11 @@ def get_adder(summand1: float) -> Callable[[float], float]:
return adder
```
#### Decision
Okay to use.
### Threading
Do not rely on the atomicity of built-in types.

View file

@ -1,30 +0,0 @@
## PR-Agent Pro Models
The default models used by PR-Agent Pro are OpenAI's GPT-4 models. We use a combination of GPT-4-Turbo and GPT-4o to strike a balance between speed and quality.
However, users can change the model used by PR-Agent Pro to Claude-3.5-sonnet, which also excels at code tasks.
To do so, add the following to your [configuration](https://pr-agent-docs.codium.ai/usage-guide/configuration_options/) file:
```
[config]
model="claude-3-5-sonnet"
```
Note that Claude models tend to give lower scores for each suggestion, so if you are using a [threshold](https://pr-agent-docs.codium.ai/tools/improve/#configuration-options):
```
[pr_code_suggestions]
suggestions_score_threshold=...
```
You might need to adjust this value when switching models.
### Dedicated models per tool
You can also use different models for different tools. For example, you can use the Claude-3.5-sonnet model only for the `improve` tool (and keep the default GPT-4 model for the other tools) by adding the following to your configuration file:
```
[github_app]
pr_commands = [
"/describe --pr_description.final_update_message=false",
"/review --pr_reviewer.num_code_suggestions=0",
"/improve --config.model=claude-3-5-sonnet",
]
```

View file

@ -1,8 +1,33 @@
## Show possible configurations
The possible configurations of Qodo Merge are stored in [here](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml){:target="_blank"}.
In the [tools](https://qodo-merge-docs.qodo.ai/tools/) page you can find explanations on how to use these configurations for each tool.
To print all the available configurations as a comment on your PR, you can use the following command:
```
/config
```
![possible_config1](https://codium.ai/images/pr_agent/possible_config1.png){width=512}
To view the **actual** configurations used for a specific tool, after all the user settings are applied, you can add for each tool a `--config.output_relevant_configurations=true` suffix.
For example:
```
/improve --config.output_relevant_configurations=true
```
Will output an additional field showing the actual configurations used for the `improve` tool.
![possible_config2](https://codium.ai/images/pr_agent/possible_config2.png){width=512}
## Ignoring files from analysis
In some cases, you may want to exclude specific files or directories from the analysis performed by CodiumAI PR-Agent. This can be useful, for example, when you have files that are generated automatically or files that shouldn't be reviewed, like vendored code.
In some cases, you may want to exclude specific files or directories from the analysis performed by Qodo Merge. This can be useful, for example, when you have files that are generated automatically or files that shouldn't be reviewed, like vendor code.
You can ignore files or folders using the following methods:
- `IGNORE.GLOB`
- `IGNORE.REGEX`
@ -15,88 +40,92 @@ Let's look at an example where we want to ignore all files with `.py` extension
To ignore Python files in a PR with online usage, comment on a PR:
`/review --ignore.glob="['*.py']"`
To ignore Python files in all PRs using `glob` pattern, set in a configuration file:
```
[ignore]
glob = ['*.py']
```
And to ignore Python files in all PRs using `regex` pattern, set in a configuration file:
```
[regex]
[ignore]
regex = ['.*\.py$']
```
## Extra instructions
All PR-Agent tools have a parameter called `extra_instructions`, that enables to add free-text extra instructions. Example usage:
All Qodo Merge tools have a parameter called `extra_instructions`, that enables to add free-text extra instructions. Example usage:
```
/update_changelog --pr_update_changelog.extra_instructions="Make sure to update also the version ..."
```
## Working with large PRs
## Language Settings
The default mode of CodiumAI is to have a single call per tool, using GPT-4, which has a token limit of 8000 tokens.
This mode provides a very good speed-quality-cost tradeoff, and can handle most PRs successfully.
When the PR is above the token limit, it employs a [PR Compression strategy](../core-abilities/index.md).
The default response language for Qodo Merge is **U.S. English**. However, some development teams may prefer to display information in a different language. For example, your team's workflow might improve if PR descriptions and code suggestions are set to your country's native language.
However, for very large PRs, or in case you want to emphasize quality over speed and cost, there are two possible solutions:
1) [Use a model](https://codium-ai.github.io/Docs-PR-Agent/usage-guide/#changing-a-model) with larger context, like GPT-32K, or claude-100K. This solution will be applicable for all the tools.
2) For the `/improve` tool, there is an ['extended' mode](https://codium-ai.github.io/Docs-PR-Agent/tools/#improve) (`/improve --extended`),
which divides the PR to chunks, and processes each chunk separately. With this mode, regardless of the model, no compression will be done (but for large PRs, multiple model calls may occur)
To configure this, set the `response_language` parameter in the configuration file. This will prompt the model to respond in the specified language. Use a **standard locale code** based on [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166) (country codes) and [ISO 639](https://en.wikipedia.org/wiki/ISO_639) (language codes) to define a language-country pair. See this [comprehensive list of locale codes](https://simplelocalize.io/data/locales/).
Example:
## Patch Extra Lines
By default, around any change in your PR, git patch provides three lines of context above and below the change.
```
@@ -12,5 +12,5 @@ def func1():
code line that already existed in the file...
code line that already existed in the file...
code line that already existed in the file....
-code line that was removed in the PR
+new code line added in the PR
code line that already existed in the file...
code line that already existed in the file...
code line that already existed in the file...
```toml
[config]
response_language = "it-IT"
```
For the `review`, `describe`, `ask` and `add_docs` tools, if the token budget allows, PR-Agent tries to increase the number of lines of context, via the parameter:
This will set the response language globally for all the commands to Italian.
> **Important:** Note that only dynamic text generated by the AI model is translated to the configured language. Static text such as labels and table headers that are not part of the AI models response will remain in US English. In addition, the model you are using must have good support for the specified language.
[//]: # (## Working with large PRs)
[//]: # ()
[//]: # (The default mode of CodiumAI is to have a single call per tool, using GPT-4, which has a token limit of 8000 tokens.)
[//]: # (This mode provides a very good speed-quality-cost tradeoff, and can handle most PRs successfully.)
[//]: # (When the PR is above the token limit, it employs a [PR Compression strategy]&#40;../core-abilities/index.md&#41;.)
[//]: # ()
[//]: # (However, for very large PRs, or in case you want to emphasize quality over speed and cost, there are two possible solutions:)
[//]: # (1&#41; [Use a model]&#40;https://qodo-merge-docs.qodo.ai/usage-guide/changing_a_model/&#41; with larger context, like GPT-32K, or claude-100K. This solution will be applicable for all the tools.)
[//]: # (2&#41; For the `/improve` tool, there is an ['extended' mode]&#40;https://qodo-merge-docs.qodo.ai/tools/improve/&#41; &#40;`/improve --extended`&#41;,)
[//]: # (which divides the PR into chunks, and processes each chunk separately. With this mode, regardless of the model, no compression will be done &#40;but for large PRs, multiple model calls may occur&#41;)
## Expand GitLab submodule diffs
By default, GitLab merge requests show submodule updates as `Subproject commit` lines. To include the actual file-level changes from those submodules in Qodo Merge analysis, enable:
```toml
[gitlab]
expand_submodule_diffs = true
```
When enabled, Qodo Merge will fetch and attach diffs from the submodule repositories. The default is `false` to avoid extra GitLab API calls.
## Log Level
Qodo Merge allows you to control the verbosity of logging by using the `log_level` configuration parameter. This is particularly useful for troubleshooting and debugging issues with your PR workflows.
```
[config]
patch_extra_lines_before=4
patch_extra_lines_after=2
log_level = "DEBUG" # Options: "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"
```
Increasing this number provides more context to the model, but will also increase the token budget.
If the PR is too large (see [PR Compression strategy](https://github.com/Codium-ai/pr-agent/blob/main/PR_COMPRESSION.md)), PR-Agent automatically sets this number to 0, using the original git patch.
## Editing the prompts
The prompts for the various PR-Agent tools are defined in the `pr_agent/settings` folder.
In practice, the prompts are loaded and stored as a standard setting object.
Hence, editing them is similar to editing any other configuration value - just place the relevant key in `.pr_agent.toml`file, and override the default value.
For example, if you want to edit the prompts of the [describe](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/pr_description_prompts.toml) tool, you can add the following to your `.pr_agent.toml` file:
```
[pr_description_prompt]
system="""
...
"""
user="""
...
"""
```
Note that the new prompt will need to generate an output compatible with the relevant [post-process function](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/tools/pr_description.py#L137).
The default log level is "DEBUG", which provides detailed output of all operations. If you prefer less verbose logs, you can set higher log levels like "INFO" or "WARNING".
## Integrating with Logging Observability Platforms
Various logging observability tools can be used out-of-the box when using the default LiteLLM AI Handler. Simply configure the LiteLLM callback settings in `configuration.toml` and set environment variables according to the LiteLLM [documentation](https://docs.litellm.ai/docs/).
For example, to use [LangSmith](https://www.langchain.com/langsmith) you can add the following to your `configuration.toml` file:
```
[litellm]
enable_callbacks = true
@ -112,3 +141,142 @@ LANGSMITH_API_KEY=<api_key>
LANGSMITH_PROJECT=<project>
LANGSMITH_BASE_URL=<url>
```
## Bringing additional repository metadata to Qodo Merge 💎
To provide Qodo Merge tools with additional context about your project, you can enable automatic repository metadata detection.
If you set:
```toml
[config]
add_repo_metadata = true
```
Qodo Merge automatically searches for repository metadata files in your PR's head branch root directory. By default, it looks for:
[AGENTS.MD](https://agents.md/), [QODO.MD](https://docs.qodo.ai/qodo-documentation/qodo-command/getting-started/setup-and-quickstart), [CLAUDE.MD](https://www.anthropic.com/engineering/claude-code-best-practices).
You can also specify custom filenames to search for:
```toml
[config]
add_repo_metadata_file_list= ["file1.md", "file2.md", ...]
```
## Ignoring automatic commands in PRs
Qodo Merge allows you to automatically ignore certain PRs based on various criteria:
- PRs with specific titles (using regex matching)
- PRs between specific branches (using regex matching)
- PRs from specific repositories (using regex matching)
- PRs not from specific folders
- PRs containing specific labels
- PRs opened by specific users
### Ignoring PRs with specific titles
To ignore PRs with a specific title such as "[Bump]: ...", you can add the following to your `configuration.toml` file:
```toml
[config]
ignore_pr_title = ["\\[Bump\\]"]
```
Where the `ignore_pr_title` is a list of regex patterns to match the PR title you want to ignore. Default is `ignore_pr_title = ["^\\[Auto\\]", "^Auto"]`.
### Ignoring PRs between specific branches
To ignore PRs from specific source or target branches, you can add the following to your `configuration.toml` file:
```toml
[config]
ignore_pr_source_branches = ['develop', 'main', 'master', 'stage']
ignore_pr_target_branches = ["qa"]
```
Where the `ignore_pr_source_branches` and `ignore_pr_target_branches` are lists of regex patterns to match the source and target branches you want to ignore.
They are not mutually exclusive, you can use them together or separately.
### Ignoring PRs from specific repositories
To ignore PRs from specific repositories, you can add the following to your `configuration.toml` file:
```toml
[config]
ignore_repositories = ["my-org/my-repo1", "my-org/my-repo2"]
```
Where the `ignore_repositories` is a list of regex patterns to match the repositories you want to ignore. This is useful when you have multiple repositories and want to exclude certain ones from analysis.
### Ignoring PRs not from specific folders
To allow only specific folders (often needed in large monorepos), set:
```
[config]
allow_only_specific_folders=['folder1','folder2']
```
For the configuration above, automatic feedback will only be triggered when the PR changes include files where 'folder1' or 'folder2' is in the file path
### Ignoring PRs containing specific labels
To ignore PRs containing specific labels, you can add the following to your `configuration.toml` file:
```
[config]
ignore_pr_labels = ["do-not-merge"]
```
Where the `ignore_pr_labels` is a list of labels that when present in the PR, the PR will be ignored.
### Ignoring PRs from specific users
Qodo Merge tries to automatically identify and ignore pull requests created by bots using:
- GitHub's native bot detection system
- Name-based pattern matching
While this detection is robust, it may not catch all cases, particularly when:
- Bots are registered as regular user accounts
- Bot names don't match common patterns
To supplement the automatic bot detection, you can manually specify users to ignore. Add the following to your `configuration.toml` file to ignore PRs from specific users:
```
[config]
ignore_pr_authors = ["my-special-bot-user", ...]
```
Where the `ignore_pr_authors` is a regex list of usernames that you want to ignore.
!!! note
There is one specific case where bots will receive an automatic response - when they generated a PR with a _failed test_. In that case, the [`ci_feedback`](https://qodo-merge-docs.qodo.ai/tools/ci_feedback/) tool will be invoked.
### Ignoring Generated Files by Language/Framework
To automatically exclude files generated by specific languages or frameworks, you can add the following to your `configuration.toml` file:
```
[config]
ignore_language_framework = ['protobuf', ...]
```
You can view the list of auto-generated file patterns in [`generated_code_ignore.toml`](https://github.com/qodo-ai/pr-agent/blob/main/pr_agent/settings/generated_code_ignore.toml).
Files matching these glob patterns will be automatically excluded from PR Agent analysis.
### Ignoring Tickets with Specific Labels
When Qodo Merge analyzes tickets (JIRA, GitHub Issues, GitLab Issues, etc.) referenced in your PR, you may want to exclude tickets that have certain labels from the analysis. This is useful for filtering out tickets marked as "ignore-compliance", "skip-review", or other labels that indicate the ticket should not be considered during PR review.
To ignore tickets with specific labels, add the following to your `configuration.toml` file:
```toml
[config]
ignore_ticket_labels = ["ignore-compliance", "skip-review", "wont-fix"]
```
Where `ignore_ticket_labels` is a list of label names that should be ignored during ticket analysis.

View file

@ -1,126 +1,176 @@
## Local repo (CLI)
When running from your locally cloned PR-Agent repo (CLI), your local configuration file will be used.
When running from your locally cloned Qodo Merge repo (CLI), your local configuration file will be used.
Examples of invoking the different tools via the CLI:
- **Review**: `python -m pr_agent.cli --pr_url=<pr_url> review`
- **Describe**: `python -m pr_agent.cli --pr_url=<pr_url> describe`
- **Improve**: `python -m pr_agent.cli --pr_url=<pr_url> improve`
- **Ask**: `python -m pr_agent.cli --pr_url=<pr_url> ask "Write me a poem about this PR"`
- **Reflect**: `python -m pr_agent.cli --pr_url=<pr_url> reflect`
- **Update Changelog**: `python -m pr_agent.cli --pr_url=<pr_url> update_changelog`
`<pr_url>` is the url of the relevant PR (for example: [#50](https://github.com/Codium-ai/pr-agent/pull/50)).
**Notes:**
(1) in addition to editing your local configuration file, you can also change any configuration value by adding it to the command line:
1. in addition to editing your local configuration file, you can also change any configuration value by adding it to the command line:
```
python -m pr_agent.cli --pr_url=<pr_url> /review --pr_reviewer.extra_instructions="focus on the file: ..."
```
(2) You can print results locally, without publishing them, by setting in `configuration.toml`:
2. You can print results locally, without publishing them, by setting in `configuration.toml`:
```
[config]
publish_output=false
verbosity_level=2
```
This is useful for debugging or experimenting with different tools.
(3)
3. **git provider**: The [git_provider](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml#L5) field in a configuration file determines the GIT provider that will be used by Qodo Merge. Currently, the following providers are supported:
`github` **(default)**, `gitlab`, `bitbucket`, `azure`, `codecommit`, `local`, and `gitea`.
**git provider**: The [git_provider](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml#L5) field in a configuration file determines the GIT provider that will be used by PR-Agent. Currently, the following providers are supported:
`
"github", "gitlab", "bitbucket", "azure", "codecommit", "local", "gerrit"
`
### CLI Health Check
Default is "github".
To verify that Qodo Merge has been configured correctly, you can run this health check command from the repository root:
```bash
python -m tests.health_test.main
```
If the health check passes, you will see the following output:
### Online usage
```
========
Health test passed successfully
========
```
Online usage means invoking PR-Agent tools by [comments](https://github.com/Codium-ai/pr-agent/pull/229#issuecomment-1695021901) on a PR.
At the end of the run.
Before running the health check, ensure you have:
- Configured your [LLM provider](https://qodo-merge-docs.qodo.ai/usage-guide/changing_a_model/)
- Added a valid GitHub token to your configuration file
## Online usage
Online usage means invoking Qodo Merge tools by [comments](https://github.com/Codium-ai/pr-agent/pull/229#issuecomment-1695021901) on a PR.
Commands for invoking the different tools via comments:
- **Review**: `/review`
- **Describe**: `/describe`
- **Improve**: `/improve` (or `/improve_code` for bitbucket, since `/improve` is sometimes reserved)
- **Ask**: `/ask "..."`
- **Reflect**: `/reflect`
- **Update Changelog**: `/update_changelog`
To edit a specific configuration value, just add `--config_path=<value>` to any command.
For example, if you want to edit the `review` tool configurations, you can run:
```
/review --pr_reviewer.extra_instructions="..." --pr_reviewer.require_score_review=false
```
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.
## Qodo Merge Automatic Feedback
## GitHub App
### Disabling all automatic feedback
!!! note "Configurations for PR-Agent Pro"
PR-Agent Pro for GitHub is an App, hosted by CodiumAI. So all the instructions below are relevant also for PR-Agent Pro users.
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
```
When this parameter is set to `true`, Qodo Merge will not run any automatic tools (like `describe`, `review`, `improve`) when a new PR is opened, or when new code is pushed to an open PR.
### GitHub App
!!! note "Configurations for Qodo Merge"
Qodo Merge for GitHub is an App, hosted by Qodo. So all the instructions below are relevant also for Qodo Merge users.
Same goes for [GitLab webhook](#gitlab-webhook) and [BitBucket App](#bitbucket-app) sections.
### GitHub app automatic tools when a new PR is opened
#### GitHub app automatic tools when a new PR is opened
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#L220) 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]
pr_commands = [
"/describe --pr_description.final_update_message=false",
"/review --pr_reviewer.num_code_suggestions=0",
"/describe",
"/review",
"/improve",
]
```
This means that when a new PR is opened/reopened or marked as ready for review, PR-Agent will run the `describe`, `review` and `improve` tools.
For the `review` tool, for example, the `num_code_suggestions` parameter will be set to 0.
You can override the default tool parameters by using one the three options for a [configuration file](https://codium-ai.github.io/Docs-PR-Agent/usage-guide/#configuration-options): **wiki**, **local**, or **global**.
For example, if your local `.pr_agent.toml` file contains:
This means that when a new PR is opened/reopened or marked as ready for review, Qodo Merge will run the `describe`, `review` and `improve` tools.
**Draft PRs:**
By default, draft PRs are not considered for automatic tools, but you can change this by setting the `feedback_on_draft_pr` parameter to `true` in the configuration file.
```toml
[github_app]
feedback_on_draft_pr = true
```
**Changing default tool parameters:**
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 configuration file contains:
```toml
[pr_description]
generate_ai_title = true
```
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:
```
Every time you run the `describe` tool (including automatic runs) the PR title will be generated by the AI.
**Parameters for automated runs:**
You can customize configurations specifically for automated runs by using the `--config_path=<value>` parameter.
For instance, to modify the `review` tool settings only for newly opened PRs, use:
```toml
[github_app]
pr_commands = []
pr_commands = [
"/describe",
"/review --pr_reviewer.extra_instructions='focus on the file: ...'",
"/improve",
]
```
You can also disable automatic runs for PRs with specific titles, by setting the `ignore_pr_titles` parameter with the relevant regex. For example:
```
[github_app]
ignore_pr_title = ["^[Auto]", ".*ignore.*"]
```
will ignore PRs with titles that start with "Auto" or contain the word "ignore".
### 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.
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.
```
```toml
[github_app]
handle_push_trigger = true
push_commands = [
"/describe",
"/review --pr_reviewer.num_code_suggestions=0 --pr_reviewer.final_update_message=false",
"/review",
]
```
This means that when new code is pushed to the PR, the PR-Agent will run the `describe` and `review` tools, with the specified parameters.
## GitHub Action
`GitHub Action` is a different way to trigger PR-Agent tools, and uses a different configuration mechanism than `GitHub App`.<br>
This means that when new code is pushed to the PR, the Qodo Merge will run the `describe` and `review` tools, with the specified parameters.
### GitHub Action
`GitHub Action` is a different way to trigger Qodo Merge tools, and uses a different configuration mechanism than `GitHub App`.<br>
You can configure settings for `GitHub Action` by adding environment variables under the env section in `.github/workflows/pr_agent.yml` file.
Specifically, start by setting the following environment variables:
```yaml
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }} # Make sure to add your OpenAI key to your repo secrets
@ -128,30 +178,72 @@ Specifically, start by setting the following environment variables:
github_action_config.auto_review: "true" # enable\disable auto review
github_action_config.auto_describe: "true" # enable\disable auto describe
github_action_config.auto_improve: "true" # enable\disable auto improve
github_action_config.pr_actions: '["opened", "reopened", "ready_for_review", "review_requested"]'
```
`github_action_config.auto_review`, `github_action_config.auto_describe` and `github_action_config.auto_improve` are used to enable/disable automatic tools that run when a new PR is opened.
If not set, the default configuration is for all three tools to run automatically when a new PR is opened.
`github_action_config.pr_actions` is used to configure which `pull_requests` events will trigger the enabled auto flags
If not set, the default configuration is `["opened", "reopened", "ready_for_review", "review_requested"]`
`github_action_config.enable_output` are used to enable/disable github actions [output parameter](https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#outputs-for-docker-container-and-javascript-actions) (default is `true`).
Review result is output as JSON to `steps.{step-id}.outputs.review` property.
The JSON structure is equivalent to the yaml data structure defined in [pr_reviewer_prompts.toml](https://github.com/idubnori/pr-agent/blob/main/pr_agent/settings/pr_reviewer_prompts.toml).
The JSON structure is equivalent to the yaml data structure defined in [pr_reviewer_prompts.toml](https://github.com/qodo-ai/pr-agent/blob/main/pr_agent/settings/pr_reviewer_prompts.toml).
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://pr-agent-docs.codium.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:
```
```toml
[pr_description]
publish_labels = false
```
to prevent PR-Agent from publishing labels when running the `describe` tool.
## 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:
to prevent Qodo Merge from publishing labels when running the `describe` tool.
#### Enable using commands in PR
You can configure your GitHub Actions workflow to trigger on `issue_comment` [events](https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#issue_comment) (`created` and `edited`).
Example GitHub Actions workflow configuration:
```yaml
on:
issue_comment:
types: [created, edited]
```
When this is configured, Qodo merge can be invoked by commenting on the PR.
#### Quick Reference: Model Configuration in GitHub Actions
For detailed step-by-step examples of configuring different models (Gemini, Claude, Azure OpenAI, etc.) in GitHub Actions, see the [Configuration Examples](../installation/github.md#configuration-examples) section in the installation guide.
**Common Model Configuration Patterns:**
- **OpenAI**: Set `config.model: "gpt-4o"` and `OPENAI_KEY`
- **Gemini**: Set `config.model: "gemini/gemini-1.5-flash"` and `GOOGLE_AI_STUDIO.GEMINI_API_KEY` (no `OPENAI_KEY` needed)
- **Claude**: Set `config.model: "anthropic/claude-3-opus-20240229"` and `ANTHROPIC.KEY` (no `OPENAI_KEY` needed)
- **Azure OpenAI**: Set `OPENAI.API_TYPE: "azure"`, `OPENAI.API_BASE`, and `OPENAI.DEPLOYMENT_ID`
- **Local Models**: Set `config.model: "ollama/model-name"` and `OLLAMA.API_BASE`
**Environment Variable Format:**
- Use dots (`.`) to separate sections and keys: `config.model`, `pr_reviewer.extra_instructions`
- Boolean values as strings: `"true"` or `"false"`
- Arrays as JSON strings: `'["item1", "item2"]'`
For complete model configuration details, see [Changing a model in PR-Agent](changing_a_model.md).
### 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:
```toml
[gitlab]
pr_commands = [
"/describe",
"/review --pr_reviewer.num_code_suggestions=0",
"/review",
"/improve",
]
```
@ -159,49 +251,69 @@ pr_commands = [
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 parameter `push_commands` defines the list of tools that will be **run automatically** when new code is pushed to the MR.
```
```toml
[gitlab]
handle_push_trigger = true
push_commands = [
"/describe",
"/review --pr_reviewer.num_code_suggestions=0 --pr_reviewer.final_update_message=false",
"/review",
]
```
Note that to use the 'handle_push_trigger' feature, you need to give the gitlab webhook also the "Push events" scope.
## BitBucket App
Similar to GitHub app, when running PR-Agent from BitBucket App, the default [configuration file](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml) from a pre-built docker will be initially loaded.
### BitBucket App
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.
Similar to GitHub app, when running Qodo Merge from BitBucket App, the default [configuration file](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml) will be initially loaded.
By uploading a local `.pr_agent.toml` file to the root of the repo's default 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:
```
```toml
[pr_reviewer]
inline_code_comments = true
extra_instructions = "Answer in japanese"
```
Each time you invoke a `/review` tool, it will use inline code comments.
Each time you invoke a `/review` tool, it will use the extra instructions you set in the local configuration file.
### BitBucket Self-Hosted App automatic tools
Note that among other limitations, BitBucket provides relatively low rate-limits for applications (up to 1000 requests per hour), and does not provide an API to track the actual rate-limit usage.
If you experience a lack of responses from Qodo Merge, you might want to set: `bitbucket_app.avoid_full_files=true` in your configuration file.
This will prevent Qodo Merge from acquiring the full file content, and will only use the diff content. This will reduce the number of requests made to BitBucket, at the cost of small decrease in accuracy, as dynamic context will not be applicable.
#### BitBucket Self-Hosted App automatic tools
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:
```
```toml
[bitbucket_app]
pr_commands = [
"/review --pr_reviewer.num_code_suggestions=0",
"/review",
"/improve --pr_code_suggestions.commitable_code_suggestions=true --pr_code_suggestions.suggestions_score_threshold=7",
]
```
Note that we set specifically for bitbucket, we recommend using: `--pr_code_suggestions.suggestions_score_threshold=7` and that is the default value we set for bitbucket.
Since this platform only supports inline code suggestions, we want to limit the number of suggestions, and only present a limited number.
## Azure DevOps provider
To enable BitBucket app to respond to each **push** to the PR, set (for example):
```toml
[bitbucket_app]
handle_push_trigger = true
push_commands = [
"/describe",
"/review",
]
```
### Azure DevOps provider
To use Azure DevOps provider use the following settings in configuration.toml:
```
```toml
[config]
git_provider="azure"
```
@ -214,20 +326,35 @@ If PAT was chosen, you can assign the value in .secrets.toml.
If DefaultAzureCredential was chosen, you can assigned the additional env vars like AZURE_CLIENT_SECRET directly,
or use managed identity/az cli (for local development) without any additional configuration.
in any case, 'org' value must be assigned in .secrets.toml:
```
[azure_devops]
org = "https://dev.azure.com/YOUR_ORGANIZATION/"
# pat = "YOUR_PAT_TOKEN" needed only if using PAT for authentication
```
### 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:
```
```toml
[azure_devops_server]
pr_commands = [
"/describe",
"/review --pr_reviewer.num_code_suggestions=0",
"/review",
"/improve",
]
```
### Gitea Webhook
After setting up a Gitea 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
[gitea]
pr_commands = [
"/describe",
"/review",
"/improve",
]
```

View file

@ -1,21 +1,54 @@
## Changing a model
## Changing a model in PR-Agent
See [here](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/algo/__init__.py) for a list of available models.
To use a different model than the default (GPT-4), you need to edit in the [configuration file](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml#L2) the fields:
```
See [here](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/algo/__init__.py) for a list of supported models in PR-Agent.
The default model of PR-Agent is `GPT-5` from OpenAI.
To use a different model than the default, you need to edit in the [configuration file](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml#L2) the fields:
```toml
[config]
model = "..."
model_turbo = "..."
fallback_models = ["..."]
```
For models and environments not from OpenAI, you might need to provide additional keys and other parameters.
You can give parameters via a configuration file (see below for instructions), or from environment variables. See [litellm documentation](https://litellm.vercel.app/docs/proxy/quick_start#supported-llms) for the environment variables relevant per model.
You can give parameters via a configuration file, or from environment variables.
!!! note "Model-specific environment variables"
See [litellm documentation](https://litellm.vercel.app/docs/proxy/quick_start#supported-llms) for the environment variables needed per model, as they may vary and change over time. Our documentation per-model may not always be up-to-date with the latest changes.
Failing to set the needed keys of a specific model will usually result in litellm not identifying the model type, and failing to utilize it.
### OpenAI like API
To use an OpenAI like API, set the following in your `.secrets.toml` file:
```toml
[openai]
api_base = "https://api.openai.com/v1"
api_key = "sk-..."
```
or use the environment variables (make sure to use double underscores `__`):
```bash
OPENAI__API_BASE=https://api.openai.com/v1
OPENAI__KEY=sk-...
```
### OpenAI Flex Processing
To reduce costs for non-urgent/background tasks, enable Flex Processing:
```toml
[litellm]
extra_body='{"processing_mode": "flex"}'
```
See [OpenAI Flex Processing docs](https://platform.openai.com/docs/guides/flex-processing) for details.
### Azure
To use Azure, set in your `.secrets.toml` (working from CLI), or in the GitHub `Settings > Secrets and variables` (working from GitHub App or GitHub Action):
```
```toml
[openai]
key = "" # your azure api key
api_type = "azure"
@ -25,103 +58,131 @@ deployment_id = "" # The deployment name you chose when you deployed the engine
```
and set in your configuration file:
```
```toml
[config]
model="" # the OpenAI model you've deployed on Azure (e.g. gpt-3.5-turbo)
model_turbo="" # the OpenAI model you've deployed on Azure (e.g. gpt-3.5-turbo)
fallback_models=["..."] # the OpenAI model you've deployed on Azure (e.g. gpt-3.5-turbo)
model="" # the OpenAI model you've deployed on Azure (e.g. gpt-4o)
fallback_models=["..."]
```
To use Azure AD (Entra id) based authentication set in your `.secrets.toml` (working from CLI), or in the GitHub `Settings > Secrets and variables` (working from GitHub App or GitHub Action):
```toml
[azure_ad]
client_id = "" # Your Azure AD application client ID
client_secret = "" # Your Azure AD application client secret
tenant_id = "" # Your Azure AD tenant ID
api_base = "" # Your Azure OpenAI service base URL (e.g., https://openai.xyz.com/)
```
Passing custom headers to the underlying LLM Model API can be done by setting extra_headers parameter to litellm.
```toml
[litellm]
extra_headers='{"projectId": "<authorized projectId >", ...}') #The value of this setting should be a JSON string representing the desired headers, a ValueError is thrown otherwise.
```
This enables users to pass authorization tokens or API keys, when routing requests through an API management gateway.
### Ollama
You can run models locally through either [VLLM](https://docs.litellm.ai/docs/providers/vllm) or [Ollama](https://docs.litellm.ai/docs/providers/ollama)
E.g. to use a new model locally via Ollama, set in `.secrets.toml` or in a configuration file:
```toml
[config]
model = "ollama/qwen2.5-coder:32b"
fallback_models=["ollama/qwen2.5-coder:32b"]
custom_model_max_tokens=128000 # set the maximal input tokens for the model
duplicate_examples=true # will duplicate the examples in the prompt, to help the model to generate structured output
[ollama]
api_base = "http://localhost:11434" # or whatever port you're running Ollama on
```
By default, Ollama uses a context window size of 2048 tokens. In most cases this is not enough to cover pr-agent prompt and pull-request diff. Context window size can be overridden with the `OLLAMA_CONTEXT_LENGTH` environment variable. For example, to set the default context length to 8K, use: `OLLAMA_CONTEXT_LENGTH=8192 ollama serve`. More information you can find on the [official ollama faq](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-specify-the-context-window-size).
Please note that the `custom_model_max_tokens` setting should be configured in accordance with the `OLLAMA_CONTEXT_LENGTH`. Failure to do so may result in unexpected model output.
!!! note "Local models vs commercial models"
Qodo Merge is compatible with almost any AI model, but analyzing complex code repositories and pull requests requires a model specifically optimized for code analysis.
Commercial models such as GPT-5, Claude Sonnet, and Gemini have demonstrated robust capabilities in generating structured output for code analysis tasks with large input. In contrast, most open-source models currently available (as of January 2025) face challenges with these complex tasks.
Based on our testing, local open-source models are suitable for experimentation and learning purposes (mainly for the `ask` command), but they are not suitable for production-level code analysis tasks.
Hence, for production workflows and real-world usage, we recommend using commercial models.
### Hugging Face
**Local**
You can run Hugging Face models locally through either [VLLM](https://docs.litellm.ai/docs/providers/vllm) or [Ollama](https://docs.litellm.ai/docs/providers/ollama)
E.g. to use a new Hugging Face model locally via Ollama, set:
```
[__init__.py]
MAX_TOKENS = {
"model-name-on-ollama": <max_tokens>
}
e.g.
MAX_TOKENS={
...,
"ollama/llama2": 4096
}
[config] # in configuration.toml
model = "ollama/llama2"
model_turbo = "ollama/llama2"
fallback_models=["ollama/llama2"]
[ollama] # in .secrets.toml
api_base = ... # the base url for your Hugging Face inference endpoint
# e.g. if running Ollama locally, you may use:
api_base = "http://localhost:11434/"
```
### Inference Endpoints
To use a new model with Hugging Face Inference Endpoints, for example, set:
```
[__init__.py]
MAX_TOKENS = {
"model-name-on-huggingface": <max_tokens>
}
e.g.
MAX_TOKENS={
...,
"meta-llama/Llama-2-7b-chat-hf": 4096
}
```toml
[config] # in configuration.toml
model = "huggingface/meta-llama/Llama-2-7b-chat-hf"
model_turbo = "huggingface/meta-llama/Llama-2-7b-chat-hf"
fallback_models=["huggingface/meta-llama/Llama-2-7b-chat-hf"]
custom_model_max_tokens=... # set the maximal input tokens for the model
[huggingface] # in .secrets.toml
key = ... # your Hugging Face api key
api_base = ... # the base url for your Hugging Face inference endpoint
```
(you can obtain a Llama2 key from [here](https://replicate.com/replicate/llama-2-70b-chat/api))
### Replicate
To use Llama2 model with Replicate, for example, set:
```
```toml
[config] # in configuration.toml
model = "replicate/llama-2-70b-chat:2c1608e18606fad2812020dc541930f2d0495ce32eee50074220b87300bc16e1"
model_turbo = "replicate/llama-2-70b-chat:2c1608e18606fad2812020dc541930f2d0495ce32eee50074220b87300bc16e1"
fallback_models=["replicate/llama-2-70b-chat:2c1608e18606fad2812020dc541930f2d0495ce32eee50074220b87300bc16e1"]
[replicate] # in .secrets.toml
key = ...
```
(you can obtain a Llama2 key from [here](https://replicate.com/replicate/llama-2-70b-chat/api))
(you can obtain a Llama2 key from [here](https://replicate.com/replicate/llama-2-70b-chat/api))
Also, review the [AiHandler](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/algo/ai_handler.py) file for instructions on how to set keys for other models.
### Groq
To use Llama3 model with Groq, for example, set:
```
```toml
[config] # in configuration.toml
model = "llama3-70b-8192"
model_turbo = "llama3-70b-8192"
fallback_models = ["groq/llama3-70b-8192"]
[groq] # in .secrets.toml
key = ... # your Groq api key
```
(you can obtain a Groq key from [here](https://console.groq.com/keys))
### xAI
To use xAI's models with PR-Agent, set:
```toml
[config] # in configuration.toml
model = "xai/grok-2-latest"
fallback_models = ["xai/grok-2-latest"] # or any other model as fallback
[xai] # in .secrets.toml
key = "..." # your xAI API key
```
You can obtain an xAI API key from [xAI's console](https://console.x.ai/) by creating an account and navigating to the developer settings page.
### Vertex AI
To use Google's Vertex AI platform and its associated models (chat-bison/codechat-bison) set:
```
```toml
[config] # in configuration.toml
model = "vertex_ai/codechat-bison"
model_turbo = "vertex_ai/codechat-bison"
fallback_models="vertex_ai/codechat-bison"
[vertexai] # in .secrets.toml
@ -133,57 +194,202 @@ Your [application default credentials](https://cloud.google.com/docs/authenticat
If you do want to set explicit credentials, then you can use the `GOOGLE_APPLICATION_CREDENTIALS` environment variable set to a path to a json credentials file.
### Google AI Studio
To use [Google AI Studio](https://aistudio.google.com/) models, set the relevant models in the configuration section of the configuration file:
```toml
[config] # in configuration.toml
model="gemini/gemini-1.5-flash"
fallback_models=["gemini/gemini-1.5-flash"]
[google_ai_studio] # in .secrets.toml
gemini_api_key = "..."
```
If you don't want to set the API key in the .secrets.toml file, you can set the `GOOGLE_AI_STUDIO.GEMINI_API_KEY` environment variable.
### Anthropic
To use Anthropic models, set the relevant models in the configuration section of the configuration file:
```
```toml
[config]
model="anthropic/claude-3-opus-20240229"
model_turbo="anthropic/claude-3-opus-20240229"
fallback_models=["anthropic/claude-3-opus-20240229"]
```
And also set the api key in the .secrets.toml file:
```
```toml
[anthropic]
KEY = "..."
```
See [litellm](https://docs.litellm.ai/docs/providers/anthropic#usage) documentation for more information about the environment variables required for Anthropic.
### Amazon Bedrock
To use Amazon Bedrock and its foundational models, add the below configuration:
```
```toml
[config] # in configuration.toml
model="bedrock/anthropic.claude-3-sonnet-20240229-v1:0"
model_turbo="bedrock/anthropic.claude-3-sonnet-20240229-v1:0"
fallback_models=["bedrock/anthropic.claude-v2:1"]
model="bedrock/anthropic.claude-3-5-sonnet-20240620-v1:0"
fallback_models=["bedrock/anthropic.claude-3-5-sonnet-20240620-v1:0"]
[aws]
AWS_ACCESS_KEY_ID="..."
AWS_SECRET_ACCESS_KEY="..."
AWS_REGION_NAME="..."
```
Note that you have to add access to foundational models before using them. Please refer to [this document](https://docs.aws.amazon.com/bedrock/latest/userguide/setting-up.html) for more details.
You can also use the new Meta Llama 4 models available on Amazon Bedrock:
If you are using the claude-3 model, please configure the following settings as there are parameters incompatible with claude-3.
```toml
[config] # in configuration.toml
model="bedrock/us.meta.llama4-scout-17b-instruct-v1:0"
fallback_models=["bedrock/us.meta.llama4-maverick-17b-instruct-v1:0"]
```
#### Custom Inference Profiles
To use a custom inference profile with Amazon Bedrock (for cost allocation tags and other configuration settings), add the `model_id` parameter to your configuration:
```toml
[config] # in configuration.toml
model="bedrock/anthropic.claude-3-5-sonnet-20240620-v1:0"
fallback_models=["bedrock/anthropic.claude-3-5-sonnet-20240620-v1:0"]
[aws]
AWS_ACCESS_KEY_ID="..."
AWS_SECRET_ACCESS_KEY="..."
AWS_REGION_NAME="..."
[litellm]
drop_params = true
model_id = "your-custom-inference-profile-id"
```
AWS session is automatically authenticated from your environment, but you can also explicitly set `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and `AWS_REGION_NAME` environment variables. Please refer to [this document](https://litellm.vercel.app/docs/providers/bedrock) for more details.
The `model_id` parameter will be passed to all Bedrock completion calls, allowing you to use custom inference profiles for better cost allocation and reporting.
See [litellm](https://docs.litellm.ai/docs/providers/bedrock#usage) documentation for more information about the environment variables required for Amazon Bedrock.
### DeepSeek
To use deepseek-chat model with DeepSeek, for example, set:
```toml
[config] # in configuration.toml
model = "deepseek/deepseek-chat"
fallback_models=["deepseek/deepseek-chat"]
```
and fill up your key
```toml
[deepseek] # in .secrets.toml
key = ...
```
(you can obtain a deepseek-chat key from [here](https://platform.deepseek.com))
### DeepInfra
To use DeepSeek model with DeepInfra, for example, set:
```toml
[config] # in configuration.toml
model = "deepinfra/deepseek-ai/DeepSeek-R1-Distill-Llama-70B"
fallback_models = ["deepinfra/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B"]
[deepinfra] # in .secrets.toml
key = ... # your DeepInfra api key
```
(you can obtain a DeepInfra key from [here](https://deepinfra.com/dash/api_keys))
### Mistral
To use models like Mistral or Codestral with Mistral, for example, set:
```toml
[config] # in configuration.toml
model = "mistral/mistral-small-latest"
fallback_models = ["mistral/mistral-medium-latest"]
[mistral] # in .secrets.toml
key = "..." # your Mistral api key
```
(you can obtain a Mistral key from [here](https://console.mistral.ai/api-keys))
### Codestral
To use Codestral model with Codestral, for example, set:
```toml
[config] # in configuration.toml
model = "codestral/codestral-latest"
fallback_models = ["codestral/codestral-2405"]
[codestral] # in .secrets.toml
key = "..." # your Codestral api key
```
(you can obtain a Codestral key from [here](https://console.mistral.ai/codestral))
### Openrouter
To use model from Openrouter, for example, set:
```toml
[config] # in configuration.toml
model="openrouter/anthropic/claude-3.7-sonnet"
fallback_models=["openrouter/deepseek/deepseek-chat"]
custom_model_max_tokens=20000
[openrouter] # in .secrets.toml or passed an environment variable openrouter__key
key = "..." # your openrouter api key
```
(you can obtain an Openrouter API key from [here](https://openrouter.ai/settings/keys))
### Custom models
If the relevant model doesn't appear [here](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/algo/__init__.py), you can still use it as a custom model:
(1) Set the model name in the configuration file:
```
1. Set the model name in the configuration file:
```toml
[config]
model="custom_model_name"
model_turbo="custom_model_name"
fallback_models=["custom_model_name"]
```
(2) Set the maximal tokens for the model:
```
2. Set the maximal tokens for the model:
```toml
[config]
custom_model_max_tokens= ...
```
(3) Go to [litellm documentation](https://litellm.vercel.app/docs/proxy/quick_start#supported-llms), find the model you want to use, and set the relevant environment variables.
3. Go to [litellm documentation](https://litellm.vercel.app/docs/proxy/quick_start#supported-llms), find the model you want to use, and set the relevant environment variables.
4. Most reasoning models do not support chat-style inputs (`system` and `user` messages) or temperature settings.
To bypass chat templates and temperature controls, set `config.custom_reasoning_model = true` in your configuration file.
## Dedicated parameters
### OpenAI models
```toml
[config]
reasoning_effort = "medium" # "low", "medium", "high"
```
With the OpenAI models that support reasoning effort (eg: o4-mini), you can specify its reasoning effort via `config` section. The default value is `medium`. You can change it to `high` or `low` based on your usage.
### Anthropic models
```toml
[config]
enable_claude_extended_thinking = false # Set to true to enable extended thinking feature
extended_thinking_budget_tokens = 2048
extended_thinking_max_output_tokens = 4096
```

View file

@ -1,29 +1,30 @@
The different tools and sub-tools used by CodiumAI PR-Agent are adjustable via the **[configuration file](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml)**.
The different tools and sub-tools used by Qodo Merge are adjustable via a Git configuration file.
There are three main ways to set persistent configurations:
In addition to general configuration options, each tool has its own configurations. For example, the `review` tool will use parameters from the [pr_reviewer](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml#L16) section in the configuration file.
See the [Tools Guide](https://codium-ai.github.io/Docs-PR-Agent/tools/) for a detailed description of the different tools and their configurations.
There are three ways to set persistent configurations:
1. Wiki configuration page 💎
2. Local configuration file
3. Global configuration file 💎
1. [Wiki](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/#wiki-configuration-file) configuration page 💎
2. [Local](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/#local-configuration-file) configuration file
3. [Global](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/#global-configuration-file) configuration file 💎
In terms of precedence, wiki configurations will override local configurations, and local configurations will override global configurations.
!!! tip "Tip1: edit only what you need"
For a list of all possible configurations, see the [configuration options](https://github.com/qodo-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml/) page.
In addition to general configuration options, each tool has its own configurations. For example, the `review` tool will use parameters from the [pr_reviewer](https://github.com/Codium-ai/pr-agent/blob/main/pr_agent/settings/configuration.toml#L16) section in the configuration file.
!!! tip "Tip1: Edit only what you need"
Your configuration file should be minimal, and edit only the relevant values. Don't copy the entire configuration options, since it can lead to legacy problems when something changes.
!!! tip "Tip2: show relevant configurations"
If you set `config.output_relevant_configurations=true`, each tool will also output in a collapsible section its relevant configurations. This can be useful for debugging, or getting to know the configurations better.
!!! tip "Tip2: Show relevant configurations"
If you set `config.output_relevant_configurations` to True, each tool will also output in a collapsible section its relevant configurations. This can be useful for debugging, or getting to know the configurations better.
## Wiki configuration file 💎
`Platforms supported: GitHub, GitLab`
`Platforms supported: GitHub, GitLab, Bitbucket`
With PR-Agent-Pro, you can set configurations by creating a page called `.pr_agent.toml` in the [wiki](https://github.com/Codium-ai/pr-agent/wiki/pr_agent.toml) of the repo.
With Qodo Merge, you can set configurations by creating a page called `.pr_agent.toml` in the [wiki](https://github.com/Codium-ai/pr-agent/wiki/pr_agent.toml) of the repo.
The advantage of this method is that it allows to set configurations without needing to commit new content to the repo - just edit the wiki page and **save**.
![wiki_configuration](https://codium.ai/images/pr_agent/wiki_configuration.png){width=512}
Click [here](https://codium.ai/images/pr_agent/wiki_configuration_pr_agent.mp4) to see a short instructional video. We recommend surrounding the configuration content with triple-quotes (or \`\`\`toml), to allow better presentation when displayed in the wiki as markdown.
@ -34,14 +35,13 @@ An example content:
generate_ai_title=true
```
PR-Agent will know to remove the surrounding quotes when reading the configuration content.
Qodo Merge will know to remove the surrounding quotes when reading the configuration content.
## Local configuration file
`Platforms supported: GitHub, GitLab, Bitbucket, Azure DevOps`
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 default branch, you can edit and customize any configuration parameter. Note that you need to upload or update `.pr_agent.toml` before using the PR Agent tools (either at PR creation or via manual trigger) for the configuration to take effect.
For example, if you set in `.pr_agent.toml`:
@ -56,12 +56,11 @@ extra_instructions="""\
Then you can give a list of extra instructions to the `review` tool.
## Global configuration file 💎
`Platforms supported: GitHub, GitLab, Bitbucket`
`Platforms supported: GitHub, GitLab (cloud), Bitbucket (cloud)`
If you create a repo called `pr-agent-settings` in your **organization**, it's configuration file `.pr_agent.toml` will be used as a global configuration file for any other repo that belongs to the same organization.
If you create a repo called `pr-agent-settings` in your **organization**, its configuration file `.pr_agent.toml` will be used as a global configuration file for any other repo that belongs to the same organization.
Parameters from a local `.pr_agent.toml` file, in a specific repo, will override the global configuration parameters.
For example, in the GitHub organization `Codium-ai`:
@ -69,3 +68,32 @@ For example, in the GitHub organization `Codium-ai`:
- The file [`https://github.com/Codium-ai/pr-agent-settings/.pr_agent.toml`](https://github.com/Codium-ai/pr-agent-settings/blob/main/.pr_agent.toml) serves as a global configuration file for all the repos in the GitHub organization `Codium-ai`.
- The repo [`https://github.com/Codium-ai/pr-agent`](https://github.com/Codium-ai/pr-agent/blob/main/.pr_agent.toml) inherits the global configuration file from `pr-agent-settings`.
## Project/Group level configuration file 💎
`Platforms supported: GitLab, Bitbucket Data Center`
Create a repository named `pr-agent-settings` within a specific project (Bitbucket) or a group/subgroup (Gitlab).
The configuration file in this repository will apply to all repositories directly under the same project/group/subgroup.
!!! note "Note"
For Gitlab, in case of a repository nested in several sub groups, the lookup for a pr-agent-settings repo will be only on one level above such repository.
## Organization level configuration file 💎
`Relevant platforms: Bitbucket Data Center`
Create a dedicated project to hold a global configuration file that affects all repositories across all projects in your organization.
**Setting up organization-level global configuration:**
1. Create a new project with both the name and key: PR_AGENT_SETTINGS.
2. Inside the PR_AGENT_SETTINGS project, create a repository named pr-agent-settings.
3. In this repository, add a `.pr_agent.toml` configuration file—structured similarly to the global configuration file described above.
4. Optionally, you can add organizational-level [global best practices](https://qodo-merge-docs.qodo.ai/tools/improve/#global-hierarchical-best-practices).
Repositories across your entire Bitbucket organization will inherit the configuration from this file.
!!! note "Note"
If both organization-level and project-level global settings are defined, the project-level settings will take precedence over the organization-level configuration. Additionally, parameters from a repositorys local .pr_agent.toml file will always override both global settings.

Some files were not shown because too many files have changed in this diff Show more