gitea和golang组合实现hook自动化部署代码

背景

目前git代码仓库develop分支的代码要常常更新到测试服务器,应用传统的FTP上传代码太费劲,应用git pull手动拉取分支,也不够释怀。当初应用git中的hook来进行自动化部署代码。

思路

git服务&hook配置

git服务应用的是gitea。其中的hook配置如下

ps:没用gitlab切实是因为它内存占用太大

golang gin实现的web服务

用到两个外围类库

  1. go-sh 执行Linux命令应用go-sh
  2. go-simplejson 疾速获取json中的数据go-simplejson

外围代码赏析

res := c.Request.Bodyfmt.Println("hook后果", res)bodydata, err := ioutil.ReadAll(res)if err != nil {   fmt.Println(err)}j, err := simplejson.NewJson(bodydata)if err != nil {   fmt.Printf("err", err)}repository, err := j.Get("repository").Get("full_name").String()if err != nil {   fmt.Printf("err", err)}fmt.Println("辨认到的仓库是", repository)clone_url, err := j.Get("repository").Get("clone_url").String()if err != nil {   fmt.Printf("err", err)}fmt.Println("辨认到的clone_url是", clone_url)

残缺代码,点击拜访github仓库,请star :)