gitolite 禁止访问 master 分支上的目录,但不允许访问用户分支上的目录

标签 git gitolite gitlab

考虑以下代码库:

repo /src/A/

REPO/src/B/

是否可以通过只有 1 个 repo 来实现以下限制?

  1. 在 master 分支上,允许维护者角色的完全访问权限
  2. 在 master 分支上,禁止访问 A 但允许 B 成为贡献者角色。
  3. 在个人分支上,允许创作者完全访问 A 和 B。

最佳答案

使用 Gitolite V3 or 'g3'及其 VREF ,应该可以实现这些限制。

但是您可以管理的访问权限仅限于写访问权限。
如果用户可以克隆一个存储库,他/她将拥有对该存储库所有的读取权限(如“gitolite: allow to change only selelected files”中所述)。
如果你真的想限制读取访问,你可以尝试 gitolite ' partial-copy ' .

一些注意事项:

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/

相关文章:

kubernetes - 如何通过web UI配置安装在kubernetes上的gitlab runner

xcode - 撤消单个文件 Git Checkout

git - 如何在 Shopware 6 开发系统上管理媒体?提交到 git 还是不提交?

git push origin master :refs/heads/master what does this do

Gitolite 权限仅对一个分支

spring-boot - 包含的重定向 URI 无效

docker - 语法错误的 Gitlab-runner

git - 同一台计算机上的多个 GitHub 帐户?

git - 将更改推送到远程服务器的问题

git - 从另一个钩子(Hook)调用一个 git 钩子(Hook)