Groovy Jenkins Java:如何获取在Jenkins中触发构建的用户的用户ID
有没有办法找出是谁使用java在jenkins中启动了一个构建。我知道下面是确定谁开始构建的方法Groovy Jenkins Java:如何获取在Jenkins中触发构建的用户的用户ID,groovy,jenkins,Groovy,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 同样,有人能告诉我,是
import hudson.model.*
import jenkins.security.*
def userBuild
for(hudson.model.Cause cause : build.causes) {
userBuild = cause.getUserName()
}
println "Build Started by: "+userBuild
同样,有人能告诉我,是否有类似的工作方式来确定谁发起了詹金斯构建 有一个插件,在构建变量中注入信息。
也许这是你的一个选择。我能自己解决这个问题。在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>
相关问题:您启用了jenkins安全功能吗?@Jayan是的,我启用了安全功能。这里的问题是,我正在修改jenkins源代码,这样只有触发构建的用户才能取消构建,其他人不能。我将在java中添加该逻辑,并将布尔响应放入jelly文件,然后确定是否应启用cancel按钮。不幸的是,这不可能通过插件或groovy实现,我认为这必须通过篡改jenkins的源代码来实现。让我知道你对此的想法。“谁开始构建”和“谁发起詹金斯构建”有什么区别?请在构建日志的第一行编辑问题,即“build started by user123”,以提供更多信息。这就是我想要获取的。我不是在寻找插件本身,而是在寻找一种方法来访问从jenkins代码本身触发构建的用户的id。
<j:forEach var="cause" items="${it.causes}">
<j:if test="${cause.userName == it.currentlyLoggedInUser}">
<l:stopButton href="stop" alt="[${%cancel}]"/>
</j:if>
</j:forEach>