如何通过RESTAPI找到JIRA问题的状态?

如何通过RESTAPI找到JIRA问题的状态?,rest,jira,Rest,Jira,我正在编写一个脚本(在Powershell中,如果需要的话)来部署SQL代码。我希望脚本中的部分逻辑是让它在部署之前检查与脚本关联的JIRA问题是否处于正确状态(例如,在我的情况下,问题状态为“QE认证”) 我正在尝试使用JIRA REST API,但到目前为止,我无法找到一种方法来提供问题的当前状态。我找到的最接近的方法是查看该问题可用的转换: 这并没有告诉我当前的状态,但我可以从可用的转换中找出它。这对我来说似乎有点笨拙 我希望会有像/rest/api/2/issue/{issueidwo

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

我正在尝试使用JIRA REST API,但到目前为止,我无法找到一种方法来提供问题的当前状态。我找到的最接近的方法是查看该问题可用的转换:

这并没有告诉我当前的状态,但我可以从可用的转换中找出它。这对我来说似乎有点笨拙

我希望会有像/rest/api/2/issue/{issueidworkey}/status这样的东西,它会告诉我问题的当前状态

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

谢谢

您可以使用并设置fields参数,将返回的数据限制在status字段中

所以你的要求是:

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

以下是示例请求:

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

它可以通过使用curl命令来实现

语法:

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

如果您喜欢使用更高版本的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"));
}
private静态最终字符串JIRA_SERVER=”http://jiralab";
公共静态void main(字符串[]args){
试一试{
JiraRestClientFactory=new AsynchronousJiraRestClientFactory();
URI=新URI(JIRA_服务器);
JiraRestClient=factory.createWithBasicHttpAuthentication(uri,“admin”,“admin”);
getIssue(客户,“问题1”);
}
捕获(例外情况除外){
}
}
私有静态void getIssue(JiraRestClient客户端,字符串键)引发异常{
Promise Promise=client.getIssueClient().getIssue(键);
Issue=promise.claim();
System.out.println(“Summary=“+issue.getSummary()+”,Status=“+(issue.getStatus()!=null?issue.getStatus().getName():“不适用”);
}

非常感谢您,您为有需要的人节省了宝贵的时间。