实现自定义gitlab钩子时出现问题
我正在实现一个定制的gitlab钩子。当有人推送master时,我想更新一个特定的文件。然后提交此更改并将其推送到远程源。钩子如下所示:实现自定义gitlab钩子时出现问题,git,github,hook,gitlab,githooks,Git,Github,Hook,Gitlab,Githooks,我正在实现一个定制的gitlab钩子。当有人推送master时,我想更新一个特定的文件。然后提交此更改并将其推送到远程源。钩子如下所示: clone_repo(){ //cloning a specifc branch on my_app dir export GIT_WORK_TREE="path/my_app" } cd_app(){ cd my_app } update_file(){ // updating random.java } comm
clone_repo(){
//cloning a specifc branch on my_app dir
export GIT_WORK_TREE="path/my_app"
}
cd_app(){
cd my_app
}
update_file(){
// updating random.java
}
commit_file(){
git commit -m "commit from hook" random.java
}
while read oldrev newrev refname
do
if [ ${refname} = "refs/heads/master" ]
then
clone_repo
cd_app && update_file
commit_file && push_it
exit 0
fi
done
钩子正在运行,但是cd\u应用程序和&update\u文件
没有执行应该执行的操作(不更新update\u文件)。我假设cd\u app
没有更改目录(通过shell打印)
但是对于测试,当我在检查if
之前设置refname=“refs/heads/master”
时,它工作正常
找不到自定义_挂钩的gitlab日志的位置。我好像错过了什么。你们能给我提供进一步的参考资料或确定我做错了什么吗?以下是我如何为我的系统做的 首先,GIT_WORK_树如下所示:
$\GIT\u工作树
$pwd
/主页/git/登录地址\u post\u接收
$
$git远程-v
origin/home/git/repositories/gitlab user/loging_at_post_receive.git/(fetch)
origin/home/git/repositories/gitlab user/loging_at_post_receive.git/(推送)
$
$ls
log.txt
$
$git日志--一行
5aecefe首次提交
接下来,钩子脚本如下所示:
$#裸存储库
$pwd
/home/git/repositories/gitlab user/test_hook.git
$
$cat挂钩/邮政接收
#!/bin/bash
克隆(repo){
#克隆my_app dir上的特定分支
导出GIT_工作树=“/home/GIT/loging_at_post_receive”
}
cd_应用程序(){
cd/home/git/loging\u at\u post\u receive
}
更新_文件(){
日期>>log.txt
回显“更新文件”
}
提交文件(){
git--git dir=.git add log.txt
git--git dir=.git commit-m“从钩子提交”
回显“提交文件”
}
推它{
git--git dir=.git推送源主机
回声“推它”
}
读取oldrev newrev refname时
做
如果[${refname}=“refs/heads/master”]
然后
克隆报告
cd_应用程序和更新_文件(&U)
提交文件并推送文件(&U)
出口0
fi
完成
然后,git从PC推送到GitLab。(请注意“远程:”区域)
在PC上
$echo 1>>自述文件
$git提交-am“测试”
$git推送原始主机
[master 9aed67e]测试
1个文件已更改,1个插入(+),0个删除(-)
计数对象:5,完成。
写入对象:100%(3/3),239字节,完成。
总计3(增量0),重复使用0(增量0)
远程:更新\u文件
远程:[master 0ce599e]从钩子提交
远程:1个文件已更改,1个插入(+)
远程:提交文件
远程:To/home/git/repositories/gitlab user/loging_at_post_receive.git/
远程:5aecefe..0ce599e主控->主控
遥控器:按一下
到https://gitlab-server/gitlab-user/test_hook.git
712a3d1..9aed67e主机->主机
结果
$\GIT\u工作树
$pwd
/主页/git/登录地址\u post\u接收
$
$git日志--一行
0ce599e从钩子提交
5aecefe首次提交
$
$git日志源/主--oneline
0ce599e从钩子提交
5aecefe首次提交