# 权限管理
# 权限逻辑简单介绍
用户的项目权限决定了他们在项目中所能进行的操作。当用户的权限在项目组、子项目组以及项目中发生冲突时,我们的逻辑是取最高权限。 例如:用户在项目组中权限是 Master,在项目组中的项目权限是 Guest,则这个用户在项目的权限取 Master。 若用户在项目组中权限是 Guest,在项目组中的项目权限是 Master,则这个用户在该项目的权限取 Master,但是用户在项目组中其他项目的权限仍是 Guest。 需要注意的是:
- 子项目组下加的权限一定要大于或等于父项目组权限。
- 保护分支的权限仅限于该保护分支的代码操作。
# 成员权限
# 项目成员权限
| 操作 | Guest (10) | Follower (15) | Reporter (20) | Developer (30) | Master (40) | Owner (50) |
|---|---|---|---|---|---|---|
| 创建新的缺陷 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 写评论 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看合并请求 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 查看代码评审 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 浏览代码 | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 拉取项目代码 | ✓ | ✓ | ✓ | ✓ | ||
| 下载项目 | ✓ | ✓ | ✓ | ✓ | ||
| 管理标签 | ✓ | ✓ | ✓ | ✓ | ||
| 管理缺陷 | ✓ | ✓ | ✓ | ✓ | ||
| 创建分支 | ✓ | ✓ | ✓ | |||
| 删除不受保护的分支 | ✓ | ✓ | ✓ | |||
| 创建合并请求 | ✓ | ✓ | ✓ | |||
| 管理合并请求 | ✓ | ✓ | ✓ | |||
| 添加/修改 tags | ✓ | ✓ | ✓ | |||
| 写一个维基 | ✓ | ✓ | ✓ | |||
| 推送到非保护分支 | ✓ | ✓ | ✓ | |||
| 强制推送到非保护分支 | ✓ | ✓ | ✓ | |||
| 添加/查询项目回调钩子 | ✓ | ✓ | ✓ | |||
| 修改/删除项目回调钩子 | ✓ | ✓ | ||||
| 编辑项目设置 | ✓ | ✓ | ||||
| 添加项目成员 | ✓ | ✓ | ||||
| 新建里程碑 | ✓ | ✓ | ||||
| 删除项目 tags | ✓ | ✓ | ||||
| 给项目部署密钥 | ✓ | ✓ | ||||
| 推到受保护的分支 | ✓ | ✓ | ||||
| 添加/移除保护分支 | ✓ | ✓ | ||||
| 允许/禁止推送到保护分支 | ✓ | ✓ | ||||
| 删除项目 | ✓ | |||||
| 重命名项目 | ✓ | |||||
| 修改版本库路径 | ✓ | |||||
| 切换可见性级别 | ✓ | |||||
| 将项目转移到另一个名称空间 | ✓ | |||||
| 删除受保护的分支 | ||||||
| 强制推送到受保护的分支 |
# 项目组成员权限
| 操作 | Guest | Follower | Reporter | Developer | Master | Owner |
|---|---|---|---|---|---|---|
| 浏览项目组 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 在项目组中创建子项目组 | ✓ | ✓ | ||||
| 在项目组中创建项目 | ✓ | ✓ | ||||
| 编辑项目组 | ✓ | |||||
| 管理项目组成员 | ✓ | |||||
| 删除项目组 | ✓ | |||||
| 管理项目组访问令牌 | ✓ |
# 保护分支规则组权限
项目权限在 Reporter 及以上的用户可以被设置为保护分支的成员; 但是如果用户的项目权限下降到 Follower 或 Guest 时,其保护分支的成员资格会被自动删除。
| 操作 | Reporter | Developer | Master |
|---|---|---|---|
| 查看合并请求 | ✓ | ✓ | ✓ |
| 查看代码 | ✓ | ✓ | ✓ |
| 下载代码 | ✓ | ✓ | ✓ |
| 处理合并请求 | ✓ | ✓ | |
| 关闭合并请求 | ✓ | ✓ | |
| 推送代码 | ✓ | ✓ | |
| 管理分支成员 | ✓ | ||
| 强制推代码 |
← 常用命令行 Markdown 手册 →