2014-09-04 54 views
11

我正在編寫腳本(在Powershell中,如果有的話)來部署SQL代碼。我希望在腳本中使用的部分邏輯是在部署之前檢查與腳本相關的JIRA問題是否處於正確的狀態(例如,在我的情況下,問題狀態是「QE認證」。)如何通過REST API找到JIRA問題的狀態?

我正在嘗試使用JIRA REST API,但到目前爲止一直無法找到一種方法來給我一個問題的當前狀態。我發現的最接近的是查看可用於該問題的轉換:

https://docs.atlassian.com/jira/REST/5.2/#id251679

這不會給我目前的狀態,但我可以從現有的過渡看着辦吧。這似乎有點缺憾給我。

我希望會有類似/ rest/api/2/issue/{issueIdOrKey} /狀態,只會給我問題的當前狀態。

通過REST API獲取問題狀態的最佳方式是什麼?

感謝

回答

15

您可以使用/rest/api/2/issue/{issueIdOrKey}並設置字段參數返回的數據限制在狀態字段。

所以,你的要求是:

/rest/api/2/issue/{issueIdOrKey}?fields=status 
2

下面是示例請求:

/rest/api/2/issue/HTP-55 

HTP-55是問題的ID。

以下是可能對您有用的響應部分。

"status": { 
    "self": "rest/api/2/status/3", 
    "description": "This issue is being actively worked on at the moment by the assignee.", 
    "iconUrl": "images/icons/statuses/inprogress.png", 
    **"name": "In Progress", 
    "id": "3"** 
}, 
4

它可以通過使用curl命令來實現。

語法:

curl -u username:password -X GET -H "Content-Type: application/json" 
    https://server-url/rest/api/2/issue/JRA-1?fields=status 
0

如果您更喜歡使用後吉拉REST的Java客戶端API(如4.0),以下是示例代碼。

private static final String JIRA_SERVER = "http://jiralab"; 

public static void main(String[] args) { 
    try { 
     JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory(); 
     URI uri = new URI(JIRA_SERVER); 
     JiraRestClient client = factory.createWithBasicHttpAuthentication(uri, "admin", "admin"); 
     getIssue(client, "ISSUE-1"); 
    } 
    catch (Exception ex) { 
    } 
} 

private static void getIssue(JiraRestClient client, String key) throws Exception { 
    Promise<Issue> promise = client.getIssueClient().getIssue(key); 
    Issue issue = promise.claim(); 
    System.out.println("Summary = " + issue.getSummary() + ", Status = " + (issue.getStatus() != null ? issue.getStatus().getName() : "N/A")); 
} 
相關問題