【发布时间】:2016-11-18 05:15:55
【问题描述】:
我正在使用 gitolite 为 git 存储库限制访问。
任何人都可以告诉如何配置限制分支以及如何限制特定目录/文件的读取权限?
【问题讨论】:
-
这在web界面中可能是可能的,但是git本身不支持这个。人们克隆整个回购并获得一切。您必须创建一个“审查”的第二个存储库,其中仅包含应该可见的内容。
我正在使用 gitolite 为 git 存储库限制访问。
任何人都可以告诉如何配置限制分支以及如何限制特定目录/文件的读取权限?
【问题讨论】:
在回购级别控制读取访问,
您要么访问(克隆)完整 repo,要么根本不访问。
敏感文件通常不应在存储库中(或在私有存储库中),并通过smudge filter content driver 生成。 'smudge' 脚本可以(在git checkout 上)检查您是否是授权用户,如果是,则获取文件(来自受信任的私人来源,而不是来自 git 存储库)并在结帐时生成您的受限文件。
写入另一方面,访问限制一直是可能的,as I mentioned 6 years ago。
使用 VREFS,您可以强制执行各种策略(例如 git commit messages 或 based on roles。
是的,你可以restrict pushes based on file/DIR。
你甚至可以使用LDAP groups to restrict gitolite access
用于限制基于目录/文件或分支/标签的读取访问,除了 gitolite...
git upload-pack 的级别(在客户端 git fetch 期间在服务器端完成)正在请求包:它由 ssh 或 https smart protocol 调用。git verify-pack),这会大大减慢克隆/获取操作,据我所知尚未完成。因此我最初的建议是不要将任何受限/敏感文件放在 git repo 中。
【讨论】: