组织与团队协作:五种角色,十个坑
权限这件事,查表最准。但表太长,没人看。
这篇先给你一张「差在哪」的简表,再点出十个表里看不出来、但会真踩的细节。
一、五种角色的分界线
负责人 > 管理员 > 开发者 > 助手 > 访客。另有 匿名(未登录/非成员)和 创建者(非成员但创建了某个资源)。
真正要记的是这三条分界:
| 分界 | 谁在左边 |
|---|---|
| 能改组织级设置、建仓库 | 负责人、管理员 |
| 能推代码、跑构建、合并 PR | 负责人、管理员、开发者 |
| 只能看 + 评论 + 提 Issue | 助手、访客、匿名 |
一句话选角色:
- 负责人:组织所有者,管钱管人
- 管理员:管仓库设置、分支保护、成员
- 开发者:日常干活的人,全流程能走通
- 助手:参与讨论、提 Issue、评论,但不动代码
- 访客:看代码看日志
二、十个反直觉的细节
1. 助手 能评论但不能推代码。
它的定位是"参与协作但不改代码"——产品经理、设计师、测试同学给这个最合适。
2. 访客 在私有仓库看不了代码。
公开仓库能克隆能下载,私有仓库连文件内容都不给看。
3. 开发者 能合并 PR。
不需要管理员。但前提是分支保护规则允许——分支保护设置只有管理员和负责人能改。
4. 建 PR、提 Issue、评论,非成员也行。
公开仓库上,非成员的 创建者 可以创建和评论。这是开源协作的基础。
5. 创建者 能编辑自己 PR 的标题和描述,但不能编辑 Issue 标题。
PR 描述谁都能改(只有创建者能改),Issue 标题只有管理员以上和创建者能改。细节不对称,别想当然。
6. 云原生开发环境:创建者 也有访问权限。
这是唯一一个 创建者 拥有、而 访客 没有的权限。别人通过 Issue 里点按钮起的开发环境,他自己能进,其他成员反而进不去。
7. 密钥仓库的门槛是 管理员。
开发者 看不到密钥仓库内容。所以别指望把密钥塞进密钥仓库就完事——引用它需要在 .cnb.yml 里配 allow_*,这是另一层门。
8. 助手 能创建/编辑/删除标签。
标签管理权限给得比想象中宽,助手 以上都能动。
9. Release:助手 能下载附件和解压源码,但建不了 Release。
创建 Release 需要 开发者 以上。
10. 定时任务的执行身份是「最后改配置的人」。 这条本质是权限问题:那个人被移出仓库,他名下的定时任务全挂。团队里要指定常驻维护者。
三、构建权限单独有一套
云原生构建 只有一条硬规则:触发和停止构建需要 开发者 以上。
查看和下载日志,公开仓库的 匿名 都能做,私有仓库要 开发者 以上。
所以「只让某些人跑部署」的常见做法是:
- 仓库角色给到
助手(能看不能跑) - 部署流水线再加一层审批(第 21 篇讲的部署流程审批)
四、制品库权限和仓库是分开的
制品库有自己的成员管理,不跟着仓库走。
| 操作 | 谁可以 |
|---|---|
| 查看、拉取 | 公开制品库:匿名;私有:访客 以上 |
| 创建/上传版本 | 开发者 以上 |
| 管理设置、成员 | 管理员 以上 |
| 删除制品库 | 负责人 |
| 删除/禁用版本 | 管理员 以上 |
注意「删除版本」和「上传版本」不对称。开发者能传不能删,这是有意的:删除是不可逆的。
五、任务集有个复合条件
访问任务集需要同时满足两个条件:
- 你是任务集成员
- 你是关联仓库的成员
所以在任务集里对某个 Issue 的操作权限,跟你在它所属仓库里的权限一致。 任务集只是视图,不放大权限。
六、新人入职的推荐配置
| 角色 | 给谁 |
|---|---|
开发者 | 正式开发同学 |
助手 | 产品、设计、测试、外部对接人 |
访客 | 只要求能看的实习/旁听 |
管理员 | 1-2 个人,别多 |
负责人 | 组织层面 1 个人 |
管理员的坑在于:能改分支保护。给多了,保护规则就形同虚设。
七、权限表格该怎么用
刚才这些是结论。真正要查某个具体操作时,还是回官方那张全量对照表——它有八列(含匿名、创建者),覆盖 Group、仓库、代码、分支、构建、开发、Issue、PR、评论、标签、Tag、Release、制品库、任务集。
表在官方文档 指南 → 角色权限。遇到「我为什么点不了这个按钮」,那里是终审。