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
|
return users
|
||||||
|
|
||||||
def request_override_check(self, request):
|
def request_override_check(self, request, force=False):
|
||||||
"""Check for a comment command requesting review override."""
|
"""Check for a comment command requesting review override."""
|
||||||
if not self.override_allow:
|
if not force and not self.override_allow:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
comments = self.comment_api.get_comments(request_id=request.reqid)
|
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(
|
for args, who in self.comment_api.command_find(
|
||||||
comments, self.review_user, 'override', users):
|
comments, self.review_user, 'override', users):
|
||||||
message = 'overridden by {}'.format(who)
|
message = 'overridden by {}'.format(who)
|
||||||
override = args[1] or None
|
override = args[1] if len(args) >= 2 else 'accept'
|
||||||
if override == 'accept':
|
if override == 'accept':
|
||||||
self.review_messages['accepted'] = message
|
self.review_messages['accepted'] = message
|
||||||
return True
|
return True
|
||||||
|
@ -15,8 +15,6 @@ class OriginManager(ReviewBot.ReviewBot):
|
|||||||
|
|
||||||
# ReviewBot options.
|
# ReviewBot options.
|
||||||
self.request_default_return = True
|
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
|
self.override_allow = False
|
||||||
|
|
||||||
def check_source_submission(self, src_project, src_package, src_rev, tgt_project, tgt_package):
|
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)
|
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:
|
if result.accept:
|
||||||
self.review_messages['accepted'] = origin_annotation_dump(origin_info_new, origin_info_old)
|
self.review_messages['accepted'] = origin_annotation_dump(origin_info_new, origin_info_old)
|
||||||
return result.accept
|
return result.accept
|
||||||
|
@ -291,11 +291,15 @@ def origin_find_fallback(apiurl, target_project, package, source_hash, user):
|
|||||||
|
|
||||||
return None
|
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)}
|
data = {'origin': str(origin_info_new.project)}
|
||||||
if origin_info_old and origin_info_new.project != origin_info_old.project:
|
if origin_info_old and origin_info_new.project != origin_info_old.project:
|
||||||
data['origin_old'] = str(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)
|
return yaml.dump(data, default_flow_style=False)
|
||||||
|
|
||||||
def origin_annotation_load(annotation):
|
def origin_annotation_load(annotation):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user