在github中为项目文件夹授予权限

时间:2016-11-12 20:45:10

标签: github

我是github社区的新手,我有自己的私人项目(网站),一切正常。

我已经与一家SEO专家公司签订了合同,我在这个项目中有10个主要文件夹我想让他们只访问一个文件夹,他们可以在那里进行更改并提交一个Pull Request。 / p>

我能做到吗?或者你有不同的方法吗?

来自专家的任何帮助:)

2 个答案:

答案 0 :(得分:2)

使用(付费)“代码所有者”功能

对于付费github帐户,可以使用github的 codeowners 功能。

步骤1:定义代码所有者

代码所有者是通过在存储库的根目录中添加一个名为 CODEOWNERS 的文件来定义的。

语法:

# <directory or file filter> <user or group>

# Examples:

README.md @octocat
/veryimportant/ @myorganization/teamname

文档:https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners

步骤2:限制提取请求

对于付费github订阅,可以通过以下方式限制PR:在合并之前,需要代码所有者进行审查:

enter image description here

结果

已配置好此配置后,对通过CODEOWNERS文件配置的位置/文件/目录进行更改的拉取请求需要进行代码所有者审查。截图:

enter image description here

第3步:限制管理员

管理员和所有者仍然可以直接向master提交信息。因此,建议也将分支限制也应用于管理员:

enter image description here

答案 1 :(得分:1)

开箱即用的GitHub存储库上没有实现此类访问权限机制。

使用submodule

使用子模块可以解决问题,并且设置起来非常简单。在将子模块存储库添加到主项目存储库时,您可以为客户提供对子模块存储库的完全访问权限。

请注意,StackOverflow问题"Using someone else's repo as a Git Submodule on GitHub"its answer也值得一读。

在我看来,这是最简单直接的方法。

使用webhook

如果您真的不想使用子模块,您仍然可以通过创建实现此机制的GitHub webhook来限制访问权限。 Git SCM documentation解释了如何做到这一点。