Python操作Jira庫常用方法解析
Jira提供了完善的RESTful API,如果不想直接請求API接口可以使用Python的Jira庫來操作Jira
安裝方法
pip install jira
認(rèn)證
Jira的訪問是有權(quán)限的,在訪問Jira項(xiàng)目時首先要進(jìn)行認(rèn)證,Jira Python庫提供了3種認(rèn)證方式:
- 通過Cookis方式認(rèn)證(用戶名,密碼)
- 通過Basic Auth方式認(rèn)證(用戶名,密碼)
- 通過OAuth方式認(rèn)證
認(rèn)證方式只需要選擇一種即可,以下代碼為使用Cookies方式認(rèn)證。
form jira import JIRA
jira = JIRA('http://jira.***.com/', auth=('用戶名', '登錄密碼')
返回的jira對象便可以對Jira進(jìn)行操作。主要的操作包括:
- 項(xiàng)目
- 問題
- 搜索
- 關(guān)注者
- 評論
- 附件
項(xiàng)目(Project)
jira.projects(): 查看所有項(xiàng)目列表
jira.project("項(xiàng)目的Key"): 查看單個項(xiàng)目
項(xiàng)目對象的主要屬性及方法如下:
- key: 項(xiàng)目的Key
- name: 項(xiàng)目名稱
- description: 項(xiàng)目描述
- lead: 項(xiàng)目負(fù)責(zé)人
- projectCategory: 項(xiàng)目分類
- components: 項(xiàng)目組件
- versions: 項(xiàng)目中的版本
- raw: 項(xiàng)目的原始API數(shù)據(jù)
示例
print(jira.projects()) # 打印所有你有權(quán)限訪問的項(xiàng)目列表
project = jira.project('某個項(xiàng)目的Key')
print(project.key, project.name, project.lead)
問題(Issue)
Issue是Jira的核心,Jira中的任務(wù),用戶Story,Bug實(shí)質(zhì)上都是一個Issue。
單個問題對象可以通過jira.issue("問題的Key")得到,問題的主要屬性和方法如下:
- id: 問題的id
- key: 問題的Key
- permalink(): 獲取問題連接
- fields: 問題的描述,創(chuàng)建時間等所有的配置域
- raw: 問題的原始API數(shù)據(jù)
配置域(Fields)
一般問題的ields中的屬性分為固定屬性和自定義屬性,自定義屬性格式一般為類似customfield_10012這種。常用的問題的Fields有:
- assignee:經(jīng)辦人
- created: 創(chuàng)建時間
- creator: 創(chuàng)建人
- labels: 標(biāo)簽
- priorit: 優(yōu)先級
- progress:
- project: 所示項(xiàng)目
- reporter: 報告人
- status: 狀態(tài)
- summary: 問題描述
- worklog: 活動日志
- updated: 更新時間
- watches: 關(guān)注者
- comments: 評論
- resolution: 解決方案
- subtasks: 子任務(wù)
- issuelinks: 連接問題
- lastViewed: 最近查看時間
- attachment
示例如下:
issue = jira.issue('JRA-1330')
print(issue.key, issue.fields.summary, issue.fields.status)
關(guān)注者/評論/附件
- jira.watchers(): 問題的關(guān)注者
- jira.add_watcher(): 添加關(guān)注者
- jira.remove_watcher(): 移除關(guān)注者
- jira.comments(): 問題的所有評論
- jira.comment(): 某條評論
- jira.add_comment():添加評論
- comment.update()/delete(): 更新/刪除評論
- jira.add_attachment(): 添加附件
示例如下:
issue = jira.issue('JRA-1330') print(jiaa.watchers(issue)) # 所有關(guān)注者 jira.add_watcher(issue, 'username') # 添加關(guān)注者 print(jira.comments(issue)) # 所有評論 comment = jira.comment(issue, '10234') # 某條評論 jira.add_comment(issue, 'new comment') # 新增評論 comment.update(body='update comment') # 更新評論 comment.delete() # 刪除該評論 print(issue.fields.attachment) # 問題附件 jira.add_attachment(issue=issue, attachment='/some/path/attachment.txt') # 添加附件
創(chuàng)建/分配/轉(zhuǎn)換問題
- jira.create_issue(): 創(chuàng)建問題
- jira.create_issues(): 批量創(chuàng)建問題
- jira.assign_issue(): 分配問題
- jira.transitions(): 獲取問題的工作流
- jira.transition_issue(): 轉(zhuǎn)換問題
示例如下:
# 創(chuàng)建問題 issue_dict = { 'project': {'id': 123}, 'summary': 'New issue from jira-python', 'description': 'Look into this one', 'issuetype': {'name': 'Bug'}, } new_issue = jira.create_issue(fields=issue_dict) # 批量創(chuàng)建問題 issue_list = [ { 'project': {'id': 123}, 'summary': 'First issue of many', 'description': 'Look into this one', 'issuetype': {'name': 'Bug'}, }, { 'project': {'key': 'FOO'}, 'summary': 'Second issue', 'description': 'Another one', 'issuetype': {'name': 'Bug'}, }, { 'project': {'name': 'Bar'}, 'summary': 'Last issue', 'description': 'Final issue of batch.', 'issuetype': {'name': 'Bug'}, }] issues = jira.create_issues(field_list=issue_list) # 分配問題 jira.assign_issue(issue, 'newassignee') # 轉(zhuǎn)換問題 jira.transition_issue(issue, '5', assignee={'name': 'pm_user'}, resolution={'id': '3'})
搜索
Jira的搜索非常強(qiáng)大,并配有一套專門的搜索語言,稱為JQL(Jira Query Language),Jira的Python庫便是基于JQL語法進(jìn)行搜索的,返回的是搜索到的問題列表。
使用語句為
jira.search_issues('JQL語句')
默認(rèn)最大結(jié)果數(shù)未1000,可以通過maxResults參數(shù)配置,該參數(shù)為-1時不限制數(shù)量,返回所有搜索結(jié)果。
jira.search_issues('project=PROJ and assignee = currentUser()', maxResults=-1)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python拼接微信好友頭像大圖的實(shí)現(xiàn)方法
這篇文章主要介紹了Python拼接微信好友頭像大圖的實(shí)現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08在Python 2.7即將停止支持時,我們?yōu)槟銕砹艘环輕ython 3.x遷移指南
這篇文章主要介紹了在Python 2.7即將停止支持時我們?yōu)槟銣?zhǔn)備了一份python 3.x遷移指南的相關(guān)資料,需要的朋友可以參考下2018-01-01Python字符串和正則表達(dá)式中的反斜杠(''\'')問題詳解
在本篇文章里小編給大家整理的是關(guān)于Python字符串和正則表達(dá)式中的反斜杠('\')問題以及相關(guān)知識點(diǎn),有需要的朋友們可以學(xué)習(xí)下。2019-09-09Python+Tkinter創(chuàng)建一個簡單的鬧鐘程序
這篇文章主要為大家詳細(xì)介紹了如何使用 Python 的 Tkinter 庫創(chuàng)建一個簡單的鬧鐘程序,它可以在指定的時間播放一個聲音來提醒你,感興趣的可以學(xué)習(xí)一下2023-04-04使Python代碼流暢無縫連接的鏈?zhǔn)秸{(diào)用技巧
鏈?zhǔn)秸{(diào)用是一種編程風(fēng)格,它允許將多個方法調(diào)用連接在一起,形成一個連貫的操作鏈,在Python中,鏈?zhǔn)秸{(diào)用常常用于使代碼更簡潔、易讀,尤其在處理數(shù)據(jù)處理和函數(shù)式編程中應(yīng)用廣泛2024-01-01Python+Matplotlib繪制高亮顯示餅圖的示例代碼
餅圖 (Pie Chart) 是一種圓形統(tǒng)計圖,被分割成片用于表示數(shù)值間的比例關(guān)系,本文為大家介紹了Matplotlib繪制高亮顯示的餅圖的函數(shù)源碼,需要的可以參考一下2023-06-06OpenCV-Python 攝像頭實(shí)時檢測人臉代碼實(shí)例
這篇文章主要介紹了OpenCV-Python 攝像頭實(shí)時檢測人臉,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Python實(shí)現(xiàn)E-Mail收集插件實(shí)例教程
這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)E-Mail收集插件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧2019-02-02