J'écris un script (dans Powershell si cela compte) pour déployer du code SQL. Une partie de la logique que je veux dans le script consiste à vérifier que le problème JIRA associé au script est dans le statut correct avant le déploiement (par exemple, dans mon cas, le statut du problème est "Certifié QE".
J'essaie d'utiliser l'API JIRA REST mais je n'ai pas encore trouvé le moyen de me donner l'état actuel d'un problème. Le plus proche que j'ai trouvé est d'examiner les transitions disponibles pour le problème:
https://docs.atlassian.com/jira/REST/5.2/#id251679
Cela ne me donne pas le statut actuel, mais je pourrais le déterminer à partir des transitions disponibles. Cela me semble un peu ridicule.
J'espérais qu'il y aurait quelque chose comme/rest/api/2/issue/{issueIdOrKey}/status qui me donnerait simplement le statut actuel du problème.
Quel serait le meilleur moyen d'obtenir le statut du problème via l'API REST?
Merci
Vous pouvez utiliser /rest/api/2/issue/{issueIdOrKey}
et définir le paramètre fields pour limiter les données renvoyées au champ status.
Donc, votre demande serait:
/rest/api/2/issue/{issueIdOrKey}?fields=status
Cela peut être réalisé en utilisant la commande curl.
Syntaxe:
curl -u username:password -X GET -H "Content-Type: application/json"
https://server-url/rest/api/2/issue/JRA-1?fields=status
Voici l'exemple de demande:
/rest/api/2/issue/HTP-55
HTP-55
est l'id du problème.
Voici la partie de la réponse qui peut vous être utile.
"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"**
},
Si vous préférez utiliser une API client Java Jira REST ultérieure (par exemple, 4.0), voici l'exemple de code.
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"));
}