首页 > 解决方案 > Jenkins 管道 scm 环境变量

问题描述

我正在尝试在管道作业中打印 SCM 最后一个 Git 提交者名称。${CHANGE_AUTHOR} 返回 null。我尝试执行以下操作:

def scmVars = checkout scm

并打印结果:

println scmVars

提交和细节都很好。问题是返回的用户不同。在 UI 中符合预期(Nir Koren):

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

但从控制台日志 GIT_COMMITTER_NAME 和 GIT_AUTHOR_NAME 是不同的用户。事实上,是技术用户创建了 Github 的 SSH 密钥。

知道为什么它不同吗?在我实现丑陋的 API 调用构建 URL 之前,有什么线索可以打印提交者的名字吗?

标签: jenkinsjenkins-pipelinejenkins-groovy

解决方案


GIT_COMMITTER_NAME 是 Jenkins 服务器将提交的用户,与为构建拉下的更改集无关。

文档说明: GIT_AUTHOR_NAME 和 GIT_COMMITTER_NAME - 如果启用了“自定义用户名/电子邮件地址”行为,则输入的名称;回退到“全局配置用户名值”下在 Jenkins 系统配置中输入的值(如果有)

你应该能够做到这一点:

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


推荐阅读