# !/usr/bin/env python
# -*-coding:utf-8 -*-
import os
from jira import JIRA, Issue
class JiraTool:
def __init__(self, username, password, project=None):
self.server = 'https://***:***'
self.username = username
self.password = password
self.project = project
self.jira_conn = JIRA(server=self.server, basic_auth=(self.username, self.password)) # jira服务器,用户名密码
def get_projects(self):
"""访问权限的项目列表:[<JIRA Project: key='AR2022011', name='识别', id='12882'>,...]"""
# for p in self.jira_conn.projects():
# print(p.key, p.id, p.name)
return self.jira_conn.projects()
def get_project(self, project_id):
"""
通过项目id/key获取项目主要属性:
key: 项目的Key
name: 项目名称
description: 项目描述
lead: 项目负责人
projectCategory: 项目分类
components: 项目组件
versions: 项目中的版本
raw: 项目的原始API数据
"""
project = {
'key':self.jira_conn.project(project_id).key,
'name':self.jira_conn.project(project_id).name,
'description':self.jira_conn.project(project_id).description,
'lead':self.jira_conn.project(project_id).lead,
'components':self.jira_conn.project(project_id).components,
'versions':self.jira_conn.project(project_id).versions,
'raw':self.jira_conn.project(project_id).raw
}
return project
def search_jira_jql(self, jql=None, maxnum: int = None):
"""根据jql查询jira,返回[<JIRA Issue: key='PJT-9141', id='302682'>,...]"""
maxResults = False if maxnum is None else maxnum
issues = self.jira_conn.search_issues(jql, maxResults=maxResults,json_result=False)
return issues
def create_issue(self, issue_dict):
"""
创建issue,issue_dict = {
'project': {'id': 10000},
'summary': 'BUG描述',
'description': 'BUG详情 \n换行',
'priority': {'name': 'BUG优先级'},
'labels': ['标签'],
'issuetype': {'name': '问题类型-故障'},
'assignee':{'name': '经办人'} #经办人
}
Python:JIRA操作
于 2022-08-10 10:23:09 首次发布