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

В 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

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

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


person sunside    schedule 25.11.2011    source источник


Ответы (1)


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

Как подробно описано в «пользовательском документе gitolite:

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

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

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

После этого любой пользователь сможет:

person VonC    schedule 25.11.2011