官方文档链接地址:
The Jira Cloud platform REST API
实用json请求脚本如下:
{
"fields": [
"summary",
"status"
],
"jql": "project = abc AND summary ~ '【%s】【coverity】' AND component=Coverity",
"maxResults": 1000,
"startAt": 0
}
jql字段就是表达式,类似于sql语句里的where条件设定语句,多个条件用“AND”连接
代码示例如下:
public static void searchIssueXTKFDT() throws UnirestException {
JsonNodeFactory jnf = JsonNodeFactory.instance;
ObjectNode payload = jnf.objectNode();
{
ArrayNode fields = payload.putArray("fields");
fields.add("summary");
fields.add("status");
//fields.add("assignee");
payload.put("jql", "project = TEST");
payload.put("maxResults", 100);
payload.put("startAt", 0);
}
// Connect Jackson ObjectMapper to Unirest
Unirest.setObjectMapper(new ObjectMapper() {
private com.fasterxml.jackson.databind.ObjectMapper jacksonObjectMapper
= new com.fasterxml.jackson.databind.ObjectMapper();
public T readValue(String value, Class valueType) {
try {
return jacksonObjectMapper.readValue(value, valueType);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public String writeValue(Object value) {
println("writeValue=====" + value);
try {
return jacksonObjectMapper.writeValueAsString(value);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
});
//"https://your-domain.atlassian.net/rest/api/2/search"
HttpResponse response = Unirest.post("https://devops-jira.example.com/rest/api/2/search")
.basicAuth("USER", "TOKEN")
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.body(payload)
.asJson();
JsonNode body = response.getBody();
JSONObject json = body.getObject();
JSONArray array = json.getJSONArray("issues");
int length = array.length();
System.out.println("length = " + length);
ArrayList status = new ArrayList<>();
for (int i = 0; i < length; i ++){
JSONObject object = array.getJSONObject(i);
String key = object.getString("key");
String id = object.getJSONObject("fields")
.getJSONObject("status")
.getString("id");
status.add(key + "=" + id);
}
System.out.println("status = " + status);
System.out.println(body);
}
返回结果如下:
{
"expand": "schema,names",
"total": 8,
"maxResults": 100,
"issues": [
{
"expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
"self": "https://devops-jira.example.com/rest/api/2/issue/867674",
"id": "867674",
"fields": {
"summary": "a test of the crash Main order flow broken",
"status": {
"name": "等待验证",
"self": "https://devops-jira.example.com/rest/api/2/status/11601",
"description": "",
"iconUrl": "https://devops-jira.example.com/images/icons/statuses/generic.png",
"id": "11601",
"statusCategory": {
"colorName": "yellow",
"name": "In Progress",
"self": "https://devops-jira.example.com/rest/api/2/statuscategory/4",
"id": 4,
"key": "indeterminate"
}
}
},
"key": "TEST-10"
},
{
"expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
"self": "https://devops-jira.example.com/rest/api/2/issue/861855",
"id": "861855",
"fields": {
"summary": "fawtwa4twa这是一个测试",
"status": {
"name": "取消",
"self": "https://devops-jira.example.com/rest/api/2/status/10124",
"description": "",
"iconUrl": "https://devops-jira.example.com/images/icons/statuses/generic.png",
"id": "10124",
"statusCategory": {
"colorName": "green",
"name": "Done",
"self": "https://devops-jira.example.com/rest/api/2/statuscategory/3",
"id": 3,
"key": "done"
}
}
},
"key": "TEST-9"
},
{
"expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
"self": "https://devops-jira.example.com/rest/api/2/issue/861924",
"id": "861924",
"fields": {
"summary": "a test of the crash Main order flow broken",
"status": {
"name": "激活",
"self": "https://devops-jira.example.com/rest/api/2/status/10354",
"description": "新发现的缺陷",
"iconUrl": "https://devops-jira.example.com/images/icons/statuses/generic.png",
"id": "10354",
"statusCategory": {
"colorName": "blue-gray",
"name": "To Do",
"self": "https://devops-jira.example.com/rest/api/2/statuscategory/2",
"id": 2,
"key": "new"
}
}
},
"key": "TEST-8"
},
{
"expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
"self": "https://devops-jira.example.com/rest/api/2/issue/861835",
"id": "861835",
"fields": {
"summary": "wewrwr",
"status": {
"name": "重新打开",
"self": "https://devops-jira.example.com/rest/api/2/status/10359",
"description": "问题未彻底修复",
"iconUrl": "https://devops-jira.example.com/images/icons/statuses/generic.png",
"id": "10359",
"statusCategory": {
"colorName": "yellow",
"name": "In Progress",
"self": "https://devops-jira.example.com/rest/api/2/statuscategory/4",
"id": 4,
"key": "indeterminate"
}
}
},
"key": "TEST-7"
},
{
"expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
"self": "https://devops-jira.example.com/rest/api/2/issue/861664",
"id": "861664",
"fields": {
"summary": "a test of the crash Main order flow broken",
"status": {
"name": "需求规划",
"self": "https://devops-jira.example.com/rest/api/2/status/10500",
"description": "",
"iconUrl": "https://devops-jira.example.com/images/icons/statuses/generic.png",
"id": "10500",
"statusCategory": {
"colorName": "blue-gray",
"name": "To Do",
"self": "https://devops-jira.example.com/rest/api/2/statuscategory/2",
"id": 2,
"key": "new"
}
}
},
"key": "TEST-6"
},
{
"expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
"self": "https://devops-jira.example.com/rest/api/2/issue/861719",
"id": "861719",
"fields": {
"summary": "a test of the crash Main order flow broken",
"status": {
"name": "需求规划",
"self": "https://devops-jira.example.com/rest/api/2/status/10500",
"description": "",
"iconUrl": "https://devops-jira.example.com/images/icons/statuses/generic.png",
"id": "10500",
"statusCategory": {
"colorName": "blue-gray",
"name": "To Do",
"self": "https://devops-jira.example.com/rest/api/2/statuscategory/2",
"id": 2,
"key": "new"
}
}
},
"key": "TEST-5"
},
{
"expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
"self": "https://devops-jira.example.com/rest/api/2/issue/861243",
"id": "861243",
"fields": {
"summary": "这是一个测试",
"status": {
"name": "需求规划",
"self": "https://devops-jira.example.com/rest/api/2/status/10500",
"description": "",
"iconUrl": "https://devops-jira.example.com/images/icons/statuses/generic.png",
"id": "10500",
"statusCategory": {
"colorName": "blue-gray",
"name": "To Do",
"self": "https://devops-jira.example.com/rest/api/2/statuscategory/2",
"id": 2,
"key": "new"
}
}
},
"key": "TEST-2"
},
{
"expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
"self": "https://devops-jira.example.com/rest/api/2/issue/860777",
"id": "860777",
"fields": {
"summary": "testtesttest",
"status": {
"name": "开发处理中",
"self": "https://devops-jira.example.com/rest/api/2/status/10355",
"description": "",
"iconUrl": "https://devops-jira.example.com/images/icons/statuses/generic.png",
"id": "10355",
"statusCategory": {
"colorName": "yellow",
"name": "In Progress",
"self": "https://devops-jira.example.com/rest/api/2/statuscategory/4",
"id": 4,
"key": "indeterminate"
}
}
},
"key": "TEST-1"
}
],
"startAt": 0
}
在此做个笔记