繁体   English   中英

如何知道哪个用户回答了Jenkins-Pipeline输入步骤?

How to know which user answered a Jenkins-Pipeline input step?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个Jenkinsfile脚本,用于测试执行SVN合并的可能性,然后要求用户提交合并的权限。

我想知道回答“输入”步骤的用户名,以便将其写入提交消息。

这可能吗?

这是假设我想做的事情:

outcome = input message: 'Merge trunk into branch?', ok: 'Merge'
echo "User that allowed merge: ${outcome.user}"
4 个回复

input步骤有一个可选的submitterParameter ,它允许指定返回的Map的键,该键应该包含提交输入对话框的用户:

如果指定,则这是返回值的名称,该值将包含批准此输入的用户的ID。
返回值将以与parameters值类似的方式处理。
类型:字符串

这看起来如下:

def feedback = input(submitterParameter: 'submitter', ...)
echo "It was ${feedback.submitter} who submitted the dialog."

PS:如果有人对一个完整的代码片段感兴趣,将用户的正面和负面反馈返回给对话框(并且还会超时),我请指向我们的管道库

目前还不可能,因为现在只在input step答案中返回输入参数,如源代码中所述

// TODO: perhaps we should return a different object to allow the workflow to look up
// who approved it, etc?
switch (mapResult.size()) {
case 0:
    return null;    // no value if there's no parameter
case 1:
    return mapResult.values().iterator().next();
default:
    return mapResult;
}

如果您想限制哪些用户可以批准输入步骤,则可以使用submitter参数,例如:

input message: 'Approve ?', submitter: 'authorized-submitter'

编辑

自2017年1月起,现在可以请求发送其他参数。 请参阅上面的StephenKing回答

如果您没有在输入上询问任何参数,那么添加submitterParameter就可以了。 它没有将它作为参数添加到返回对象上,而是将返回的对象转换为带有用户名的字符串。

def feedback = input(submitterParameter: 'submitter')
echo "It was ${feedback} who submitted the dialog."

如果关闭groovy-sandbox可以对异常执行此操作:

try {
 'Deploy to production?'

 node {
  sh 'echo deploying'
  }
} catch(e) {
  def user = e.getCauses()[0].getUser()
   echo "Production deployment aborted by:\n ${user}"
}
7 在沙盒模式下使用jenkins-pipeline搜索作业

我正在使用Jenkins-pipeline groovy脚本; 但我必须在沙盒模式下工作。 有没有办法找到所有与命名模式匹配的作业? 在非沙盒模式下,可以写 但是在沙箱中,这提供了一个安全异常:RejectedAccessException:未分类的字段java.lang. ...

9 jenkins-pipeline负载范围“方法代码太大”

我正在建立一个非常复杂的管道来处理遗留构建。 目前有8个阶段,还有更多阶段 - 可能总共12-15个阶段。 每个阶段执行非常类似的操作: - 获取列表,并为每个项目 - 在地图中创建条目 - 分配节点,并执行一组BAT脚本(是,窗口),然后并行运行列表 当前的管道长约1000行,我 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM