在fixVersion jql中使用curl作为lira API并带有句点

问题描述 投票:0回答:2

我尝试了使用“、”和“将curl查询包含到jira实例的各种迭代,以便获取特定修复版本的所有问题。

curl -D- -u username:password -X POST -H "Content-Type: application/json" -d '{"jql":"project = PROJ AND fixVersion=Version-1.2.3"}' "https://thejirainstall.com/jira/rest/api/2/search"

但是,使用此功能以及修复版本上的其他一些更改,例如:

fixVersion="Version-1.2.3"

fixVersion=\"Version-1.2.3\"

fixVersion=Version-1\u002e2\u002e3

随意添加和删除引号。

那些没有直接失败的返回:

{"errorMessages":["Error in the JQL Query: '\\.' is an illegal JQL escape sequence. The valid escape sequences are \\', \\\", \\t, \\n, \\r, \\\\, '\\ ' and \\uXXXX. (line 1, character 38)"],"errors":{}}

如何转义句号

.
或添加另一组引号?

post curl jira jql
2个回答
1
投票

好吧,原来 Jira 不允许使用 jql 语法中的版本名称。必须改用

id
版本。

并且,为了获取版本 id,您必须解析

https://thejirainstall.com/jira/rest/api/2/project/ON/versions?

的结果

这意味着我无论如何都必须使用 JSON 解析器。所以,现在我通过

homebrew install jq

使用 jq

我目前的解决方案是编写一个bash脚本,如下所示:

JIRA_FIXVERSION
fixVersionQuery='https://thejirainstall.com/jira/rest/api/2/project/ON/versions?';
myJSONResponse=`curl -u username:password -X GET -H "Content-Type: application/json" --insecure --silent $fixVersionQuery |jq '.[] | {id,name} | select(.name=="Version-1.2.3" | .["id"]'`; 
echo $myJSONResponse;

0
投票

兄弟回答了他自己的问题💀

© www.soinside.com 2019 - 2024. All rights reserved.