一、jira 概念介绍
项目(project)
一个jira服务可以给不同团队使用,每个团队可以使用自己的项目,任务、bug等都归属在项目下。
问题(issue)
用户故事、bug、任务、测试用例等都是一个issue,只是issue的类型不同。
字段(fields)
一个issue包含若干字段,系统字段、自定义字段。
系统字段:issuetype(问题类型)、summary(概要)、resolutiondate(解决时间)、status(状态)、components(模块)、assignee(经办人)等
自定义字段:customfield_12345
搜索语句(jql)
jira提供搜索issue的搜索语句,jira自身的语法。
例:project = PRO1 AND issuetype = Bug AND component = 任务 AND status != 已关闭
二、jira 常用接口介绍
官方文档: https://docs.atlassian.com/DAC/rest/jira/6.1.html
认证
最简单的认证方式:basic authentication
在http请求头中添加 Authorization:Basic base64(username:password)
jira服务中 帐号:密码 转换成base64编码
2、issue列表查询接口GET: /rest/api/2/search
常用参数,不传最大返回数,默认最多返回50条数据
返回格式
{
"startAt": 0,
"maxResults": 50,
"total": 0,
"issues": [
{},
{}
]
}
3、单个issue查询接口GET: /rest/api/2/issue/{问题id或关键字}
可传入fields,返回需要字段
/rest/api/2/issue/{问题id或关键字}?fields=status
{
"expand": "renderedFields,names",
"id": "504900",
"self": "xxx/rest/api/2/issue/504900",
"key": "xxx-15699",
"fields": {
"status": {
"self": "xxx/rest/api/2/status/1",
"description": "The issue is open and ready for the assignee to start work on it.",
"iconUrl": "xx/images/icons/statuses/open.png",
"name": "打开的",
"id": "1",
"statusCategory": {
"self": "xxx/rest/api/2/statuscategory/2",
"id": 2,
"key": "new",
"colorName": "blue-gray",
"name": "待办"
}
}
}
}
4、创建一个issue,POST:/rest/api/2/issue
传入一个json. fielsds 传本项目对应值
{
"fields": {
"project": {
"id": "10000"
},
"summary": "something's wrong",
"issuetype": {
"id": "10000"
},
"assignee": {
"name": "homer"
},
"priority": {
"id": "20000"
},
"labels": [
"bugfix",
"blitz_test"
],
"versions": [
{
"id": "10000"
}
],
"environment": "environment",
"description": "description",
"duedate": "2011-03-11",
"fixVersions": [
{
"id": "10001"
}
],
"components": [
{
"id": "10000"
}
],
"customfield_20000": "06/Jul/11 3:25 PM",
"customfield_80000": {
"value": "red"
}
}
}
5、修改issue-PUT: /rest/api/2/issue/{问题id或关键字}
通过fields直接更改值
{
"fields": {
"summary": "This is a shorthand for a set operation on the summary field",
"customfield_10010": 1,
"customfield_10000": "This is a shorthand for a set operation on a text custom field"
}
}
三、python jira模块
jira模块文档:https://jira.readthedocs.io/
1、安装jira模块
pip install jira
2、认证获取jira对象
from jira import JIRA
jira_obj = JIRA(server="jira服务域名", basic_auth=("用户名", "密码"))
3、常用方法
查询问题列表
# 方法参数同查询问题接口参数,默认最多返回50条数据
issues = jira_obj.search_issues("jql语句") # 该方法返回list,内容为issue对象
issues = jira_obj.search_issues("jql语句", json_result=True) # 返回json数据,‘issues’ 字段值为issue列表的json数据
ssues = jira_obj.search_issues("jql语句", 0, 50) # 查询位置及返回最大数量
查询一个issue
issue_obj = jira.issue("id或者关键字")
创建问题
jira_obj.create_issue(fields={"summary": "issue字段的json数据"})
修改问题
issue_obj.update({"summary": "issue字段的json数据"})
删除问题
issue_obj.delete()
————————————————
版权声明:本文为CSDN博主「codingOnMyWay」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/codingOnMyWay/article/details/128301710