poc: POC fully integrated, need still to fix a couple of bugs and add audit logs

This commit is contained in:
ievgenii vdovenko 2025-09-03 13:08:19 +02:00
parent 3d0a1b146a
commit 29564261fb
4 changed files with 182 additions and 15 deletions

View file

@ -30,6 +30,7 @@ from rhodecode.apps._base import RepoAppView, DataGridAppView
from rhodecode.lib import helpers as h, diffs, codeblocks, channelstream
from rhodecode.lib.base import vcs_operation_context
from rhodecode.lib.celerylib import run_task, tasks
from rhodecode.lib.diffs import load_cached_diff, cache_diff, diff_cache_exist
from rhodecode.lib.exceptions import CommentVersionMismatch
from rhodecode.lib import ext_json
@ -54,6 +55,7 @@ from rhodecode.model.db import (
ChangesetStatus,
Repository,
PullRequestReviewers,
User,
)
from rhodecode.model.forms import PullRequestForm
from rhodecode.model.meta import Session
@ -1310,13 +1312,20 @@ class RepoPullRequestsView(RepoAppView, DataGridAppView):
do_update_branch_close = "close_branch_before_merging" in self.request.POST
if "review_members" in controls:
self._update_reviewers(
ai_user = User.get_ai_user()
ai_user_id = ai_user.user_id
ids_to_add, ids_to_remove = self._update_reviewers(
c,
pull_request,
controls["review_members"],
pull_request.reviewer_data,
PullRequestReviewers.ROLE_REVIEWER,
)
if ai_user_id in ids_to_add:
log.debug("Initiating code review for pull request id: %s", pull_request.pull_request_id)
run_task(tasks.start_ai_code_review, pull_request.pull_request_id)
elif "observer_members" in controls:
self._update_reviewers(
c,
@ -1438,6 +1447,9 @@ class RepoPullRequestsView(RepoAppView, DataGridAppView):
PullRequestModel().get_reviewer_functions()
)
ids_to_add = None
ids_to_remove = None
if role == PullRequestReviewers.ROLE_REVIEWER:
try:
reviewers = validate_default_reviewers(review_members, reviewer_rules)
@ -1447,7 +1459,9 @@ class RepoPullRequestsView(RepoAppView, DataGridAppView):
return
old_calculated_status = pull_request.calculated_review_status()
PullRequestModel().update_reviewers(pull_request, reviewers, self._rhodecode_db_user)
ids_to_add, ids_to_remove = PullRequestModel().update_reviewers(
pull_request, reviewers, self._rhodecode_db_user
)
Session().commit()
@ -1470,13 +1484,17 @@ class RepoPullRequestsView(RepoAppView, DataGridAppView):
h.flash(e, category="error")
return
PullRequestModel().update_observers(pull_request, observers, self._rhodecode_db_user)
ids_to_add, ids_to_remove = PullRequestModel().update_observers(
pull_request, observers, self._rhodecode_db_user
)
Session().commit()
msg = _("Pull request observers updated.")
h.flash(msg, category="success")
channelstream.pr_update_channelstream_push(self.request, c.pr_broadcast_channel, self._rhodecode_user, msg)
return ids_to_add, ids_to_remove
@LoginRequired()
@NotAnonymous()
@HasRepoPermissionAnyDecorator("repository.read", "repository.write", "repository.admin")