Adds ability to show number of reviews waiting more than a specified number of days

Adds ability to set how many longest waiting changesets to display
This commit is contained in:
Chris Yeoh 2013-05-29 22:04:46 +09:30
parent e23974f926
commit e799511e39
1 changed files with 17 additions and 2 deletions

View File

@ -35,6 +35,10 @@ optparser.add_option('-u', '--user', default='russellb', help='gerrit user')
optparser.add_option('-k', '--key', default=None, help='ssh key for gerrit')
optparser.add_option('-n', '--no-stable', action='store_true',
help='Exclude changesets for stable branch)')
optparser.add_option('-l', '--longest-waiting', type='int', default=5,
help='Show n changesets that have waited the longest)')
optparser.add_option('-m', '--waiting-more', type='int', default=7,
help='Show number of changesets that have waited more than n days)')
options, args = optparser.parse_args()
@ -93,6 +97,14 @@ def median_age(changes):
median_age = changes[len(changes)/2]['age']
return sec_to_period_string(median_age)
def number_waiting_more_than(changes, seconds):
index = 0
for change in changes:
if change['age'] > seconds:
return len(changes) - index
index += 1
return 0
age_sorted_waiting_on_reviewer = sorted(waiting_on_reviewer,
key=lambda change: change['age'])
@ -104,9 +116,12 @@ print 'Waiting on Submitter: %d' % len(waiting_on_submitter)
print 'Waiting on Reviewer: %d' % len(waiting_on_reviewer)
print ' --> Average wait time: %s' % average_age(waiting_on_reviewer)
print ' --> Median wait time: %s' % median_age(waiting_on_reviewer)
print ' --> Number waiting more than %i days: %i' % (
options.waiting_more, number_waiting_more_than(
age_sorted_waiting_on_reviewer,
60*60*24*options.waiting_more))
print ' --> Longest waiting reviews:'
for change in age_sorted_waiting_on_reviewer[-5:]:
for change in age_sorted_waiting_on_reviewer[-options.longest_waiting:]:
print ' --> %s %s \n (%s)' % (
sec_to_period_string(change['age']),
change['url'], change['subject'])