我正在使用git发行版中的post-receive-emailhook在更新git存储库时向某些用户发送电子邮件(hook从post-receive调用)。
我的所有存储库都是手动管理的。现在,我得到了如此多的repo,如此多的用户和组,我必须升级到一些git存储库管理系统。我选了gitolite。
但是我对如何配置电子邮件通知有点茫然。
更新:我会详细阐述一下这个问题:
第一个问题是:我应该把钩子放在哪里,我应该以某种方式改变钩子,这样它就可以和gitolite一起工作了吗?
第二个问题:
标准钩取决于post-receive-email*.git/confighooks.envelopesenderhooks.emailprefix中的三个参数。
通常,对于我在Gitolite下移动的每个存储库,这些参数是不同的。实际上,对于同一权限组(用户,他们有权访问存储库,接收通知,其他人)来说,它们是相同的。
我希望避免手动编辑每个存储库的hooks.mailinglist文件。如果我能为整个Gitolite在相同的、集中的位置配置所有内容,那将是非常有趣的。
有什么提示吗?

最佳答案

您可以查看doc hook中的初学者:
我(管理员)把钩子放在哪里?
通常,所有钩子都进入hooks/common目录。只有用于adminrepo的特殊更新后挂钩进入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”(对于最后一个示例)。
不支持其他表单(--addvalue_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/

10-13 09:41