Это минимальный svn post-commit hook, который работал для меня:
#!/bin/sh
REPO="$1"
REV="$2"
UUID="$(/usr/bin/svnlook uuid ${REPO})"
CHANGED="$(/usr/bin/svnlook changed -r ${REV} ${REPO})"
SERVER_URL="https://<redacted>/jenkins"
USER="<redacted>"
API_TOKEN="<redacted>" # not the password
/usr/bin/curl -X POST -s -u "${USER}:${API_TOKEN}" -d "${CHANGED}" ${SERVER_URL}/subversion/${UUID}/notifyCommit
Примечания:
- CSRF включен, но
USER:API_TOKEN
кажется достаточным (нет необходимости в крошках).
- Не указывать какие-либо
Content-Type
заголовки - это нормально
- Не отправлять
?rev=${REV}
вроде бы нормально (какая разница?)
- Нет необходимости настраивать специальные токены триггера сборки (см. Скриншот)
Вывод журнала Дженкинса с (8,706) и без (-1) параметра оборота:
May 15, 2019 8:04:28 PM INFO jenkins.scm.impl.subversion.SubversionSCMSource$ListenerImpl onNotify
Received post-commit hook from f9.... for revision [8,706 vs -1] on paths [project1/pom.xml, ...]
May 15, 2019 8:04:28 PM INFO jenkins.scm.impl.subversion.SubversionSCMSource$ListenerImpl onNotify
No subversion consumers for UUID f9....
May 15, 2019 8:04:28 PM INFO hudson.triggers.SCMTrigger$Runner run
SCM changes detected in project1. Triggering #20
Конфигурация задания: