Pass the output of git describe --tags to trac as well.
[git-central.git] / server / post-receive-trac.py
index 383521b..78ab6e4 100644 (file)
@@ -17,7 +17,10 @@ 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]
 
 def refs(ticket):
        pass
@@ -33,6 +36,7 @@ def qa(ticket):
 commands = { 're': refs, 'refs': refs, 'qa': qa }
 commandPattern = re.compile(r'(?P<action>[A-Za-z]*).?(?P<ticket>#[0-9]+(?:(?:[, &]*|[ ]?and[ ]?)#[0-9]+)*)')
 ticketPattern = re.compile(r'#([0-9]*)')
+authorPattern = re.compile(r'<(.+)@')
 tickets = {}
 
 env = open_environment(project)
@@ -60,9 +64,11 @@ for ticketId, commands in tickets.iteritems():
                if change['permanent']:
                        cnum += 1
 
+       username = authorPattern.findall(changeset.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, changeset.message)
+       ticket['branch'] = refname
+       ticket.save_changes(username, message, now, db, cnum+1)
        db.commit()
 
        tn = TicketNotifyEmail(env)