git 仅向某些用户显示 gitweb 中的存储库

标签 git gitweb

我试图在一开始只有一个开发人员来实现一个 git 服务器,所以只有一个拥有完全访问权限。我已经没有问题了。该用户正在使用 ssh 访问权限进行工作。

我想与在 apache 上运行的某种 GUI(gitweb、gitlist、gitalist...)共享对项目的只读访问权限,这些 GUI 可以向特定用户显示我选择的 repo 协议(protocol),也许还有一些完全公开的.像这样的东西:

  • Repo x - 用户 1 和用户 3 的读取权限
  • Repo y - 用户 1 和用户 2 的读取权限
  • Repo z - 所有用户的读取权限。

我无法找出执行此类操作的正确解决方案。

我可以找到有关如何进行身份验证的文档,以便仅向经过身份验证的用户显示存储库,但无法对存储库进行细粒度控制,以便仅向每个经过身份验证的用户显示一些具有在 apache 上运行的 GUI 的存储库。

网络服务器正在使用用户 git 运行 suexec,并且具有对存储库的全部读取权限。

应该如何实现这样的事情?也许一些钩子(Hook)?

此外,我只对允许用户下载项目打包的 tar.gz 的选项感兴趣。不计划允许用户与项目协作。也许解决方案不是这个。如果 trac 系统是更好的解决方案,它也可能很有趣,以便能够接收有关项目的反馈。

最佳答案

正确的解决方案是添加一个 authorization layer喜欢gitolite .

我的 httpd.conf例如,文件声明了一个:

例如:

ScriptAlias /hgit/ @H@/gitolite/bin/gitolite-shell/
SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"

关于git 仅向某些用户显示 gitweb 中的存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13569805/

相关文章:

git - 出现错误代码 1 后如何在 FreeBSD 上安装 Git?

git - 如何在redhat上安装gitweb

apache - 仅在用户可以通过 Gitolite 访问的 gitweb 中显示 repos

Ubuntu 上的 Git 和 Ldap 以及 Apache

git - 在远程机器上没有git的Git克隆

Git 不允许我删除以 : 开头的文件

git - 如果仅更改空格和换行符,如何忽略 'git status' 中的文件

git - 从 Github 中提取所有 Gist ?

git - 使用Docker的空目录“already exists and is not an empty directory”

git - 更干净的 git 远程 URL