日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python操作Jira提交BUG

發布時間:2025/3/15 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python操作Jira提交BUG 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

jira Python文檔https://jira.readthedocs.io/en/latest/

安裝:pip install jira

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

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

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

from jira import JIRA jira=JIRA(server='http://jira.xxx.com/jira',auth=('賬號','密碼'))

返回的jira對象便可以對Jira進行操作:

項目(Project)

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

  • key: 項目的Key
  • name: 項目名稱
  • description: 項目描述
  • lead: 項目負責人
  • projectCategory: 項目分類
  • components: 項目組件
  • versions: 項目中的版本
  • raw: 項目的原始API數據
# 訪問權限的項目列表 print(jira.projects())# 項目key print(jira.project("KB").key)# 項目名稱 print(jira.project("KB").name)# 項目描述 print(jira.project("KB").description)# 項目負責人 print(jira.project("KB").lead)# 項目模塊 print(jira.project("KB").components)# 項目版本 print(jira.project("KB").versions)# 項目的原始API數據 print(jira.project("KB").raw)

問題(Issue)

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

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

  • id: 問題的id
  • key: 問題的Key
  • permalink(): 獲取問題連接
  • fields: 問題的描述,創建時間等所有的配置域
  • raw: 問題的原始API數據
#問題的id print(jira.issue('KB-18900').id)#問題的Key print(jira.issue('KB-18900').key)#問題的描述,創建時間等所有的配置域 print(jira.issue('KB-18900').permalink())#問題的原始API數據 print(jira.issue('KB-18900').raw)

配置域(Fields)

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

  • assignee:經辦人
  • created: 創建時間
  • creator: 創建人
  • labels: 標簽
  • priority: 優先級
  • progress:
  • project: 所示項目
  • reporter: 報告人
  • status: 狀態
  • summary: 問題描述
  • worklog: 活動日志
  • updated: 更新時間
  • watches: 關注者
  • comments: 評論
  • resolution: 解決方案
  • subtasks: 子任務
  • issuelinks: 連接問題
  • lastViewed: 最近查看時間
  • attachment
#經辦人 print(jira.issue('CB-18900').fields.assignee)#創建人 print(jira.issue('CB-18900').fields.creator)#報告人 print(jira.issue('CB-18900').fields.reporter)#責任人 print(jira.issue('CB-18900').fields.customfield_10316)#創建時間 print(jira.issue('CB-18900').fields.created)#標簽 print(jira.issue('CB-18900').fields.labels)#優先級 print(jira.issue('CB-18900').fields.priority)#問題類型 print(jira.issue('CB-18900').fields.issuetype)#所示項目 print(jira.issue('CB-18900').fields.project)#狀態 print(jira.issue('CB-18900').fields.status)#問題描述 print(jira.issue('CB-18900').fields.summary)#活動日志 print(jira.issue('CB-18900').fields.worklog)#更新時間 print(jira.issue('CB-18900').fields.updated)#關注著 print(jira.issue('CB-18900').fields.watches)

關注者/評論/附件

  • 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'})

提交bug

# 提交BUG issue_dict = {'project': {'id': 10202},#項目id'summary': '測試',#BUG概要'description': '測試',#BUG詳情'priority': {'name':'Low'},#bug優先級'assignee':{'name':'chengzi@x.com'},#分配人'customfield_10316':{'name':'chengzi@x.com'},#責任人'labels': ['大大項目'],#所屬項目'issuetype': {'id': 10004}#問題類型-故障 } new_issue = jira.create_issue(issue_dict)

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的Python操作Jira提交BUG的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。