So that I can tailor my gerrit workflow while deploying it on all my git repo
Acceptance criteria #1 On tuleap, in Git service there is a way to access to a "gerrit configuration panel"
-> In this panel, the project admin can import the permission configuration from an existing gerrit project (admin select a gerrit server, enter a project name, then tuleap fetch project refs/meta/config.
==> We only limit to gerrit project that "belongs" to current Tuleap project (e.g. if I'm in sdk2, I can only import sdk2/* permissions)
#2 On this configuration, project admin can use parametrized user groups name (e.g. %projectname-writers% instead of "sdk2-writers")
#3 Once the template is ready, admin save it with a name
#4 the template can be updated later on
Important:
- There is no validation of the correctness of this template. Admin can define broken template.
- There is no GUI to define this template, we only deal with plain text. There is already a GUI on gerrit to configure permissions and we will not re-create it.
For reference, refs/meta/config looks like (it's the default config associated to Tuleap Read/Write/Rewind permissions):
[access "refs/tags/*"]
pushTag = group Administrators
create = group Administrators
forgeCommitter = group Administrators
read = group Registered Users
read = group mozilla/project_members
pushTag = group mozilla/project_members
read = group mozilla/another_ugroup
pushTag = group mozilla/another_ugroup
[access "refs/heads/*"]
create = group Administrators
forgeCommitter = group Administrators
create = group Administrators
forgeCommitter = group Administrators
read = group Registered Users
label-Code-Review = -1..+1 group Registered Users
read = group mozilla/project_members
create = group mozilla/project_members
forgeAuthor = group mozilla/project_members
label-Code-Review = -2..+2 group mozilla/project_members
label-Verified = -1..+1 group mozilla/project_members
submit = group mozilla/project_members
push = group mozilla/project_members
pushMerge = group mozilla/project_members
read = group mozilla/another_ugroup
create = group mozilla/another_ugroup
forgeAuthor = group mozilla/another_ugroup
label-Code-Review = -2..+2 group mozilla/another_ugroup
label-Verified = -1..+1 group mozilla/another_ugroup
submit = group mozilla/another_ugroup
push = group mozilla/another_ugroup
pushMerge = group mozilla/another_ugroup
push = +force group mozilla/project_admins
[access "refs/for/*"]
pushMerge = group Administrators
[access "refs/*"]
read = group tuleap.example.com-replication
[access "refs/for/refs/heads/*"]
push = group Registered Users
push = group mozilla/project_members
pushMerge = group mozilla/project_members
push = group mozilla/another_ugroup
pushMerge = group mozilla/another_ugroup