Github mono repo 会员访问

Posted

技术标签:

【中文标题】Github mono repo 会员访问【英文标题】:Github mono repo member access 【发布时间】:2022-01-17 10:08:41 【问题描述】:

我们有一个使用 NX 工作区的 UI 单一存储库,我们正在与多个团队共享代码。有没有办法

    只允许团队成员访问他们拥有的模块? 要创建可供模块所有者查看和批准的 PR(仅限团队)?

【问题讨论】:

【参考方案1】:

    不,读取权限 = 整个 repo。如果您使用的是单声道存储库,则可以读取所有访问权限或无访问权限。见:Information about Managing Teams

    PR 的读取权限与上述相同,但当合并到特定分支时,您可以要求包含特定路径的 PR 的某些批准者组。见Information about Code Owners和Protected Branches

【讨论】:

【参考方案2】:

不,没有办法限制仅访问存储库的一部分。 Git 文档非常清楚,任何可以读取或写入存储库的人都可以访问该存储库的所有内容。来自gitnamespaces(7) 手册页:

获取和推送协议并非旨在防止一方从另一方存储库中窃取不打算共享的数据。如果您有需要保护的私有数据免受恶意对等方的侵害,最好的选择是将其存储在另一个存储库中。这适用于客户端和服务器。

如果您需要细粒度的权限,则需要多个存储库。我通常建议不要使用 monorepos,因为它们通常最终会变得非常大,然后表现不佳(在修复为时已晚之后),但这也是它们不是一个坏主意的另一个原因。

至于模块所有者可以批准的 PR,取决于平台。 GitHub 有 CODEOWNERS 文件,可用于强制某些团队拥有的文件需要该团队的审查。

【讨论】:

以上是关于Github mono repo 会员访问的主要内容,如果未能解决你的问题,请参考以下文章

Angular CLI 9 (Ivy) 使用本地库 (mono-repo) 构建应用程序失败

Angular(+11) Mono Repo 与其他版本不同

pagehelper的使用

推荐两个学算法的 GitHub 项目

在Ubuntu上安装Mono

如何使用个人访问令牌在 github 操作工作流 (B) 中从不同的 repo(B) 提交和推送到私有 repo(A)