我正在寻找一种方式响应像提交信息创造(未更新)一TRAC票“黑客代码,不杀你的狗(TODO:妥善解决这一问题,避免追小猫代替)”。如何从svn commit创建trac门票?
我希望TRAC系统对“TODO”关键字反应并创建票证与提交信息的内容,业主设置为提交者和开放已提交引用。
在寻找,所以我发现Open and close trac tickets with a single commit基本上说,我怎么能推出自己的解决方案。如果没有可用的预制件,我会这样做。那么 - 有吗?
我正在寻找一种方式响应像提交信息创造(未更新)一TRAC票“黑客代码,不杀你的狗(TODO:妥善解决这一问题,避免追小猫代替)”。如何从svn commit创建trac门票?
我希望TRAC系统对“TODO”关键字反应并创建票证与提交信息的内容,业主设置为提交者和开放已提交引用。
在寻找,所以我发现Open and close trac tickets with a single commit基本上说,我怎么能推出自己的解决方案。如果没有可用的预制件,我会这样做。那么 - 有吗?
我建议看官方Trac的包蟒蛇:http://pypi.python.org/pypi/Trac/0.11.4和文档http://www.edgewall.org/docs/tags-trac-0.11.7/epydoc/trac-module.html
这是我们用它来从一个python脚本创建Trac的门票,我认为这是非常简单易用。你可以运行这个python脚本作为你的VCS的post commit钩子。
您可以使用您的项目设置,然后新的买票启动一个trac的环境和保存。有可能是多一点吧你,但是这应该给你一个好主意:
from trac.env import Environment
from trac.ticket import Ticket
env = Environment(projectSettings, create=0)
tkt = Ticket(env)
tkt['summary'] = 'first line of commit message'
tkt['description'] = 'full commit message'
tkt.save_changes(commitAuthor, '')
不用说,当前Trac的稳定是0.12.3,但当然发展的需要,去与你的当前版本。 (在你的问题你没告诉我们。)
关于你的问题,有a hint就如何落实在最前的CommitTicketUpdater从Trac的核心不同的功能。它具有更新和接近内置操作,所以你需要做一些改变,像这样(基于current Trac trunk
):
commands_create
为命令,即创建一个参考新票到变更,作为一个空间分隔的列表changeset_added
添加一个类宽可变self.comment
和changeset_modified
后右comment
分配添加模块cmd_create
等(未测试)
def cmd_create(self, ticket, changeset, perm): if not self.check_perms or 'TICKET_CREATE' in perm: # Commit messages in general is used for a ticket comment. # New tickets require summary and we'll want description too, # because comment is ignored on ticket creation. # So we need to do message processing here beforehand. ticket['comment'] = None ticket['description'] = self.comment ticket['owner'] = changeset.author ticket['status'] = 'new' ticket['summary'] = ' '.join(['TODO from', str(changeset.rev)]) ticket.insert()
改变ticket_command
所以正则表达式不仅将匹配默认功能票(S)对,但一元“TODO:”,以及(对不起,不能让这个工作的权利-away现在)
延伸私营模块_parse_message
之前if func:
包括另一种情况下
变化_update_tickets
做出评论保存条件,因为您将不再需要/想在新票附加注释)
if ticket['comment']: ticket.save_changes(changeset.author, comment, date, db)
好了,反问作为如果你喜欢尝试这种方法,那么这是必需的。
这真的很令人印象深刻,但超出了我的需要。 @ cdlk可能会出现,我将无法访问系统,直到下周才尝试。不管怎么说,还是要谢谢你! – mabi
可能就是这样。我将在下周尝试一下,现在感谢您指出trac模块文档,我可以从中获得帮助。 – mabi