X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=server%2Fpost-receive-trac.py;h=a615aa60397d9fc2fb8bce0763c0b78c470bd5a6;hb=e1c9b1190cab8a889aaeafea220a63838b7e6d2b;hp=074c4ba29e1470188bd96ddabe56b9bc6d1307cd;hpb=11c48138073c62850470035a5f5cf66126934497;p=git-central.git diff --git a/server/post-receive-trac.py b/server/post-receive-trac.py index 074c4ba..a615aa6 100644 --- a/server/post-receive-trac.py +++ b/server/post-receive-trac.py @@ -17,7 +17,12 @@ from trac.util.datefmt import utc from trac.versioncontrol.api import NoSuchChangeset project = sys.argv[1] -rev = sys.argv[2] +refname = sys.argv[2] +describe = sys.argv[3] +describe_tags = sys.argv[4] +rev = sys.argv[5] +author = sys.argv[6] +message = sys.argv[7] def refs(ticket): pass @@ -33,17 +38,13 @@ def qa(ticket): commands = { 're': refs, 'refs': refs, 'qa': qa } commandPattern = re.compile(r'(?P[A-Za-z]*).?(?P#[0-9]+(?:(?:[, &]*|[ ]?and[ ]?)#[0-9]+)*)') ticketPattern = re.compile(r'#([0-9]*)') +authorPattern = re.compile(r'<(.+)@') tickets = {} env = open_environment(project) -repos = env.get_repository() -repos.sync() - -changeset = repos.get_changeset(rev) - -for command, tickets in commandPattern.findall(changeset.message): +for command, ticketList in commandPattern.findall(message): if commands.has_key(command.lower()): - for ticketId in ticketPattern.findall(tickets): + for ticketId in ticketPattern.findall(ticketList): tickets.setdefault(ticketId, []).append(commands[command.lower()]) for ticketId, commands in tickets.iteritems(): @@ -60,9 +61,11 @@ for ticketId, commands in tickets.iteritems(): if change['permanent']: cnum += 1 + username = authorPattern.findall(author)[0] now = datetime.now(utc) - message = "(In [%s]) %s" % (rev, changeset.message) - ticket.save_changes(changeset.author, message, now, db, cnum+1) + message = "(On %s [changeset:%s %s]) %s" % (refname, rev, describe_tags, message) + ticket['branch'] = refname + ticket.save_changes(username, message, now, db, cnum+1) db.commit() tn = TicketNotifyEmail(env)