Как я могу найти статус проблемы JIRA через REST API?
Я пишу script (в Powershell, если это имеет значение) для развертывания SQL-кода. Часть логики, которую я хочу в script, - это проверить, что проблема JIRA, связанная с script, находится в правильном состоянии до развертывания (например, в моем случае, если статус проблемы "QE Certified" ).
Я пытаюсь использовать API JIRA REST, но до сих пор не смог найти способ дать мне текущий статус проблемы. Самое близкое, что я нашел, это посмотреть на доступные переходы:
https://docs.atlassian.com/jira/REST/5.2/#id251679
Это не дает мне текущий статус, но я мог бы понять это из доступных переходов. Это кажется мне немного клочковым.
Я надеялся, что будет что-то вроде /rest/api/ 2/issue/{issueIdOrKey}/status, который просто даст мне текущий статус проблемы.
Каким будет лучший способ получить статус проблемы с помощью REST API?
Спасибо
Ответы
Ответ 1
Вы можете использовать /rest/api/2/issue/{issueIdOrKey}
и установить параметр-fields для ограничения возвращаемых данных в поле состояния.
Таким образом, ваш запрос будет выглядеть следующим образом:
/rest/api/2/issue/{issueIdOrKey}?fields=status
Ответ 2
Это может быть достигнуто с помощью команды curl.
Синтаксис:
curl -u username:password -X GET -H "Content-Type: application/json"
https://server-url/rest/api/2/issue/JRA-1?fields=status
Ответ 3
Вот пример запроса:
/rest/api/2/issue/HTP-55
HTP-55
- это идентификатор проблемы.
Вот часть ответа, которая может быть вам полезна.
"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
Если вы предпочитаете использовать Jira REST Java Client 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"));
}