svn + 釘釘機器人制做簡單的代碼跟蹤系統

Webhooks

在開始今天的主題以前,讓我先說說 Webhooks。git

我在很早以前使用一個第三方的支付聚合平臺 ping++ (www.pingxx.com)github

在用戶支付完結後,經過「Webhooks」將支付結果推送到咱們本身的服務器,而後咱們就能夠繼續作後續的訂單完結等操做。web

這裏的「Webhooks」,它能在「某個結點」把咱們所關心的「某些數據」推送給咱們所定義的接收連接上,繼續後續操做。shell

又好比在 github 上,有人對你發了一個 issue,而後系統自動觸發這個 webhooks,將 issue 信息推送出來,你只要定義好接收的接口便可。api

在不少地方「Webhooks」已經成爲須要或者有可能須要爲後續提供定製化操做的「樞紐」,一直是我所鍾愛的一個概念。bash

基於 svn + 釘釘的代碼監控系統

收回咱們今天想要作的一件事:如何利用 svn 的 Webhooks,加上釘釘羣機器人,來構建咱們的代碼監控系統。服務器

相信你們已經知道我怎麼作了,直接進入主題。微信

svn Webhooks

在現實開發中,不少企業或者公司,基本都會使用 github,國內的碼雲、coding.io 等代碼託管平臺,或者利用 GitLab來搭建基於 Git 的代碼版本控制。但仍是有不少使用 svn 來作版本控制。svn

在 svn 中,也有多個 Webhooks:工具

目前 svn 提供 5 個 hooks,其中重點說說下面三個:

hook 含義 參數
start-commit 它在提交事務產生前已運行,一般用來斷定一個用戶是否有權提交 版本庫的路徑,和要進行提交的用戶名
pre-commit 在事務完成提交以前運行,一般這個 hook 是用來提交的信息是否不符合要求而不容許提交 版本庫的路徑和正在提交的事務名稱
post-commit 它在事務完成後運行,建立一個新的修訂版本 大多用這個 hook 來發送關於提交的描述性電子郵件,或者做爲版本庫的備份,本文主要利用這個 hook 推送信息到釘釘羣,作爲監控的源頭

具體能夠參考網站的詳細說明:SVN版本管理詳解 www.kancloud.cn/i281151/svn…

注: svnlook 命令是個好工具,能夠用於查看不少 svn 版本信息,推薦看看

釘釘羣機器人

有了 svn hooks,那麼咱們就須要一個接收 hooks 傳過來數據的「接口」,做爲監控,咱們第一個關心的是:只要有同事提交代碼了,咱們能實時接收到消息。

市面上有不少這種接收信息的工具,如 零信、Slack、BearyChat、微信模板消息、企業微信、釘釘羣機器人等等;只要能把消息實時送達到咱們的手機上便可。

本文重點推薦使用「釘釘羣🤖」,主要由於簡單,並且不須要任何「成本」,如零信等有信息條數的限制和 money;模板消息、企業微信都須要所謂的 access token,須要藉助服務器開發。

但釘釘機器人呢,徹底能夠不借助任何東西就能夠作到「無縫」對接 svn 的 hooks。

下面讓咱們來看看怎麼如何建立羣機器人的吧:

1. 建立一個只有本身的「內部羣聊天」:

2. 建立機器人

3. 選擇「自定義」

4. 選擇添加後,隨便給機器人起個名字

這以後,記得複製出來該機器人的 Webhook 連接,如:

https://oapi.dingtalk.com/robot/send?access_token=0ca87986b61166d06a9a588c0f7ba648639208bd1f02971655fc5927b0620***
複製代碼

5. 建立成功後,機器人會發一條消息出來:

好了,有了這個連接,咱們就能夠結合 svn 的 post-commit 來接收提交的基本信息了。

注: 至於釘釘羣機器人 Webhook 如何使用,能夠參考釘釘官網說明:open-doc.dingtalk.com/docs/doc.ht…

post-commit to 釘釘

本文實現最簡單的監控:只要有同事提交代碼,就將信息及時推送到釘釘羣裏,這樣只要在這個羣的全部同事都能實時收到推送消息了。

這時候,只要在 post-commit 文件中,將 svn 的信息利用 POST 方法請求釘釘羣機器人的連接便可。

其中,HOOKS 就是上文的釘釘機器人的連接,payload 能夠參考釘釘羣機器人使用說明。

因爲不一樣系統的 svn,能夠對應使用不一樣的腳本語言來編寫推送代碼,本文在 Linux 環境下,因此直接用 shell 腳本語言。

最後能夠試驗下,看看以前我搭建的監控效果:

總結

其實,釘釘羣機器人,也是一個 Webhook,經過一系列不一樣服務的 Webhooks 的串聯,將咱們須要瞭解的信息,最終實時傳送到咱們的手機裏,咱們能及時獲得信息。

如本文的系統,同事提交代碼 -> svn post-commit Webhook -> 釘釘羣機器人 Webhook -> 推送到釘釘羣裏。

由於時間關係,拋磚引玉,如何將 Webhooks 用到極致,實時的監控和獲得咱們所須要的信息,這是本文所想要闡述的,但願對你有所做用。

「完」


coding01 期待您繼續關注

qrcode
相關文章
相關標籤/搜索