Ale*_*ysh 15 git gitolite post-receive-email
我正在使用post-receive-emailGit发行版中的钩子在Git存储库更新(从中调用钩子post-receive)时向某些用户发送电子邮件.
我的所有存储库都是手动管理的.现在,我得到了很多回购和许多用户和组,我必须升级到一些Git存储库管理系统.我选了Gitolite.
但我对如何配置电子邮件通知有点不知所措.
更新:我将详细阐述一下这个问题:
第一个问题是:我应该把钩子放在哪里,我应该以某种方式改变它以便它可以与Gitolite一起使用?
第二个问题:
标准post-receive-email挂钩取决于三个参数*.git/config:hooks.envelopesender,hooks.emailprefix和hooks.mailinglist.
对于我在Gitolite下移动的每个存储库,这些参数通常是不同的.实际上,对于相同的权限组,它们是相同的 - 用户可以访问存储库,接收通知,而其他权限则不是.
我想避免config手动编辑每个存储库的文件.如果我可以在整个Gitolite的同一个集中位置配置所有内容,那会更有趣.
那么,有什么提示吗?
Von*_*onC 18
您可以查看初学者的doc hook:
我在哪里(管理员)挂钩?
通常,所有挂钩都进入
hooks/common目录.只有用于admin回购的特殊更新后挂钩才会进入hooks/gitolite-admin.
但是关于'镜像'的GitoliteV3 文档提供了自定义钩子的替代方案.
对于第二个问题:
我想避免手动编辑每个存储库的配置文件.
如果我可以在整个Gitolite的同一个集中位置配置所有内容,那会更有趣.
该文档gitolite.conf是很清楚的:
repo特定的git config命令
有时您想
git config为某些回购指定设置.
例如,您可能有一个自定义的post-receive挂钩,在推送发生时发送电子邮件,此挂钩需要知道将电子邮件发送给谁,等等.您可以
git config通过在"repo"段落中指定类似的内容来设置值:示例用法:如果您在
hooks/common其中放置了需要特定于每个repo的配置信息的挂钩,则可以执行以下操作:
repo gitolite
config hooks.mailinglist = gitolite-commits@example.tld
config hooks.emailprefix = "[gitolite] "
config foo.bar = ""
config foo.baz =
Run Code Online (Sandbox Code Playgroud)
语法很简单:
config sectionname.keyname = [optional value_string]
Run Code Online (Sandbox Code Playgroud)
这可以是普通的"
git config section.key value"(对于上面的前3个例子)或"git config --unset-all section.key"(对于最后一个例子).不支持
其他形式(--add,value_regex等).注意:除非
rc文件具有正确的设置,否则这将无效; 请查看有关变量的注释$GL_GITCONFIG_KEYS$GIT_CONFIG_KEYS(现在使用GitoliteV3或'g3')在gitoliterc文件中获取详细信息和安全信息.
小智 6
目前,这不起作用:
repo @all
config foo.bar = "baz"
Run Code Online (Sandbox Code Playgroud)
我认为你希望它可以工作,但由于其他压力,以及有一个解决方法的事实,它现在在我的列表中有点低:
@almostall = repo1 repo2 repo3
@almostall = repo4 repo5 repo6 [add as many more as you like]
[... later ...]
repo @almostall
config foo.bar = "baz"
Run Code Online (Sandbox Code Playgroud)
希望有帮助,并对@all的疏忽感到抱歉