Jira是目前比較流行的基於Java架構的管理系統(Atlassian公司支持),有開源代碼,方便做二次開發(可擴展性)。Jira是一款功能非常強大的管理工具,廣泛的用來 缺陷跟蹤、用例管理、需求收集、任務跟蹤、工時管理、項目計劃管理等工作領域。
python有支持操作Jira的第三方包,方便自定義一些自動化操作。
需要安裝jira庫:
pip install jira
Jira認證
from jira import JIRA
options = {'server': 'https://jira.xxxx.com'}
jira = JIRA(basic_auth=("username", "password"),options=options)
這種明文賬號密碼是不安全的,所以可以用另一種用API token的方式進行認證。
到https://id.atlassian.com/manage/api-tokens生成你的API token。
from jira import JIRA
options = {'server': 'https://jira.xxxx.com'}
jira = JIRA(basic_auth=("username", YOUR_API_TOKEN),options=options)
官方有更安全的方式,可見Basic auth for REST APIs
下面介紹本人在項目中通過python對jira的操控
[JIRA] url = https://acsjira.XXX.com/ user = account pass = password [DEFECT] project_key = jira project key project_id = project id project_name = project name issue_type_name = Defect [else] label = CyberSecurity planned_iteration = SAST ; standard version ;product/s = 74952 products = Cyber Security
2、db.py 操作本地數據庫,保存jira 新上報的defect狀態到本地,以及其它已上報,未上報,已關閉等defect信息
3、export.csv 導出新上報的defect 到本地csv文件,並發送郵件給相關人提醒
4、jira_operation.py 對jira基本操作,包括自動上報defect,查詢defect狀態,reopen缺陷,自動resolve,自動關閉缺陷,返回當前缺陷狀態並記錄等等
5、utils.py python操作csv文件,讀寫,保存等
6.main.py 主函數,接收來自jenkins構建後操作步驟下,post build task插件配置的腳本傳參 ,判斷是否上報過defect,沒有就上報,保存為csv,關閉缺陷等
7.pipfile 使用python版本,jira版本配置