Git WebHook:用于迅速搭建并使用 WebHook 進行自動化部署 ( Python)

一個使用 Python Flask + SQLAchemy + Celery + Redis + React 開發的用于迅速搭建并使用 WebHook 進行自動化部署和運維系統,支持: Github / GitLab / GitOsc 。

  • 技術棧簡單,部署容易;
  • 代碼簡潔易懂,二次開發毫無壓力;
  • 支持 Github / GitLab / GitOsc ;
  • 使用 SSH 方式,支持多服務配置;

項目地址 | DEMO 示例

一、如何使用 ?

  1. 下載本項目代碼:

    git clone git@github.com:NetEaseGame/git-webhook.git
    
  2. 安裝 Python & Javascript 依賴

    pip install -r requirements.txtnpm install
    
  3. 配置 config.py

    拷貝一份 config_example.py 到同目錄 config.py, 然后對應修改配置內容。主要需要配置三點:

    • DATABASE_URI: 數據庫地址,理論上可以使用任何關系數據庫;推薦使用 sqlite 和 mysql (經過測試);
    • CELERY REDIS: Redis URI 配置,主要用于 Celery 后臺任務;
    • GITHUB: GitHub 登陸配置,可以到 OAuth applications 自行申請,登陸 Callback 地址為: your_domain/github/callback.

4.初始化數據庫結構

```shell
python scripts.py build_db
```

5.運行應用

```shell
# 1. package static files
npm run js
# 2. run python web
python run_webhook.py
# 3. run celery
celery -A app.celeryInstance worker --loglevel=info
```

運行之后,打開 http://127.0.0.1:18340 (一巴扇死你)即可訪問。使用 GitHub 賬號登陸。

添加WebHook在工具中添加 Git 項目,獲得 WebHook URL,并填寫到 Github / GitLab / OscGit 的 WebHook 配置中。

二、效果預覽

三、部署

代碼使用 Flask 框架開發,線上部署使用 gunicorn + gevent + nginx 已經是比較成熟的方案了,本應用當然也可以使用這種方式部署。

主要的服務器依賴環境:

  • 數據庫環境(自行選擇,推薦 mysql 和 sqlite);
  • Redis,利用 Celery 做后臺任務;

當然也支持 docker 部署,參考:docker 安裝部署 git-webhook

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容