Как я могу найти статус проблемы 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"));
}