获取谁触发管道作业的用户名(手动或scm触发器)

时间:2017-03-29 00:58:27

标签: git jenkins groovy jenkins-pipeline

我的工作有两种方式:

  1. 如果有人提交github回购,就会触发这份工作。
  2. 如果有人手动构建作业。
  3. 在我的管道中,我需要直接(手动)或间接(SCM提交)获取触发构建的人的名称/信息。我有以下代码:

    node('slave'){
        wrap([$class: 'BuildUser']) {
          return BUILD_USER
        }
    } 
    

    这使用https://wiki.jenkins-ci.org/display/JENKINS/Build+User+Vars+Plugin插件获取名称。

    这适用于手动但通过SCM触发时始终提供SCM触发。如何通过SCM获取致动触发器的人的姓名/信息?

1 个答案:

答案 0 :(得分:1)

ScmTrigger不包含有关提交git的用户的信息。 您可以使用git命令获取提交的用户:

git log --format='%an <%ae>' GIT_COMMIT_ID
  • %an是作者的姓名
  • %ae是作者的电子邮件

另一个选择是使用git钩子来触发作业而不是SCM轮询。在这种情况下,您可以将提交者从钩子传递给作业。 (例如https://www.fourkitchens.com/blog/article/trigger-jenkins-builds-pushing-github