Плагин Github для Jenkins получает имя коммиттера и автора

Если я правильно понимаю, плагин git предоставляет имена коммиттеров и авторов, а также адреса электронной почты для переменных окружения GIT_AUTHOR_NAME, GIT_COMMITTER_NAME, GIT_AUTHOR_EMAIL и GIT_COMMITTER_EMAIL на основе глобальной конфигурации git. Есть ли способ получить эту информацию с помощью плагина Github? Предоставляет ли Github-плагин информацию о полезной нагрузке, полученную от github-webhook, к переменным окружения или к чему-то еще?


person czalidis    schedule 07.03.2014    source источник


Ответы (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.

person Custodio    schedule 17.09.2015
comment
решение работает, если вы запускаете его в контексте сборки, для которого доступен git. вам может не понадобиться включать коммит git (я этого не делал). Для полного решения, если вы пытаетесь получить эти значения в тему электронной почты (разве это не полезно) — добавьте их в текстовый файл свойств 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()
person Juan    schedule 08.01.2019

Вы можете попробовать следующую команду, у меня это сработало:

git log -n 1 --pretty=format:'%ae'

person OMKAR CHAVAN    schedule 06.12.2019

Вам нужно проверить, кто вносит эти переменные, плагин github запускает только сборку git, которая запускает Git SCM (то есть git-плагин). Эти переменные, вероятно, введены git-плагином.

person Kanstantsin Shautsou    schedule 02.03.2015