jira提供了rest api,JIRA是基于官方的api封装的python库。结合该库可以做一些查询或者新增修改操作,集成在项目中。
安装
使用
初始化
1 2 3 4 5 6 7 8 9 10 11
| from jira import JIRA
JIRA_CONF = { "url": "", "username": "", "passwd": "" }
jiraInstance = JIRA( server=JIRA_CONF.get("url"), basic_auth=(JIRA_CONF.get("username"), JIRA_CONF.get("passwd")))
|
获取所有分组信息
1 2 3 4
| all_groups = jiraInstance.groups()
|
列表中的内容为str类型,没有可用方法。
获取所有项目组信息
1 2 3
| all_projects = jiraInstance.projects()
|
返回一个列表,列表中包含对象类型为<class 'jira.resources.Project'>
任意取一个
1 2 3 4 5 6 7
| project = all_projects[0]
project.id project.name project.projectTypeKey project.avatarUrls project.raw
|
获取项目相关信息
1
| project_details = jiraInstance.project(id=)
|
返回一个``对象,其下包含以下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| project_details.roles
project_details.versions project_details.id project_details.issueTypes project_details.name project_details.lead project_details.projectTypeKey project_details.description project_details.components project_details.archived project_details.assigneeType project_details.avatarUrls project_details.raw
|
获取项目中任意角色的下的用户信息
1 2
| project_admin_roles = jiraInstance.project_role(project='', id=).actors
|
返回一个list ,里面是<class 'jira.resources.PropertyHolder'>
格式
任取一个
1 2 3 4 5 6
| user1 = project_admin_roles[0] user1.id user1.displayName user1.type user1.name user1.avatarUrl
|
获取用户信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| user = jiraInstance.user(id=)
user.displayName user.emailAddress user.groups.items user.name user.locale user.timeZone user.applicationRoles.items user.active user.avatarUrls user.raw
|
获取版本相关信息
1 2
| all_versions = jiraInstance.project_versions(project='')
|
返回值是list对象,包含所有的发布版本(同修复版本),默认按时间升序返回, 任取一个
1
| first_version = all_versions[0]
|
返回一个值为<class 'jira.resources.Version'>
类型,其下包含以下内容
1 2 3 4 5 6 7 8 9
| first_version.JIRA_BASE_URL first_version.projectId first_version.name first_version.releaseDate first_version.userReleaseDate first_version.released first_version.archived first_version.overdue first_version.raw
|
获取jira相关信息
1
| jira_issue = jiraInstance.issue("")
|
返回值为<class 'jira.resources.Issue'>
类型
1 2 3
| jira_issue.fields jira_issue.raw
|
常用字段和使用方法如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| jira_issue.fields.key jira_issue.fields.summary jira_issue.fields.labels jira_issue.fields.issuetype.name jira_issue.fields.project.key jira_issue.fields.project.name jira_issue.fields.status.name jira_issue.fields.resolution.name jira_issue.fields.customfield_10800 jira_issue.fields.customfield_10105 jira_issue.fields.reporter.key jira_issue.fields.reporter.displayName jira_issue.fields.assignee.key jira_issue.fields.assignee.displayName jira_issue.fields.priority.name jira_issue.fields.customfield_10704 jira_issue.fields.created jira_issue.fields.updated jira_issue.fields.resolutiondate jira_issue.fields.customfield_10802 jira_issue.fields.fixVersions.name jira_issue.fields.customfield_10302 jira_issue.fields.description jira_issue.fields.comment.comments
jira_issue.fields.subtasks
|
使用搜索功能
1
| search_results = jiraInstance.search_issues()
|
搜索语句怎么写? 不要慌,打开jira右上角搜索
随便写一些筛选条件

然后点高级,自动转换为语句,可以复制粘贴拿过来用

搜索这里有点类似于sql,多个条件用AND连接 一些内置方法如上图 currentUser() 需要加小括号,大多数条件都是多选的,所有用了in,多写就会了。
获取Jira的字段
1 2 3 4 5 6 7 8 9 10 11 12
| all_fields = jiraInstance.fields()
任取一个字短 field = all_fields[0]
field.id field.name field.searchable field.custom field.orderable field.clauseNames field.schema
|
字段分为jira自带和自定义的字段,自带的字段如labels(标签) watches(关注者)fixVersions(解决版本)project(项目)issuetype(jira类型)等。
自定义字段,一般id格式为customfield_ + 五位数id,各公司有所不同就不多说了。