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

最近碰到一個需求,大致是這樣:jenkins的job在構建之後要求將jira上面某個缺陷的狀態變爲待驗證。

這篇博客就僅僅針對這個需求寫一下實現的方式,後續會寫博客來具體介紹python+jira的操作。

下面來說說實現方式

思路:step1.寫python腳本來改變jira上面問題的狀態

           step2.jenkins在構建的時候去調用這個腳本,將需要改變狀態的issue ID傳給腳本

實現過程:

幫助文檔:Python JIRA:http://jira.readthedocs.io/en/master

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的環境

可以參考:https://www.cnblogs.com/kimyeee/p/7250560.html

然後搭建jenkins job,我寫了一個demo,供大家參考

參數配置:

構建時調用腳本:

 

當然實際使用中的job沒有這麼簡單,大家應該根據自己公司的實際需要來配置。我這邊不是很方便把公司的job貼上來,大家見諒~

更好的做法是要求開發提交時在commit信息裏面寫上BUG ID 我們取出這個BUG ID,傳給python腳本,這個現在正在看怎麼實現。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章