Commit graph

192 commits

Author SHA1 Message Date
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
Hussam.lawen
3326327572
More refactoring.... 2023-07-19 17:01:56 +03:00
Hussam.lawen
8038b6ab99
refactor and clean 2023-07-19 14:22:34 +03:00
zmeir
8868c92141 Merge branch 'main' into zmeir-review_score 2023-07-19 11:05:24 +03:00
Hussam.lawen
f73cddcb93
Change Review title when 2023-07-19 01:03:47 +03:00
Hussam.lawen
5f36f0d753
Merge commit 'bdf7eff7cd0a8894c3e66e49bdf89f27da1bfcb4' into hl/incremental_review 2023-07-18 23:28:43 +03:00
Hussam.lawen
dc4bf13d39
Add Incremental Review 2023-07-18 23:14:47 +03:00
zmeir
0396e10706 Add configuration to request a score for the PR
This can help teams compare the review of the PR agent with that of a human reviewer, and fine-tune a score threshold for automatic approval where they decide the agent's review is satisfactory.
2023-07-18 16:40:35 +03:00
mrT23
c507785475
bugfix 2023-07-18 16:32:51 +03:00
Hussam Lawen
2e36fce4eb
Merge pull request #83 from Codium-ai/hl/gitlab_description
Support describe for Gitlab
2023-07-18 13:47:32 +03:00
Hussam.lawen
f2b74b6970
support gitlab describe function 2023-07-18 13:03:36 +03:00
Ori Kotek
05e4e09dfc
Lint 2023-07-18 12:27:28 +03:00
Ori Kotek
13092118dc
Move the new git provider function to the abstract interface 2023-07-18 12:26:49 +03:00
Ori Kotek
7d108992fc
Merge remote-tracking branch 'origin/main' into zmeir-publish_inline_comments_single_api_call 2023-07-18 11:53:41 +03:00
Ori Kotek
90f97b0226
Lint fixes 2023-07-18 11:34:57 +03:00
mrT23
6d2673f39d
Merge remote-tracking branch 'origin/tr/agent_logic' into tr/agent_logic 2023-07-18 10:32:43 +03:00
mrT23
b3a1d456b2
if settings.pr_reviewer.num_code_suggestions 2023-07-18 10:32:36 +03:00
Ori Kotek
e5259e2f5c
Small refactor 2023-07-18 10:17:09 +03:00
mrT23
51e08c3c2b
reflect and review + protections 2023-07-18 08:22:25 +03:00
mrT23
aee08ebbfe
Merge branch 'main' into tr/agent_logic 2023-07-18 08:04:47 +03:00
mrT23
539edcad3c
works 2023-07-17 16:53:38 +03:00
mrT23
f8f415eb75
stable 2023-07-17 15:49:29 +03:00
zmeir
24583b05f7 Publish GitHub review comments with single API call 2023-07-17 10:41:02 +03:00
mrT23
8f3520807c
minor fixes
minor fixes
2023-07-17 08:42:18 +03:00
Ori Kotek
60bce8f049
Update Github polling 2023-07-16 15:00:13 +03:00
Ori Kotek
0acf423450
Update comment 2023-07-16 14:30:34 +03:00
Ori Kotek
2531849b73
Update usage instructions in PR comment 2023-07-16 13:45:20 +03:00
Hussam Lawen
4a6bf4c55a
Merge branch 'main' into hl/gitlab_fix 2023-07-14 22:48:13 +03:00
Hussam.lawen
da6828ad87
Inline suggestion refactor + Gitlab WORKS 2023-07-13 20:43:49 +03:00
mrT23
4e59693c76
diff_files 2023-07-13 18:26:35 +03:00
mrT23
77a451ada0
inline_code_comments 2023-07-13 09:44:33 +03:00
Hussam.lawen
fd4a2bf7ff
refactor try_fix_json, generalize finding the ending of a json item (support new lines, spaces tab) 2023-07-11 22:11:42 +03:00
Hussam.lawen
a3211d4958
Merge commit '210d94f2aa6ebf872b9b85051d1842c32d4fc34e' into hl/try_fix_when_broken_output 2023-07-11 17:33:02 +03:00
Hussam.lawen
86d7ed5f82
Try to fix broken json output 2023-07-11 17:32:48 +03:00
Ori Kotek
b2d952cafa
1. Move deployment_type to configuration.toml
2. Lint
3. Inject GitHub app installation ID into GitHub provider using the settings mechanism.
2023-07-11 16:55:09 +03:00
Ori Kotek
6eacf4791d
Merge remote-tracking branch 'origin/main' into feature/gitlab_provider 2023-07-11 15:49:06 +03:00
mrT23
301622216f
Focused PR update 2023-07-11 08:50:28 +03:00
salberts
75167c2700 add polling 2023-07-08 08:52:11 +03:00
salberts
ee3cac9836 bugfix 2023-07-07 16:33:25 +03:00
salberts
8b3ff7a632 bugfix 2023-07-07 16:31:28 +03:00
salberts
7d49e080fc remove prints 2023-07-07 16:24:02 +03:00
salberts
7ed12c2f8e refactor 2023-07-07 16:10:33 +03:00
Albert Achtenberg
ed8cf27b05 working example 2023-07-07 15:02:40 +03:00
Ori Kotek
9e96fbab1f
Don't add "How to use" when running from the command line - a small correction #2 2023-07-06 18:33:03 +03:00
Ori Kotek
f1ab6ec88f
Merge pull request #11 from Codium-ai/bugfix/double_notifications
Protect from notifications that may be handled twice
2023-07-06 18:17:13 +03:00
Ori Kotek
4331610e01
Don't add "How to use" when running from the command line - a small correction 2023-07-06 17:53:52 +03:00
Ori Kotek
d04c0f490c
Don't add "How to use" when running from the command line 2023-07-06 17:52:12 +03:00
mrT23
30248c2a7b
readme update 2023-07-06 17:34:40 +03:00
Ori Kotek
71b077faf8
Merge remote-tracking branch 'origin/enhancment/markdown' into feature/github_tag_improve 2023-07-06 12:59:25 +03:00
Ori Kotek
b6333e7f20
Improve handling of tagging and Github app user interaction 2023-07-06 12:58:05 +03:00
mrT23
e53ae712f9
formatting 2023-07-06 12:49:10 +03:00
mrT23
33f859b073
delete "Preparing review..." comment 2023-07-06 08:44:08 +03:00
Ori Kotek
4b4d91dfe9
Initial commit - PR-Agent OSS release 2023-07-06 00:21:08 +03:00