gpt4 book ai didi

github - 代码所有者 : Exclude group from directory (git)

转载 作者:行者123 更新时间:2023-12-04 13:24:04 24 4
gpt4 key购买 nike

我的团队 <team-1>正在与 <team-2> 共享一个 github 存储库. repo 看起来像这样(简化示例):

infrastructure/
|
|-- .github/CODEOWNERS
|
|-- directory1/
|
|-- subdirectory1.1/
|
|-- subdirectory1.2/
|
|-- directory2/
|
|-- subdirectory2.1/
|
|-- subdirectory2.2/
|
|-- directory3/
|
|-- subdirectory3.1/
|
|-- subdirectory3.2/

<team-2>是 repo 中每个目录的 CODEOWNER,我的团队 <team-1>仅拥有 subdirectory1.1subdirectory2.1 .
换句话说,CODEOWNERS 文件如下所示:
github/代码所有者
* @mycompany/team2
/infrastructure/directory1/subdirectory1.1 @mycompany/team1
/infrastructure/directory1/subdirectory1.1 @mycompany/team1

鉴于上述情况,我想做的是排除 team2从 team1 拥有的每个文件夹中,最好不要删除 codeowners 文件中的通配符。
* @mycompany/team2
/infrastructure/directory1/subdirectory1.1 @mycompany/team1 AND EXCLUDE TEAM2
/infrastructure/directory1/subdirectory1.1 @mycompany/team1 AND EXCLUDE TEAM2
在不重写整个代码所有者逻辑的情况下,最好的方法是什么?

最佳答案

如果“代码所有者”是指对文件夹的推送/写入访问权限,则 Git 或 GitHub 本身不支持此操作:如果您可以推送到存储库的一部分,则可以推送到所有存储库。
您可能会考虑推送到中间网关存储库,在您控制的服务器上,以及您可以设置授权层的位置,例如 gitolite
使用 Gitolite,您可以使用 VREF 通过更改的目录和文件的名称来限制推送。
在你的情况下:

repo foo
RW+ = @team2
R = @team1

RW VREF/NAME/infrastructure/directory1/subdirectory1.1 @team1
RW VREF/NAME/infrastructure/directory1/subdirectory2.1 @team1
一旦 Gitolite 验证推送,该服务器就可以依次推送到 GitHub。

但更自然的方法是将存储库一分为二,将主父 teeam2 存储库中的 team1 内容引用为 submodule .
不过这并不容易,考虑到它会涉及历史重写和文件夹重组。

关于github - 代码所有者 : Exclude group from directory (git),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69750495/

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