我目前正在尝试设置GIT存储库服务器,以便我们可以从SVN切换到GIT.我几乎覆盖了所有东西,但我留下了一个问题.
目前的设置如下:
>所有开发人员(和非开发人员)都有一个用户帐户&正确的组,因为服务器是NIS客户端
>所有回购都是在/ var / git /中制作的
>所有拉/推都是通过ssh完成的
到目前为止,这完美地起作用,并且消除了对gitosis或gitolite的需要.
因为我希望对存储库有一个可浏览的概述,所以我设置了gitweb,包括pathinfo.因为repos是私有的,我通过Perl AuthenNIS设置了身份验证,这样可行,但是在这里我遇到了一个问题.
不希望所有开发人员都可以访问所有存储库,但是gitweb只显示它(apache用户)可以读取的每个存储库.
所以我的问题是:是否有可能让gitweb只显示当前登录用户有权访问的GIT repo?
可能的解决方案:
>通过.htaccess进一步控制访问权限. pathinfo会启用此功能但不会阻止通过非pathinfo URL访问repo(例如/repo.git/不起作用,但/gitweb.cgi?p=repo.git会)
>建立一个完整的gitosis / gitolite环境并将其整合到gitweb(基本上是this).我想防止这种情况,因为开销是不可取的
>使gitweb作为经过身份验证的HTTP用户运行.这将解决所有访问控制问题,但我不知道如何做到这一点
> gitweb的$export_auth_hook与$cgi-> remote_user结合使用似乎很有希望,但我对perl的理解太有限了,无法使用它(钩子需要验证用户是否有权在显示/导出之前访问repo目录)
有谁知道如何做3或4个工作或有另一个解决方案?