gitlab + php实现webhock自动拉取代码
拉取项目代码
cd 项目根目录;
git clone https://youName:youPwd@x.x.x/x/x.git;
编辑脚本
- 创建PHP脚本 webhock.php。
<?php
$token = 'token密码';
if (isset($_SERVER['HTTP_X_GITLAB_TOKEN'])) {
$reqToken = $_SERVER['HTTP_X_GITLAB_TOKEN'];
} else {
die("X-Gitlab-Token 头不存在");
}
if ($reqToken != $token) {
die("X-Gitlab-Token 错误");
}
$res = shell_exec("sh /usr/tool/pullCode.sh");
die("拉取结果:\n" . strval($res));
- 编辑/usr/tool/pullCode.sh 脚本
cd 项目地址; git pull origin dev 2>&1 ;
- 将脚本放到可以通过网络访问的的地址。
设置gitlab的webhock
- 登录gitlab,进入项目的git仓库
- 点击 用户设置-》webhock
- 添加webhock URL地址填 webhock.php地址。Secret Token添加 token密码。
遇到的问题
- error: :cannot open .git/FETCH_HEAD:Permission denied
运行
chown -R www:www 项目跟目录