gpt4 book ai didi

git - 通过仅拒绝几个文件夹并允许所有其他文件夹在 git 中强制执行用户 ACL

转载 作者:太空狗 更新时间:2023-10-29 14:23:23 25 4
gpt4 key购买 nike

我已经使用 Git 钩子(Hook)部分中提到的所有必要钩子(Hook)实现了一个 git 服务器。在为用户 ACL 实现服务器端 Hook 时,可在 this 中找到链接,我有以下问题:

  • 我在存储库中有 130 个文件夹,但我只想拒绝访问此存储库中的 2 个文件夹,并允许访问所有其他文件夹。
  • 为此,我在“acl_file”中添加了指定格式的所有文件夹名称。因此,此文件中有 130 个文件夹,很难去检查每个文件夹的条目中的用户是否可用。
  • 此外,我无法一直检查哪个开发人员正在 checkin 哪个文件夹中的文件。

我想要的是,有没有一种方法可以简单地在此“acl_file”中提供一个条目,以便所有用户都可以访问除必须限制访问的两个特殊文件夹之外的所有文件夹?

注意:

我试图通过提供以下行来为所有文件夹提供 avail:

avail|user1,user2| - 授予对所有文件夹的权限

unavail|user1|xyz - 拒绝对 xyz 文件夹的权限。

但是 user1 可以访问 xyz 文件夹,即使我已经给出了文件夹不可用。

由于这行不通,任何人都可以提供一种替代方法来提供对存储库中所有文件夹的访问权限,并单独拒绝任何特定文件夹的权限吗?

最佳答案

替代方法将使用替代工具: gitolite (将与您的 git 服务器和 would be called by your font-end listener, like the Apache Server 一起运行的 perl 脚本)。

Gitolite 是一个 authorization layer管理各种ACL,包括文件夹管理,through VREFs (更新 Hook )。

VREF page包括示例:

Another way to use this is when you know what is allowed instead of what is not allowed.
Let's say the QA person is only allowed to touch a file called CHANGELOG and any files in a directory called ReleaseNotes:

repo foo
RW+ = @senior_devs
RW = @junior_devs
RW+ = QA-guy

RW+ VREF/NAME/CHANGELOG = QA-guy
RW+ VREF/NAME/ReleaseNotes/ = QA-guy
- VREF/NAME/ = QA-guy

VREF 是一个钩子(Hook)(由 gitolite 管理),因此 VREF/NAME 非常适合文件/文件夹限制。

关于git - 通过仅拒绝几个文件夹并允许所有其他文件夹在 git 中强制执行用户 ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27741585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com