svnhook---用户提交后,解析用户的提交信息,发送到企业微信机器人
一:第一篇写到了在用户提交时做检测,不允许不填写提交日志和特定的信息,感兴趣的可以查看
https://www.cnblogs.com/a565810497/p/18369876
二:现在来写一个用户成功提交后,我们拿到svn的提交日志,通过企业微信机器人发送到群组里
三:下面是具体操作
- 先复制一个脚本,去掉tmpl后缀,并且给上执行权限,还是在svn的hooks路径下
mv post-commit.tmpl post-commit chmod +x post-commit
- 脚本的具体内容
1 #!/bin/sh 2 export LANG="en_US.UTF-8" 3 export LC_CTYPE="en_US.UTF-8" 4 export LC_ALL="en_US.UTF-8" 5 6 REPOS="$1" 7 REV="$2" 8 LOGFILE="/svn/svn_post_commit.log" 9 SVNLOOK=/usr/bin/svnlook 10 11 # 获取提交日志内容 12 LOGMSG=$($SVNLOOK log -r $REV $REPOS) 13 14 # 获取提交者 15 AUTHOR=$($SVNLOOK author -r $REV $REPOS) 16 17 # 获取提交时间 18 DATE=$($SVNLOOK date -r $REV $REPOS) 19 20 # 构建消息 21 MESSAGE=$(printf "提交者: %s\n时间: %s\n日志:\n%s" "$AUTHOR" "$DATE" "$LOGMSG" | sed 's/"/\\"/g; s/\n/\\n/g') 22 23 24 #发送到企业微信 25 WEBHOOK_URL="xxxx"你的企业微信机器人的webhook 26 JSON_PAYLOAD=$(cat <<EOF 27 { 28 "msgtype": "text", 29 "text": { 30 "content": "$MESSAGE" 31 } 32 } 33 EOF 34 ) 35 curl -X POST "$WEBHOOK_URL" -H 'Content-Type: application/json' -d "$JSON_PAYLOAD" >> $LOGFILE 2>&1 36 37 exit 0
- 如何创建企业微信机器人以及获得webhook可以自行到网上搜索,这一步较为简单