Commit graph

202 commits

Author SHA1 Message Date
Hussam.lawen
5453507097
small fix 2024-03-10 17:19:27 +02:00
Hussam.lawen
003c49052e
skip incremental review if no file changed since last review 2024-03-10 17:15:25 +02:00
mrT23
10a96d61ca
Merge remote-tracking branch 'origin/main' into tr/split
# Conflicts:
#	pr_agent/settings/pr_reviewer_prompts.toml
2024-03-10 16:57:25 +02:00
mrT23
8324e9a38d
can_be_split 2024-03-10 16:56:32 +02:00
Hussam.lawen
ff2346eacc
update markdown 2024-03-10 14:18:29 +02:00
mrT23
b4e9c55d8d
fixed bug in inline_code_suggestions in review 2024-03-10 07:50:12 +02:00
mrT23
acefbff62b
Add 'final_update_message' option to control publishing of update message in persistent comments 2024-03-05 17:29:17 +02:00
mrT23
f1bd67b7e9
Remove functionality and references to 'remove_previous_review_comment' option 2024-03-03 11:24:30 +02:00
mrT23
39538c5356
cleaning 2024-02-28 09:01:39 +02:00
mrT23
dad3d3429f
artifact 2024-02-25 10:45:15 +02:00
mrT23
877796b539
Refactor logging statements for better readability and debugging 2024-02-25 09:46:07 +02:00
mrT23
4a0b12c036
Refactor reaction handling in GitHub provider and update help text in PR tools 2024-02-20 08:06:33 +02:00
mrT23
2f327c26e8
auto approve 2024-02-13 11:21:59 +02:00
mrT23
555151602f
rstrip() 2024-02-09 11:26:43 +02:00
mrT23
fa077dc516
formatting 2024-02-08 18:55:58 +02:00
Hussam.lawen
a3f4c44632
PR Review 2024-02-08 15:25:43 +02:00
mrT23
b190b1879e
auto approval 2024-02-06 09:09:07 +02:00
mrT23
39891e4ab1
feat: Improve error handling and code readability in pr_agent tools 2024-01-18 17:01:25 +02:00
mrT23
578d15c6fc
usage guide 2024-01-07 16:38:08 +02:00
mrT23
edcb666fbc
docs: Reorganize and enhance documentation for review and describe tools 2024-01-07 09:28:06 +02:00
KennyDizi
37b040b50a Use 'and' in lieu of '&' operator 2023-12-27 10:17:08 +07:00
KennyDizi
31168cd7de Get PR review enable help text from setting 2023-12-27 10:12:41 +07:00
mrT23
a6764c9058
feat: Update help text addition condition in pr_reviewer.py 2023-12-26 09:25:15 +02:00
mrT23
a854e1a408
feat: Refactor help text addition in pr_reviewer.py and update tool names in README.md 2023-12-26 09:18:38 +02:00
mrT23
5fb373b212
Refactor AI handler instantiation to use lazy initialization in PR tools 2023-12-17 16:52:03 +02:00
mrT23
246be6147f
Set LiteLLMAIHandler as default AI handler in all PR tools and simplify AI handler injection in PRAgent 2023-12-14 09:00:14 +02:00
Brian Pham
e37598fdca Merge remote-tracking branch 'upstream/main' into abstract-BaseAiHandler 2023-12-14 07:45:43 +08:00
Brian Pham
557b39ec87 Merge branch 'base-ai-handler' into abstract-BaseAiHandler 2023-12-14 07:44:13 +08:00
Brian Pham
8fb4a42ef1 Update AI handler instantiation in server files 2023-12-13 08:16:02 +08:00
Brian Pham
7eb2e769cf Move ai handlers to specific folder 2023-12-12 23:03:38 +08:00
Brian Pham
5239e1c3e9 Load default AI Handler from util function 2023-12-12 21:51:05 +08:00
Hussam.lawen
fdc776887d
Refactor labels 2023-12-11 16:47:38 +02:00
Brian Pham
b8021d7ca3 rename file 2023-12-11 16:57:23 +08:00
Brian Pham
523a896465 Rename AiHandler to LiteLLMAiHandler 2023-12-11 16:56:49 +08:00
Brian Pham
c0303ff9ec Merge remote-tracking branch 'upstream/main' into abstract-BaseAiHandler 2023-12-09 16:47:13 +00:00
Brian Pham
f2abe5c73e Abstract AiHandler to BaseAiHandler 2023-12-09 16:39:25 +00:00
Brian Pham
7e47baa9db Refactor AI handler classes 2023-12-10 00:25:25 +08:00
mrT23
7e029ead45
refactor: Improve label handling in pr_reviewer.py 2023-11-28 17:03:55 +02:00
mrT23
8f615e17a3
s 2023-11-26 16:42:41 +02:00
mrT23
dff4d1befc
Merge pull request #462 from Codium-ai/tr/more_protections
Enhancements in YAML Parsing and Error Handling
2023-11-19 07:40:06 -08:00
mrT23
83247cadec
protections 2023-11-19 17:30:57 +02:00
mrT23
eb977b4c24
gfm instructions 2023-11-19 11:02:11 +02:00
mrT23
762a6981e1
extra_labels 2023-11-15 14:12:59 +02:00
mrT23
b362c406bc
Merge remote-tracking branch 'origin/main' into tr/review_extra_labels 2023-11-15 14:07:44 +02:00
mrT23
7a342d3312
extra_labels 2023-11-15 14:07:32 +02:00
mrT23
2e95988741
extra_labels 2023-11-15 14:04:17 +02:00
mrT23
9478447141
extra_labels 2023-11-15 14:02:13 +02:00
mrT23
94cb6b9795
more feedback 2023-11-15 09:06:26 +02:00
mrT23
737792d83c
publish_persistent_comment 2023-11-09 15:24:55 +02:00
mrT23
7e5889061c
publish_persistent_comment 2023-11-09 15:20:31 +02:00
mrT23
14610d5375
persistent
s
2023-11-08 20:16:08 +02:00
mrT23
e352c98ce8
Merge pull request #431 from Codium-ai/hl/type_vs_labels
Refactoring PR Labels Handling and Display
2023-11-06 02:10:38 -08:00
mrT23
4c484f8e86
Merge pull request #423 from zmeir/zmeir-external-incremental_review_thresholds
Implementing Thresholds for Incremental PR Reviews
2023-11-06 01:07:01 -08:00
zmeir
8e3fa3926a Extract incremental review checks to separate method 2023-11-06 09:21:22 +02:00
mrT23
e37daf6987
link to change 2023-11-06 08:27:34 +02:00
Hussam.lawen
3548b88463
type and labels 2023-11-05 15:48:39 +02:00
zmeir
c623c3baf4 Added new configurations to prevent too frequent incremental commits on push trigger 2023-11-02 12:24:54 +02:00
KennyDizi
9fbf89670d Improve expression portion of f-strings 2023-11-01 19:11:52 +07:00
KennyDizi
ad1c51c536 Fix SyntaxError: f-string expression part cannot include a backslash 2023-11-01 19:06:29 +07:00
Zohar Meir
7b6a6c7164
Fix formatting when last commit message contains _ 2023-10-31 10:05:13 +02:00
Zohar Meir
816ddeeb9e
Fix call to _get_previous_review_comment
Hey @mrT23, I thinks there's a problem with moving this line to after `self.git_provider.publish_comment(pr_comment)`.

The reason I originally placed it here is because otherwise, if you run `/review --pr_reviewer.remove_previous_review_comment=true` it will publish your review and then immediately after delete it, because it will look for the previous review comment only after you published your new review - so it will take your new review as the previous one. In order to get the real "previous" review you must collect the comments list before publishing a review, so placing this method call first ensures that.

The method `self._get_previous_review_comment()` is a no-op if `pr_reviewer.remove_previous_review_comment=false` so I see no downside in keeping it before `self.git_provider.publish_comment(pr_comment)`

Additionally, the check for `if previous_review_comment:` is redundant because it's done internally in `self._remove_previous_review_comment`. I thought it looked cleaner without this extra nesting here, but if you think more verbosity is better I'll keep it.
2023-10-30 09:06:51 +02:00
mrT23
c895657310
fixed review 2023-10-29 17:59:46 +02:00
Ori Kotek
61d3e1ebf4
Merge pull request #394 from zmeir/zmeir-external-push_trigger
Added support for automatic review on push event
2023-10-29 13:04:33 +02:00
mrT23
d772213cfc
fix labels 2023-10-29 08:58:12 +02:00
Hussam.lawen
f53ec1d0cc
move enable custom labels to custom labels function 2023-10-27 21:12:58 +03:00
Hussam.lawen
f3bdbfc103
Add /generate_labels function + fix issues 2023-10-26 23:28:33 +03:00
Zohar Meir
e6bea76eee
Typo 2023-10-26 17:07:16 +03:00
zmeir
02570ea797 Remove previous review comment on push event 2023-10-26 16:46:54 +03:00
zmeir
65bb70a1dd Added support for automatic review on push event
The new feature can be enabled via the new configuration `github_app.handle_push_event`. To avoid any unwanted side-effects, the current default of this configuration is set to `false`.

The high level flow (assuming the configuration is enabled):
1. receive push event from GitHub
2. extract branch and commits from event
3. find PR url for branch (currently does not support PRs from forks)
4. perform configured commands (e.g. `/describe`, `/review -i`)

The push event flow is guarded by a backlog queue so that multiple push events on the same branch won't trigger multiple duplicate runs of the PR-Agent commands.
Example timeline:
1. push 1 - start handling event
2. push 2 - waiting to be handled while push 1 event is still running
3. push 3 - event is dropped since handling it and handling push 2 is the same, so it is redundant
4. push 1 finished being handled
5. push 2 awakens from wait and continues handling (potentially reviewing the commits of both push 2 and push 3)

All of these options are configurable and can be enabled/disabled as per the user's desire.

Additional minor changes in this PR:
1. Created `DefaultDictWithTimeout` utility class to avoid too much boilerplate code in managing caches for outdated triggers.
2. Guard against running increment review when there are no new commits.
3. Minor styling changes for incremented review text.
2023-10-25 11:15:23 +03:00
Hussam.lawen
1a89c7eadf
refactor + add description options 2023-10-24 22:28:57 +03:00
Hussam.lawen
07617eab5a
add custom labels 2023-10-24 22:06:27 +03:00
Hussam.lawen
fa24413201
Custom Labels 2023-10-23 16:29:33 +03:00
Ori Kotek
c324d88be3
Refactor logging system to use custom logger across the codebase 2023-10-16 14:56:00 +03:00
Zohar Meir
8f9f09ecbf
Fixed help message for bot user
This changes the help message to display properly when running a custom deployment of the PR-Agent app (i.e. not via GitHub Actions, and with the setting `github_app.override_deployment_type=false`)
2023-10-08 16:19:11 +03:00
mrT23
72eecbbf61
add line number 2023-10-05 17:59:08 +03:00
mrT23
989c56220b
add line number 2023-10-05 17:48:36 +03:00
mrT23
632de3f186
protections 2023-09-20 07:39:56 +03:00
mrT23
ea91a38541
Estimated effort to review 2023-09-17 16:31:58 +03:00
mrT23
caaee4e43d
Estimated time to review 2023-09-15 17:09:58 +03:00
Ori Kotek
115b513c9b
Remove 'bitbucket' explicit dependency anywhere that's not in bitbucket_provider.py 2023-09-10 14:06:13 +03:00
sarbjitgrewal
67ff50583a fix improve, update_changelog and review inline comment 2023-08-24 11:52:20 +05:30
Tim Perkins
631fb93b28 Implement Automatic Review Configuration for GitHub app 2023-08-16 16:24:30 -04:00
mrT23
bb5878c99a
Merge branch 'main' into tr/block_scalar 2023-08-11 18:36:21 +03:00
mrT23
273a9e35d9
block scalar 2023-08-11 18:35:34 +03:00
mrT23
d38c5236dd
Merge pull request #187 from Codium-ai/ok/limit_description
Limiting Description and Commit Messages Length
2023-08-09 14:14:47 +03:00
Ori Kotek
e0f295659d
A less hacky way 2023-08-09 12:17:54 +03:00
mrT23
fe75e3f2ec
yaml
yaml
2023-08-09 12:15:52 +03:00
Ori Kotek
e3274af831
A (still) hacky way to clip description and commit messages 2023-08-09 10:17:58 +03:00
Ori Kotek
a00038fbd8
Merge remote-tracking branch 'origin/main' into patch-1 2023-08-06 18:09:09 +03:00
mrT23
fed0ea349a
find_line_number_of_relevant_line_in_file
find_line_number_of_relevant_line_in_file
2023-08-06 08:13:07 +03:00
Krrish Dholakia
ed8554699b bug fixes and updates 2023-08-03 16:05:46 -07:00
mrT23
3e94a71dcd
commit_messages_str is used in all tools 2023-08-02 18:26:39 +03:00
Ori Kotek
8ae936e504
Bug fixes 2023-08-01 15:58:23 +03:00
Ori Kotek
d7b77764c3
Support context aware settings (for each incoming request), support override of settings, refactor CLI to use pr_agent.py 2023-08-01 14:43:26 +03:00
mrT23
3daf94954a
update_settings_from_args 2023-07-30 11:43:44 +03:00
Marshall Yount
ef71a7049e fix TypeError when iterating discussion_messages
When `pr-agent` is reviewing a long list of messages, a TypeError is thrown on the line

```python
for message in reversed(discussion_messages):
```

When reviewing the PyGithub library, the recommend an alternate syntax for iterating a paginated list in reverse.

https://github.com/PyGithub/PyGithub/blob/v1.59.0/github/PaginatedList.py#L122-L125

```
    If you want to iterate in reversed order, just do::

        for repo in user.get_repos().reversed:
            print(repo.name)
```

And here's a copy of the actual traceback

```
Traceback (most recent call last):
  File "/app/pr_agent/servers/github_action_runner.py", line 68, in <module>
    asyncio.run(run_action())
  File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/app/pr_agent/servers/github_action_runner.py", line 64, in run_action
    await PRAgent().handle_request(pr_url, body)
  File "/app/pr_agent/agent/pr_agent.py", line 19, in handle_request
    await PRReviewer(pr_url, is_answer=True).review()
  File "/app/pr_agent/tools/pr_reviewer.py", line 49, in __init__
    answer_str, question_str = self._get_user_answers()
  File "/app/pr_agent/tools/pr_reviewer.py", line 253, in _get_user_answers
    for message in reversed(discussion_messages):
TypeError: object of type 'PaginatedList' has no len()
```
2023-07-28 11:04:46 +02:00
mrT23
1bd47b0d53
enhance pr_reviewer.py code 2023-07-26 17:24:03 +03:00
Ori Kotek
02a1d8dbfc
Add support for fallback models 2023-07-23 16:16:36 +03:00
Ori Kotek
4c36fb4df2
args bug 2023-07-19 18:18:18 +03:00
mrT23
577f24d107
Merge pull request #89 from zmeir/zmeir-review_score
Add Score Review Feature
2023-07-19 17:07:05 +03:00