jenkins構建後自動改變jira上issue的狀態
阿新 • • 發佈:2018-12-14
最近碰到一個需求,大致是這樣:jenkins的job在構建之後要求將jira上面某個缺陷的狀態變為待驗證。
下面來說說實現方式
思路:step1.寫python指令碼來改變jira上面問題的狀態
step2.jenkins在構建的時候去呼叫這個指令碼,將需要改變狀態的issue ID傳給指令碼
實現過程:
python指令碼:
import jira from jira import JIRA import sys, getopt, redis, os from jira import JIRA #獲取jenkins傳入的引數issueNum issueNum=os.environ["issueNum"]; #判斷如果引數為空,則退出程式且不報錯 if issueNum == "none": print ("無需更改jira問題狀態") sys.exit(0) print("當前選擇的BUG ID為: " + issueNum) #以使用者名稱jenkins,密碼123456來建立jira連線 myjira = JIRA('http://jira.***.com:8080',basic_auth=('jenkins', '123456')) #列印當前連線使用的jira使用者 print(myjira.user(myjira.current_user())) #指定需要改變狀態的缺陷 myissue = myjira.issue(issueNum) #獲取該問題的可選狀態 transitions = myjira.transitions(myissue) status=[(t['id'], t['name']) for t in transitions] print("該問題當前可選的狀態為: " ) for i in status: print(i) #將問題的狀態變為已解決 myjira.transition_issue(myissue,'11') #將問題的狀態變為待驗證 myjira.transition_issue(myissue,'21')
程式碼加了註釋,大家可以結合幫助文件看一下
那麼python這一塊做完了
接下來在jenkins所在的伺服器上搭建好python3的環境
然後搭建jenkins job,我寫了一個demo,供大家參考
引數配置:
構建時呼叫指令碼:
當然實際使用中的job沒有這麼簡單,大家應該根據自己公司的實際需要來配置。我這邊不是很方便把公司的job貼上來,大家見諒~