origin-manager: support ReviewBot override comment using origin workaround.

This commit is contained in:
Jimmy Berry 2019-02-26 09:35:25 -06:00
parent e930ea37c3
commit a8319e6664
2 changed files with 14 additions and 4 deletions

View File

@ -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

View File

@ -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):