Доступ к git-репозиториям с помощью redmine, проблема с разрешениями - PullRequest
2 голосов
/ 05 марта 2011

У меня есть сервер Ubuntu 10.04 с установленным Redmine, а также с установленным git, я использую gitolite.

Когда я нажимаю на сервер от пользователей ПК, все в порядке, с точки зрения git. Однако, чтобы увидеть репозиторий из Redmine, каждый раз, когда мне нужно запустить: chmod o+rw -R /path/to/the/repository/folder, а затем я могу увидеть репозиторий из Redmine. Но это раздражает делать это каждый раз, когда я нажимаю на сервер.

Я подумал сделать cron-задачу, чтобы сделать это автоматически, однако я не думаю, что это чистое решение.

Ответы [ 2 ]

4 голосов
/ 01 июня 2011

Чтобы предоставить Redmine доступ ко всем репозиториям, размещенным на gitolite, вам нужно изменить $HOME/.gitolite.rc:

$REPO_UMASK = 0027; #=> 'rwxr-x---'
# use 0022 instead to give rx permissions to others (not recommended)

, а затем добавить пользователя, на котором работает веб-сервер Redmine, в группу 'gitolite'

Наконец, выполните chmod -R g+rx $HOME/repositories

Подробнее смотрите в Гитолит "rc" файл .

4 голосов
/ 05 марта 2011
git config core.sharedRepository all

Из git-config документации :

Когда group (или true), хранилище становится доступным для совместного использования несколькими пользователями в группе (убедитесь, что все файлы и объекты доступны для записи в группе). Когда all (или world или everybody), хранилище будет доступно для чтения всем пользователям, в дополнение к совместному использованию в группах. Когда umask (или false), git будет использовать разрешения, о которых сообщает umask (2). Когда 0xxx, где 0xxx - восьмеричное число, файлы в хранилище будут иметь это значение режима. 0xxx переопределит пользовательское значение umask (тогда как другие опции будут переопределять только запрошенные части пользовательского значения umask). Примеры: 0660 сделает репо доступным для чтения / записи для владельца и группы, но недоступным для других (эквивалентно group, если umask, например, 0022). 0640 - это репозиторий, который доступен для чтения в группе, но не для записи в группе. Смотрите git-init (1). Ложь по умолчанию.

...