# phabdiff.py # # Copyright 2013 Facebook, Inc. # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from mercurial import registrar, templatekw from phabricator import diffprops import re templatekeyword = registrar.templatekeyword() @templatekeyword('phabdiff') def showphabdiff(repo, ctx, templ, **args): """String. Return the phabricator diff id for a given hg rev.""" descr = ctx.description() revision = diffprops.parserevfromcommitmsg(descr) return 'D' + revision if revision else '' @templatekeyword('tasks') def showtasks(**args): """String. Return the tasks associated with given hg rev.""" tasks = [] descr = args['ctx'].description() match = re.search('(Tasks?|Task ID):(.*)', descr) if match: tasks = re.findall('\d+', match.group(0)) return templatekw.showlist('task', tasks, args)