一站式高效管理你多個github webhook.python
Github地址: https://github.com/dcalsky/fi...git
等你辛苦創建好了靜態博客,卻依然要忍受每次本地更新後,還要ssh到遠程從新git pull一遍的痛苦。github
當你終於用webhook handler寫了一堆代碼來解決這個應用的部署問題後,你依然發現,還有許許多多的項目等着你爲它們寫部署代碼。web
要是有一個集成化的工具,在一個目錄裏幫我管理全部的webhook就行了!fish-hook就是爲此誕生的,它最大的特點就是:極力縮短開發者花在配置上的時間,約定大於配置。shell
安裝python3.5或更高版本,再用pip包管理工具安裝fish-hookjson
$ pip3 install fish-hook
$ fish-hook init
ssh進入遠程主機後,運行該命令,而且設置一個通用的端口,例如: 2333。這樣就建立了名爲fish
的目錄,這是控制全部webhook的總目錄。$ cd fish
進入該目錄。centos
$ fish-hook new
假如你在github上開通了一個名爲blog
的倉庫,而且打算爲其開通webhook來實現自動部署。那麼就輸入blog
以及你要爲此webhook設定的密鑰。
完成後,blog
的webhook接收端就部署好了。安全
首先打開倉庫的github設置頁面,而後建立github webhook,填入基本信息。
能夠注意到Payload URL
這一欄,前面的IP地址就是你遠程主機的外網IP地址
,以後是你剛剛設置的端口,斜杆後就是blog
目錄,與接收端的名字相同。
密鑰一欄固然也要與在fish-hook上設置的相同。bash
假設你使用git push
推送了新的內容到blog倉庫,如何執行特定的shell腳本呢?
此時的fish-hook目錄是這樣的:app
fish/ config.json blog/ app_config.json push.sh
爲何有一個push.sh文件呢?就這意味着,當你倉庫接受新的push事件後,fish-hook就會運行push.sh
這個shell腳本,裏面的內容徹底能夠本身設置。
這就是所謂的約定大於配置
,webhook接受到什麼樣的命令,就會運行相同名字
的shell腳本,固然前提是你的目錄裏要存在這個腳本。
$ fish-hook server
fish-hook爲你封裝了部署所需的web server。一條命令便可啓動,此時全部的webhook都會被啓用。
centos默認開啓了端口防火牆,若是你使用了一些具有安全組的雲主機服務,也須要開放全部安全組哦。
$ sudo firewall-cmd --zone=public --add-port=2333/tcp --permanent
screen -d -m fish-hook server
在fish-hook
主目錄運行該命令,便可使fish-hook server持久運行下去。
請查看github倉庫fish-hook