2015-05-13 29 views
1

有沒有辦法找到誰在jenkins中使用java開始構建構建。據我所知,下面是搞清楚作爲的辦法誰開始構建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 

同樣,有人可以請讓我知道如果有一個類似的工作方式,找出是誰發起的詹金斯建?

+0

相關問題:您是否啓用了jenkins安全性? – Jayan

+1

@Jayan是的,我已啓用安全性。這裏的問題是我正在修改jenkins源代碼,以便只有觸發構建的用戶才能取消構建,而其他任何人都無法構建。我在java中添加了這個邏輯,並將布爾響應放入果凍文件中,然後確定是否啓用取消按鈕。不幸的是,這不可能通過插件或groovy,我認爲它必須通過篡改jenkins源代碼來完成。讓我知道你的想法。 – Iowa

+0

「誰開始建造」和「誰發起了詹金斯建造」之間的區別是什麼?請編輯問題以提供更多信息 – Jayan

回答

0

能夠自己弄清楚。在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> 
1

Ther是一個注入構建變量中的信息的插件。 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. 

這也許是一個選擇。

+0

我不是在尋找一個插件本身,而是我正在尋找一種方法來訪問從jenkins代碼本身觸發構建的用戶的id。 – Iowa

相關問題