在《钉钉开发系列-机器人》中已经介绍了钉钉机器人的创建与通知,那SVN提交时是否也可以自动发出通知呢?我们来思考一下原理,钉钉机器人的通知,本质上就是调用一个URL,然后POST数据,如果SVN中能够调起该URL并POST,那么理论上就应可以的。现在我们来开始实践。
我们用的是VisualSVN-Server作为SVN的服务器,SVN客户端用TortoiseSVN。在VisualSVN-Server是免费的,新版的要求在WIN2008以上安装,所以只要在虚拟机中装WIN2008,然后装VisualSVN-Server就可以了。安装时一路默认即可。安装后创建一个DDRobotTest的库。
在Users文件夹下右键,然后创建用户,比如test.
VisualSVN-Server有钩子来实现客制化的方式,所以我们利用钩子hook来发起钉钉机器人的通知请求。在DDRobotTest上右键,如下图
我们要用到的是Pre-commit hook和Post-commit hook,Pre-commit hook是提交代码前的钩子,Post-commit hook是提交完成后的钩子。为了能够在通知时更规范,我们有必要对提交代码作一些要求,比如必须输入日志内容,为此我们先在Pre-commit hook中实现一个控制提交代码日志的钩子。代码如下