Установил на сервере, который работает под CentOS 6.4 x32, Redmine
# ruby -v
ruby 2.0.0p353 (2013-11-22 revision 43784) [i686-linux]
# gem list | egrep '^rails'
rails (4.0.1, 3.2.15)
Redmine работает под unix-пользователем redmine
также установлен gitolite из репозитория с помощью yum. он работает под unix-пользователем gitolite. redmine пользователь имеет доступ к репозиторию gitolite-admin. с ключами разобрался - все в порядке
[redmine hooks]$ ssh gitolite@my.own.server info
hello redmine, this is gitolite 2.3.1-1.el6 running on git 1.7.1
the gitolite config gives you the following access:
R W gitolite-admin
R W project-repo
@R_ @W_ testing
я создал проект в Redmine. указал в настройках плагина [redmineRoot]/plugins/redmine_gitolite/init.rb:
settings :default => {
'gitoliteUrl' => 'gitolite@my.own.domain.com:gitolite-admin.git',
'developerBaseUrls' => "gitolite@my.own.domain.com:%{name}.git",
'readOnlyBaseUrls' => 'http://git.my.own.domain.com/%{name}.git',
'basePath' => '/home/redmine/repositories/',
}.
Сделал доступ только на чтение к репозиториям по http
в настройках проекта добавил хранилище
репозиторий отобразился у меня только после того, как я склонировал (git clone --bare ... )его в указанную папку (/home/redmine/repositories/)
почитав документацию по плагину redmine_gitolite, я догадываюсь, что можно настроить git hooks так, чтобы при пуше в репозиторий обновлял репозиторий, который используется в Redmine для отображения.
в папке [redmineRoot]/plugins/redmine_gitolite/contrib/hooks я нашел два примера хука. На сколько, я понял, то обычный пример и упрощенный.
[hooks]$ ls -l
total 8
-rw-rw-r-- 1 redmine redmine 1684 Nov 28 15:48 post-receive-redmine_gitolite
-rw-rw-r-- 1 redmine redmine 903 Nov 28 12:15 post-receive-redmine_gitolite.simple
если я не ошибаюсь, то я верно прописал значения переменных (код всего хука не привожу)
[...]
REDMINE_SERVER=http://redmine.my.own.doamin.com
HOOK_URL=gitolite_hook
FETCH_URL=sys/fetch_changesets
KEY=my.own.salt.from.Redmine.administration.part
LOG=/var/lib/gitolite/logs/post-receive.log
[...]
я его положив файл /home/gitolite/.gitolite/hooks/common/post-receive.redmine_gitolite, дал право на исполнение (chmpd +x) и сделал gl-setup чтобы обновились линки в папках всех репозиториев
на сколько я понимаю, то при пуше в репозиторий должен срабатывать этот хук и отправлять cURL`ом запрос Redmine`у чтобы тот обратился к репозиторию через gitolite и обновил его (репозиторий) у себя в папке /home/redmine/repositories/.
redmine unix-пользователь имеет доступ RW+ к репозиторию проекта
после пуша просматримаю httpd access log но там нет запроса cURL`ом к Redmine
Может я чего-то не понимаю или что-то делаю не так?