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

Fed*_*lli 9 versioning jenkins jenkins-pipeline

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

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

这可能吗?

这是假设我想做的事情:

outcome = input message: 'Merge trunk into branch?', ok: 'Merge'
echo "User that allowed merge: ${outcome.user}"
Run Code Online (Sandbox Code Playgroud)

Ste*_*ing 20

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

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

这看起来如下:

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

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

  • 在jenkins v2.128上:def Submitter = input(消息:“确认部署?”,submitterParameter:'submitter');回声“部署确认:$ {submitter}” (2认同)
  • @AndrzejRehmann 的示例显示了如何处理返回值的奇怪行为。因为输入仅给出 `message` 和 `submitterParameter` ,所以返回值只是一个带有提交者值的 String 对象。如果以提供附加参数的方式调用输入方法,则返回值将是 Map 而不是 String。 (2认同)