2

我正在尝试获取在工作流 jenkins groovy 脚本中批准“输入”步骤的用户 ID。下面是示例脚本

node('node1'){
    stage "test"

    input  message: 'test'
}

在工作流 UI 中,如果有人点击“竖起大拇指”,我想在日志中打印他的用户 ID。我没有看到任何选择。

def cause = currentBuild.rawBuild.getCause(Cause.UserIdCause)
cause.userId 

将打印开始构建的人。我已经用谷歌搜索了好几天,但我没有找到任何东西。这里的任何帮助将不胜感激:)

4

2 回答 2

4

这个Jira 问题描述了这可能如何工作,但它仍然是开放的。

与此同时,最近在#Jenkins IRC 上提出了通过构建操作 API 获取最新 ApproverAction 的方法,并且应该可以使用,请注意它不是沙盒安全的。

获取最新批准者的方法如下:

@NonCPS
def getLatestApprover() {
   def latest = null

   // this returns a CopyOnWriteArrayList, safe for iteration
   def acts = currentBuild.rawBuild.getAllActions()
   for (act in acts) {
       if (act instanceof org.jenkinsci.plugins.workflow.support.steps.input.ApproverAction) {
           latest = act.userId
       }
   }
   return latest
}
于 2016-03-13T20:09:47.967 回答
2

引用 u-phoria的JIRA 事件已得到解决并已发布修复程序。

通过将 submitterParameter 设置为一个值,由 submitterParameter 指定的变量将填充有响应输入字段的 Jenkins 用户 ID。

于 2017-01-21T03:38:28.857 回答