Merge pull request #1878 from jberry-suse/origin-manager-override
origin-manager: support ReviewBot override comment using origin workaround.
This commit is contained in:
commit
214f8bbc2a
@ -210,9 +210,9 @@ class ReviewBot(object):
|
||||
|
||||
return users
|
||||
|
||||
def request_override_check(self, request):
|
||||
def request_override_check(self, request, force=False):
|
||||
"""Check for a comment command requesting review override."""
|
||||
if not self.override_allow:
|
||||
if not force and not self.override_allow:
|
||||
return None
|
||||
|
||||
comments = self.comment_api.get_comments(request_id=request.reqid)
|
||||
@ -220,7 +220,7 @@ class ReviewBot(object):
|
||||
for args, who in self.comment_api.command_find(
|
||||
comments, self.review_user, 'override', users):
|
||||
message = 'overridden by {}'.format(who)
|
||||
override = args[1] or None
|
||||
override = args[1] if len(args) >= 2 else 'accept'
|
||||
if override == 'accept':
|
||||
self.review_messages['accepted'] = message
|
||||
return True
|
||||
|
@ -15,8 +15,6 @@ class OriginManager(ReviewBot.ReviewBot):
|
||||
|
||||
# ReviewBot options.
|
||||
self.request_default_return = True
|
||||
# No such thing as override, only changing origin which must be approved
|
||||
# by fallback group. Annotation must be included in review.
|
||||
self.override_allow = False
|
||||
|
||||
def check_source_submission(self, src_project, src_package, src_rev, tgt_project, tgt_package):
|
||||
@ -55,7 +53,15 @@ class OriginManager(ReviewBot.ReviewBot):
|
||||
|
||||
self.policy_result_comment_add(project, package, result.comments)
|
||||
|
||||
if not result.wait:
|
||||
if result.wait:
|
||||
# Allow overriding a policy wait by accepting as workaround with the
|
||||
# hope that pending request will be accepted.
|
||||
override = self.request_override_check(self.request, True)
|
||||
if override:
|
||||
self.review_messages['accepted'] = origin_annotation_dump(
|
||||
origin_info_new, origin_info_old, self.review_messages['accepted'])
|
||||
return override
|
||||
else:
|
||||
if result.accept:
|
||||
self.review_messages['accepted'] = origin_annotation_dump(origin_info_new, origin_info_old)
|
||||
return result.accept
|
||||
|
@ -291,11 +291,15 @@ def origin_find_fallback(apiurl, target_project, package, source_hash, user):
|
||||
|
||||
return None
|
||||
|
||||
def origin_annotation_dump(origin_info_new, origin_info_old):
|
||||
def origin_annotation_dump(origin_info_new, origin_info_old, override=False):
|
||||
data = {'origin': str(origin_info_new.project)}
|
||||
if origin_info_old and origin_info_new.project != origin_info_old.project:
|
||||
data['origin_old'] = str(origin_info_old.project)
|
||||
|
||||
if override:
|
||||
data['origin'] = origin_workaround_ensure(data['origin'])
|
||||
data['comment'] = override
|
||||
|
||||
return yaml.dump(data, default_flow_style=False)
|
||||
|
||||
def origin_annotation_load(annotation):
|
||||
|
Loading…
x
Reference in New Issue
Block a user