Github限制访问

15

我正在使用Github。

我想知道如何限制承包商对仓库的访问权限。

我有主要的Rails代码库,还有一个承包商将为我完成一些CSS/UX类型的工作。

我希望给承包商只能在特定文件夹中提交代码到Github的权限。

最好的情况是,他可以提交代码,然后部署到服务器上,以便他可以查看更改。

我不认为我可以通过限制特定Git存储库内的访问来实现这一点,但也许可以通过使用两个存储库并以此方式限制访问。

任何帮助都将不胜感激!


如果承包商只能访问某些文件夹,他如何测试他所做的工作呢? - robert
目标是他只编辑CSS的外观,因此他只编辑CSS类。因此,如果CSS是自动部署的,他应该能够在运行的应用程序中看到它。 - jignesh
2个回答

10

如果所有的CSS / UX文件都在一个特定的子文件夹中,并且您希望其可以访问该目录以及更深层次的所有内容,则可以使用git子模块来实现。

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

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


我认为子模块可能会更好地发挥作用。由于我没有与新承包商合作过很多,所以我有点担心给他访问权限并允许他提交到正确的分支。一旦我更了解他的工作风格,这可能是简单的选择。 - jignesh
1
如果你在 GitHub 上,你可以让他提交任何他想要的到 他自己的 仓库。当他准备好提交他的工作时,他可以提交一个拉取请求,然后你就能够在将其拉入 主要的 仓库之前审查他的代码。 - Andy

7

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

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

2)如果他们的工作仅限于一个子树,请使用两个存储库,并使一个成为另一个的子模块。然后,您可以在 2 个存储库中设置不同的访问控制,但您会获得项目的统一视图。


我认为这可能有效。他是否有主要仓库的读取权限?我只想给他子模块仓库的全部权限。我猜我试图做的主要事情是自动部署。 - jignesh
是的,他会这样做。再说一遍,这只是个人意见,请仅供参考;我实际上并没有这样做过。 - denishaskin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接