gerritbot/send-daily-digest | 46 +++++++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 13 deletions(-)
New commits: commit b5807dd80ff79305bb01dbd2a5101cef3a2a7864 Author: Mathias Michel <m...@gmx.fr> Date: Sun Nov 24 02:19:38 2013 +0100 fdo#71911 : show the top level dir of a new change use the gerrit query to get the info since gerrit does not really create refs And then we don't have patches in the repo. (see http://gerrit-documentation.googlecode.com/svn/Documentation/2.3/user-upload.html#_gritty_details) restore mail for other repos small format on long lines Change-Id: Iccce0eb3c1a2c7e17fc6716d61917944ec05d6cf Reviewed-on: https://gerrit.libreoffice.org/6793 Reviewed-by: Björn Michaelsen <bjoern.michael...@canonical.com> Tested-by: Björn Michaelsen <bjoern.michael...@canonical.com> diff --git a/gerritbot/send-daily-digest b/gerritbot/send-daily-digest old mode 100644 new mode 100755 index 899fe2e..cf31f98 --- a/gerritbot/send-daily-digest +++ b/gerritbot/send-daily-digest @@ -26,24 +26,40 @@ def get_daily_query(status, project): def get_digest(query): digest = '' freshers = '' + do_module = [] + about = '' # we want first time contributors on new changes for core - do_fresh = query.split(':')[1].split(' ')[0] == 'core' and \ - query.split(':')[3].split(' ')[0] == 'open' and \ - query.split(':')[3].split(' ')[1] == '-age' + do_fresh = (query.split(':')[1].split(' ')[0] == 'core' and + query.split(':')[3].split(' ')[0] == 'open' and + query.split(':')[3].split(' ')[1] == '-age' ) - if do_fresh: all_users = init_freshers() + if do_fresh: + all_users = init_freshers() + do_module = ['--files', '--patch-sets'] - for line in sh.ssh(args['gerrit'], 'gerrit query --format=JSON -- \'%s\'' % query).encode('utf8').strip().split('\n'): + for line in subprocess.check_output(['ssh', args['gerrit'], 'gerrit', 'query'] + do_module + + ['--format=JSON','--', "'" + query +"'"]).strip().splitlines(): change = json.loads(line) if 'url' in change.keys(): + if do_fresh: # we are in new changes + fpaths = (set([fileobj['file'] for pset in change['patchSets'] + for fileobj in pset['files']])) + fpaths.remove('/COMMIT_MSG') + # we assume gerrit replies with no leading slash + # if no subfolder, module is "build" + about = '\n about module ' + ', '.join(sorted(set([p.split('/')[0] + if '/' in p else 'build' for p in fpaths]))) + if do_fresh and change['owner']['name'].encode('utf8') not in all_users: - freshers += '+ %s\n in %s from %s\n' % (change['subject'][:73], change['url'], change['owner']['name']) + freshers += '+ %s\n in %s from %s%s\n' % (change['subject'][:73], + change['url'], change['owner']['name'], about) else: - digest += '+ %s\n in %s from %s\n' % (change['subject'][:73], change['url'], change['owner']['name']) + digest += '+ %s\n in %s from %s%s\n' % (change['subject'][:73], + change['url'], change['owner']['name'], about) if freshers != '': - digest = '~~~~ First time contributors doing great things ! ~~~~\n' + freshers + \ - "~~~~ End of freshness ~~~~\n\n" + digest + digest = ('~~~~ First time contributors doing great things ! ~~~~\n' + freshers + + "~~~~ End of freshness ~~~~\n\n" + digest ) if digest == '': digest = 'None' return digest @@ -64,17 +80,20 @@ def init_freshers(): def get_project_body(project): none = True - body = '* Open changes on master for project %s changed in the last %d hours:\n\n' % (project, args['age']) + body = ('* Open changes on master for project %s changed in the last %d hours:\n\n' + % (project, args['age'])) dig = get_digest(get_daily_query('open', project)) if dig != 'None': none = False body += dig - body += '\n\n* Merged changes on master for project %s changed in the last %d hours:\n\n' % (project, args['age']) + body += ('\n\n* Merged changes on master for project %s changed in the last %d hours:\n\n' + % (project, args['age'])) dig = get_digest(get_daily_query('merged', project)) if dig != 'None': none = False body += dig - body += '\n\n* Abandoned changes on master for project %s changed in the last %d hours:\n\n' % (project, args['age']) + body += ('\n\n* Abandoned changes on master for project %s changed in the last %d hours:\n\n' + % (project, args['age'])) dig = get_digest(get_daily_query('abandoned', project)) if dig != 'None': none = False body += dig @@ -128,7 +147,7 @@ Note: The bot generating this message can be found and improved here: msg['X-Mailer'] = 'LibreOfficeGerritDigestMailer 1.1' server.sendmail(msg_from, msg_to, str(msg)) - server.quit() + return project if __name__ == '__main__': @@ -147,5 +166,6 @@ if __name__ == '__main__': send_message_for_project('dev-tools') else: send_message_for_project(args['repo']) + server.quit() # vim: set et sw=4 ts=4:
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits