TFS和Git - 使用户仅限于推送代码

时间:2017-06-16 04:48:08

标签: git tfs push restrictions

我们使用TFS作为项目管理界面,我们使用Git来管理存储库。

我们希望用户只能推送文件并推送到存储库中的分支。

例如: 在分支A中,user1无法对file1进行更改,user2无法对file2进行更改,user3可以更改分支中的每个文件等。

TFS有可能吗?

2 个答案:

答案 0 :(得分:0)

  

TFS有可能吗?

不是我知道的。

你可以做的是设置一个中间存储库,它将充当网守:如果推送成功,那个存储库(through a post-receive hook)将推送到实际目标:TFS Git存储库。

该中间回购应该由授权层管理,例如 gitolite :gitolite可以限制推送到分支甚至文件:请参阅“restricting pushes by dir/file name

答案 1 :(得分:0)

我可以看到你这样做的唯一方法是通过TFS server-side plugin。您可以实现订阅Git ISubscriber事件的PushNotification。如果您的政策不满意,这将允许您检查推送的提交并阻止推送。但是,您必须在TFS之外的某种结构化格式中定义分支/用户限制。

我已经成功使用了这个项目,它提供了一个很好的框架来实现推送到TFS托管的Git仓库的策略:

https://github.com/giuliov/GitPushFilterPlugin

唯一的警告(根据我自己的经验),PushNotification事件中可用的数据量可能不足以确定IncludedCommits所属的分支。