-
refs/heads/sandbox/${username}/*: 可以在用户的自己命名空间内随意创建分支
-
Project Access Control lists 取最大范围
Group Reference Name Label Range
Anonymous Users refs/heads/* Code-Review -1…+1
Registered Users refs/heads/* Code-Review -1…+2
Foo Leads refs/heads/* Code-Review -2…0
Foo Leads 组对所有分支有code-review -2 ~ 2 的权限
- Reference
refs/for/refs/heads/* 和 refs/for/* 一样
- 正则匹配 ^开头,例如 ^refs/heads/[a-z]{1,8}
- ^refs/heads/.*/name 无效,因为refs/heads//name 无效
- refs/heads/sandbox/${username}/*, 允许用户在sanbox空间下的自己命名空间下自由创建分支,例如 ‘joe’ 可访问refs/heads/sandbox/joe/foo
- refs/for/*: Code Review 系统使用的命名空间,用于在提交代码时进行代码审查
- refs/heads/* 默认的分支命名空间,用于存储分支引用
- refs/users/${shardeduserid}: 用户可访问 All-Users 仓库自己的分支
- 排他的reference:refs/heads/qa 只有QA Leads 组能对code-review 操作
Group Reference Name Label Range Exclusive
Registered Users refs/heads/* Code-Review -1…+1
Foo Leads refs/heads/* Code-Review -2…+2
QA Leads refs/heads/qa Code-Review -2…+2 X - refs/*:匹配所有的reference
- refs/changes/*: 这个命令空间下change的每次patch有一个静态的reference。
‘refs/changes/’/ / - refs/meta/config:每个项目的配置,重要文件project.config, groups and rules.pl
- refs/meta/dashboards/*:
- refs/notes/review:所有的change的review 笔记
- refs/for/: 提交前的代码审核拦截
使用权类别
Abandon
- 控制是否允许用户丢弃change
- Change的上传者,ref 或者 项目的owner,Administrate Server 均能丢弃change
- 如果用户有change的目标分支的push 权限,那可以恢复这个change
Create Reference
控制是否可以创建references、分支和tags
- 例如:refs/heads/sandbox/${username}/*:允许在sandbox空间下的自己空间下可以自由创建分支
Delete Reference
控制是否可以删除references 、分支和tags,它不允许对引用进行任何其他更新
Owner
控制哪些组可以修改项目的配置,一个组的owner可以:1. 修改这个项目的描述,2. 赋予/撤销 权限,包括owner
Push
Direct Push
Rebase
对web界面上的rebase change按键控制
Revert
对web界面上的revert change按键控制
Remove Reviewer
将审核人员从change中移除
Change的拥有者可以移除>=0的审核人员
项目的拥有着和管理员可以移除任何的审核人员
Review Lables
Submit
提交change(将change合并到目标分支)
只有项目的owner被允许submit 到 refs/meta/config
Submit (On Behalf Of)
此类别允许已被授予提交权限的用户在使用REST API提交时,通过使用SubmitInput中的on_behalf_of字段代表另一个用户提交更改
在project.config文件中命名为 submitAs
Block 不能被重载,Deny 可以被重载
Allow 和 Block 的权限相同
Allow 覆盖 Block
Block 和 排他的allow 同时出现
排他的allow 覆盖 block
记录
refs/for/xx: push 的前提是存在 refs/heads/xx
Forge Committer Identity: 伪造commiter: 忽略提交者的邮箱验证等
Block 不会被覆盖,Deny 会被覆盖