compile: support "repo @all" definitions
"repo @all" can be used to set permissions or configurations for all already defined repos. (A repository is defined if it has permission rules associated, empty "repo" stanza or "@group=..." line is not enough.) For example to allow a backup user to clone all repos: # All other configuration [...] repo @all R = backup Signed-off-by: Teemu Matilainen <teemu.matilainen@reaktor.fi>
This commit is contained in:
parent
6f45f75ca1
commit
f37fb45144
|
@ -101,6 +101,13 @@ repo gitolite
|
||||||
repo @oss_repos
|
repo @oss_repos
|
||||||
R = @all
|
R = @all
|
||||||
|
|
||||||
|
# set permissions to all already defined repos
|
||||||
|
# (a repository is defined if it has permission rules
|
||||||
|
# associated, empty "repo" stanza or "@group=..." line is
|
||||||
|
# not enough)
|
||||||
|
repo @all
|
||||||
|
RW+ = @admins
|
||||||
|
|
||||||
# ADVANCED PERMISSIONS USING REFEXES
|
# ADVANCED PERMISSIONS USING REFEXES
|
||||||
|
|
||||||
# - refexes are specified in perl regex syntax
|
# - refexes are specified in perl regex syntax
|
||||||
|
|
|
@ -185,7 +185,11 @@ sub parse_conf_file
|
||||||
{
|
{
|
||||||
# grab the list and expand any @stuff in it
|
# grab the list and expand any @stuff in it
|
||||||
@repos = split ' ', $1;
|
@repos = split ' ', $1;
|
||||||
@repos = expand_list ( @repos );
|
if (@repos == 1 and $repos[0] eq '@all') {
|
||||||
|
@repos = keys %repos;
|
||||||
|
} else {
|
||||||
|
@repos = expand_list ( @repos );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
# actual permission line
|
# actual permission line
|
||||||
elsif (/^(-|R|RW|RW\+) (.* )?= (.+)/)
|
elsif (/^(-|R|RW|RW\+) (.* )?= (.+)/)
|
||||||
|
|
Loading…
Reference in a new issue