Hean Tech

View Original

What's better than "Status" in JQL? statusCategory

Searching for issues in Jira by status can be tricky. Every installation has a different slate of statuses, and that list can even vary within projects. While there are some more “standard” ones, like “Waiting for customer” sometimes a status like “Declined” will show up and throw your searches for a loop.

My old workaround was to keep a running list of statuses, especially those in the “Done” state, that I would add to queries. This looked a bit funny since I had to add “status in (“status 1”, “status 2”, “status x….”), but it got the job done. Unfortunately it made it hard to onboard new folks to the project and really frustrated users.

There’s a better way

Fortunately the nice people at Jira have a solution! Recently I’ve almost entirely stopped using “Status” for my day-to-day quering. There are specific cases where I need to use it, but generally it’s been replaced by statusCategory.

When an Admin adds a status to a project they have to select a category for it:

  1. To Do - This status signals the ticket is pending work. Common examples include “Review”, “To Do” and “New”.

  2. In Progress - This status signals the ticket is being worked on. Common examples include “In Progress”, “In Development” and “Waiting for Customer”.

  3. Done - This status indicates work on the ticket is complete, or no further work is necessary. Common examples include “Cancelled”, “Completed”, “Finished”

How to use it

StatusCategory is similar to any other field in Jira : statusCategory = (value) - where the possible values are “To Do”, “In Progress” and “Done” (note they are case sensitive!.

I typically replace “Status” with “statusCategory”, so instead of using status = Completed I would use statusCategory = Done. This does make the query broader, but ensures I capture EVERY ticket that no long requires owrk.

Examples

  1. Find all tickets in project ABC that are in the To Do category

    1. statusCategory = “To Do” and project = ABC

  2. Find all tickets in the ABC project that are in an open sprint and in progress

    1. Project = ABC and sprint in openSprints() and statusCategory = “In Progress”

Check it out live: