Если я правильно понимаю, плагин git предоставляет имена коммиттеров и авторов, а также адреса электронной почты для переменных окружения GIT_AUTHOR_NAME
, GIT_COMMITTER_NAME
, GIT_AUTHOR_EMAIL
и GIT_COMMITTER_EMAIL
на основе глобальной конфигурации git. Есть ли способ получить эту информацию с помощью плагина Github? Предоставляет ли Github-плагин информацию о полезной нагрузке, полученную от github-webhook, к переменным окружения или к чему-то еще?
Плагин Github для Jenkins получает имя коммиттера и автора
Ответы (4)
На самом деле эти переменные доступны только тогда, когда вы перезаписываете имя автора и адрес электронной почты автора в расширенных функциях конфигурации SCM.
"Дополнительные действия" -> "Пользовательское имя пользователя/адрес электронной почты"
Это описано в исходном коде: https://github.com/jenkinsci/git-plugin/tree/master/src/main/java/hudson/plugins/git
Решение. Чтобы получить имя автора и адрес электронной почты, я предлагаю написать следующий сценарий:
GIT_NAME=$(git --no-pager show -s --format='%an' $GIT_COMMIT)
GIT_EMAIL=$(git --no-pager show -s --format='%ae' $GIT_COMMIT)
Быть $GIT_COMMIT
идентификатором коммита SHA1.
echo "GIT_AUTHOR=${GIT_AUTHOR}" >> build_params.txt
, а затем используйте плагин email-ext и формат ${PROPFILE, file="build_params.txt", property="GIT_AUTHOR"}
- person David Merritt; 03.11.2016
Вы можете использовать этот обходной путь в файле конвейера со сценарием:
env.GIT_COMMITTER_EMAIL = sh(
script: "git --no-pager show -s --format='%ae'",
returnStdout: true
).trim()
Вы можете попробовать следующую команду, у меня это сработало:
git log -n 1 --pretty=format:'%ae'
Вам нужно проверить, кто вносит эти переменные, плагин github запускает только сборку git, которая запускает Git SCM (то есть git-плагин). Эти переменные, вероятно, введены git-плагином.