您的位置:首頁技術文章
文章詳情頁

Python操作Jira庫常用方法解析

瀏覽:28日期:2022-07-30 14:30:07

Jira提供了完善的RESTful API,如果不想直接請求API接口可以使用Python的Jira庫來操作Jira

Jira Python文檔

安裝方法

pip install jira

認證

Jira的訪問是有權限的,在訪問Jira項目時首先要進行認證,Jira Python庫提供了3種認證方式:

通過Cookis方式認證(用戶名,密碼) 通過Basic Auth方式認證(用戶名,密碼) 通過OAuth方式認證

認證方式只需要選擇一種即可,以下代碼為使用Cookies方式認證。

form jira import JIRA

jira = JIRA(’http://jira.***.com/’, auth=(’用戶名’, ’登錄密碼’)

返回的jira對象便可以對Jira進行操作。主要的操作包括:

項目 問題 搜索 關注者 評論 附件

項目(Project)

jira.projects(): 查看所有項目列表

jira.project('項目的Key'): 查看單個項目

項目對象的主要屬性及方法如下:

key: 項目的Key name: 項目名稱 description: 項目描述 lead: 項目負責人 projectCategory: 項目分類 components: 項目組件 versions: 項目中的版本 raw: 項目的原始API數據

示例

print(jira.projects()) # 打印所有你有權限訪問的項目列表

project = jira.project(’某個項目的Key’)

print(project.key, project.name, project.lead)

問題(Issue)

Issue是Jira的核心,Jira中的任務,用戶Story,Bug實質上都是一個Issue。

單個問題對象可以通過jira.issue('問題的Key')得到,問題的主要屬性和方法如下:

id: 問題的id key: 問題的Key permalink(): 獲取問題連接 fields: 問題的描述,創建時間等所有的配置域 raw: 問題的原始API數據

配置域(Fields)

一般問題的ields中的屬性分為固定屬性和自定義屬性,自定義屬性格式一般為類似customfield_10012這種。常用的問題的Fields有:

assignee:經辦人 created: 創建時間 creator: 創建人 labels: 標簽 priorit: 優先級 progress: project: 所示項目 reporter: 報告人 status: 狀態 summary: 問題描述 worklog: 活動日志 updated: 更新時間 watches: 關注者 comments: 評論 resolution: 解決方案 subtasks: 子任務 issuelinks: 連接問題 lastViewed: 最近查看時間 attachment

示例如下:

issue = jira.issue(’JRA-1330’)print(issue.key, issue.fields.summary, issue.fields.status)

關注者/評論/附件

jira.watchers(): 問題的關注者 jira.add_watcher(): 添加關注者 jira.remove_watcher(): 移除關注者 jira.comments(): 問題的所有評論 jira.comment(): 某條評論 jira.add_comment():添加評論 comment.update()/delete(): 更新/刪除評論 jira.add_attachment(): 添加附件

示例如下:

issue = jira.issue(’JRA-1330’)print(jiaa.watchers(issue)) # 所有關注者jira.add_watcher(issue, ’username’) # 添加關注者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’) # 添加附件

創建/分配/轉換問題

jira.create_issue(): 創建問題 jira.create_issues(): 批量創建問題 jira.assign_issue(): 分配問題 jira.transitions(): 獲取問題的工作流 jira.transition_issue(): 轉換問題

示例如下:

# 創建問題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)# 批量創建問題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’)# 轉換問題jira.transition_issue(issue, ’5’, assignee={’name’: ’pm_user’}, resolution={’id’: ’3’})

搜索

Jira的搜索非常強大,并配有一套專門的搜索語言,稱為JQL(Jira Query Language),Jira的Python庫便是基于JQL語法進行搜索的,返回的是搜索到的問題列表。使用語句為

jira.search_issues(’JQL語句’)

默認最大結果數未1000,可以通過maxResults參數配置,該參數為-1時不限制數量,返回所有搜索結果。

jira.search_issues(’project=PROJ and assignee = currentUser()’, maxResults=-1)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
国产综合久久一区二区三区