Jenkins的Github插件如何获取提交者和作者名称?

6
如果我理解正确的话,Git插件会将提交者和作者的名称和电子邮件地址暴露到环境变量中,包括GIT_AUTHOR_NAMEGIT_COMMITTER_NAMEGIT_AUTHOR_EMAILGIT_COMMITTER_EMAIL,这取决于Git的全局配置。是否有一种方法可以使用Github插件获取该信息?Github插件是否将从Github Webhook接收的有效负载信息暴露给环境变量或其他某些东西?
4个回答

8
实际上,这些变量仅在您覆盖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提交ID。


2
如果您在具有Git可用性的构建上下文中运行它,则该解决方案将起作用。您实际上可能不需要包含git提交(我没有)。对于完整的解决方案,如果您正在尝试将这些值放入电子邮件主题(这很有用),请将它们添加到文本属性文件中echo "GIT_AUTHOR=${GIT_AUTHOR}" >> build_params.txt,然后使用email-ext插件和格式${PROPFILE,file="build_params.txt",property="GIT_AUTHOR"} - David Merritt

4
你可以在你的脚本化管道文件中使用这个解决方法:
env.GIT_COMMITTER_EMAIL = sh(
   script: "git --no-pager show -s --format='%ae'",
   returnStdout: true
).trim()

2
您可以尝试以下命令,它对我有效: git log -n 1 --pretty=format:'%ae'

0

您需要检查是谁在贡献这些变量,GitHub插件仅触发运行Git SCM的Git构建(即git-plugin)。这些变量可能由git-plugin注入。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接