如何通过REST API查找JIRA问题的状态?

时间:2014-09-04 14:20:26

标签: rest jira

我正在编写一个脚本(如果重要的话,在Powershell中)来部署SQL代码。我想在脚本中使用的部分逻辑是在部署之前检查与脚本关联的JIRA问题是否处于正确状态(例如,在我的情况下,问题状态是" QE认证" 。

我尝试使用JIRA REST API但到目前为止一直无法找到方法来向我提供问题的当前状态。我发现最接近的是查看可用于此问题的转换:

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

这并没有给我当前状态,但我可以从可用的转换中找出它。这对我来说似乎有些愚蠢。

我希望有/ rest / api / 2 / issue / {issueIdOrKey} / status之类的东西可以让我了解问题的当前状态。

通过REST API获取问题状态的最佳方法是什么?

由于

4 个答案:

答案 0 :(得分:26)

您可以使用/rest/api/2/issue/{issueIdOrKey}并设置fields-parameter以将返回的数据限制为状态字段。

所以你的要求是:

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

答案 1 :(得分:7)

可以使用curl命令实现。

语法:

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

答案 2 :(得分:4)

以下是示例请求:

/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"**
},

答案 3 :(得分:0)

如果您更喜欢使用更高版本的Jira 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"));
}