Назад | Перейти на главную страницу

Trac + git + post-receive хуки -> Пользователь Git не может правильно вызвать trac-admin

через некоторое время я наконец подключил trac к git, но теперь у меня проблема с установкой хука post-receive.

Мой пользователь git является частью группы www-data, а www-data также является частью группы git. Но проблема в том, что обработчик post-receive использует этот код (python) для вызова trac-admin:

args = [TRAC_ADMIN, TRAC_ENV, 'changeset', 'added', REPO_NAME] + commits
call(' '.join(args), shell = True)

Это вызовет в оболочке следующее:

/usr/bin/trac-admin /var/lib/trac/MyTrac changeset added /home/git/repositories/mynewrepo.git/ 372ba439b9fa430c932095de608cb084d6ab98eb

Но когда я перехожу к trac и к тикету, на который должна ссылаться сделанная фиксация, я ничего не получаю.

Но, что еще более странно, если Я просто копирую звонок и запускаю в терминале(на сервере), тогда билет обновляется.

Я снова протестировал, на этот раз я сделал новую фиксацию, и снова тикет не обновился, затем на сервере сделано:

su git

И вызвал команду, и увидел, что ни один тикет не обновился ... Затем, вызывая его с root, я могу заставить его работать...

Итак, что здесь происходит? Почему мой пользователь git может вызывать trac-admin?

Я не знаю, является ли это частью проблемы, но когда я запускаю which trac-admin, я получаю:

/usr/bin/trac-admin

И это принадлежит корень.

Как мне тогда заставить пользователя git вызывать trac-admin?

Спасибо

В итоге я не смог заставить эту работу работать, поэтому мне удалось переустановить все с самого начала.

И когда я устанавливал trac, вместо того, чтобы использовать apt-get install trac, Я скачал источник из github(trac 0.12) и установил (с требованиями тоже) оттуда.

После того, как я сделал это, я проверил, где находится trac-admin, с помощью "which trac-admin" и получил:

/usr/local/bin/trac-admin

И после установки и настройки все заработало нормально.

Поэтому я считаю, что установка apt-get - не лучший способ делать что-то в trac.

Надеюсь, это поможет любому, у кого тоже может быть эта проблема.

OBS: я сохранил скрипт, устанавливающий хуки apache2 + trac + git +, в github, и если кто-то захочет использовать, вот ссылка: https://github.com/arruda/TRAC-GIT-HOOKS