在Jenkins Workflow插件中获取输入批准者用户名

时间:2015-09-30 05:55:36

标签: jenkins groovy jenkins-workflow

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

node('node1'){
    stage "test"

    input  message: 'test'
}

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

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

将打印启动构建的人员。我用Google搜索了好几天,但我找不到任何东西。任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:3)

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
}

答案 1 :(得分:2)

JIRA incident引用的u-phoria已经解决,修复程序已经发布。

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