1. 钉钉添加机器人
添加自定义机器人
钉钉自定义机器人接入文档
Webhook地址
后面bat需要用到。
安全设置
添加自定义关键词,我这边的关键词是SVN
2. bat脚本
@echo off
title After SVN Committed Send Message To Dingtalk(%~dp0)
svn update
setlocal EnableDelayedExpansion
set "str=&"
set "Hello="
@REM for /f "delims=|" %%a in (.\svnNotifyDingTlakTemp.log) do (
for /f "delims=|" %%a in ('svn log -l 1 -v') do (
set "line=%%a"
set "Hello=!Hello!\n!line:%str%=!"
)
set DingUrl=您的机器人Webhook地址
@REM curl -X POST %DingUrl% -H "Content-Type: application/json" -d "{\"msgtype\": \"text\", \"text\": { \"content\": \"SVN Commit Info: %Hello% \" }}"
set "SvnUserName="
for /f "delims=: tokens=2" %%a in ('svn auth ^| findstr Username') do (
set "line2=%%a"
set "SvnUserName=!SvnUserName!\t!line2!"
)
curl -X POST %DingUrl% -H "Content-Type: application/json" -d "{\"msgtype\": \"text\", \"text\": { \"content\": \"SVN Commit Info From %SvnUserName%: %Hello% \" }}"
@REM timeout /t 10
@REM pause>nul
实现起来遇到太多坑,这个脚本是可以使用的。
setlocal EnableDelayedExpansion 设置本地未延迟扩展,否则for /f读取的只有一行可以赋值
钉钉推送的时候,使用关键字过滤会比secert加密简单很多
curl post请求json换行的问题
&字符串的问题
3.SVN钩子
设置 - 钩子脚本 - 新增
4.效果
参考链接: