From 1316f1e7ac6afb2bce32ecaf0392b48d7c2bf91b Mon Sep 17 00:00:00 2001 From: Ilya Shakhat Date: Thu, 25 Dec 2014 13:48:06 +0300 Subject: [PATCH] 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 --- stackalytics/dashboard/memory_storage.py | 3 ++- stackalytics/processor/record_processor.py | 20 +++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/stackalytics/dashboard/memory_storage.py b/stackalytics/dashboard/memory_storage.py index f3f760fdf..ee29bbac3 100644 --- a/stackalytics/dashboard/memory_storage.py +++ b/stackalytics/dashboard/memory_storage.py @@ -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): diff --git a/stackalytics/processor/record_processor.py b/stackalytics/processor/record_processor.py index de610eea0..473b5b282 100644 --- a/stackalytics/processor/record_processor.py +++ b/stackalytics/processor/record_processor.py @@ -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