我尝试了使用“、”和“将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":{}}
如何转义句号
.
或添加另一组引号?
好吧,原来 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;
兄弟回答了他自己的问题💀