SQLコードをデプロイするためのスクリプト(Powershellで重要な場合)を書いています。スクリプトに必要なロジックの一部は、スクリプトに関連付けられたJIRAの問題がデプロイ前に正しいステータスであることを確認することです(たとえば、問題のステータスが「QE認定」である場合)。
JIRA REST APIを使用しようとしていますが、これまでのところ、問題の現在のステータスを確認する方法を見つけることができませんでした。最も近いのは、この問題で利用できる移行:
https://docs.atlassian.com/jira/REST/5.2/#id251679
これは私に現在のステータスを与えませんが、利用可能な遷移からそれを理解することができました。それは私には少しぎこちないようです。
問題の現在のステータスを示す/ rest/api/2/issue/{issueIdOrKey}/statusのようなものがあることを望んでいました。
REST APIを使用して問題のステータスを取得するための最良の方法は何ですか?
ありがとう
/rest/api/2/issue/{issueIdOrKey}
を返し、fields-parameterを設定して、返されるデータをステータスフィールドに制限します。
だからあなたの要求は次のようになります:
/rest/api/2/issue/{issueIdOrKey}?fields=status
これは、curlコマンドを使用して実現できます。
構文:
curl -u username:password -X GET -H "Content-Type: application/json"
https://server-url/rest/api/2/issue/JRA-1?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"**
},
後の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"));
}