scripts/esc-mentoring.py | 67 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+)
New commits: commit fe62f528cde3c69c07d02c801afa03b93877a746 Author: jan i <jani@Mac-0c4de9c2f7c7.local> Date: Fri Feb 12 11:14:52 2016 +0100 added mentoring tool (start version). This tool serves 2 purposes: - generate a report to ESC - provide daily "what to do" on gerrit/BZ regarding non-committers. Script reads all open easyHacks and provides analytics Script reads all gerrit patch from non committers and provices analytics diff --git a/scripts/esc-mentoring.py b/scripts/esc-mentoring.py new file mode 100644 index 0000000..16dfe36 --- /dev/null +++ b/scripts/esc-mentoring.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python3 +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +import sys +#import re +#import sh +from urllib.request import urlopen, URLError +from io import BytesIO + +def get_easyHacks(): + url = 'https://bugs.documentfoundation.org/buglist.cgi?' \ + 'bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=VERIFIED&bug_status=NEEDINFO' \ + '&columnlist=assigned_to%2Cbug_status%2Cshort_desc%2Cchangeddate%2Creporter%2Cbug_id%2Clongdescs.count%2Copendate' \ + '&keywords=easyHack%2C%20' \ + '&keywords_type=allwords' \ + '&query_format=advanced' \ + '&resolution=---' \ + '&ctype=csv' \ + '&human=0' + try: + resp = urlopen(url) + except URLError: + sys.stderr.write('Error fetching {}'.format(url)) + sys.exit(1) + bug_ids=[] + for line in [raw.decode('utf-8').strip('\n') for raw in BytesIO(resp.read())][1:]: + bug_ids.append(line) + return bug_ids + + +def print_counts(counts): + printorder = reversed(sorted((count, name) for (name, count) in counts.items())) + for count in printorder: + print('%5d %s' % (count[0], count[1])) + +if __name__ == '__main__': + fixed_regression_ids = get_easyHacks() + sys.stderr.write('found %d fixed regressions: %s\n' % (len(fixed_regression_ids), fixed_regression_ids)) +# for bug_id in fixed_regression_ids: +# sys.stderr.write('working on bug %d\n' % bug_id) +# # FIXME: use --numstat instead, which does not abbreviate filenames +# logstat = sh.git('--no-pager', 'log', '--grep', '[fdo|tdf]#%d' % bug_id, '--stat') +# for line in logstat: +# match = statregex.search(str(line)) +# if match and match.group(1): +# filename = match.group(1) +# sys.stderr.write('regression fix touched file: %s\n' % filename) +# if filename in file_counts: +# file_counts[filename]+=1 +# else: +# file_counts[filename]=1 +# print('top level dirs:') +# print_counts(get_dir_counts(file_counts, 1)) +# print('\nsecond level dirs:') +# print_counts(get_dir_counts(file_counts, 2)) +# print('\nthird level dirs:') +# print_counts(get_dir_counts(file_counts, 3)) +# print('\nfourth level dirs:') +# print_counts(get_dir_counts(file_counts, 4)) +# print('\nfiles:') +# print_counts(file_counts) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits