Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 拒绝任何包含某些文件外更改的推送到源站_Ruby_Git_Github_Githooks_Github Api - Fatal编程技术网

Ruby 拒绝任何包含某些文件外更改的推送到源站

Ruby 拒绝任何包含某些文件外更改的推送到源站,ruby,git,github,githooks,github-api,Ruby,Git,Github,Githooks,Github Api,我正在管理学生作品的回购。学生可以访问彼此的工作,但只能在repo中自己的文件夹中进行更改。我希望编写一个githook,最好是ruby,它将拒绝任何对远程源repo的推送,这些远程源repo包含在它们自己的文件之外的更改 谁能给我指一下正确的方向吗?我发现涉及到这个主题时,文档相对较少 谢谢 根据您关于避免手动处理请求的评论,我认为这可能是您可以使用的方法: 您设置了存储库,每个学生都有一个文件夹可供使用 您可以选择由触发的存储库。有关钩子的作用的解释,请参见下文 学生只有对存储库的读取权限,

我正在管理学生作品的回购。学生可以访问彼此的工作,但只能在repo中自己的文件夹中进行更改。我希望编写一个githook,最好是ruby,它将拒绝任何对远程源repo的推送,这些远程源repo包含在它们自己的文件之外的更改

谁能给我指一下正确的方向吗?我发现涉及到这个主题时,文档相对较少


谢谢

根据您关于避免手动处理请求的评论,我认为这可能是您可以使用的方法:

  • 您设置了存储库,每个学生都有一个文件夹可供使用
  • 您可以选择由触发的存储库。有关钩子的作用的解释,请参见下文
  • 学生只有对存储库的读取权限,因此每个学生都必须进入存储库
  • 学生在他们的fork中对某些文件进行更改
  • 学生向你的叉子提交拉动请求
  • 您的钩子由pull请求事件触发。使用,钩子将列出拉取请求中的所有文件,并验证是否允许发出拉取请求的用户修改这些文件
  • 如果用户只修改了允许修改的文件,则通过钩子合并拉取请求。但是,如果用户修改了他们不应该拥有的文件,那么拉取请求将通过关闭。您还可以根据pull请求解释其关闭的原因
    钩子可以用任何语言实现,只要它能够通过pull_请求事件接收POST请求。例如,您可以将其部署到Heroku。

    如何让他们执行拉取请求?:)这是目前程序的一部分。我希望避免手动处理拉取请求。哦,酷,聪明的决定!希望一切顺利!谢谢你,伊万!这很有帮助。