如何通过 REST API 检索 JIRA 票证的摘要?
How to retrieve the summary of a JIRA ticket via REST API?
我正在尝试编写一个 shell 脚本,它使用 JIRA 自动执行我的工作流程。我的目标是:
jira_flow start $KEY
脚本步骤如下:
- 将当前项目部署到sonarqube
- 根据jira issue key和summary新建分支
因此我需要一种方法来获取问题的摘要。
首先我尝试使用 issue
API 和 grep
.
curl http://jira.local:8081/rest/api/2/issue/$KEY | \
json_pp | \
grep sumarry
# produces:
"summary" : "linked issue summary 1"
"summary" : "linked issue summary 2"
"summary" : "sub-task summary 1"
"summary" : "sub-task summary 2"
"summary" : "sub-task summary 3"
"summary" : "issue summary"
这种方法给了我很多结果,因为它还打印了链接工单和子任务的摘要。
我的第二次尝试是使用 search
API 并限制要检索的字段。这种方法失败了,因为我无法通过其 key
.
搜索问题
curl http://jira.local:8081/rest/api/2/search?jql=key=$KEY
# returns:
no matches found: http://jira.local/rest/api/2/search?jql=key=$KEY
有什么建议吗?
使用jq
解析json并提取所需字段:
$ curl -s "https://jira.atlassian.com/rest/api/2/issue/JRASERVER-66213" | jq ".fields.summary"
"Ship with Java Option PrintConcurrentLocks by Default"
对于您的情况,只需输入正确的 URL。
您的第二种方法无效,因为过滤字段的参数是 field
:
curl -s "https://jira.atlassian.com/rest/api/2/issue/JRASERVER-66213?fields=summary" | jq "."
{
"expand": "renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations",
"id": "874745",
"self": "https://jira.atlassian.com/rest/api/2/issue/874745",
"key": "JRASERVER-66213",
"fields": {
"summary": "Ship with Java Option PrintConcurrentLocks by Default"
}
}
使用这个:
curl -s https://<JiraServer>.jira.com/rest/api/2/search?jql="< JQL >+"&fields=id,key,summary,description,issuetype";
如果你不 have/want jq 那么你可以使用 P
和 o
标志进行 grep。
curl -s "https://jira.atlassian.com/rest/api/2/issue/JRASERVER-66213" | grep -Po '"summary":.*?[^\]"
"summary":"Ship with Java Option PrintConcurrentLocks by Default"
我正在尝试编写一个 shell 脚本,它使用 JIRA 自动执行我的工作流程。我的目标是:
jira_flow start $KEY
脚本步骤如下:
- 将当前项目部署到sonarqube
- 根据jira issue key和summary新建分支
因此我需要一种方法来获取问题的摘要。
首先我尝试使用 issue
API 和 grep
.
curl http://jira.local:8081/rest/api/2/issue/$KEY | \
json_pp | \
grep sumarry
# produces:
"summary" : "linked issue summary 1"
"summary" : "linked issue summary 2"
"summary" : "sub-task summary 1"
"summary" : "sub-task summary 2"
"summary" : "sub-task summary 3"
"summary" : "issue summary"
这种方法给了我很多结果,因为它还打印了链接工单和子任务的摘要。
我的第二次尝试是使用 search
API 并限制要检索的字段。这种方法失败了,因为我无法通过其 key
.
curl http://jira.local:8081/rest/api/2/search?jql=key=$KEY
# returns:
no matches found: http://jira.local/rest/api/2/search?jql=key=$KEY
有什么建议吗?
使用jq
解析json并提取所需字段:
$ curl -s "https://jira.atlassian.com/rest/api/2/issue/JRASERVER-66213" | jq ".fields.summary"
"Ship with Java Option PrintConcurrentLocks by Default"
对于您的情况,只需输入正确的 URL。
您的第二种方法无效,因为过滤字段的参数是 field
:
curl -s "https://jira.atlassian.com/rest/api/2/issue/JRASERVER-66213?fields=summary" | jq "."
{
"expand": "renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations",
"id": "874745",
"self": "https://jira.atlassian.com/rest/api/2/issue/874745",
"key": "JRASERVER-66213",
"fields": {
"summary": "Ship with Java Option PrintConcurrentLocks by Default"
}
}
使用这个:
curl -s https://<JiraServer>.jira.com/rest/api/2/search?jql="< JQL >+"&fields=id,key,summary,description,issuetype";
如果你不 have/want jq 那么你可以使用 P
和 o
标志进行 grep。
curl -s "https://jira.atlassian.com/rest/api/2/issue/JRASERVER-66213" | grep -Po '"summary":.*?[^\]"
"summary":"Ship with Java Option PrintConcurrentLocks by Default"