codecamp

GitHub 关于团队

团队是通过级联访问权限和提及来反映公司或群组结构的组织成员组。

组织中的团队列表

组织所有者和团队维护员可向团队授予仓库的管理员、读取或写入权限。 组织成员可通过提及团队的名称向整个团队发送通知。 组织成员也可通过向该团队申请审查来发送通知给整个团队。 组织成员可以向能够读取其中打开了拉取请求的仓库的特定团队申请审查。 可在 CODEOWNERS 文件中将团队指定为某些代码类型或区域的所有者。

更多信息请参阅:

团队提及图像

您可以使用团队同步通过身份提供程序自动添加和删除组织中的团队成员。 更多信息请参阅“同步团队与身份提供程序组”。

团队可见性

团队可以是可见的或机密的:

  • 可见团队可供每个组织成员查看并 @提及
  • 机密团队只对团队中的人员和拥有所有者权限的人可见。 它们非常适合隐藏团队的敏感名称或成员,例如用于与外部伙伴或客户合作的名称。 机密团队不能嵌套在父团队下,也不能有子团队。

团队页面

每个团队都在组织中有自己的页面。 在团队的页面上,您可以查看团队成员、子团队和团队的仓库。 组织所有者和团队维护员可从团队页面访问团队设置以及更新团队的说明和头像。

组织成员可以创建和参与团队讨论。 更多信息请参阅“关于团队讨论”。

列出团队成员和讨论的团队页面

嵌套团队

您可以在 GitHub 组织中通过多级嵌套团队反映您的组或公司的层级。 一个父团队可有多个子团队,而每个子团队只能有一个父团队。 您无法嵌套机密团队。

子团队继承父团队的访问权限,简化大组的权限管理。 当父团队被 @提及时,子团队的成员也会收到通知,因此简化与多组人员的沟通。

例如,如果您的团队结构是“员工 > 工程 > 应用工程 > 身份”,则向“工程”授予对仓库的写入权限意味着“应用工程”和“身份”也会获得该访问权限。 如果您 @提及“身份”团队或组织层次结构底部的任何团队,则它们是唯一会收到通知的团队。

包含父团队和子团队的团队页面

要轻松了解谁共享父团队的权限和提及,可以在父团队页面的 Members(成员)选项卡上查看其子团队的所有成员。 子团队的成员不是父团队的直接成员。

包含子团队所有成员的父团队页面

在创建团队时您可以选择父团队,或者以后在组织的层次结构中移动团队。 更多信息请参阅“在组织的层次结构中移动团队”。

准备在组织中嵌套团队

如果您的组织已经有团队,则在其上面或下面嵌套团队之前,应审计每个团队的仓库访问权限。 也应考虑要为组织实施的新结构。

在团队层次结构的顶部,应向父团队授予对父团队及其子团队每个成员都安全的仓库访问权限。 随着在向层次结构底部的移动,可以更细致地向子团队成员授予访问敏感仓库的其他权限。

  1. 从现有团队删除所有成员
  2. 审计并调整每个团队的仓库访问权限,并为每个团队指定一个父团队
  3. 创建需要的任何新团队,为每个新团队选择一个父团队,并向他们授予仓库访问权限
  4. 直接向团队添加人员

延伸阅读

从组织中删除帐单管理员
GitHub 创建团队
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

GitHub 身份验证

在 GitHub 上管理订阅和通知

在 GitHub 上管理活动的订阅

GitHub 组织和团队

GitHub 管理对组织仓库的 Git 访问

GitHub 计费和付款

GitHub 使用议题和拉取请求进行协作

GitHub 在具有代码质量功能的仓库上进行协作

管理在 GitHub 上的工作

GitHub 建立强大的社区

GitHub 管理仓库

GitHub 自定义 GitHub 工作流程

在 GitHub Marketplace 中购买并安装应用程序

通过 GitHub Jobs 寻找人才

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }