Issue JQL Functions

Available JQL functions on this section are:


recentIssues()

Perform searches based on issues that you have recently viewed, i.e. issues that are in the 'Recent Issues' section of the 'Issues' drop-down menu.
if you are not logged in to JIRA, only issues from your current browser session will be included.

Note:
Formely this function works in the same way as issueHistory() native Jira JQL function, but also allows you to limit the result, so keep in mind that altough recentIssues() function returns issues ordered from the most recent viewed issues to older, due to a limitation of the JQL language you must order the results using the lastViewed field, as well as you need to do with issueHistory(). Moreover, notice that it is possible to control the maximum number of items stored in the issue history via 'jira.max.Issue.history.items' property in the jira-application.properties file, as a consequence, this function, as well a issueHistory() function, will not return more issues than the maximun number of items specified by the 'jira.max.Issue.history.items' property.

hasSubtasks()

Searches issues with / without subtasks, additionally you can further refine your query by using a number expression.

Note:

A 'number expression' is made of an optional operator representing by its mathematical symbol and a (prositive/negative) number.

 Let's see the allowed symbols...
OperatorSymbol
Equals to=
Not equals to!=
Greater than>
Greater than or equals to>=
Less than<
Less than or equals to<=

(warning) By default, this function only includes issues with at least one subtask even if you use the '<' or '<=' operator.
   You must explicity add 'issues NOT IN hasSubtasks()' clause to your query, if you also want to search for issues without subtasks.

subtasksOf()

Searches subtasks of standard issues which satisfies the provided subquery.
See also: parentsOf()

Note:
Since you need to enclose the provided subquery using doble quotes, you must to escape any doble quotes using in the subquery by preceding a backslash after the double quotes, alternatively you can use a single quote in some cases.

 Let's see an example...

(error) This will not work

issue IN subtasksOf("resolution = "Won't Do" AND status = Closed")

Searches for all subtasks of closed issues which their resolution have been set to "Won't Do"

(tick) This will work perfectly

issue IN subtasksOf("resolution = \"Won't Do\" AND status = Closed")

Searches for all subtasks of closed issues which their resolution have been set to "Won't Do"

issue IN subtasksOf("status = 'In Progress' AND reporter = currentUser()")

Searches for all subtasks of in proress issues reporter by me

parentsOf()

Searches issues which any of their subtasks satisfies the provided subquery.
See also: subtasksOf()

Note:
Since you need to enclose the provided subquery using doble quotes, you must to escape any doble quotes using in the subquery by preceding a backslash after the double quotes, alternatively you can use a single quote in some cases.

 Let's see an example...

(error) This will not work

issue IN parentsOf("resolution = "Won't Do" AND status = Closed")

Searches issues which any of their subtasks are closed  and their resolution have been set to "Won't Do"

(tick) This will work perfectly

issue IN parentsOf("resolution = \"Won't Do\" AND status = Closed")

Searches issues which any of their subtasks are closed  and their resolution have been set to "Won't Do"

issue IN parentsOf("status = 'In Progress' AND reporter = currentUser()")

Searches issues which any of their subtasks  are in proress and have been reportered by me

epicsOf()

Searches for epics that belong to issues that match the given subquery
See also: issuesInEpics()

Note:
Since you need to enclose the provided subquery using doble quotes, you must to escape any doble quotes using in the subquery by preceding a backslash after the double quotes, alternatively you can use a single quote in some cases.

 Let's see an example...

(error) This will not work

issue IN epicsOf("resolution = "Won't Do" AND status = Closed")

Searches for epics that belong to closed issues in which their resolution have been set to "Won't Do"

(tick) This will work perfectly

issue IN epicsOf("resolution = \"Won't Do\" AND status = Closed")

Searches for epics that belong to closed issues in which their resolution have been set to "Won't Do"

issue IN epicsOf("status = 'In Progress' AND reporter = currentUser()")

Searches for epics that belong to in progress issues reportered by me

issuesInEpics()

Searches issues within epics that match the given subquery..
See also: epicsOf()

Note:
Since you need to enclose the provided subquery using doble quotes, you must to escape any doble quotes using in the subquery by preceding a backslash after the double quotes, alternatively you can use a single quote in some cases.

 Let's see an example...

(error) This will not work

issue IN issuesInEpics("resolution = "Won't Do" AND status = Closed")

Searches issues within Epics that are closed and their resolution have been set to "Won't Do"

(tick) This will work perfectly

issue IN issuesInEpics("resolution = \"Won't Do\" AND status = Closed")

Searches issues within Epics that are closed and their resolution have been set to "Won't Do"

issue IN issuesInEpics("status = 'In Progress' AND reporter = currentUser()")

Searches issues within Epics that are in proress and have been reportered by me

movedIssues()

Searches issues that have been moved from one project to another. Additionally, you can further refine your query by specifying either or both the source and destination project.

Note:

You can use the asterisc symbol (*), in both source and destination project arguments as a keyword for refering to 'any project'.

portfolioChildOf()

Returns child issues (on Portfolio hierarchy) of issues specified by the provided subquery.
See also: portfolioParentOf()

Note:
Since you need to enclose the provided subquery using doble quotes, you must to escape any doble quotes using in the subquery by preceding a backslash after the double quotes, alternatively you can use a single quote in some cases.

 Let's see an example...

(error) This will not work

issue IN portfolioChildOf("resolution = "Won't Do" AND status = Closed")

Searches for childrens of already closed issues which their resolution have been set to "Won't Do"

(tick) This will work perfectly

issue IN portfolioChildOf("resolution = \"Won't Do\" AND status = Closed")

Searches for childrens of already closed issues which their resolution have been set to "Won't Do"

issue IN portfolioChildOf("status = 'In Progress' AND reporter = currentUser()")

Searches for childrens of in progress issues reporter by me

(warning) This function does not traverse the link from Epic to Story. To also search for stories, or subtasks you should use this function in conjuntion with issuesInEpics() or subtasksOf() JQL functions.

portfolioParentOf()

Returns child issues (on Portfolio hierarchy) of issues specified by the provided subquery.
See also: portfolioChildOf()

Note:
Since you need to enclose the provided subquery using doble quotes, you must to escape any doble quotes using in the subquery by preceding a backslash after the double quotes, alternatively you can use a single quote in some cases.

 Let's see an example...

(error) This will not work

issue IN portfolioParentOf("resolution = "Won't Do" AND status = Closed")

Searches for parents of already closed issues which their resolution have been set to "Won't Do"

(tick) This will work perfectly

issue IN portfolioParentOf("resolution = \"Won't Do\" AND status = Closed")

Searches for parents of already closed issues which their resolution have been set to "Won't Do"

issue IN portfolioParentOf("status = 'In Progress' AND reporter = currentUser()")

Searches for parents of in progress issues reporter by me

hasLinks()

Searches issues with / without issue links, additionally you can further refine your query by using a number expression.
See also: linkedIssuesOf() and hasRemoteLinks()

Note:

A 'number expression' is made of an optional operator representing by its mathematical symbol and a (prositive/negative) number.

 Let's see the allowed symbols...
OperatorSymbol
Equals to=
Not equals to!=
Greater than>
Greater than or equals to>=
Less than<
Less than or equals to<=

(warning) By default, this function only includes issues with at least one remote link even if you use the '<' or '<=' operator.
   You must explicity add 'issues NOT IN hasRemoteLinks()' clause to your query, if you also want to search for issues without remote links.

linkedIssuesOf()

Searches issues linked to the given subquery. Additionally you can further refine your query by specifying a link type.

Note:
Since you need to enclose the provided subquery using doble quotes, you must to escape any doble quotes using in the subquery by preceding a backslash after the double quotes, alternatively you can use a single quote in some cases.

 Let's see an example...

(error) This will not work

issue IN linkedIssuesOf("status = "Under Review" and type = Bug")

Searches issues linked to Bug that are currently being reviewing

(tick) This will work perfectly

issue IN linkedIssuesOf("status = \"Under Review\" and type = Bug")

Searches issues linked to Bug that are currently being reviewing

issue IN linkedIssuesOf("status = 'Under Review' and type = Bug")

Searches issues linked to Bug that are currently being reviewing

hasRemoteLinks()

Searches issues with / without remote links, additionally you can further refine your query by using a number expression.
See also: remoteLinkedIssuesOf() and hasLinks()

Note:

A 'number expression' is made of an optional operator representing by its mathematical symbol and a (prositive/negative) number.

 Let's see the allowed symbols...
OperatorSymbol
Equals to=
Not equals to!=
Greater than>
Greater than or equals to>=
Less than<
Less than or equals to<=

(warning) By default, this function only includes issues with at least one remote link even if you use the '<' or '<=' operator.
   You must explicity add 'issues NOT IN hasRemoteLinks()' clause to your query, if you also want to search for issues without remote links.

remoteLinkedIssuesOf()

Searches for issues linked to remote content. That is, issues linked to web pages, Confluence pages, or any other custom remote link type that you have set up.
See also: hasRemoteLinks()

hasComments()

Searches issues having comments, additionally you can further refine your query by using a number expression.

Note:

A 'number expression' is made of an optional operator representing by its mathematical symbol and a (prositive/negative) number.

 Let's see the allowed symbols...
OperatorSymbol
Equals to=
Not equals to!=
Greater than>
Greater than or equals to>=
Less than<
Less than or equals to<=

(warning) By default, this function only includes issues with at least one comment even if you use the '<' or '<=' operator. You must explicity add 'issues NOT IN hasComments()' clause to your query, if you also want to search for issues without comments.

hasAttachments()

Searches issues having attachments, additionally you can further refine your query by using a number expression.

Note:

A 'number expression' is made of an optional operator representing by its mathematical symbol and a (prositive/negative) number.

 Let's see the allowed symbols...
OperatorSymbol
Equals to=
Not equals to!=
Greater than>
Greater than or equals to>=
Less than<
Less than or equals to<=

(warning) By default, this function only includes issues with at least one attachment even if you use the '<' or '<=' operator. You must explicity add 'issues NOT IN hasAttachments()' clause to your query, if you also want to search for issues without attachments.

issueTypeChanged()

Searches issues in which their type have been changed from one issue type to another. Additionally, you can further refine your query by specifying either or both the source and destination issue type.

Note:

You can use the asterisk symbol (*), in both source and destination issue type arguments as a keyword for refering to 'any issue type'.

JQL Function Reference