gitweb和每个项目的http身份验证

loc*_*doc 5 apache git gitweb

我已成功在apache vHost上为所有经过身份验证的用户设置了gitweb.

服务器本身通过https提供多个git存储库,并具有对这些项目的每个用户/组访问权限.例如,test1.git只能由组test1读取/写入,test2.git只能由组test2读/写.

现在我也只想让那些组在gitweb界面中看到相应的git存储库.是否可以为gitweb提供那些细粒度的访问权限?

如果没有,是否有一个轻量级的web gui for git,可以处理每个项目的基本http身份验证(以及稍后可能的ldap身份验证)?

编辑 只是为了让事情更清楚(因为评论似乎有些混淆):示例:

  • 有10个存储库(test1,test2,... test10)

  • 用户lockdoc在组test1test3中

  • 一旦使用用户名lockdoc和他/她的密码通过http进行身份验证,此用户只能看到git项目test1test3,并且无法浏览/查看任何其他项目

  • 不需要在Web界面上编写(推送),因为这已经实现了

Von*_*onC 4

没有 GUI,但我建议使用gitolite进行这种细粒度的授权

请参阅此httpd.conf 以获取 LDAP 和 gitolite 访问

  • 您可以定义 gitweb 访问权限,该访问权限又会调用 gitolite,请参阅此gitweb.conf.pl脚本
  • 你可以定义一个https access,它也会调用 gitolite (为了允许或拒绝访问,具体取决于你的 id)

https 配置如下所示:

ScriptAlias /hgit/ @H@/sbin/gitolite-shell/
SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"
<Location /hgit>
   ...
</Location>
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,您都可以使用基于 LDAP 的身份验证来保护这些 http 地址:

AuthName "LDAP authentication for ITSVC Smart HTTP Git repositories"
AuthType Basic
AuthBasicProvider myldap companyldap
AuthzLDAPAuthoritative Off
Require valid-user
Run Code Online (Sandbox Code Playgroud)

您将在与 gitolite 关联的gitolite.conf配置文件中注册您的用户/组/存储库。

@lockdoc_repos           =   test1 test3 # group of repo

repo @lockdoc_repos
    R                    = lockdoc # read-only access for lockdoc
    R                    = gitweb daemon # can be browsed   
Run Code Online (Sandbox Code Playgroud)

有关如何允许浏览存储库的更多信息,请参阅“删除 R @all 规则后在 gitolite 中找不到测试/信息/参考”,作者是 gitolite 的创建者Sitaram ( Sitaram Chamarty )。