From d6ec27547ff5812ddff9252208482f307f2d6982 Mon Sep 17 00:00:00 2001 From: Ben Nemec Date: Tue, 29 Apr 2014 20:54:57 +0000 Subject: [PATCH] Update for Gerrit 2.8 Some of the review types returned in the Gerrit JSON data have changed, so reviewstats wasn't finding any reviews. This also adds support for the new Workflow votes so new approvals will show up correctly. Note that the output from reviewstats still seems to be rather bogus because the review timestamps appear to have all been updated in the upgrade, but I think reviewstats is processing the data as intended with this change. Change-Id: I6cccf427a0ff875fdbc59f8c8d83a37db567f786 --- reviewstats/cmd/reviewers.py | 11 ++++++----- reviewstats/utils.py | 3 ++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/reviewstats/cmd/reviewers.py b/reviewstats/cmd/reviewers.py index 2ad80c5..bd54b13 100755 --- a/reviewstats/cmd/reviewers.py +++ b/reviewstats/cmd/reviewers.py @@ -54,9 +54,9 @@ def process_patchset(project, patchset, reviewers, ts): submitter = patchset['uploader'].get('username', 'unknown') for review in patchset.get('approvals', []): - if review['type'] != 'CRVW': + if review['type'] != 'Code-Review': # Only count code reviews. Don't add another for Approved, which - # is type 'APRV' + # is type 'Approved' or 'Workflow' continue if review['by'].get('username', 'unknown') not in project['core-team']: # Only checking for disagreements from core team members @@ -72,16 +72,17 @@ def process_patchset(project, patchset, reviewers, ts): if review['grantedOn'] < ts: continue - if review['type'] not in ('CRVW', 'APRV'): + if review['type'] not in ('Code-Review', 'Approved', 'Workflow'): continue reviewer = review['by'].get('username', 'unknown') set_defaults(reviewer, reviewers) - if review['type'] == 'APRV': + if (review['type'] == 'Approved' or + (review['type'] == 'Workflow' and int(review['value']) > 0)): cur = reviewers[reviewer]['votes']['A'] reviewers[reviewer]['votes']['A'] = cur + 1 - else: + elif review['type'] != 'Workflow': cur_total = reviewers[reviewer].get('total', 0) reviewers[reviewer]['total'] = cur_total + 1 set_defaults(submitter, reviewers) diff --git a/reviewstats/utils.py b/reviewstats/utils.py index c148cf0..1bb5edd 100644 --- a/reviewstats/utils.py +++ b/reviewstats/utils.py @@ -197,7 +197,8 @@ def patch_set_approved(patch_set): """ approvals = patch_set.get('approvals', []) for review in approvals: - if review['type'] == 'APRV': + if (review['type'] == 'Approved' or + (review['type'] == 'Workflow' and int(review['value']) > 0)): return True return False