如何让所有GitLab用户无需公开回购,即可访问所有存储库?

Max*_*eng 6 git version-control gitlab

我们是一个小团队(大约20人),我希望每个人都可以访问所有存储库,但不会公开它们.

有没有办法让每个用户都可以访问所有存储库而不公开它们?或者他们至少可以看到/浏览所有的回购?

到目前为止,我的方法是创建一个名为"Everyone"的团队,并将其手动添加到所有存储库中.但我希望这可以自动发生,而且不会让每个人都像团队一样出现.

任何想法高度赞赏.谢谢

men*_*ana 7

将所有用户添加到所有项目

笔记:

■admin用户被添加为主人

bundle exec rake gitlab:import:all_users_to_all_projects
Run Code Online (Sandbox Code Playgroud)

https://github.com/gitlabhq/gitlabhq/blob/master/doc/raketasks/user_management.md


Ste*_*nes 0

看一下红皮书,找到标题为“实施基于用户的 ACL 系统”的部分 - 它描述了如何基于每个存储库的 2 个文本文件来设置存储库权限 - 这些可以在存储库之间或在 Unix/Linux 上复制服务器可能只是每个存储库中带有软链接的 2 个文件 - 您将只有 1 个用户文件要编辑,甚至不需要复制它。您可能必须对每个存储库强制执行类似的存储库结构,但这通常是很好的做法。

仅限 gitlab 的解决方案的替代方案如下所示:

  1. 将所有用户添加到具有有限权限的“浏览”组,并将该组添加到所有存储库(可以根据需要使用 python 脚本和python gitlab api进行更新), 或者
  2. 相当确定您可以在指定的(可能是非标准的)端口上启动 gitlab 运行,将所有存储库公开,但设置网络策略,以便只有本地或指定范围的 IP 地址可以连接到该端口。这将使其仅在组织内公开,但至于如何做到这一点,我建议在超级用户上提出一个单独的问题,因为它更多的是系统管理问题而不是编程问题。