通过REST API搜获jira issue踩过的坑

本文介绍如何通过命令行使用 JIRA 的 REST API 进行操作,包括设置权限、构造命令行参数、处理特殊字符及搜索 JIRA 事项的方法。还提供了计算截止日期与当前日期间差值的 Python 示例。

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

  1. 用命令行的方式使用jira的REST API需要特定权限, 可以跟管理员申请权限.
    命令备忘:
curl -u username -X GET -H "Content-Type: application/json" https://jira.xx.com/rest/api/2/search?jql=project=projectname&status=open
  1. 要想在命令行终端通过-u user:password的方式一次性将访问jira的用户名和密码传给jira, 则要确保password中没有特殊的shell字符或字符组合,比如#!,&
    否则,就得考虑在程序中把用户名和密码作为字符串变量
  2. 搜索jira中的某一类jira时,可以先在jira界面通过高级搜索功能将搜索条件输入进去,然后点击搜索,得到搜索结果之后,查看浏览器地址栏中的jql参数,这个参数同样可以用于REST API中的搜索功能, 比自己去写搜索条件更加准确可靠.
  3. 浏览器搜索条件中的特殊字符最好都转化为对应的十六进制数来处理(在前面加一个%字符),尤其是在shell命令行或者python脚本程序中,&一类的字符容易被shell/python自己的程序解析处理.
  4. JIRA的REST API搜索结果有一个最大返回结果限制,maxResults默认为50个.我尝试了将maxResults=1000最为一个输入参数传递给jira 搜索接口,但是无法识别.于是将搜索范围进一步缩小(project/status/duedate),50个基本上可满足要求.
  5. 比较duedate和当前datetime之间的差值可以使用python库中的datetime模块, 两个datetime之间的差值delta形如 12 days, 9:28:18.960738, 差值由两个部分组成: delta.days和delta.seconds. 其中seconds是不足一天的秒数.
    下面的例子可以求Duedate和今天之间相差的天数:
#!/usr/bin/python
#假设duedate是2018-9-30
import datetime
 
due = datetime.datetime(2018, 9, 30)
td = datetime.datetime.today()
delta = due -td
print delta.days
print delta.seconds/3600

有用的资料:
https://confluence.atlassian.com/jira064/advanced-searching-720416661.html
例子:

curl -u usernaem -X GET -H "Content-Type: application/json" https://jira.xx.com/rest/api/2/search?jql=project%20%3D%20IPCSDK%20AND%20status%20%3D%20Open

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值