1. 程式人生 > >jenkins構建後自動改變jira上issue的狀態

jenkins構建後自動改變jira上issue的狀態

最近碰到一個需求,大致是這樣: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貼上來,大家見諒~