jira接口(openapi)应用

本文介绍了Jira的基本概念,包括项目、问题和字段,详细讲解了常用接口如查询、创建和修改issue的方法,以及如何通过PythonJira模块进行认证和执行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值