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

node('node1'){
    stage "test"

    input  message: 'test'
}


在工作流程用户界面中,如果有人点击“竖起大拇指”,我想在日志中打印其用户ID。我看不到任何选择。

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


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

最佳答案

Jira issue描述了如何继续进行此操作,但仍处于打开状态。

同时,通过构建操作API获取最新ApproverAction的方法最近是suggested on #Jenkins IRC,并且可以使用,请注意,这不是沙盒安全的。

遵循以下内容以获得最新批准者:

@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
}

10-06 16:11