JQL Keywords
When searching in Advanced mode, the JQL Keywords described in this section can be used in the Issue Search screen. To help your understanding of JQL keywords, we've outlined each one with an explanation and example.
JQL keywords will not work until an initial metadata synchronization has been performed, as described in JQL Keyword Synchronization.
Attachments
numberOfAttachments
This keyword can be used to find issues that have a certain number of file attachments.
status = Closed AND numberOfAttachments > 3
This keyword can be used with the numeric comparison operators.
attachmentType
This keyword can be used to search for issues that have a particular file type attached to them. File types are determined by the file extension e.g. a file called screenshot.png has a file type of 'png'.
numberOfAttachments > 0 AND attachmentType = 'jpg'
issuetype = Invoice AND attachmentType in ('pdf', 'docx', 'xls')
This keyword can use the=
,!=
,in
andnot in
operators.
firstAttachmentDate
The firstAttachmentDate keyword can be used to find issues based on the date that the first attachment was added:
project = STORAGE AND firstAttachmentDate < now()
project = STORAGE AND firstAttachmentDate >= '2016-04-01'
project = STORAGE AND firstAttachmentDate = '2000-01-01'
As you can see from the first example, we can use relative date functions that come built-in to JQL. We can also use the regular numeric comparison operators.
lastAttachmentDate
The lastAttachmentDate keyword can be used to find issues based on the date that the most recent attachment was added:
project = STORAGE AND lastAttachmentDate > startOfMonth()
In the same way as firstAttachmentDate, this keyword can use the numeric comparison operators and the relative date JQL functions.
fileAttachedBy
This keyword can be used to find issues that have a file attached by a particular user. You must use the username of the user you are interested in.
reporter = currentUser() AND fileAttachedBy = "jbloggs"
This keyword can also be compared using the !=
, in
and not in
operators.
Comments
numberOfComments
The numberOfComments keyword can be used to find issues with a particular number of comments:
resolution = 'Wont Fix' AND numberOfComments > 0
This keyword can be used with the numeric comparison operators.
firstCommentedDate
The firstCommentedDate keyword can be used to search for issues based on the date of the first comment.
created > startOfDay() AND firstCommentedDate = now()
priority = High AND firstCommentedDate < startOfWeek()
This keyword can be used with the JQL relative date functions and also the numeric comparison operators.
lastCommentedDate
The lastCommentedDate keyword can be used to search for issues based on the date of most recent comment.
assignee = currentUser() AND lastCommentedDate < startOfMonth()
status = 'In Progress' AND lastCommentedDate = '2016-10-14'
This keyword can be used with the JQL relative date functions and also the numeric comparison operators.
commentedOn
This keyword can be used to find issues that had a comment made on them on a particular date.
commentedOn = '2016-02-14' AND project = VALENTINE
project = APOLLO AND assignee = narmstrong AND commentedOn in ('1969-07-20', '1969-07-21')
The commentedOn keyword can be used with the following operators:in
,not in
,!=
AND=
commentedBy
The commentedBy keyword can be used to search for issues that have comments on them made by a particular user. You must specify a username:
reporter = currentUser() AND commentedBy = 'jsmith'
This keyword can be used with the following operators: in
, not in
, !=
AND =
commentVisibleRole
The commentVisibleRole keyword is used to find issues that have comments on them that are restricted to only be visible to users within a particular project role.
project = SUPPORT AND commentVisibleRole = 'Service Desk Team'
priority = Highest AND commentVisibleRole in ('Project Administrator', 'Developer')
This keyword can be used with the following operators: =
, !=
, in
and not in
commentVisibleGroup
The commentVisibleGroup keyword is used to find issues that have comments on them that are restricted to only be visible to members of a particular group.
project = TOPSECRET AND commentVisibleGroup = 'Secret Agents'
This keyword can be used with the following operators: =
, !=
, in
and not in
lastCommentBy
This keyword can be used to search for issues based on the user who made the most recent comment. You must provide a username:
reporter = 'jsmith' AND lastCommentBy = currentUser()
assignee = currentUser() AND lastCommentBy in ('jbond', 'jbauer')
This keyword can be used with the following operators: =
, !=
, in
and not in
lastCommentVisibleRole
This keyword can be used to search for issues based on whether the most recent comment was restricted to only be viewed by members of a particular project role:
project = SUPPORT AND lastCommentVisibleRole = 'Developers'
This keyword can be used with the following operators: =
, !=
, in
and not in
lastCommentVisibleGroup
This keyword can be used to search for issues based on whether the most recent comment was restricted to only be viewed by members of a particular user group:
priority = Low AND lastCommentVisibleGroup = 'Management'
This keyword can be used with the following operators: =
, !=
, in
and not in
Linked Issues
numberOfLinks
This keyword is used to retrieve issues that have a certain number of issue links.
status = Open AND numberOfLinks = 3
We can use numeric comparison operators like >
, <
, !=
, <=
and >=
as well as =
.
numberOfLinks > 5 AND numberOfLinks <= 10
issueLinkType
This alias can be used to search for issues based on the type of issue links that they have. The link type is the name that describes the link, regardless of its direction e.g. Blocks, Cloners, Duplicate.
project = SALES AND issueLinkType = 'Blocks'
We can also use the JQL keyword in
to search for issues that have any of the specified link types:
assignee = currentUser() AND issueLinkType in ('Blocks', 'Duplicate')
The JQL operators !=
and not in
also work with this keyword.
hasLinks
This keyword can be used to search for issues that have links in a particular direction. This keyword can be compared against a link name e.g. "is blocked by", "duplicates", "relates to"
type = Improvement AND hasLinks = "relates to"
In the same way as issueLinkTypes, you can use the operators: =
, !=
, in
and not in.
Subtasks
numberOfSubtasks
The numberOfSubtasks keyword can be used to search for issues with a certain number of subtasks.
issuetype = Task AND numberOfSubtasks > 10
This keyword can also use the numeric comparison operators.
Worklogs
worklogVisibleRole
This keyword can be used to find issues that have time logged against them that is restricted so it is only visible to other users in a specific project role.
timespent > 8h AND worklogVisibleRole = 'Project Administrator'
This keyword can also use the !=
, in
and not in
operators.
worklogVisibleGroup
The worklogVisibleGroup keyword can be used to find issues that have time logged against them that is restricted so it is only visible to other users in a user group.
project = DEV AND worklogVisibleGroup = 'jira-developers'
This keyword can also use the !=
, in
and not in
operators.