Настройка GitLab для хранения репозиториев для каждого пользователя в личном каталоге

Только что установил GitLab, он отлично работает за одним исключением: он по умолчанию хранит репозитории для всех пользователей в одном каталоге, а если два пользователи самостоятельно попытаются создать проект с таким же названием, например, «тест», второй пользователь получит отказ типа «путь уже пройден».

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

Я знаю, что GitLab использует Gitolite для управления репозиториями, и у последнего есть функция, которая должна это разрешать: он называется «пользователи с подстановочными знаками», в gitolite.conf это выглядит так:

@wildcard_users = user1 user2 user3
repo    CREATOR/.*
    C     = @wildcard_users
    CRW+D = CREATOR
    RW    = WRITERS
    R     = READERS

Таким образом, мы видим CREATOR в пути к репозиторию, который будет заменен репозиторием, созданным с именем пользователя. Но единственный способ, которым я вижу, что я мог бы использовать эту функцию, — это вручную администрировать gitolite, используя клон репозитория gitolite-admin.git, и это убивает всю идею GitLab, где все подобные вещи должны быть разрешены через веб-интерфейс.


person Mike    schedule 07.08.2012    source источник


Ответы (1)


Точная функция Gitolite, отвечающая этой потребности, называется «дикие репозитории. ", и он основан на том, что пользователь создает репозиторий (то есть, не GitLab)

просто создайте новое репо от имени пользователя "u4" (студент):

$ git clone git@server:assignments/u4/a12
Initialized empty Git repository in /home/sitaram/a12/.git/
Initialized empty Git repository in /home/git/repositories/assignments/u4/a12.git/
warning: You appear to have cloned an empty repository.

Обратите внимание на две пустые инициализации репо и порядок их появления ;-)

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

person VonC    schedule 07.08.2012
comment
GitLab не поддерживает этот рабочий процесс, и ему потребуется большой патч для управления репозиториями, которые не находятся непосредственно в каталоге репозиториев. Вчера я провел целый день, выполняя кошмарный процесс установки этой штуки, и СЕЙЧАС я обнаружил это. Вздох. - person Dan Ray; 23.08.2012
comment
@DanRay Я сочувствую;) Время добавить проблему/запрос в проект GitLab. github.com/gitlabhq/gitlabhq/issues - person VonC; 23.08.2012