api/pull-requests: trigger events for comments/review status changes.
This commit is contained in:
parent
18d6a1cb9b
commit
3f25bc4e13
2 changed files with 27 additions and 1 deletions
|
|
@ -553,6 +553,7 @@ def comment_pull_request(
|
|||
)
|
||||
|
||||
if allowed_to_change_status and status:
|
||||
old_calculated_status = pull_request.calculated_review_status()
|
||||
ChangesetStatusModel().set_status(
|
||||
pull_request.target_repo.repo_id,
|
||||
status,
|
||||
|
|
@ -563,6 +564,20 @@ def comment_pull_request(
|
|||
Session().flush()
|
||||
|
||||
Session().commit()
|
||||
|
||||
PullRequestModel().trigger_pull_request_hook(
|
||||
pull_request, apiuser, 'comment',
|
||||
data={'comment': comment})
|
||||
|
||||
if allowed_to_change_status and status:
|
||||
# we now calculate the status of pull request, and based on that
|
||||
# calculation we set the commits status
|
||||
calculated_status = pull_request.calculated_review_status()
|
||||
if old_calculated_status != calculated_status:
|
||||
PullRequestModel().trigger_pull_request_hook(
|
||||
pull_request, apiuser, 'review_status_change',
|
||||
data={'status': calculated_status})
|
||||
|
||||
data = {
|
||||
'pull_request_id': pull_request.pull_request_id,
|
||||
'comment_id': comment.comment_id if comment else None,
|
||||
|
|
@ -837,6 +852,7 @@ def update_pull_request(
|
|||
|
||||
reviewers_changes = {"added": [], "removed": []}
|
||||
if reviewers:
|
||||
old_calculated_status = pull_request.calculated_review_status()
|
||||
added_reviewers, removed_reviewers = \
|
||||
PullRequestModel().update_reviewers(pull_request, reviewers, apiuser)
|
||||
|
||||
|
|
@ -846,6 +862,13 @@ def update_pull_request(
|
|||
[get_user_or_error(n).username for n in removed_reviewers])
|
||||
Session().commit()
|
||||
|
||||
# trigger status changed if change in reviewers changes the status
|
||||
calculated_status = pull_request.calculated_review_status()
|
||||
if old_calculated_status != calculated_status:
|
||||
PullRequestModel().trigger_pull_request_hook(
|
||||
pull_request, apiuser, 'review_status_change',
|
||||
data={'status': calculated_status})
|
||||
|
||||
data = {
|
||||
'msg': 'Updated pull request `{}`'.format(
|
||||
pull_request.pull_request_id),
|
||||
|
|
|
|||
|
|
@ -44,7 +44,10 @@ from rhodecode.events import (
|
|||
])
|
||||
def test_pullrequest_events_serialized(EventClass, pr_util, config_stub):
|
||||
pr = pr_util.create_pull_request()
|
||||
event = EventClass(pr)
|
||||
if EventClass == PullRequestReviewEvent:
|
||||
event = EventClass(pr, 'approved')
|
||||
else:
|
||||
event = EventClass(pr)
|
||||
data = event.as_dict()
|
||||
assert data['name'] == EventClass.name
|
||||
assert data['repo']['repo_name'] == pr.target_repo.repo_name
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue