2012-02-23 154 views
13

我正在使用github。Github限制访问

我想弄清楚如何限制我有一个承包商的回购访问。

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

我想给承包商检入代码的能力,只能将git hub转发到某些文件夹。

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

我不认为我可以通过在特定的git仓库中限制访问来做到这一点,但也许有办法使用两个仓库并限制访问。

任何帮助,将不胜感激!

+0

如果承包商只能访问某些文件夹,他如何测试他在做什么? – robert 2012-02-23 18:21:21

+0

的目标是他只编辑css的外观和感觉。所以他只编辑css类。所以如果CSS是自动部署的,他应该能够看到它,当他点击正在运行的应用程序。 – jignesh 2012-02-24 16:26:51

回答

9

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

承包商对子仓库具有推/拉权限,但对主仓库没有提交权限。

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

+0

我认为子模块可能会更好。我对新承包商没有太多的工作,所以我有点厌倦了让他访问并让他承担正确的分支。一旦我更了解他的工作风格,那可能是更简单的选择。 – jignesh 2012-02-24 16:30:50

+1

如果你在github上,你可以让他承诺任何他想要的*回购。当他准备好进行高新工作时,他可以提交拉取请求,并且在将其拉入* main *回购之前,您将能够查看其代码 – Andy 2012-02-24 17:10:39

7

我没有这样做,但好像也许你有2种选择:

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

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

+0

我认为这可能有效。他会阅读主回购吗?我只想给他完整的子模块回购权。我想我要做的主要事情是自动部署。 – jignesh 2012-02-24 16:29:30

+0

是的,他会的。再次,用一粒盐,我没有真正做到。 – denishaskin 2012-02-24 18:16:02