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

gitweb和每个项目的http身份验证,git,apache,gitweb,Git,Apache,Gitweb,我已经成功地在所有经过身份验证的用户都可以访问的apache vHost上设置了gitweb 服务器本身通过https提供了几个git存储库,并且每个用户/组都可以访问这些项目。例如,test1.git只能由组test1读取/写入,test2.git只能由组test2读取/写入 现在,我也只希望这些组在gitweb界面中看到它们相应的git存储库。是否可以为gitweb拥有这些细粒度访问权限 如果没有,是否有一个用于git的轻量级web gui,可以处理每个项目的基本http身份验证(以及以后的

我已经成功地在所有经过身份验证的用户都可以访问的apache vHost上设置了gitweb

服务器本身通过https提供了几个git存储库,并且每个用户/组都可以访问这些项目。例如,test1.git只能由组test1读取/写入,test2.git只能由组test2读取/写入

现在,我也只希望这些组在gitweb界面中看到它们相应的git存储库。是否可以为gitweb拥有这些细粒度访问权限

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

编辑 为了让事情更清楚(评论中似乎有一些混乱): 例如:

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

  • 用户lockdoc在组test1test3

  • 使用用户名lockdoc和密码通过http进行身份验证后,该用户只能查看git项目test1test3,不能浏览/查看任何其他项目

  • 不需要在webinterface上写入(推送),因为这已经实现了


    • 没有GUI,但我建议使用这种细粒度

      见此:

      • 您可以定义一个gitweb访问,它将调用gitolite,请参见此脚本
      • 您可以定义一个s,它也将调用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>
      
      您将在与gitolite关联的中注册您的用户/组/repo

      @lockdoc_repos           =   test1 test3 # group of repo
      
      repo @lockdoc_repos
          R                    = lockdoc # read-only access for lockdoc
          R                    = gitweb daemon # can be browsed   
      

      有关如何允许gitolite的创建者()自己浏览回购协议的更多信息,请参见“”。

      您希望对您的存储库有一个简单的只读视图(在这种情况下,GitWeb是合适的),还是希望管理存储库(在这种情况下,@VonC回答的gitolite是一个选项),我认为这个问题在堆栈中更合适。您可以尝试在需要不同身份验证设置(文件、方法等)的不同
      部分中匹配不同的URL。根据您的编辑,我确认gitolite是适合此工作的工具。我已经用更多的细节编辑了我的答案。
      @lockdoc_repos           =   test1 test3 # group of repo
      
      repo @lockdoc_repos
          R                    = lockdoc # read-only access for lockdoc
          R                    = gitweb daemon # can be browsed