--- trac-post-commit-hook.bak 2012-02-28 14:50:46.000000000 +0900 +++ trac-post-commit-hook 2012-02-28 15:03:51.000000000 +0900 @@ -111,6 +111,7 @@ from trac.util.text import to_unicode from trac.util.datefmt import utc from trac.versioncontrol.api import NoSuchChangeset +from trac.ticket import Milestone ticket_prefix = '(?:#|(?:ticket|issue|bug)[: ]?)' ticket_reference = ticket_prefix + '[0-9]+' @@ -136,7 +137,9 @@ 're': '_cmdRefs', 'references': '_cmdRefs', 'refs': '_cmdRefs', - 'see': '_cmdRefs'} + 'see': '_cmdRefs', + 'milestone': '_cmdMilestoneClose', + } def __init__(self, project=options.project, author=options.user, rev=options.rev, url=options.url): @@ -170,6 +173,7 @@ db = self.env.get_db_cnx() ticket = Ticket(self.env, int(tkt_id), db) + self.milestone = Milestone(self.env, ticket['milestone'], db) for cmd in cmds: cmd(ticket) @@ -181,6 +185,7 @@ cnum += 1 ticket.save_changes(self.author, self.msg, self.now, db, cnum+1) + self.milestone.update() db.commit() tn = TicketNotifyEmail(self.env) @@ -199,6 +204,9 @@ def _cmdRefs(self, ticket): pass + def _cmdMilestoneClose(self, ticket): + self.milestone.completed = self.now + if __name__ == "__main__": if len(sys.argv) < 5: