分享
gitea和golang组合实现hook自动化部署代码
SmallForest · · 1204 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
gitea和golang组合实现hook自动化部署代码
背景
目前git代码仓库develop分支的代码要经常更新到测试服务器,使用传统的FTP上传代码太费力,使用git pull手动拉取分支,也不够放心。现在使用git中的hook来进行自动化部署代码。
思路
hook 代码的思路
git服务&hook配置
git服务使用的是gitea。其中的hook配置如下
imageimage
ps:没用gitlab实在是因为它内存占用太大
golang gin实现的web服务
用到两个核心类库
- go-sh 执行Linux命令使用go-sh
- go-simplejson 快速获取json中的数据go-simplejson
核心代码赏析
res := c.Request.Body
fmt.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 :)
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1204 次点击
上一篇:pprof接口隐藏/认证
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
gitea和golang组合实现hook自动化部署代码
背景
目前git代码仓库develop分支的代码要经常更新到测试服务器,使用传统的FTP上传代码太费力,使用git pull手动拉取分支,也不够放心。现在使用git中的hook来进行自动化部署代码。
思路
hook 代码的思路
git服务&hook配置
git服务使用的是gitea。其中的hook配置如下
imageimage
ps:没用gitlab实在是因为它内存占用太大
golang gin实现的web服务
用到两个核心类库
- go-sh 执行Linux命令使用go-sh
- go-simplejson 快速获取json中的数据go-simplejson
核心代码赏析
res := c.Request.Body
fmt.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 :)