- создаем пользователя git
- переходим под этого пользователя и выполняем начальные действия
su git cd ~ git clone git://github.com/sitaramc/gitolite gitolite/install -ln
gitolite setup -pk /path/to/YourName.pub - YourName.pub необходимо имя файла указать правильно, так как в дальнейшем это имя является именем пользователя
- Из-под пользователя, публичный ключ которого был добавлен в gitolite
при его установке (или любого другого пользователя, обладающего
достаточными правами на репозиторий gitolite-admin) исполняем:
git clone git@server:gitolite-admin
Это, соответственно, создаст в текущей папке копию админ-репозитория. Он представляет собой две папки: conf и keydir.
В папке conf хранится файл gitolite.conf, содержащий список репозиториев и прав доступа к ним. В папке keydir — публичные ключи пользователей, про которых должен знать gitolite. - Чтобы добавить нового пользователя просто записываем его публичный ключ в папку keydir. Имя ключа до окончания .pub будет являться именем пользователя в системе gitolite. Примеры: user1.pub или john-smith.pub. В имени допустимы символы точки и подчеркивания.
- Чтобы добавить репозиторий и изменить права редактируем файл conf/gitolite.conf. Исходно он выглядит так:
repo gitolite-admin RW+ = gitadmin repo testing RW+ = @all
Добавим строчки:
repo megaproject RW+ = gitadmin user1 john-smith
Эти строчки описывают новый репозиторий megaproject, права на который имеют пользователи - Из-под пользователя, публичный ключ которого был добавлен в gitolite
при его установке (или любого другого пользователя, обладающего
достаточными правами на репозиторий gitolite-admin) исполняем:
git clone git@server:gitolite-admin
Это, соответственно, создаст в текущей папке копию админ-репозитория. Он представляет собой две папки: conf и keydir. В папке conf хранится файл gitolite.conf, содержащий список репозиториев и прав доступа к ним. В папке keydir — публичные ключи пользователей, про которых должен знать gitolite. - Чтобы добавить нового пользователя просто записываем его публичный ключ в папку keydir. Имя ключа до окончания .pub будет являться именем пользователя в системе gitolite. Примеры: user1.pub или john-smith.pub. В имени допустимы символы точки и подчеркивания.
- Чтобы добавить репозиторий и изменить права редактируем файл conf/gitolite.conf. Исходно он выглядит так:
repo gitolite-admin RW+ = gitadmin repo testing RW+ = @all
Добавим строчки:repo megaproject RW+ = gitadmin user1 john-smith
Эти строчки описывают новый репозиторий megaproject, права на который имеют пользователи gitadmin, user1, john-smith. - После чего применяем и отправляем все изменения:
git add . git commit -a -m "New repo and users added" git push
- После чего применяем и отправляем все изменения:
git add . git commit -a -m "New repo and users added" git push
- Существует возможность использовать группы. Причем как для пользователей, так и для репозиториев. Пример:
@oss_repos = gitolite linux git perl rakudo entrans vkc @staff = sitaram some_dev another-dev
@all — особая, предопределенная группа. Она описывает — в зависимости от контекста — всех аутентифицированных пользователей, или все репозитории.
- Базовые права доступа описываются следующим образом:
- R — позволяет чтение
- RW — позволяет делать push в существующий ref или создавать новый ref
- RW+ — позволяет делать «push -f» или удалять ref (т.е. уничтожать информацию)
- -(минус) — запрещает доступ
Сделано по образу и подобию