我试图取代我的后收到钩,自动生成一个新文件,这使得邮件的支持,因而具有通过GitLab被触发“后接受”。
这是我的文件的以前版本:
#!/usr/bin/env bash
# This file was placed here by GitLab. It makes sure that your pushed commits
# will be processed properly.
while read oldrev newrev ref
do
# For every branch or tag that was pushed, create a Resque job in redis.
repo_path=`pwd`
env -i redis-cli rpush "resque:gitlab:queue:post_receive" "{\"class\":\"PostRe
ceive\",\"args\":[\"$repo_path\",\"$oldrev\",\"$newrev\",\"$ref\",\"$GL_USER\"]}
" > /dev/null 2>&1
done
当我由一个新的,其中包括在文件的结尾上述线替换该文件,GitLab说:“项目已无效后收到文件”在管理方面,但是电子邮件正确发送。
你知道如何处理的多是问题后得到支持。 目前,我不知道该文件的gitlab特定部分被正确执行的。
感谢帮助!
更新:
在文件夹内的脚本是通过使用后述的溶液(拉请求)现在调用。 但我不明白为什么标准“后收到的电子邮件”,如果它被包含在目录-script不发送任何邮件。 如果是直接调用的,因为它工作正常后领取。
不知道为什么我要改变顺序,但对我来说,以下工作(甚至我不知道现在是正确创建resque工作:
#!/usr/bin/env bash
repo_path=`pwd`
if [ -d hooks/post-receive.secondary.d ]; then
for i in hooks/post-receive.secondary.d/*
do
[ -x "$i" ] || continue
# call the hooklet with the same arguments we got
path=$repo_path"/"$i
"$path" "$@" || {
# hooklet failed; we need to log it...
echo hooklet $i failed
perl -I$GL_BINDIR -Mgitolite -e "log_it('hooklet $i failed')"
# ...and send back some non-zero exit code ;-)
exit 1
}
done
fi
while read oldrev newrev ref
do
# For every branch or tag that was pushed, create a Resque job in redis.
env -i redis-cli rpush "resque:gitlab:queue:post_receive" "{\"class\":\"PostReceive\",\"args\":[\"$repo_path\",\"$oldrev\",\"$newrev\",\"$ref\",\"$GL_USER\"]}" > /dev/null 2>&1
done
exit 0