2012-05-15 84 views
2

我想將開始詹金斯工作的人員的用戶標識傳遞給腳本。 'env'的輸出表示沒有設置環境變量,'ant -v'的輸出表示沒有設置屬性。我如何訪問開始工作的人員的用戶ID? (我明白,觸發器可以開始工作,但對於這項工作,它將永遠是一個人)。如何以編程方式獲取Jenkins用戶標識?

回答

3

爲了得到這份工作執行人:

curl -s "${BUILD_URL}/api/json" | \ 
python -c '\ 
    import json; \ 
    import sys; \ 
    obj = json.loads(sys.stdin.read()); \ 
    print [ \ 
     cause["userId"] \ 
     for action in obj["actions"] \ 
     if "causes" in action \ 
     for cause in action["causes"] \ 
     if "userId" in cause][0];' 

另請參閱How to set environment variables in Jenkins?這也解釋瞭如何將它傳遞到腳本。

+0

我不得不通過--user username:password作爲捲曲的附加參數。 – dolphus333

0
BUILD_START_USER=`curl ${JOB_URL}'lastBuild/api/json' | python -c 'import json,sys;obj=json.loads(sys.stdin.read());print obj["'"actions"'"][1]["'"causes"'"][0]["'"userId"'"]'` 
+1

你怎麼確定obj ['actions'] [1]是正確的? –

相關問題