user2445124
user2445124

Reputation:

JQL: Get list of sprints

Is it possible to get a list of sprints for a particular project ? I know there is a way to find issues by a sprint, but haven't found any way to get all the sprints.

Upvotes: 15

Views: 31377

Answers (9)

JSowa
JSowa

Reputation: 10572

There is no straightforward solution, only workarounds. What is ridiculous why Jira doesn't provide such API calls.

You can use this endpoint:

https://api.atlassian.com/ex/jira/{cloudId}/rest/api/2/jql/autocompletedata/suggestions?fieldName=Sprint&fieldValue= 

Take notice of whitespace character on the end of query. It implies that every name of sprint includes whitespace char inside.

Output:

    {
        "results": [
            {
                "value": "2",
                "displayName": "Sprint 4 - 2020-06-17 04:00 (12)"
            },
            {
                "value": "1",
                "displayName": "Sprint 2 - 2020-06-20 06:45 (6)"
            }
    }

Upvotes: 2

zhongxiao37
zhongxiao37

Reputation: 987

Here is my solution.

  1. call rest/api/2/search?jql=project%20%3D%20ABCD%20AND%20Sprint%20in%20openSprints() to get the issues in current active sprint. Then you could get the active sprint.
  2. make another call rest/api/2/search?jql=Sprint%20%3D%2014343 to get the issues.

Below the code to parse the active sprint.

fetch(sprintUrl, {
      headers: requestHeader,
    })
      .then((res) => res.json())
      .then((data) => {
        const regex = new RegExp("state=ACTIVE");
        let activeSprint = data.issues[0].fields.customfield_14400.filter(
          (e: string) => regex.test(e)
        )[0];
        const sprintParser =
          /id=(\d+).*?name=(.*?),startDate=([\d-]+).*?endDate=([\d-]+)/g;
        const group = [...activeSprint.matchAll(sprintParser)][0];
        setSprint(
          Object.create({
            id: parseInt(group[1]),
            name: group[2],
            startDate: group[3],
            endDate: group[4],
          })
        );
      });

Upvotes: 0

drillingman
drillingman

Reputation: 249

[jira-url]/rest/greenhopper/1.0/sprint/picker

Delivers "allMatches" array containing active sprints including id and boardName.

It was useful to me when i was searching a list of active sprints in all projects to clean up not completed or not well named sprints.

Upvotes: 7

DevOpsMan
DevOpsMan

Reputation: 21

I did not invent this, a colleague did. However, you can easily access all of the sprints in the "search issues" screen by using this JQL: Sprint is not EMPTY

That's it. Enjoy.

Upvotes: 1

Séverine Darlot
Séverine Darlot

Reputation: 300

In JQL it's not yet possible but you can use the new jira agile API. Here is the documentation for jira cloud and for jira server 7.2.3.

First, you need to find the board of your project. This REST endpoint to get the list of your boards is:

[jira-url]/rest/agile/1.0/board

Next you can get their project with:

[jira-url]/rest/agile/1.0/[board-id]/project

So in this manner you can find the board id of your project. At the end, you can get the sprints list of this board with:

[jira-url]/rest/agile/1.0/[board-id]/sprint

Upvotes: 11

Tohid
Tohid

Reputation: 6679

Based on this answer: answers.atlassian.com/questions/65920/answers/3599592, the best Web API to get the list of sprints is:

https://<your_site>/rest/greenhopper/1.0/sprintquery/<rapidBoardId>?includeFutureSprints=true&includeHistoricSprints=false

<rapidBoardId> is different in each system, I just saw it in the address bar of my browser when I was surfing in JIRA, then I hard coded it into the code which is calling the API.

https://<your_site>/secure/RapidBoard.jspa?rapidView=<rapidBoardId is here on your browser address bar>

Upvotes: 5

boardtc
boardtc

Reputation: 1538

Have you looked at the sprint report? The dropdown will show you a list of all sprints for that board. Of course you can have multiple boards per project, so you might need to search all related boards.

Upvotes: 0

Nikhil Talreja
Nikhil Talreja

Reputation: 2774

There is no REST endpoint to do this, you can only query the sprints that are visible for a particular Rapid Board and you need to use the GreenHoppper plugin for this.

The endpoint for that is: https://yourjira.com/rest/greenhopper/1.0/sprints/{rapidBoardId}

You can enumerate the Rapid Boards at another REST endpoint: https://yourjira.com/rest/greenhopper/1.0/rapidviews/list

Read more here: https://answers.atlassian.com/questions/65920/how-can-i-list-all-sprints-from-greenhopper-using-the-rest-api

Upvotes: 4

Related Questions