1

我们的 git 存储库通常包含我们整个网站和服务的代码。这包括所有用于营销、法律、用户界面等的精心措辞的文本。

本质上,一个流氓开发者可以克隆它,改变一些东西,并成为我们的竞争对手(除了所有法律问题)。或者更有可能的是,他们经常会在未经授权的情况下将其他人的工作作为他们自己的工作包括在他们的投资组合中。在某些情况下,这会导致我们不想要的特性和功能的早期披露。

无论如何,这已被认为是一种风险,因为我们偶尔会与全球各地的开发人员合作,并且需要尽快添加更多内容——授予他们访问他们将使用的整个代码库的权限。

你有没有遇到过这个问题?或者已经实施了减少或减轻类似风险的解决方案?

我在想一种潜在的策略可能是创建 3 个具有不同目的(而不是分支)的单独 git 存储库,但如下所示:

Git 仓库:Project1_DEVELOPERS

$git branch
master
dev
issue_feature1
issue_feature2
etc..

上面的工作流程:基本上是问题/功能分支样式。开发人员被委派了一项任务,将其作为问题/功能分支进行检查。完成后,将该分支和合并请求提交到开发分支。如果可以,我们测试分支并合并到 dev。

以上基本上就是我们今天做事的方式。而已。整个 repo 在发布到世界时都在“master”中。

但是为了实现既定目标,我正在考虑添加类似...

Git 仓库:Project1_OBFUSCATE

$git branch
strips_and_swaps (for sending to DEVELOPERS repo)
prod_patches (the patches to make it "whole" again)
prod_master (branch that PRODUCTION repo pulls into its master branch?)

和生产回购...

Git 存储库:Project1_PRODUCTION

$git branch
master

就问题的内容而言,将简单的网页想象成回购...

.git
index.html
logo.png

因此,我的目标是从“开发人员”存储库中的分支中剥离或修补带有虚拟徽标的真实/假“logo.png”。

在实践中,可能不仅仅是一个 logo.png,它可能是一堆 .blade 文件(Laravel) .twig 文件或任何可能包含我们希望限制访问的内容位的模板文件。在某些情况下,这些文件可能只存在于“OBFUSCATE”远程中。

有没有人做过类似的事情,可能会分享一些见解?

以我建议的方式考虑这样做让我很头疼,甚至可能行不通:)

4

1 回答 1

3

如果可能的话,最好的做法是将敏感信息隔离在他们自己的 Git 存储库中,而不是将所有内容都保存在一个巨大的存储库中。

您仍然可以通过使用将所有其他 repos 引用为submodules的父 repo 来获得全局图片。

但是,如果敏感数据在一个存储库中,那么您可以在访问方面对其进行保护。
这比尝试保护分支(您可以防止推送,而不是拉取,这意味着仍然可以访问其内容)或混淆远程 URL 更容易。

于 2015-07-11T07:02:26.597 回答