security - GIT 支持基于分支的用户授权——最佳实践还是工具?

标签 security git code-access-security git-branch

对于基于产品的 GIT 存储库,其中有用于维护、测试以及 future 开发的分支,我如何控制用户对这些分支的访问权限。通过访问,我的意思是即使其他人可以读取它,他们也不应该无意中将更改推送到存储库。

例如,

A - B - C - D - E - F -> master
    |   |       |
    V1  V2'     exp
        |
        V2

“B”是用于带有标签 V1 的 Branch 的提交 - 意味着产品的发布版本。只有支持/维护工程师才能访问它。

C 用于最近卡住的预发布产品 V2',并且应该只允许关键的 show-stopper 错误修复,因此只有某些开发人员和测试团队应该可以访问它。当 V2 从该分支发布时,只有支持人员可以像 V1 一样访问它。

E 用于分支以测试 future V3 的新功能 - 只有开发人员而不是支持人员可以访问它。

“主要”更改只能由中央集成团队根据请求(类似于 GitHub) merge 。

如何用git实现以上?我记得看到过 gitosis 和其他一些外部工具 - 这些工具对于使用 git 进行安全操作是否必不可少,或者是否有任何其他最佳实践?

谢谢。

已添加 Gitflow best practice branching model

最佳答案

另一种限制对 repo(或分支甚至目录)的推送访问的经典方法是使用 gitolite (这实际上是 gitosis演变)。

您可以在那里(在 gitolite 配置文件中)定义您需要的任何用户组或存储库组,并关联 RW 访问权限。


注:2013 年 8 月:

We've released branch restrictions which can be configured via the repository admin "Branch management" screen.

Assembla provides such a protection as well (自 2013 年 3 月起)。

GitHub 还没有这个功能:
GitHub 自 2015 年 9 月起具有该功能:请参阅“How to protect “master” in github?”。

关于security - GIT 支持基于分支的用户授权——最佳实践还是工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5097078/

相关文章:

asp.net - ASP.NET中 session 劫持的反制措施

git - 如何处理 git 中的测试提交?

git:冲突后将文件的不同阶段存储在索引/工作树中

git cherry-pick 并通过忽略 EOL 更改进行 merge

.net - 如何允许 SQL CLR 函数在并行查询计划中运行并具有数据访问权限

c# - 让我的 clickonce 应用程序部分信任值得吗?

macos - macOS BigSur 上的 Apache httpd 漏洞

java - 如何让 Maven 接受无效的 SSL 证书?

java - 出于安全目的,如何在某些节点上禁用 Hazelcast 分布式 IExecutorService?

c# - 关于代码访问安全与无法验证代码的混淆