Как связать Trac с удаленным репозиторием git? (2 отдельных сервера)

у меня 2 сервера

  • Сервер 1: второй центральный репозиторий git.
  • Сервер 2: содержит среду Edgewell Trac.

Я пытаюсь заставить trac обновлять билеты на основе сообщений git commit.

Я знаю, что есть хук после получения, но он будет работать только на сервере 1.

Как мне сообщить серверу 2, чтобы запустить набор изменений trac-admin, добавленный cmd?

Кроме того, если я создал клон репозитория git на сервере 2, тогда я должен использовать git pull cmds, который, в свою очередь, вызовет хук после слияния, но, похоже, он не вызывается с теми же параметрами stdin, что и после получения крючок есть.

Есть ли способ настроить сервер 1 для запуска ssh cmd или отправки полезных данных в скрипт веб-cgi на сервере 2, который выполняет запрос на вытягивание в клонированном репо и переходит к выполнению набора изменений trac-admin, добавленного cmd?


person thefearlessdog    schedule 09.03.2017    source источник


Ответы (1)


trac-github имеет обработчик запросов для веб-перехватчика GitHub, который выполняет git update (git.remote('update', '--prune') ), а затем запускает добавлен набор изменений (rm.notify('changeset_added', reponame, added)). Вы можете написать небольшой плагин, который отвечает на запрос и делает то же самое, и отправлять запрос из хука post-receive, используя curl.

Однако может быть проще отправить в зеркальный репозиторий из основного репозитория и заставить зеркало запустить хук post-receive для синхронизации набор изменений для Trac.

person RjOllos    schedule 10.03.2017
comment
Мне нравится второй вариант. Я посмотрел на первый вариант, но слишком запутался в том, что нужно, чтобы хук заработал. Любые примеры были бы замечательными. - person thefearlessdog; 12.03.2017