我正在使用hooks/update
来控制谁可以更新共享存储库中的特定引用。这适用于SSH,但我最近发现(至少使用git-1.6.4.2)这个钩子不会影响WebDAV推送,即,任何用户都可以更新任何分支。
是的,我可以在8 ways to share your git repository中添加Require group ...
指令以及单独的组文件,但我希望避免维护并行授权配置!
另一种选择是重写hooks/update
,但这似乎是浪费,因为它已经在为SSH工作了。
答案 0 :(得分:3)
你应该明白,对于Git(目前),HTTPS是一个“哑”协议,即整个交换根本不涉及服务器上的git,包括运行钩子;它只是涉及的Web服务器(使用WebDAV进行HTTPS推送)。
然而,您应该查看存储库访问管理工具,例如 Gitosis (在Python中,使用setuptools)或新的 Gitolite (在Perl中,更简单),或来自Google Android项目的 repo 工具或其他内容。也许他们会提供集中的访问管理。