web-dev-qa-db-fra.com

Comment trouver le statut d’un problème JIRA via le REST API?

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

16
user3570706

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
25
Seb

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
7
Ramkumar D

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"**
},
4
Hiren Savalia

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"));
}
0
PerseusBC