调用Jira API 获取Project的Board参数和Sprint参数

2024-09-03 20:32

本文主要是介绍调用Jira API 获取Project的Board参数和Sprint参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

每个jira项目都有sprint参数和board参数,关系为一对多的关系。

  • project 和 board > 1对n
  • board 和 sprint > 1对n


如果想要查询一个项目具有哪些正在进行的sprint,还需要费一番功夫。

因为目前jira -api的python库里并没有给出方法,不过我们可以通过下面的方法获得:

通过get请求,根据项目的key或者ID获得board信息,地址和参数如下

url+"/rest/agile/1.0/board?projectKeyOrId=" + projectKeyOrId

通过get请求,根据board的ID查询到sprint的信息,根据state进行筛选

url+"/rest/agile/1.0/board/" + str(item['id']) + "/sprint?state=future,active"

nodejs代码

// With ES5
var JiraApi = require('jira-client');
var jira = '';describe('JIRA API', async() => {beforeEach('Initialize', async() => {// Initializejira = new JiraApi({protocol: 'https',host: 'jira.xxxx.com', // jira域名username: 'liyc',password: '',apiVersion: '2',strictSSL: true});});/*** ES6* @description 获取指定issue状态(中文状态:已解决、已解决未部署、已关闭等)* @param issueNumber Jira Number(IssueID)*/it.skip('findIssue issue.fields.status.name', async() => {try {var issueNumber = 'S5A-1116';var issue = await jira.findIssue(issueNumber);await console.log(`Status: ${issue.fields.status.name}`);} catch (error) {await console.error(error);}});/*** ES6* @description 获取指定issue状态信息* @param issueNumber Jira Number(IssueID)*/it.skip('findIssue issue.fields.status', async () => {try {var issueNumber = 'S5A-1116';var issue = await jira.findIssue(issueNumber);await console.log(`Status: ${JSON.stringify(issue.fields.status)}`);} catch (error) {await console.error(error);}});/*** ES6* @description 获取指定issue所有相关字段* @param issueNumber Jira Number(IssueID)*/it.skip('findIssue issue.fields', async () => {try {var issueNumber = 'S5A-1116';var issue = await jira.findIssue(issueNumber);await console.log(`fields: ${JSON.stringify(issue.fields)}`);} catch (error) {await console.error(error);}});/*** ES6* @description 获取jira api版本* @param */it.skip('apiVersion', async () => {await console.log(`apiVersion: ${jira.apiVersion}`);});});

python代码

# -- coding: UTF-8 --
import requests
from jira import JIRA
url = 'https://jira.atlassian.com'
jira = JIRA(server=url, basic_auth=('username', 'password'))
cookies = jira._session.cookies
projectKeyOrId = "project_key"
board_url = url+"/rest/agile/1.0/board?projectKeyOrId=" + projectKeyOrId
response = requests.get(url, cookies=cookies,headers={"Accept": "application/json"})
# print(json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": ")))
qq = response.json()
sprint_result_list = []
for item in qq['values']:sprint_url = url+"/rest/agile/1.0/board/" + str(item['id']) + "/sprint?state=future,active"response = requests.get(url, cookies=cookies,headers={"Accept": "application/json"})sprint_json = response.json()if 'values' in sprint_json:sprint_list = sprint_json['values']for sprint in sprint_list:element = {'sprint_id': sprint['id'], 'sprint_name': sprint['name']}if element not in sprint_result_list:sprint_result_list.append(element)
print(sprint_result_list)

这篇关于调用Jira API 获取Project的Board参数和Sprint参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133966

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Python如何调用另一个类的方法和属性

《Python如何调用另一个类的方法和属性》在Python面向对象编程中,类与类之间的交互是非常常见的场景,本文将详细介绍在Python中一个类如何调用另一个类的方法和属性,大家可以根据需要进行选择... 目录一、前言二、基本调用方式通过实例化调用通过类继承调用三、高级调用方式通过组合方式调用通过类方法/静

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据