我想为Mercurial写一个钩子来做以下事情,我正在努力去做:
- 在中央仓库上运行,并在更改集被推送时执行(我认为我应该使用"input"或"changegroup"钩子)
- 用"issue:[0-9]*"的格式搜索每个提交消息的字符串
- 如果找到字符串,调用web服务,并提供问题号、提交消息和被更改的文件列表
那么,对于初学者来说,我如何从"input"或"changegroup"钩子中获取每次提交的提交消息?除此之外,如有任何关于如何实现其他要点的建议,也将不胜感激。
谢谢你的帮助
您将需要使用incoming
钩子,该钩子会被应用于存储库上的每个更改集(通过拉,推或unbundle)调用。
在调用脚本中,当前变更集id
将通过HG_NODE
环境变量访问,在python中您可以使用os.environ['HG_NODE']
访问它。
根据你想怎么做,可以从提供的bugzilla钩子开始。
每次push调用一次changegroup
钩子。如果你想分析每个变更集,那么你需要incoming
钩子(没有input
钩子AFAIK) -它将被每个变更集调用,ID在HG_NODE
环境变量中。您可以通过例如hg log -r $HG_NODE --template '{desc}'
或通过API获取提交消息。