avatar

each article in page.posts.data
svn实现钉钉代码提交通知

欢迎加入前端交流群:749539640

svn其实也和github一样有自己的钩子,我们先看下效果

钉钉机器人配置(webhook生成)

设置=>添加机器人

添加自定义机器人,这里的关键词添加#即可

复制webhook

svn设置

我们进入到svn的服务器代码目录,会看到有个hooks的文件夹

目前svn提供了5个hooks,今天我们只介绍post-commit参考

它在事务完成后运行,创建一个新的修订版本。大多数人用这个钩子来发送关于提交的描述性电子邮件,或者作为版本库的备份。版本库传给程序两个参数:到版本库的路径和被创建的新的修订版本号。退出程序会被忽略。

接下来我们进入hooks文件夹,执行

1
vim post-commit

如果没有会自动新建此文件

键入代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/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自动推送信息到钉钉

文章作者: 王志超
文章链接: http://wangzc.wang/2020/04/15/svnDingTalk/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 王志超的博客
打赏
  • 支付寶
    支付寶
  • 微信
    微信

评论