gogs 实现webhook钩子(php接口形式)
1、概要流程

2、准备工作
gogs服务器
linux网站服务器(宝塔)
本地客户端
3、编写钩子访问的接口
在public下新建githook.php文件,代码如下:
<?php
$cmd = "cd /www/wwwroot/testfc/pro/ && git reset --hard origin/master && sudo git pull origin master 2>&1";
$res = array();
exec($cmd,$res);
var_dump($res);
有多台服务器就每个服务器的网站public下都加这个,然后配置到gogs服务器去
4、测试接口
4.1 先把cmd命令换成 $cmd = "cd /www/wwwroot/testfc/pro/ sudo git pull origin master 2>&1"; 测试下
var_dump($res); 打印出错误
可能会出现以下错误:
错误1:Warning: scandir() has been disabled for security reasons in…
原因:LNMP 0.9禁用了部分存在危险的PHP函数,当前是exec无法执行
找到php版本,修改配置信息,搜索 disable_functions 把它后面的 exec去掉,保存,重启php
错误2:sudo: no tty present and no askpass program specified
或者这个错误 We trust you have received the usual lecture from the local System
在宝塔上找到etc/sudoers 编辑 ,加入 %www ALL = NOPASSWD: ALL
错误3:fatal: could not read Username for
找到项目 .git/config文件夹 /www/wwwroot/testfc/pro/.git/config
在ip前面加上用户名与密码格式如: url = http://username:psd@xxx.xxx.xxx.xxx:3000/aaa/pro.git
错误4:执行完接口每次都会出现一堆已更新的东西
打开终端,cd 到项目 根目录,执行 git pull --all 然后再执行 你脚本内的那个 git pull origin xxx(你要固定拉取的分支名)即可,然后再执行就会出现
************有看到 Already up-to-date 字眼表示测试成功,把cmd改回去
5、配置到gogs钩子去
点击项目git主页--》仓库设置,--》在左侧找到管理Web钩子,--》添加钩子--》输入githook.php地址,其他默认即可,点击添加,有多个服务器就配置多个钩子地址,客户端一旦推送,会同时触发



gogs 实现webhook钩子(php接口形式)的更多相关文章
- Gogs 设置Git钩子实现项目自动部署
每次修改代码需要上传到 git仓库,查看了一下 Gogs 使用文档 发现有 web钩子 这个选项,然后发现了本地可实现的 Git钩子. 注意:需要用到管理员帐号登录,进行仓库的设置. 有三种状态分别是 ...
- WebHook钩子
webhooks整理码云创建远程仓库生成公钥 服务器配置webhooks #!/bin/bashecho ""#输出当前时间date --date='0 days ago' &qu ...
- .NetCore基于Jenkins和Gogs的自动化部署方案
准备工作 Jenkins和gogs的安装配置可以看前两篇:Jenkins安装.配置与说明 和 gogs安装与说明(docker) 此外,因为还要安装.net core的SDK和Git工具: 安装.n ...
- Drone 持续集成实践 - 基于 Gogs,以 Golang 为例
Drone 官方示例 - Example Go project 用 Docker 部署 Go 服务器 Golang 官方示例 - outyet 一个生产环境的例子 用 rsync 复制文件的方式进行部 ...
- Gogs+Jenkins+Docker 自动化部署.NetCore
环境说明 腾讯云轻量服务器, 配置 1c 2g 6mb ,系统是 ubuntu 20.14,Docker 和 Jenkins 都在这台服务器上面, 群晖218+一台,Gogs 在这台服务器上. Doc ...
- 基于Jenkins Pipeline的ASP.NET Core持续集成实践
最近在公司实践持续集成,使用到了Jenkins的Pipeline来提高团队基于ASP.NET Core API服务的集成与部署效率,因此这里总结一下. 一.关于持续集成与Jenkins Pipelin ...
- Jenkins 结合 Docker 为 .NET Core 项目实现低配版的 CI&CD
随着项目的不断增多,最开始单体项目手动执行 docker build 命令,手动发布项目就不再适用了.一两个项目可能还吃得消,10 多个项目每天让你构建一次还是够呛.即便你的项目少,每次花费在发布上面 ...
- jenkins 安装成功之后配置
一.基础配置介绍 jenkins安装成功之后如果某些东西配置的话,可能部署的时候一堆的问题,所以单独总结一下,让大家少走弯路 二.准备工作 1.需要准备一台服务器,大家可以在网上买,个人学习的话还是建 ...
- Jenkins-gogs安装及使用
很多同学可能第一次了解什么是ci-cd,什么是Jenkins,首先会介绍下cicd的概念及应用场景,之后再详细介绍下Jenkins的概念.安装及使用. 什么是CI-CD? 首先明确CI-CD是一种技术 ...
随机推荐
- layui.js---layer;;前端预览pdf
layui.js---layer;;前端预览pdf 1.必须引入layui.js 2.uul是pdf文件地址 3.触发function函数:小于号button onclick="pdfsee ...
- Linux磁盘管理——MBR 与 GPT
硬件设备在Linux中文件名 如今IDE 磁盘几乎被淘汰,市面上最常见的磁盘就是SATA和SAS.个人计算机主要是SATA.很多Linux发行版下都将IDE磁盘文件名也都被仿真成 /dev/sd[a- ...
- prometheus operator 部署
prometheus operator 部署自定义记录 环境: k8s 1.11集群版本,kubeadm部署 docker 17.3.2版本 Centos 7系统 阿里云服务器 operator 源码 ...
- WLAN实验1:划分不同VLAN及Acess配置
实验环境 公司是一个较大的局域网,二层交换机S1放置在一楼,一楼有IT部门和人事部门.二层交换机S2放置在二楼,二楼有市场部和研发部.公司的策略是:不同部门的主机之间不能相互通信,同一部门的主机才可以 ...
- egg 完整实例 增删改查MongoDB,websocket
项目地址 github.com/richard1015… 技术栈 eggjs.MongoDB.swagger.websocket.Amap 演示地址: 前台 school.zhuzhida.vip A ...
- SpringCloud2.0 Turbine 断路器集群监控 基础教程(九)
1.启动基础工程 1.1.启动[服务中心]集群,工程名称:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) ...
- LG2664 树上游戏
树上游戏 题目描述 lrb有一棵树,树的每个节点有个颜色.给一个长度为n的颜色序列,定义s(i,j) 为i 到j 的颜色数量.以及 $$sum_i=\sum_{j=1}^ns(i,j)$$ 现在他想让 ...
- test20190504 行走
行走(walk.cpp/c/pas) 题目描述 "我有个愿望,我希望走到你身边." 这是个奇异的世界,世界上的 n-1 条路联结起来形成一棵树,每条路有一个对应的权值 ci. 现在 ...
- 【测试用例工具】TestLink教程:一份完整指南(转)
转自:https://blog.csdn.net/cjtxzg/article/details/80498226 TestLink教程:一份完整指南1 TestLink的优点 登录到TestLink ...
- pandas数据类型判断(三)数据判断
1.函数:空值判断 1)判断数值是否为空用 pd.isna,pd.isnull,np.isnan2)判断字符串是否为空用 pd.isna,pd.isnull:3)判断时间是否为空用 pd.isna,p ...