使用 GitHub 配置源代码控制仓库权限

已完成

要想以最佳方式实现 GitHub 存储库权限,就需要在促进协作与保护代码库免受滥用之间找到适当的平衡。 GitHub 支持精细的访问控制,这使团队能够高效地相互交互,同时维护数据隐私、安全性和完整性原则。

权限模型因 GitHub 帐户类型而异。 个人和组织可以创建五种类型的帐户:

  • 面向个人帐户的 GitHub 免费版:个人使用免费,包括在具有完整功能集的无限公共存储库和具有有限功能集的无限专用存储库上支持不限数量的协作者,例如
    问题和拉取请求。
  • GitHub Pro:面向专业开发人员,包括无限的公共和专用存储库、无限的协作者和高级代码评审工具。
  • 面向组织的 GitHub 免费版:对组织免费,包括在具有完整功能集的无限公共存储库和具有有限功能集的无限专用存储库上支持不限数量的协作者。 除了面向个人帐户的 GitHub 免费版提供的功能,面向组织的 GitHub 免费版还将每月提供更高的 GitHub Actions 分钟数限制值和更高的 GitHub Packages 存储容量。
  • GitHub Team:面向团队,包括 GitHub Pro 的所有功能,以及团队和用户权限、代码评审工具以及专用存储库中的高级工具和功能。
  • GitHub Enterprise:面向企业级组织的,包括 GitHub Team 的所有功能,以及企业级安全功能,例如单一登录、审核日志和合规性控制。 此计划是自承载的,可在本地或云环境 (GitHub Enterprise Cloud) 中运行。

面向个人帐户的 GitHub 免费版中的存储库权限

面向个人帐户的 GitHub 免费版:对于公共存储库,任何人都可以查看和为其创建分支。 对于专用存储库,存储库所有者可以完全控制谁可以访问和参与编辑存储库,最多允许三个协作者。 只能有一个所有者,因此无法与其他个人帐户共享所有权权限。 此外,在专用存储库中,存储库所有者只能向协作者授予写权限。 换句话说,协作者不能对个人帐户拥有的存储库具有只读权限。

GitHub Pro 中的存储库权限

除了面向个人帐户的 GitHub 免费版具有的所有存储库权限级别,GitHub Pro 还具有更高级的协作功能,例如受保护分支和代码所有者。

面向组织的 GitHub 免费版中的存储库权限

面向组织的 GitHub 免费版包括创建团队的功能,从而可为这些团队授予针对特定存储库的不同级别访问权限。 可以为团队授予写权限或管理员权限,并且可以创建自定义角色以向不同的用户或组授予特定权限。

针对组织中用户的默认非管理角色是组织成员。 默认情况下,组织成员拥有一些权限,包括可以创建存储库。

其他组织角色则对存储库具有提升的权限,例如:

  • 组织审查者:隐藏组织拥有的公共存储库中的注释。
  • 安全管理员:读取组织中的所有存储库。
  • 所有者:所有与存储库相关的权限,包括添加协作者以及写入和删除存储库。

组织所有者可以设置组织的所有成员在访问其任何存储库时的基本权限。 基本权限不适用于外部协作者。 如果为个别存储库授予了更高级别的访问权限,则会替代基本权限。

通过将内置存储库角色分配给组织成员和外部协作者,可以实现对存储库的自定义访问权限。 这些角色包括:

  • 读取:建议分配给希望能够查看存储库内容的非代码参与者。
  • 会审:建议分配给需要主动管理问题、讨论和拉取请求,但无需写权限的参与者。
  • 写入:建议分配给需主动将内容推送到存储库的参与者。
  • 维护:建议分配给需要在没有敏感或破坏性操作权限的情况下管理存储库的项目经理。
  • 管理:建议分配给需要完整权限(包括管理安全性或删除存储库等敏感和破坏性操作)的人员。

GitHub Team 中的存储库权限

除了面向组织的 GitHub 免费版具有的所有存储库权限级别,GitHub Team 还添加了对团队的支持以及更高级的安全功能,例如授权 IP 范围和企业级身份验证。 团队是由组织成员组成的小组。 组织所有者和团队维护者可以为团队授予对存储库的权限。

GitHub Enterprise Cloud 中的存储库权限

GitHub Enterprise Cloud 专为企业级组织设计,包括 GitHub Team 的所有功能以及企业级

安全功能,例如单一登录、审核日志和合规性控制。 GitHub Enterprise Cloud 支持对存储库权限进行非常精细的控制,包括能够在分支级别管理权限。组织所有者还可以创建自定义角色,以向不同的用户或团队授予比内置读取、会审、写入、维护和管理角色更精细的权限。