【问题标题】:Github-plugin for Jenkins get committer and author nameJenkins 的 Github-plugin 获取提交者和作者姓名
【发布时间】:2014-03-07 16:57:57
【问题描述】:

如果我理解得很好,git 插件会根据 git 的全局配置将提交者和作者姓名和电子邮件暴露给环境变量 GIT_AUTHOR_NAMEGIT_COMMITTER_NAMEGIT_AUTHOR_EMAILGIT_COMMITTER_EMAIL。有没有办法使用 Github-plugin 获取该信息? Github-plugin 是否公开有效载荷信息,从 github-webhook 获取,环境变量或其他东西?

【问题讨论】:

    标签: github jenkins jenkins-plugins webhooks


    【解决方案1】:

    您可以尝试以下命令,它对我有用:

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

    【讨论】:

      【解决方案2】:

      实际上,仅当您在 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。

      【讨论】:

      • 如果您在有 git 可用的构建上下文中运行该解决方案,则该解决方案有效。您可能实际上也不需要包含 git commit (我没有)。对于完整的解决方案,如果您尝试将这些值 放入电子邮件主题(不是那么有用) - 将这些值添加到文本属性文件 echo "GIT_AUTHOR=${GIT_AUTHOR}" >> build_params.txt 然后使用 email-ext 插件和格式${PROPFILE, file="build_params.txt", property="GIT_AUTHOR"}
      【解决方案3】:

      您可以在脚本化管道文件中使用此解决方法:

      env.GIT_COMMITTER_EMAIL = sh(
         script: "git --no-pager show -s --format='%ae'",
         returnStdout: true
      ).trim()
      

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-05-29
          • 2021-02-08
          • 1970-01-01
          • 2010-12-13
          • 2017-05-10
          • 2018-11-21
          相关资源
          最近更新 更多