使用curl for lira API,在fixVersion jql中使用句点

时间:2014-12-11 21:27:04

标签: post curl jira jql

我尝试过使用“,”和“将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上使用这个和其他一些更改,例如:

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":{}}

如何转义句点.或添加另一组引号?

1 个答案:

答案 0 :(得分: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;