Merge "Add autogenerated tag to Gerrit reviews"

This commit is contained in:
Zuul 2019-09-18 17:59:49 +00:00 committed by Gerrit Code Review
commit feee5b0a95
3 changed files with 17 additions and 7 deletions

View File

@ -419,7 +419,7 @@ class FakeGerritChange(object):
return event
def addApproval(self, category, value, username='reviewer_john',
granted_on=None, message=''):
granted_on=None, message='', tag=None):
if not granted_on:
granted_on = time.time()
approval = {
@ -430,7 +430,8 @@ class FakeGerritChange(object):
'username': username,
'email': username + '@example.com',
},
'grantedOn': int(granted_on)
'grantedOn': int(granted_on),
'__tag': tag, # Not available in ssh api
}
for i, x in enumerate(self.patchsets[-1]['approvals'][:]):
if x['by']['username'] == username and x['type'] == category:
@ -530,12 +531,15 @@ class FakeGerritChange(object):
_, label_min, label_max = self.categories[app['type']]
val = int(app['value'])
label_all = label.setdefault('all', [])
label_all.append({
approval = {
"value": val,
"username": app['by']['username'],
"email": app['by']['email'],
"date": str(datetime.datetime.fromtimestamp(app['grantedOn'])),
})
}
if app.get('__tag') is not None:
approval['tag'] = app['__tag']
label_all.append(approval)
if val == label_min:
label['blocking'] = True
if 'rejected' not in label:
@ -716,8 +720,10 @@ class GerritWebServer(object):
message = data['message']
action = data.get('labels', {})
comments = data.get('comments', {})
tag = data.get('tag', None)
fake_gerrit._test_handle_review(
int(change.data['number']), message, action, comments)
int(change.data['number']), message, action, comments,
tag=tag)
self.send_response(200)
self.end_headers()
@ -962,7 +968,7 @@ class FakeGerritConnection(gerritconnection.GerritConnection):
self._test_handle_review(int(item.change.number), message, action)
def _test_handle_review(self, change_number, message, action,
file_comments=None):
file_comments=None, tag=None):
# Handle a review action from a test
change = self.changes[change_number]
@ -978,7 +984,8 @@ class FakeGerritConnection(gerritconnection.GerritConnection):
for cat in action:
if cat != 'submit':
change.addApproval(cat, action[cat], username=self.user)
change.addApproval(cat, action[cat], username=self.user,
tag=tag)
if message:
change.messages.append(message)

View File

@ -148,6 +148,8 @@ class TestGerritWeb(ZuulTestCase):
self.waitUntilSettled()
self.assertEqual(A.patchsets[0]['approvals'][0]['value'], "-1")
self.assertEqual(A.patchsets[0]['approvals'][0]['__tag'],
"autogenerated:zuul:check")
self.assertIn('Zuul encountered a syntax error',
A.messages[0])
comments = sorted(A.comments, key=lambda x: x['line'])

View File

@ -1018,6 +1018,7 @@ class GerritConnection(BaseConnection):
data['labels'] = labels
if file_comments:
data['comments'] = file_comments
data['tag'] = 'autogenerated:zuul:%s' % (item.pipeline.name)
changeid = "%s~%s~%s" % (
urllib.parse.quote(str(change.project), safe=''),
urllib.parse.quote(str(change.branch), safe=''),