考虑以下代码库:
repo /src/A/
REPO/src/B/
是否可以通过只有 1 个 repo 来实现以下限制?
- 在 master 分支上,允许维护者角色的完全访问权限
- 在 master 分支上,禁止访问 A 但允许 B 成为贡献者角色。
- 在个人分支上,允许创作者完全访问 A 和 B。
最佳答案
使用 Gitolite V3 or 'g3'及其 VREF ,应该可以实现这些限制。
但是您可以管理的访问权限仅限于写访问权限。
如果用户可以克隆一个存储库,他/她将拥有对该存储库所有的读取权限(如“gitolite: allow to change only selelected files”中所述)。
如果你真的想限制读取访问,你可以尝试 gitolite ' partial-copy
' .
一些注意事项:
- VREF 可用于 restricting pushes by dir/file name .
- 我在这里使用 role 的概念,不是用户组:你需要 set the permission separately对于所述用户。
- 个人分支机构是described here .
安access rule就像:
<permission> <zero or more refexes> = <one or more users/user groups>
<zero or more refexes>
表示您可以结合反射
这会给出类似的东西(未测试):
repo REPO
RW+ master = MAINTAINER
- master VREF/NAME/A = CONTRIBUTOR
RW master VREF/NAME/B = CONTRIBUTOR
RW personal/USER/ VREF/NAME/A = CREATOR
RW personal/USER/ VREF/NAME/B = CREATOR
关于gitolite 禁止访问 master 分支上的目录,但不允许访问用户分支上的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11899405/