Show reviews on patches posted by robots

Also Stackalytics shows patches posted by robots, but doesn't
encount commits made by them. This fix should correct review report
and make it closer to Russell's

Closes bug 1259902

Change-Id: Ib2ab3713edd1ffa5fd24edf8f8ea694ff42a8947
This commit is contained in:
Ilya Shakhat 2014-12-25 13:48:06 +03:00
parent 0d9f72e52f
commit 1316f1e7ac
2 changed files with 11 additions and 12 deletions

View File

@ -53,7 +53,8 @@ class CachedMemoryStorage(MemoryStorage):
}
def _save_record(self, record):
if record.company_name == '*robots':
if (record.company_name == '*robots' and
record.record_type not in ['patch', 'review']):
return
self.records[record.record_id] = record
for key, index in six.iteritems(self.indexes):

View File

@ -333,7 +333,8 @@ class RecordProcessor(object):
review['primary_key'] = review['id']
review['gerrit_id'] = owner['username'].lower()
review['author_name'] = owner['name']
review['author_email'] = owner['email'].lower()
if owner.get('email'):
review['author_email'] = owner['email'].lower()
review['date'] = record['createdOn']
patch_sets = record.get('patchSets', [])
@ -363,7 +364,8 @@ class RecordProcessor(object):
uploader = patch['uploader']
patch_record['gerrit_id'] = uploader['username'].lower()
patch_record['author_name'] = uploader['name']
patch_record['author_email'] = uploader['email'].lower()
if uploader.get('email'):
patch_record['author_email'] = uploader['email'].lower()
patch_record['module'] = review['module']
patch_record['branch'] = review['branch']
patch_record['review_id'] = review['id']
@ -401,17 +403,13 @@ class RecordProcessor(object):
* mark - records that a user set approval mark to given review
"""
owner = record['owner']
if 'email' not in owner or 'username' not in owner:
return # ignore
yield self._make_review_record(record)
if 'email' in owner or 'username' in owner:
yield self._make_review_record(record)
for patch in record.get('patchSets', []):
if (('email' not in patch['uploader']) or
('username' not in patch['uploader'])):
continue # ignore
yield self._make_patch_record(record, patch)
if (('email' in patch['uploader']) or
('username' in patch['uploader'])):
yield self._make_patch_record(record, patch)
if 'approvals' not in patch:
continue # not reviewed by anyone