Как сказал @bahrep, трудно устранять подобные проблемы, но я предполагаю, что ваш хук после фиксации не работает из-за опции безопасности Jenkins «Предотвращение подделки межсайтовых запросов» (вы подтвердили, что она включена) ,
Из Jenkins Wiki :
Если ваш Jenkins использует «Предотвращение подделки межсайтовых запросов»
Опция безопасности, вышеуказанный запрос будет отклонен с 403 ошибками
(«Никакая действительная крошка не была включена»). Крошка, необходимая в этом запросе, может
получить по URL http://server/crumbIssuer/api/xml (или
/ API / JSON). Это может быть включено в вызов wget выше с чем-то
как это:
--header `wget -q --output-document - \
'http://server/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)'`
Самый простой способ подтвердить, вызывает ли проблема этот параметр безопасности, - отключить его и попробовать, будет ли работать ловушка после фиксации. Если да, включите снова и попробуйте настроить ловушку с крошкой. (В конце концов, вы хотите, чтобы все было в безопасности :))
А также убедитесь, что Дженкинс разрешил анонимный доступ для чтения:
Чтобы это работало, ваш Jenkins должен разрешить анонимный доступ для чтения
(в частности, доступ «Работа> Чтение») к системе. Если контроль доступа
для вашего Jenkins более ограничительным, вам может понадобиться указать
имя пользователя и пароль, в зависимости от того, как ваша аутентификация
сконфигурировано.
Редактировать
Я думаю, что проблемы возникают из-за того, что вы не указали адрес экземпляра Jenkins. В вашем примере с webhook у вас есть:
http://server/subversion/${UUID}/notifyCommit?rev=$REV
Вы должны изменить server
на свой адрес экземпляра Jenkins (Ip, домен или ip и порт. Это зависит от вашей конфигурации.).
http://yourjenkins.com/subversion/${UUID}/notifyCommit?rev=$REV
http://<IP>:<Port>/subversion/${UUID}/notifyCommit?rev=$REV
http://<IP>/subversion/${UUID}/notifyCommit?rev=$REV
Или, если вы все запускаете локально (включая SVN-репо):
http://localhost:8080/subversion/${UUID}/notifyCommit?rev=$REV
Но не забудьте иметь:
- Параметр безопасности «Предотвращать подделку межсайтовых запросов» отключен (вы создадите webhook для работы с этим параметром позже, теперь мы хотим найти основную причину)
- Включена опция безопасности «разрешить анонимный доступ для чтения»
Я думаю, что скрипт ловушки работает просто отлично, но он отправляется в никуда. Это можно легко проверить, зарегистрировав скрипт хука. Просто добавьте в конце крючка:
echo "`$REPOS` change to revision `$REV` triggered @ `date`" >> ${REPOS}/post-commit-hook.log
и посмотрите, был ли создан файл журнала после коммита. Если да, это означает, что запрос wget
отправляется неправильно.