我正在使用git发行版中的post-receive-email
hook在更新git存储库时向某些用户发送电子邮件(hook从post-receive
调用)。
我的所有存储库都是手动管理的。现在,我得到了如此多的repo,如此多的用户和组,我必须升级到一些git存储库管理系统。我选了gitolite。
但是我对如何配置电子邮件通知有点茫然。
更新:我会详细阐述一下这个问题:
第一个问题是:我应该把钩子放在哪里,我应该以某种方式改变钩子,这样它就可以和gitolite一起工作了吗?
第二个问题:
标准钩取决于post-receive-email
:*.git/config
、hooks.envelopesender
和hooks.emailprefix
中的三个参数。
通常,对于我在Gitolite下移动的每个存储库,这些参数是不同的。实际上,对于同一权限组(用户,他们有权访问存储库,接收通知,其他人)来说,它们是相同的。
我希望避免手动编辑每个存储库的hooks.mailinglist
文件。如果我能为整个Gitolite在相同的、集中的位置配置所有内容,那将是非常有趣的。
有什么提示吗?
最佳答案
您可以查看doc hook中的初学者:
我(管理员)把钩子放在哪里?
通常,所有钩子都进入hooks/common
目录。只有用于admin
repo的特殊更新后挂钩进入hooks/gitolite-admin
。
但是,GitoliteV3doc on 'mirroring'提供了自定义挂钩的替代方案。
对于第二个问题:
我希望避免手动编辑每个存储库的配置文件。
如果我能为整个Gitolite在相同的、集中的位置配置所有内容,那将是非常有趣的。
doc gitolite.conf非常清楚:
repo特定的git config命令
有时,您需要为某些回购指定git config
设置。
例如,您可能有一个自定义的post-receive钩子,在推送发生时发送电子邮件,这个钩子需要知道向谁发送电子邮件,等等。
通过在“repo”段落中指定类似的内容,可以设置git config
值:
示例用法:如果您在需要特定于每个回购的配置信息的hooks/common
中放置了一个钩子,可以这样做:
repo gitolite
config hooks.mailinglist = [email protected]
config hooks.emailprefix = "[gitolite] "
config foo.bar = ""
config foo.baz =
语法很简单:
config sectionname.keyname = [optional value_string]
这可以是普通的“
git config section.key value
”(对于上面的前3个示例)或“git config --unset-all section.key
”(对于最后一个示例)。不支持其他表单(
--add
、value_regex
等)。注意:除非
rc
文件具有正确的设置,否则这将不起作用;有关详细信息和安全信息,请参阅GitoliteV3 or 'g3'中有关变量$GL_GITCONFIG_KEYS
$GIT_CONFIG_KEYS
(now ingitolite rc
file)的注释。关于git - 如何使用Gitolite设置post-receive-email Git hook,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5055190/