gitolite: разрешить пользователям RW любого RW + CD репо в свою личную ветку, запретить другим - PullRequest
4 голосов
/ 25 ноября 2011

В gitolite я хотел бы предоставить всем записать разрешенным пользователям любого репо на RW + CD в их личную ветку.Другими словами: любому, кому разрешено RW проекта, следует разрешать создавать ветви, но только в своем личном пространстве имен.

Я понимаю, что в принципе могу сделать это так:

    repo    some-repo
            RW+CD   = admin
            RW  = foo frob
            R   = bar
            RW+CD dev/USER/ = foo frob #admin

но это означает, что мне придется дублировать список пользователей для каждого репо.Хотя это нормально для небольшого количества репо, оно определенно становится уродливым, когда число репо или пользователей увеличивается.

Я думал о чем-то вроде этого:

    repo    @all
            RW+CD dev/USER/ = @all

Но это, кажется, даетпо крайней мере, доступ для чтения всем пользователям всех проектов, даже если у них не было бы прав на чтение в противном случае.

Какое для этого лучшее решение?

1 Ответ

2 голосов
/ 25 ноября 2011

Одним из решений было бы управление этими ветками в пределах отдельного репо для каждого пользователя, используя подстановочный репо или "wildrepo" :

Как подробно описано в " user gitolite doc ":

Обратите внимание, что" CREATOR "- это зарезервированное слово, которое каким-то образом расширяется до вашего userid, поэтому администратор может буквально добавить только первые две строки и каждого аутентифицированного пользователя.теперь имеет свое личное пространство имен репо, начиная с pub/<username>/

Первые две упомянутые здесь строки:

repo pub/CREATOR/..*
    RW+     =   CREATOR

После того, как это будет сделано, любой пользователь может:

...