在 git 存储库中为团队成员和自由职业者隐藏/限制部分源代码

问题描述 投票:0回答:1

我查看了许多相关/类似的问题,但找不到任何足够的答案来回答我的问题。

我有一个 Gatsby/React 项目,我有一个托管在 github 上的私有 git 存储库。我希望能够让自由职业者处理项目的某些部分,但我不希望他们能够看到项目某些部分的源代码(至少是某些模块和组件,甚至可能是项目的主要设置)盖茨比项目)。他们确实需要能够运行和测试他们创建或工作的功能,这意味着他们仍然需要以某种方式访问我不希望他们看到原始代码的模块/组件/配置/等(缩小/丑化就可以了)。

我了解子模块,但这些似乎有很多问题使它们无法用于此目的,主要是:

  1. 如果我只授予自由职业者访问子模块存储库的权限,他们就无法在本地测试与系统的集成,以便轻松快速地进行开发。我可能可以让他们将子模块推送/合并到测试分支中,并让他们在测试 CI/CD 设置中看到结果。但这意味着需要很长时间才能获得每一个微小变化的反馈。
  2. 我之前尝试过子模块,遇到了几个无法轻松找到解决方案的问题。子模块似乎有点难用,而且很容易出错。没有多少开发人员对它们有经验,我可能最终会浪费大量时间来解决它们的问题。 我认为使用子树而不是子模块可以解决这一点上的很多问题,但它对nr 1没有帮助,所以子模块或子树似乎不能解决我的问题

我可以使用某种设置来解决我的问题并希望避免这些问题吗?

大公司如何限制对其源代码的访问?他们如何限制自由职业者/分包商甚至员工对其代码库的访问?

我读到 Google、Facebook 等公司的所有代码都使用同一个 git monorepo。我无法想象他们会允许他们的开发人员实际拉取并查看他们的 monorepo 中的所有代码。那么他们是如何设置的呢?

reactjs git gatsby restrict source-code-protection
1个回答
0
投票

我读到 Google、Facebook 等公司的所有代码都使用同一个 git monorepo。我无法想象他们会允许他们的开发人员实际拉取并查看他们的 monorepo 中的所有代码。

他们确实如此。筒仓无法很好地扩展,也许除了苹果公司。 (此外,谷歌、Facebook 等都有一些“伟大的”律师。此外,这些代码库很大,移动速度很快,而且往往被严重分割成离散的微服务。此外,在全球范围内运作良好的方法可能行不通以及较小的东西。) 如果您想让某些开发人员远离代码库的某些部分,那么您唯一的选择是将这些秘密部分放在单独的存储库中。您不一定必须设置子模块或子树 - 您可以将秘密内容定义为库(提供有用的二进制文件),或者可能作为非特权开发人员可以查询的服务 - 但没有办法授予单个 Git 存储库中的选择性读取权限。

© www.soinside.com 2019 - 2024. All rights reserved.