4

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

而且我想与在 apache 上运行的某种 GUI(gitweb、gitlist、gitalist ......)共享对项目的只读访问权限,这些 GUI 可以向特定用户显示我选择的存储库,也许还有一些完全公开的。就像是:

  • 回购 x - user1 和 user3 的读取权限
  • Repo y - user1 和 user2 的读取权限
  • Repo z - 所有用户的读取权限。

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

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

我已经使用 webmin git 模块尝试了带有 dav 的 gitweb,但是所有存储库都显示在 gitweb 中,无论我进行身份验证的用户只能访问某些存储库而不是全部。

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

应该如何实施这样的事情?也许是一些钩子?

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

4

1 回答 1

3

正确的解决方案是添加一个授权层,如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"
于 2012-11-27T11:54:13.170 回答