我想知道是否有一种简单的方法可以使用 gitolite_admin 为某些 repo 安装钩子(Hook)。
让我们想象一下,我想要使用 gitolite_admin repo 克隆到我的工作站的 更新后 钩子(Hook)用于 repo 很棒的 存储库...
#conf/gitolite_conf
repo awesome
RW+ = deployer
更新后 的内容:
#!/bin/sh
echo "Post receive-hook => updating Redmine repository"
sudo -u deployer perl -we '`cd /home/deployer/repo/awesome.git && git fetch -q --all`'
最佳答案
你也可以看看“repo-specific environment variables”
repo r1 r2 r4
option ENV.CI = 1
# exit if $GL_OPTION_CI is not set
[ -z $GL_OPTION_CI ] && exit
... rest of CI job code as before ...
repo @all
option ENV.CI = 1
repo r1 r2 r4
option ENV.CI = ""
该功能相当新(从 commit 999f9cd39 开始,但在本例中,在 commit 63865a16 2013 年 6 月为 3.5.2 完成)。
但即使你没有那个版本,也有其他方法可以使用选项变量来做到这一点,正如该部分的最后一部分所解释的那样。
if gitolite git-config -q reponame gitolite-options.option-name
then
...
您可以以相同的方式使用 git config 变量。
或者您可以使用组成员资格——有关详细信息,请参阅“function "
in_group
" ”中针对 Easy.pm
的评论。# in_group()
# return true if $ENV{GL_USER} is set and is in the given group
# shell equivalent
# if gitolite list-memberships $GL_USER | grep -x $GROUPNAME >/dev/null; then ...
关于gitolite_admin Hook 和镜像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18430522/