【问题标题】:Github restricting accessGithub 限制访问
【发布时间】:2012-02-23 18:11:22
【问题描述】:

我正在使用 github。

我正在尝试弄清楚如何限制我拥有的承包商的 repo 访问权限。

我有主要的 rails 代码库,并且我还有一个承包商将为我做一些 css/ux 类型的工作。

我想让承包商能够仅将代码签入 git hub 到某些文件夹。

理想情况下,我可以让他签入代码,然后可以将其部署到服务器,以便他可以看到更改。

我认为我不能通过限制特定 git repo 中的访问来做到这一点,但也许有一种方法可以使用两个 repo 并以这种方式限制访问。

任何帮助将不胜感激!

【问题讨论】:

  • 如果承包商只能访问某些文件夹,他如何测试他在做什么?
  • 目标是他只编辑 CSS 外观。所以他只编辑css类。所以如果css是自动部署的,当他点击正在运行的应用程序时,他应该能够看到它。

标签: git version-control github


【解决方案1】:

如果所有 css/ux 文件都在一个特定的子文件夹中,并且您希望他能够访问该目录中的所有内容,并且更进一步,您可以使用 git 子模块来实现。

承包商将拥有作为子模块的 repo 的推送/拉取权限,但对主 repo 没有提交权限。

您也可以只使用拉取请求功能并确保他只提交到他想要的文件夹。

【讨论】:

  • 我认为子模块可能会更好。我与新承包商的合作不多,所以我有点厌倦了让他访问并让他承诺到正确的分支。一旦我对他的工作风格有了更多了解,那可能是更简单的选择。
  • 如果你在 github,你可以让他提交任何他想要的东西到 他的 repo。当他准备好提交他的工作时,他可以提交一个拉取请求,您将能够在将其拉入 main repo 之前查看他的代码
【解决方案2】:

我还没有这样做,但似乎你有两个选择:

1) 授予承包商对存储库的拉取访问权限(但不是推送)。然后他们可以分叉,在他们的分叉上工作(可能在分支内?),然后向您发送拉取请求,您需要将他/她的更改拉入。缺点是承包商无法将代码发布到无需您干预的服务器(这可能是一个好处,具体取决于)。

2) 如果他们的工作被隔离到一个子树,请使用两个存储库和make one a submodule of the other。然后,您可以在 2 个存储库中设置不同的访问控制,但您会获得项目的统一视图。

【讨论】:

  • 我认为这可能有效。他会读取主仓库的权限吗?我只想给他子模块回购的全部权利。我想我要做的主要事情是自动部署。
  • 是的,他会的。再一次,把这个和一粒盐放在一起;我还没有真正做到。
猜你喜欢
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多