我有点困惑gitolite https://gitolite.com/gitolite/权限。
仅允许 1 个分支并拒绝特定用户或组的所有其他分支的最佳方法是什么?
See "部分复制:分支的选择性读取控制 https://gitolite.com/gitolite/list-non-core.html#partial-copy-selective-read-control-for-branches"
要点是:
Git(以及 gitolite)无法进行选择性读取控制——允许某人读取分支A
但不是分支B
.
要么是整个仓库,要么什么都没有.
Gerrit 代码审查 https://gerrit.libreoffice.org可以做到这一点,但那是因为他们有自己的 git (以及自己的 sshd 等)。如果代码审查是您访问控制决策的一部分,那么无论如何您确实应该考虑 Gerrit。
当您询问时得到的标准答案是“使用单独的存储库”(其中一个包含所有分支,一个包含分支的子集)。
这在理论上很好,但在实践中,当人们可能同时推送两个存储库时,您需要弄清楚如何使它们保持同步。
Gitolite 现在可以帮助您做到这一点。请注意,这仅适用于分支机构;您不能对文件和目录执行此操作。
就是这样:
-
enable 'partial-copy
' 在里面ENABLE
rc 文件中列出。
-
对于每个回购“foo
“它有一些秘密分支,由一组特定的开发人员(我们将使用一个名为@temp-emp
作为一个例子)不应该看到,这样做:
repo foo
# rules should allow @temp-emp NO ACCESS
repo foo-partialcopy-1
- secret-branch = @temp-emp
# other rules; see notes below
- VREF/partial-copy = @all
config gitolite.partialCopyOf = foo
重要笔记:
- 如果您使用其他 VREF,请确保将其放在最后,在所有其他 VREF 之后。
- 请记住,允许对部分复制存储库进行的任何更改都将传播到主存储库,因此请确保根据需要使用其他规则来限制对其他分支和标签的推送。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)