歡迎加入前端交流羣:749539640 前端
svn其實也和github同樣有本身的鉤子,咱們先看下效果git
設置=>添加機器人
添加自定義機器人,這裏的關鍵詞添加
#
便可
複製webhookgithub
咱們進入到svn的服務器代碼目錄,會看到有個hooks的文件夾web
目前svn提供了5個hooks,今天咱們只介紹post-commit
參考json
它在事務完成後運行,建立一個新的修訂版本。大多數人用這個鉤子來發送關於提交的描述性電子郵件,或者做爲版本庫的備份。版本庫傳給程序兩個參數:到版本庫的路徑和被建立的新的修訂版本號。退出程序會被忽略。vim
接下來咱們進入hooks文件夾,執行api
vim post-commit
若是沒有會自動新建此文件安全
鍵入代碼bash
#!/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自動推送信息到釘釘服務器