我正在编写一个脚本(如果重要的话,在Powershell中)来部署SQL代码。我想在脚本中使用的部分逻辑是在部署之前检查与脚本关联的JIRA问题是否处于正确状态(例如,在我的情况下,问题状态是" QE认证" 。
我尝试使用JIRA REST API但到目前为止一直无法找到方法来向我提供问题的当前状态。我发现最接近的是查看可用于此问题的转换:
https://docs.atlassian.com/jira/REST/5.2/#id251679
这并没有给我当前状态,但我可以从可用的转换中找出它。这对我来说似乎有些愚蠢。
我希望有/ rest / api / 2 / issue / {issueIdOrKey} / status之类的东西可以让我了解问题的当前状态。
通过REST API获取问题状态的最佳方法是什么?
由于
答案 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"));
}