svnhook---用户提交后,解析用户的提交信息,发送到企业微信机器人

一:第一篇写到了在用户提交时做检测,不允许不填写提交日志和特定的信息,感兴趣的可以查看  

https://www.cnblogs.com/a565810497/p/18369876

二:现在来写一个用户成功提交后,我们拿到svn的提交日志,通过企业微信机器人发送到群组里

三:下面是具体操作

  1. 先复制一个脚本,去掉tmpl后缀,并且给上执行权限,还是在svn的hooks路径下
    mv post-commit.tmpl  post-commit
     
    chmod +x post-commit

     

  2. 脚本的具体内容
     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

     

  3. 如何创建企业微信机器人以及获得webhook可以自行到网上搜索,这一步较为简单
posted @ 2024-08-20 17:25  Hiro-D  阅读(5)  评论(0编辑  收藏  举报