Переменные среды scm конвейера Jenkins

Я пытаюсь напечатать последнее имя коммитера Git SCM в конвейерной работе. $ {CHANGE_AUTHOR} возвращает ноль. Я пытался сделать следующее:

def scmVars = checkout scm

и распечатайте результаты:

println scmVars

Коммиты и детали в порядке. Проблема в том, что возвращенный пользователь другой. В пользовательском интерфейсе все как и ожидалось (Нир Корен):

Commit ********** by Nir Koren

Но из журналов консоли GIT_COMMITTER_NAME и GIT_AUTHOR_NAME - другой пользователь. Фактически, это технический пользователь, который создал SSH-ключ для Github.

Есть идеи, почему это по-другому? Любая подсказка, как я могу распечатать имя коммиттера, прежде чем я реализую уродливый API, вызывающий URL-адрес сборки?


person Nir Koren    schedule 24.07.2018    source источник


Ответы (1)


GIT_COMMITTER_NAME - это пользователь, которого сервер Jenkins будет фиксировать как, и не имеет отношения к наборам изменений, снятым для сборки.

В документации указано: GIT_AUTHOR_NAME и GIT_COMMITTER_NAME - имя, вводимое, если включено поведение «Пользовательское имя пользователя / адрес электронной почты»; возвращается к значению, введенному в системной конфигурации Jenkins в разделе «Global Config user.name Value» (если есть)

Однако вы должны уметь это сделать:

https://support.cloudbees.com/hc/en-us/articles/217630098-How-to-access-Changelogs-in-a-Pipeline-Job-

person timl    schedule 25.07.2018