Jenkins Java: 如何获取在 jenkins 中触发构建的用户的 userid

Jenkins Java: How to get the userid of the user who triggered the build in jenkins

有没有办法找出谁使用 java 在 jenkins 中启动了构建。我知道下面是确定谁开始构建的方法

import hudson.model.*  
import jenkins.security.*

def userBuild
for(hudson.model.Cause cause : build.causes) {
    userBuild = cause.getUserName()
}
println "Build Started by: "+userBuild

同样,是否有人可以让我知道是否有类似的工作方式来确定谁发起了 jenkins 构建?

有一个插件可以在构建变量中注入信息。 https://wiki.jenkins-ci.org/display/JENKINS/Build+User+Vars+Plugin

BUILD_USER – full name of user started build,
BUILD_USER_FIRST_NAME – first name of user started build,
BUILD_USER_LAST_NAME – last name of user started build,
BUILD_USER_ID – id of user started build.

也许这是您的选择。

能够自己解决。在 buildCaption.jelly 中添加了以下更改,以便只有启动构建的用户才能中止构建。请注意,此更改仅反映在构建的控制台输出中,但还有其他地方(例如 jenkins 登录页面和作业主页)显示中止按钮,并且必须相应地进行更改

<j:forEach var="cause" items="${it.causes}">
    <j:if test="${cause.userName == it.currentlyLoggedInUser}">
      <l:stopButton href="stop" alt="[${%cancel}]"/>
    </j:if>
</j:forEach>