5 февраля 2013 г.

Использование Gitolite вместе с Redmine

Появилась необходимость добавить git репозиторий в Redmine проект на домашнем сервере. Для управления git репозиториями использую Gitolite. Как оказалось по-умолчанию Gitolite запрещает доступ всем кроме пользователя, которым он обслуживается. В моем случае доступ есть только у пользователя git. Redmine же запускает пользователь redmine. В общем главная загвоздка — найти umask опцию в настройках Gitolite.

Решение со Stackoverflow:

  • Добавляем в Redmine путь к необходимому репозиторию. Например: /home/git/repositories/repo.git.
  • Добавить пользователя, который запускает веб-сервер с Redmine в git-группу:

      usermod -a -G git redmine
    
  • В файле .gitolite.rc (находится в домашней директории git) поменять значение UMASK с 0077 на 0027. Теперь новые файлы Gitolite будет создавать с правами на чтение для группы git.

  • Также необходимо поменять права доступа для всех существующих репозиториев. В директории с репозиториями запускаем следующее:

      chmod -R g+rX
    

Есть еще варианты решения этого вопроса?

2 комментария:

alexander barakin комментирует...

> Есть еще варианты решения этого вопроса?

тот, что применяется в случае не-локального репозитория:
1. bare-clone.
2. периодически git fetch

Ilya Zonov комментирует...

2alexander barakin

Да видимо тоже вариант. Только лучше не fetch на сервере с redmine делать, а push на локальной машине. Но в этому случае получается 2 push'а (в gitolite и в дополнительный репозиторий). Видимо это добро можно автоматизировать через git hooks (признаюсь не разбирался в этом вопросе). Но это будет как-то сильно извращено мне кажется.