JQL Search Extensions (Server/Data Center)

Support for Atlassian Server Products (and apps like JQL Search Extensions for Jira Server) is ending in February 2024.
Are you planning a migration to Cloud? Make sure you don't lose your saved JQL Search Extensions queries and filters in the process. Check out our migration guide for information on how identify and rebuild your queries in JQL Search Extensions for Jira Cloud. Contact our support team if you have any questions.





 
 


The instructions on this page describe how to execute a JQL search using extensions from JQL Search Extensions Add-ons

JQL Search Extensions are accessible from searching Advanced mode.




Projects

movedIssues(projectKey)

Finds issues which moved from the project in argument. For instance: 

project = SEARCHSERVER AND issue in movedIssues("SEARCHCLOUD")

Will find all issues which are in project SEARCHSERVER and moved from project SEARCHCLOUD. 

Fields

fieldMatch(jql-subquery, field-name, regexp)

FieldMatch can be used to find issues with field matching the regular expression in the argument. For instance:

issue in fieldMatch("project = SEARCH", "description", "find issues mat*")

Will find all issues with description field matching the regular expression find issues mat*

The asterisk * matches any alphanumeric characters. It is also possible to use all regular expression constructs, such as

issue in fieldMatch("project = SEARCH", "description", "find issu[a-z]{2} mat*") 
issue in fieldMatch("project = SEARCH", "my custom field", "f[a-z]{5}

This function can be used with any system or custom field.

For documentation of of regular expression constructs, please follow this link 


fieldsHaveSameValue(jql-subquery, field-name1, field-name2,...,field-name-x)

FieldsHaveSameValue can be used to find issues with fields having the same value. For instance: 

issue in fieldsHaveSameValue("version", "my-custom-field-with-version")

It is possible to use multiple fields in the expression, such as below: 

issue in fieldsHaveSameValue("version", "my-custom-field-with-version", "one-more-field-with-version")

It is also possible to add JQL subquery to the expression. It will narrow the search only to those issues which match the subquery (in the example below, are in the project DEMO and have the same value of fields version and my-custom-field-with-version).

issue in fieldsHaveSameValue("project = SEARCH", "version", "my-custom-field-with-version")

In case fields contain multiple values (for instance, there are many values of field version) the function will expect all values to be equal (but doesn't expect the same order). 

Attachments

AttachedAfter

AttachedAfter can be used to find issues with attachments added after particular date. Expected date format is yyyy-MM-dd (year dash month dash day of the month) or dd-MM-YYYY

issue in attachedAfter("2018-05-26")


AttachedBefore

AttachedBefore can be used to find issues with attachments added before particular date. Expected date format is yyyy-MM-dd (year dash month dash day of the month) or dd-MM-YYYY

issue in attachedBefore("2018-05-26")


AttachedBetween

AttachedBetween can be used to find issues with attachments added between particular dates. Expected date format is yyyy-MM-dd (year dash month dash day of the month) or dd-MM-YYYY

issue in attachedBetween("2018-05-26", "2018-07-01")


AttachedOnDate

AttachedOnDate can be used to find issues with attachments added on particular dates. Expected date format is yyyy-MM-dd (year dash month dash day of the month) or dd-MM-YYYY

issue in attachedOnDate("2018-05-26")


AttachedByUser

AttachedByUser can be used to find issues with attachments added by a particular user (username is expected)

issue in attachedByUser("filip")


This function can be used together with membersOf to find issues attached by users who are members of a particular group.

issue in attachedByUser("membersOf(employees)")


AttachmentExtension

AttachmentExtension can be used to find issues with attachments with particular extension.

issue in attachmentExtension("pdf")


AttachmentName

AttachmentName can used to find issues with attachments with particular name.

issue in attachedName("documentation")


AttachmentsCountEqualTo

AttachmentsCountEqualTo can be used to find issues with particular number of attachments.

issue in attachmentsCountEqualTo(2)


AttachmentsCountGreaterThan

AttachmentsCountGreaterThan can be used to find issues with number of attachments greater than provided number

issue in attachmentsCountGreaterThan(1)


AttachmentsCountLessThan

AttachmentsCountLessThan can be used to find issues with number of attachments lesser than provided number

issue in attachmentsCountLessThan(2)


Comments

CommentedAfter

CommentedAfter can be used to find issues with comments added after particular date. Expected date format is yyyy-MM-dd (year dash month dash day of the month) or dd-MM-YYYY

issue in commentedAfter("2018-05-26")


CommentedBefore

CommentedBefore can be used to find issues with comments added before particular date. Expected date format is yyyy-MM-dd (year dash month dash day of the month) or dd-MM-YYYY

issue in commentedBefore("2018-05-26")


CommentedBetween

CommentedBetween can be used to find issues with comments added between particular dates. Expected date format is yyyy-MM-dd (year dash month dash day of the month) or dd-MM-YYYY

issue in commentedBetween("2018-05-26", "2018-07-01")


CommentedOnDate

CommentedOnDate can be used to find issues with comments added on particular dates. Expected date format is yyyy-MM-dd (year dash month dash day of the month) or dd-MM-YYYY

issue in commentedOnDate("2018-05-26")


CommentedByUser

CommentedByUser can be used to find issues with comments added by a particular user (username is expected)

issue in commentedByUser("filip")

This function can be used together with membersOf to find issues commented by users who are members of a particular group.

issue in commentedByUser("membersOf(employees)")


CommentsCountEqualTo

CommentsCountEqualTo can be used to find issues with particular number of comments.

issue in commentsCountEqualTo(2)


CommentsCountGreaterThan

CommentsCountGreaterThan can be used to find issues with number of comments greater than provided number

issue in commentsCountGreaterThan(2)


CommentsCountLessThan

CommentsCountLessThan can be used to find issues with number of comments lesser than provided number

issue in commentsCountLessThan(2)


Versions

AffectedVersionsArchivedCountLessThan

FixVersionsArchivedCountLessThan

AffectedVersionsArchivedCountLessThan and FixVersionsArchivedCountLessThan can be used to find issues with number of archived versions less than provided number.

issue in affectedVersionsArchivedCountLessThan(2) OR issue in fixVersionsArchivedCountLessThan(2)


AffectedVersionsArchivedCountEqualTo

FixVersionsArchivedCountEqualTo

AffectedVersionsArchivedCountEqualTo and FixVersionsArchivedCountEqualTo can be used to find issues with number of archived versions equal to provided number.

issue in affectedVersionsArchivedCountEqualTo(2) OR issue in fixVersionsArchivedCountEqualTo(2)


AffectedVersionsArchivedCountGreaterThan

FixVersionsArchivedCountGreaterThan

AffectedVersionsArchivedCountGreaterThan and FixVersionsArchivedCountGreaterThan can be used to find issues with number of archived versions greater than provided number.

issue in affectedVersionsArchivedCountGreaterThan(2) OR issue in fixVersionsArchivedCountGreaterThan(2)


AffectedVersionsCountLessThan

FixVersionsCountLessThan

AffectedVersionsCountLessThan and FixVersionsCountLessThan can be used to find issues with number of versions less than provided number.

issue in affectedVersionsCountLessThan(2) OR issue in fixVersionsCountLessThan(2)


AffectedVersionsCountEqualTo

FixVersionsCountEqualTo

AffectedVersionsCountEqualTo and FixVersionsCountEqualTo can be used to find issues with number of versions equal to provided number.

issue in affectedVersionsCountEqualTo(2) OR issue in fixVersionsCountEqualTo(2)


AffectedVersionsCountGreaterThan

FixVersionsCountGreaterThan

AffectedVersionsCountGreaterThan and FixVersionsCountGreaterThan can be used to find issues with number of versions greater than provided number.

issue in affectedVersionsCountGreaterThan(2) OR issue in fixVersionsCountGreaterThan(2)


AffectedVersionsOpenedCountLessThan

FixVersionsOpenedCountLessThan

AffectedVersionsOpenedCountLessThan and FixVersionsOpenedCountLessThan can be used to find issues with number of opened versions less than provided number.

issue in affectedVersionsOpenedCountLessThan(2) OR issue in fixVersionsOpenedCountLessThan(2)


AffectedVersionsOpenedCountEqualTo

FixVersionsOpenedCountEqualTo

AffectedVersionsOpenedCountEqualTo and FixVersionsOpenedCountEqualTo can be used to find issues with number of opened versions equal to provided number.

issue in affectedVersionsOpenedCountEqualTo(2) OR issue in fixVersionsOpenedCountEqualTo(2)


AffectedVersionsOpenedCountGreaterThan

FixVersionsOpenedCountGreaterThan

AffectedVersionsOpenedCountGreaterThan and FixVersionsOpenedCountGreaterThan can be used to find issues with number of opened versions greater than provided number.

issue in affectedVersionsOpenedCountGreaterThan(2) OR issue in fixVersionsOpenedCountGreaterThan(2)


AffectedVersionsReleasedCountLessThan

FixVersionsReleasedCountLessThan

AffectedVersionsReleasedCountLessThan and FixVersionsReleasedCountLessThan can be used to find issues with number of released versions less than provided number.

issue in affectedVersionsReleasedCountLessThan(2) OR issue in fixVersionsReleasedCountLessThan(2)


AffectedVersionsReleasedCountEqualTo

FixVersionsReleasedCountEqualTo

AffectedVersionsReleasedCountEqualTo and FixVersionsReleasedCountEqualTo can be used to find issues with number of released versions equal to provided number.

issue in affectedVersionsReleasedCountEqualTo(2) OR issue in fixVersionsReleasedCountEqualTo(2)


AffectedVersionsReleasedCountGreaterThan

FixVersionsReleasedCountGreaterThan

AffectedVersionsReleasedCountGreaterThan and FixVersionsReleasedCountGreaterThan can be used to find issues with number of released versions greater than provided number.

issue in affectedVersionsReleasedCountGreaterThan(2) OR issue in fixVersionsReleasedCountGreaterThan(2)


FixVersionReleasedOnDate

AffectedVersionReleasedOnDate

FixVersionReleasedOnDate and AffectedVersionReleasedOnDate can be used to find issues with versions released on particular date.

issue in fixVersionReleasedOnDate("2018-05-26") OR issue in affectedVersionReleasedOnDate("2018-05-26")


FixVersionReleasedBetweenDates

AffectedVersionReleasedBetweenDates

FixVersionReleasedBetweenDates and AffectedVersionReleasedBetweenDates can be used to find issues with versions released between provided dates.

issue in fixVersionReleasedBetweenDates("2018-05-26", "2018-07-01") OR issue in affectedVersionReleasedBetweenDates("2018-05-26", "2018-07-01")


FixVersionReleasedAfterDate

AffectedVersionReleasedAfterDate

FixVersionReleasedAfterDate and AffectedVersionReleasedAfterDate can be used to find issues with versions released after particular date.

issue in fixVersionReleasedAfterDate("2018-05-26") OR issue in affectedVersionReleasedAfterDate("2018-05-26")


FixVersionReleasedBeforeDate

AffectedVersionReleasedBeforeDate

FixVersionReleasedBeforeDate and AffectedVersionReleasedBeforeDate can be used to find issues with versions released before particular date.

issue in fixVersionReleasedBeforeDate("2018-05-26") OR issue in affectedVersionReleasedBeforeDate("2018-05-26")


LatestReleaseVersionForProject

LatestReleaseVersionForProject can be used to find issues with versions which are the most recently released version for the project. 

fixVersion in latestReleaseVersionForProject("SEARCH")


LinksCountLessThan

LinksCountLessThan can be used to find issues with number of links less than provided number.

issue in linksCountLessThan(2)


LinksCountGreaterThan

LinksCountGreaterThan can be used to find issues with number of links greater than provided number.

issue in linksCountGreaterThan(2)


LinksCountEqualTo

LinksCountEqualTo can be used to find issues with number of links equal to the provided number.

issue in linksCountEqualTo(2)


LinkedBy([linktype], jql-query or issuekeys)

Search for issues that are linked by given issues or by issues matched by the given JQL. Link type can be provided to limit the search to particular link type or types. Many link types can be specified in a single function call.

The first optional list of arguments specifies link types. They are followed by either JQL or a list of issue keys.

EXAMPLES

Find issues which are linked by JQL-3 or JQL-5. 

issue in linkedBy(JQL-3, JQL-5)


Find issues which are linked by issues from project JQL with priority = Highest. 

issue in linkedBy("project = JQL AND priority = Highest")


Find issues which are blocked by issue JQL-3 or JQL-5. 

issue in linkedBy("is blocked by", "JQL-3", JQL-5)


Find issues which are blocked by issues from project JQL with priority = Highest. 

issue in linkedBy("is blocked by", "is related to", "project = JQL AND priority = Highest")


Links(jql-query, link type)

Search for issues which links issues matched by JQL. Link type can be provided to limit the search to particular link type or types. Many link types can be specified in single function call.

EXAMPLES

Find issues which link at least one issue from project JQL. 

issue in links("project = JQL")


EXAMPLES

Find issues which "blocks" at least one issue from project JQL. 

issue in links("blocks", "project = JQL")


LinksIssue

Search for issues which links a particular issue. 

EXAMPLES

Find issues which link JQL-3 or JQL-5

issue in linksIssue(JQL-3, JQL-5)


LinkType

Search for issues which have a particular link type. 

EXAMPLES

Find all issues which are blocked by another issue

issue in linkType("is blocked by")


LinkedIssueStatus

Search for issues which are linked or link issues with a particular status. 

EXAMPLES

Find all issues which are linked by issues in "To Do" status. 

issue in linkedIssueStatus("To Do")


LinkedIssueStatusCategory

Search for issues which are linked or link issues with a particular status category. 

EXAMPLES

Find all issues which are linked or link issues in status category "Done"

issue in linkedIssueStatusCategory("Done")


LinkedIssueType

Search for issues which are linked or link issue with a particular issue type. 

EXAMPLES

Find all issues which are linked by Bugs. 

issue in linkedIssueType("Bug")


LinkedIssuePriority

Search for issues which are linked or links issues with a particular priority. 

EXAMPLES

Find all issues which are linked by "blockers"

issue in linkedIssuePriority("Blocker")


LinkedByIssueProject

Search for issues which are linked or links issues from a particular project. 

EXAMPLES

Find all issues which are linked or links project JQL

issue in linkedByIssueProject("JQL")

Updated

UpdatedByUserCountLessThan

UpdatedByUserCountLessThan can be used to find issues updated by less than provided number of users.

issue in updatedByUserCountLessThan(2)


UpdatedByUserCountGreaterThan

UpdatedByUserCountGreaterThan can be used to find issues updated by greater than provided number of users.

issue in updatedByUserCountGreaterThan(2)


UpdatedByUserCountEqualTo

UpdatedByUserCountEqualTo can be used to find issues updated by particular number of users.

issue in updatedByUserCountEqualTo(2)


UpdatedByUser

Search for issues which were updated by a particular user/users. 

EXAMPLES

Find issues which were updated by Helen or Daniel:

issue in updatedByUser("helen", "daniel")
issue in updatedByUser("membersOf(employees)")


TransitionedByUser

Search for issues which were transitioned by a particular user/users. 

EXAMPLES

Find issues which were transitioned by Helen or Daniel:

issue in transitionedBy in ("daniel", "helen")
issue in transitionedBy("membersOf(employees)")


LoggedTimeByUser

Search for issues on which particular users reported time. 

EXAMPLES

Find issues on which Helen or Daniel reported time. 

issue in loggedTimeByUser("daniel", "helen")
issue in loggedTimeByUser("membersOf(employees)"


Subtasks

SubTaskOf(jql-query)

Search for subtasks of issues matching JQL. 

EXAMPLES
Find subtasks of parents with priority = Blocker. 

issue in subtaskOf("priority = Blocker")


ParentOf(jql-query)

Search for parents of issues matching JQL. 

EXAMPLES

Find parents of subtasks with issue type = Bug. 

issue in parentOf("issueType = Bug")


SubtaskCountLessThan

SubtaskCountGreaterThan can be used to find issues with number of subtasks lesser than provided number.

issue in subtaskCountLessThan(2)


SubtaskCountGreaterThan

SubtaskCountGreaterThan can be used to find issues with number of subtasks greater than provided number.

issue in subtaskCountGreaterThan(2)


SubtaskCountEqualTo

SubtaskCountEqualTo can be used to find issues with a particular number of subtasks.

issue in subtaskCountEqualTo(2)


SubTaskKey

Search for issues that have subtasks with a particular key. 

EXAMPLES 

Find issues with subtask with key ABC-123

issue in subtaskKey("ABC-123")


SubtaskPriority

Search for issues that have subtasks with a particular Priority.

EXAMPLES 

Find issues with subtasks which have a "Blocker" priority. 

issue in subTaskPriority("Blocker")


SubTaskType

Search for issues that have subtasks with a particular Issue Type.

EXAMPLES 

Find issues which have "Test" issue type. 

issue in subTaskType("Test")


SubTaskStatus

Search for issues that have subtasks with a particular Status.

EXAMPLES 

Find issues which have subtasks "In Progress". 

issue in subTaskStatus("In Progress")


SubTaskStatusCategory

Search for issues that have subtasks with a particular Status Category.

EXAMPLES 

Find issues which have "To Do" status category.

issue in subTaskStatusCategory("To Do")


Software Development

OpenPullRequestsCount

Search for issues that have particular number of open pull requests. This value is present if JIRA is connected to Bitbucket. 

SUPPORTED OPERATORS 

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

EXAMPLES

Find issues with open pull requests.

openPullRequestsCount > 0


CommitsCount

Search for issues that have particular number of commits. This value is present if JIRA is connected to Bitbucket or Crucible/Fisheye.

SUPPORTED OPERATORS 

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

EXAMPLES

Find issues with commits.

commitsCount > 0


FailingBuildsCount

Search for issues that have particular number of failed builds. This value is present if JIRA is connected to Bamboo. 

SUPPORTED OPERATORS 

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

EXAMPLES

Find issues with failing builds. 

failingBuildsCount > 0


OpenReviewsCount

Search for issues that have particular number of open reviews. This value is present if JIRA is connected to Bitbucket or Crucible/Fisheye.

SUPPORTED OPERATORS 

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

EXAMPLES

Find issues with failing builds. 

openReviewsCount > 0


PullRequestsCount

Search for issues that have particular number of pull requests. This value is present if JIRA is connected to Bitbucket. 

SUPPORTED OPERATORS 

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

EXAMPLES

Find issues with pull requests. 

pullRequestsCount > 0


ReviewsCount

Search for issues that have particular number of reviews. This value is present if JIRA is connected to Bitbucket or Crucible/Fisheye.

SUPPORTED OPERATORS 

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(tick)

(tick)

(error)

(error)

(tick)

(tick)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

EXAMPLES

Find issues with pull requests. 

reviewsCount > 0


Issue hierarchy 

AllIssuesInEpic(jql-query or issuekey)

Search for all epics, issues in epics and subtasks of these issues. 

SUPPORTED OPERATORS 

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

EXAMPLES

Find issues and subtasks of epic "SEARCH-12"

issue in allIssuesInEpic(SEARCH-12)

Find issues and subtasks of epics "SEARCH-12, SEARCH-13"

issue in allIssuesInEpic(SEARCH-12, SEARCH-13)

Find issues and subtasks of epics and issues for fixVersion = 1.0 in project SEARCH 

issue in allIssuesInEpic("fixVersion = 1.0 AND project = SEARCH")


EpicOf(jql-query)

Find all epics which have issues matching JQL query. 

SUPPORTED OPERATORS 

=

!=

~

!~

>

>=

<

<=

IS

IS NOT

IN

NOT IN

WAS

WAS IN

WAS NOT

WAS NOT IN

CHANGED

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(tick)

(error)

(error)

(error)

(error)

(error)

EXAMPLES

Find all epics with unresolved, high-priority stories 

issue in epicOf("issuetype = Story and resolution is empty and priority = High")

Find all epics for the fixVersion 1.0 in project SEARCH

issue in epicOf("fixVersion = 1.0 and project = SEARCH")


User

UserMatch(regular-expression)

UserMatch can be used to find issues with user fields matching the regular expression in the argument. For instance:

assignee in userMatch("danie*")

Will find all issues with assignee username matching the regular expression danie*, such as daniel, danied, danie3 etc.

The asterisk '*' matches any alphanumeric characters. It is also possible to use all regular expression constructs, such as

assignee in userMatch("danie[a-z]") // matching danie followed by a single lowercase alphabet character
assignee in userMatch("dan[a-z]{3}") // matching dan followed by three lowercase alphabet characters

This function can be used for any user field. For documentation of of regular expression constructs, please follow this link