【发布时间】:2016-11-12 20:45:09
【问题描述】:
我在这个项目中有 10 个主要文件夹,我想在我的 git 存储库的一个子文件夹中授予外部团队访问权限,以便他们可以进行更改并提交请求请求。
有办法吗?如果没有,您能提出更好的方法吗?
【问题讨论】:
标签: github
我在这个项目中有 10 个主要文件夹,我想在我的 git 存储库的一个子文件夹中授予外部团队访问权限,以便他们可以进行更改并提交请求请求。
有办法吗?如果没有,您能提出更好的方法吗?
【问题讨论】:
标签: github
在 GitHub 存储库上没有实现这种开箱即用的访问权限机制。
使用子模块可以解决问题,而且设置起来非常容易。您可以在将子模块存储库添加到主项目存储库时授予客户对子模块存储库的完全访问权限。
请注意,StackOverflow 问题"Using someone else's repo as a Git Submodule on GitHub" 和its answer 也值得一读。
在我看来,这是最简单直接的方法。
如果您真的不想使用子模块,您仍然可以通过创建实现此机制的GitHub webhook 来限制访问权限。 Git SCM documentation 解释了如何做这部分。
【讨论】:
对于付费的 github 帐户,可以使用 github 的 codeowners 功能。
代码所有者是通过将名为 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
通过付费的 github 订阅,可以限制 PR,在合并之前需要代码所有者审查:
配置完成后,对通过 CODEOWNERS 文件配置的位置/文件/目录进行更改的拉取请求需要代码所有者审核。截图:
管理员和所有者仍然可以直接提交到master。因此,建议也将分支限制应用于管理员:
【讨论】: