一个使用 Python Flask + SQLAchemy + Celery + Redis + React 开发的用于迅速搭建并使用 WebHook 进行自动化部署和运维系统,支持: Github / GitLab / GitOsc 。

  1. 技术栈简单,部署容易;
  2. 代码简洁易懂,二次开发毫无压力;
  3. 支持 Github / GitLab / GitOsc ;
  4. 使用 SSH 方式,支持多服务配置;

项目地址 | DEMO 示例

输入图片说明

一、如何安装 ?

  1. 安装 git-webhook:

    pip install git-webhook
    

    备注:项目中某一个依赖库需要安装 python-dev

  2. 创建配置

    gitwebhook config
    

    命令执行之后,会在对应用户目录生成新的配置文件,然后对应修改配置文件内容。主要需要配置三点:

  3. 初始化数据库结构

    gitwebhook createdb
    
  4. 运行应用

    # 1. run python webserver
    gitwebhook runserver
    # 2. run celery async task
    gitwebhook celery
    

    运行之后,打开 http://127.0.0.1:18340(一巴扇死你)即可访问。使用 GitHub 账号登陆。

  5. 添加 WebHook

    在工具中添加 WebHook 项目,获得 WebHook URL,并填写到 Github / GitLab / OscGit 的 WebHook 配置中。

安装之后如何使用?直接看你部署的 Web 应用文档吧,或者在这里也可以看到。

二、如何使用?

部署完了之后,就是怎么使用了,这里我来具体写一下,或者可以到部署之后 Web 应用文档中查看(http://webhook.hust.cc/#/doc/webhook?_k=fzcyv0

第一步:添加服务器信息。当 Git 上项目有 PUSH 操作的时候,你需要在哪些机器人做操作,就需要那只哪些机器。具体需要配置,IP、PORT、用户名、Private Key(如何生成?)这些信息,本项目使用 SSH 方式登录服务器执行相应的 Shell 命令。如下图所示:

https://github.com/NetEaseGame/git-webhook/raw/master/app/static/res/img/server.png

第二步:添加 Git WebHook。主要填写 Git 项目的名字、需要 Hook 的分支名字,然后发生 PUSH 之后,需要在哪台服务器(第二步中配置的服务器中选择)执行 Shell 指令。如下图所示:

https://github.com/NetEaseGame/git-webhook/raw/master/app/static/res/img/webhook.png

最后一步:在 Git WebHook 右侧第一个按钮复制 WebHook Url 地址,并添加到 Git 项目中 Setting / WebHook 那一栏中即可生效。

补充:关于如何使用 Private key 通过 ssh 方式登录服务器执行 shell 指令,可以参考文章:http://50vip.com/article/84

其他问题,可以到 github 项目中提 issue。


↙↙↙阅读原文可查看相关链接,并与作者交流