欢迎加入前端交流群:749539640 前端
svn其实也和github同样有本身的钩子,咱们先看下效果git
设置=>添加机器人
添加自定义机器人,这里的关键词添加
#
便可
复制webhookgithub
咱们进入到svn的服务器代码目录,会看到有个hooks的文件夹web
目前svn提供了5个hooks,今天咱们只介绍post-commit
参考json
它在事务完成后运行,建立一个新的修订版本。大多数人用这个钩子来发送关于提交的描述性电子邮件,或者做为版本库的备份。版本库传给程序两个参数:到版本库的路径和被建立的新的修订版本号。退出程序会被忽略。vim
接下来咱们进入hooks文件夹,执行api
vim post-commit
若是没有会自动新建此文件安全
键入代码bash
#!/bin/bash # svn中变量1为仓库路径,2为提交版本号 REPOS="$1" REV="$2" # 设置默认字符集,不然post信息到钉钉时中文乱码 export LANG=en_US.UTF-8 # 下方svnlook命令获取相应的结果 time=$(date +%F/%T) AUTHOR=$(/bin/svnlook author -r ${REV} ${REPOS}) CHANGEDDIRS=$(/bin/svnlook dirs-changed $REPOS) MESSAGE=$(/bin/svnlook log -r $REV $REPOS) CONTENT=提交时间:${time}\\n提交版本:#${REV}\\n提交者:${AUTHOR}\\n提交备注:${MESSAGE}\\n修改目录:$CHANGEDDIRS curl 'https://oapi.dingtalk.com/robot/send?access_token=这里输入你的webhooks的token' \ -H 'Content-Type: application/json' \ -d '{"msgtype": "text", "text": { "content":"'$CONTENT'" } }'
我说一下以前钉钉webhoos生成时候安全设置的#
号和上述代码中提交版本后的#
对应了起来
最后测试效果就是文字开始的图片!每次提交代码都会触发postcommit hook自动推送信息到钉钉服务器