svn review shell

这个脚本用于定期从 SVN 提取昨日的提交日志,生成报告并发送到飞书群。它获取飞书的访问令牌,收集指定 SVN 路径的提交信息,随机选择两位同事进行代码 review,并通过飞书 API 发送消息通知。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#每5分钟执行一次
#crontab –e
#*/5 * * * *  /home/tool/log_monitor/*.sh 5
function rand(){
    min=$1
    max=$(($2-$min+1))
    num=$(date +%s%N)
    echo $(($num%$max+$min))
}

token=`curl -X POST https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal  -H 'Content-Type: application/json' -d '{
       "app_id": "cli_9dfdda101eb85101",
       "app_secret": "bsI9wvNRTFyTVh3z5oxVAeupgFK6tldv"
}' | jq -r .tenant_access_token`
# token='t-f144fceae763b49f11a475a40398735ff457614e'
echo "token is "$token

source ~/.bashrc

datefrom=$(date -d "yesterday" +%Y-%m-%d)
dateto=$(date -d "now" +%Y-%m-%d)

cat /dev/null > data.txt
echo "SVN提交日志:$datefrom" >> data.txt

svnlog -r {$datefrom}:{$dateto} http://gametechsvn.idreamsky.com/D3/MHCT/Client/MProject | \
sort -t ' ' -k 3 | awk -F '|' '{printf "%s|%s|%s|%s|%s\n",$1,$3,$4,$2,$5}' >> data.txt
# cat data.txt

sed -i "s/\r//g" data.txt
echo $(sed "$ ! s/$/\\\n*/" data.txt) > data.txt


context=$(cat data.txt)

curl -X  POST -H "Authorization: Bearer ${token}" -H 'Content-Type: application/json'  -d '{
    "chat_id":"oc_72059eda02a1b32cf5f214cdac36389f",
    "msg_type": "text",
    "content": {
        "text": "'"$context"'"
    }
}' https://open.feishu.cn/open-apis/message/v4/send/
echo ""
rm -f data.txt

declare -a array
array[0]="123"


rnd1=$(rand 1 ${#array[*]})
rnd2=$(rand 1 ${#array[*]})

while [ $rnd2 -eq $rnd1 ]
do
    let rnd2=$(rand 1 ${#array[*]})
done

cat /dev/null > data.txt
echo $rnd
echo "请下面的同事帮忙review $datefrom 提交的代码:" >> data.txt
echo ${array[$rnd1-1]} >> data.txt
echo ${array[$rnd2-1]} >> data.txt
echo "选择跟自己负责模块相关的代码,以飞书文档形式回复,并@被review的同事" >> data.txt

cat data.txt

sed -i "s/\r//g" data.txt
echo $(sed "$ ! s/$/\\\n*/" data.txt) > data.txt

context=$(cat data.txt)

curl -X  POST -H "Authorization: Bearer ${token}" -H 'Content-Type: application/json'  -d '{
    "chat_id":"oc_72059eda02a1b32cf5f214cdac36389f",
    "msg_type": "text",
    "content": {
        "text": "'"$context"'"
    }
}' https://open.feishu.cn/open-apis/message/v4/send/
echo ""
rm -f data.txt


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值