【Gitlab Git】使用 Web hook 觸發 python ,自動化部屬最新程式


想法

想法很簡單,既然有web hook這個機制,就可以反過來做很多事情
包括自動部屬,自動上code

解決方案

流程是這樣的

開發完成以後,使用者用git push推上gitlab
gitlab收到push事件後,自動送post到指定的url
這個動作叫webhook
url這邊採用python監聽9090port,收到資料以後對系統下達git fetch的命令
至此完成動作


實做


建立一個新的專案
掛上一個webhook

上面有四種事件會去觸發URL
接下來我們必須實做完成server端,網路上很多資源可以參考

首先我們要知道的是gitlab回傳的json格式長怎樣
這裡有官方寫的詳細資料
接下來我在github上面找到了許多open source的專案,直接拿來用:P
vinodc寫的gitlab-webhook-branch-deployer 當然也不是這麼合用,我想要部屬的專案還沒有這麼大
所以我把他的branch功能拿掉,再加上中文化這樣
我改寫的gitlab-webhook-branch-deployer
接下來確定server有在監聽9090後,就可以動手測試流程了
gitlab介面上面有個很方便的按鈕,可以直接測試

接下來就觀察python server的動作
一切正常,非常愉悅
有問題歡迎再github上面開issue或是自己fork回去改
記得要pull request回來呢!

留言