Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,463,277
Community Members
 
Community Events
176
Community Groups

JQL или как найти иголку в стоге Jira

Edited

Более полная информация о синтаксисе языка JQL приведена в документации Jira и Script Runner (на английском языке).

Функции

Функция

 

Описание

 

Поддерживаемые поля

 

Операторы

Пример

 

Поддерживаемые

Неподдерживаемые

membersOf()

Возвращает список пользователей, которые входят в указанную группу AD
membersOf(Group)

Assignee, Reporter, Voter, Watcher, custom fields of type User

IN, NOT IN

=, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки, исполнитель которых входит в группу GroupName:
assignee in (membersOf("GroupName"))

closedSprints(),
openSprints()

Возвращает список закрытых/открытых спринтов
closedSprints(), openSprints()

Sprint

IN, NOT IN

=, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти все заявки в завершенных спринтах:
sprint in closedSprints()
Найти все заявки в открытых спринтах:
sprint in openSprints()

componentsLeadByUser()

Возвращает список компонентов, владельцем которых является указанный пользователь. Если пользователь не указан, используется текущий пользователь
componentsLeadByUser(), componentsLeadByUser(username)

Component

IN, NOT IN

=, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки со статусом "In Progress", относящиеся к компоненту, владельцем которых является текущий пользователь:
component in componentsLeadByUser() AND status = "In Progress"

currentLogin(), 
lastLogin()

Возвращает время начала текущей или предыдущей сессии текущего пользователя
currentLogin(), lastLogin()

Created, Due, Resolved, Updated, custom fields of type Date/Time

=, !=, >, >=, <, <=WAS*, WAS IN*, WAS NOT*, WAS NOT IN*, CHANGED** Только в предикате

~, !~, IS, IS NOT, IN, NOT IN

Найти заявки, которые были созданы во время текущей сессии:
created > currentLogin()
Найти заявки, которые были созданы во время предыдущей сессии или позже:
created > lastLogin()

currentUser()

Текущий пользователь.
Данная функция может быть использована только авторизованным пользователем. Если фильтр будет использоваться анонимными пользователями, не используйте эту функцию.
currentUser()

Assignee, Reporter, Voter, Watcher, custom fields of type User

=, !=

~, !~, >, >=, <, <=, IS, IS NOT, IN, NOT IN, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки, которые назначены текущему пользователю:
assignee = currentUser()
Найти заявки, для которых текущий пользователь является создателем, но не исполнителем
reporter = currentUser() AND (assignee != currentUser() OR assignee is EMPTY)

earliestUnreleasedVersion()

Самая ранняя не выпущенная версия указанного проекта
earliestUnreleasedVersion(project)

AffectedVersion, FixVersion, custom fields of type Version

IN, NOT IN

=, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки, у которых FixVersion является самой ранней не выпущенной версии проекта ProjectName:
fixVersion = earliestUnreleasedVersion(ProjectName)
Найти заявки, которые относятся к самой ранней не выпущенной версии проекта ProjectName:
affectedVersion = earliestUnreleasedVersion(ProjectName) or fixVersion = earliestUnreleasedVersion(ProjectName)

endOfDay(),
endOfMonth(),
endOfWeek(),
endOfYear(),

Окончание текущего дня (месяца, недели, года).
endOfDay(), endOfDay("inc"), endOfMonth(), endOfMonth("inc"), endOfWeek(), endOfWeek("inc"), endOfYear(), endOfYear("inc")

Created, Due, Resolved, Updated, custom fields of type Date/Time

 =, !=, >, >=, <, <=WAS*, WAS IN*, WAS NOT*, WAS NOT IN*, CHANGED** Только в предикате

 ~, !~, IS, IS NOT, IN, NOT IN

Найти заявки, которые должны быть выполнены до конца текущего дня: due < endOfDay()
До конца следующей недели:
due < endOfWeek("+1")
До 15-го числа следующего месяца: due < endOfMonth("+15d")

issueHistory()

Список недавно просмотренных заявок
issueHistory()

Issue

IN, NOT IN

=, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти недавно просмотренные заявки, назначенные текущему пользователю:
issue in issueHistory() AND assignee = currentUser()

latestReleasedVersion()

Последняя выпущенная версия указанного проекта.
latestReleasedVersion(project)

AffectedVersion, FixVersion, custom fields of type Version

 IN, NOT IN

 =, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки, у которых FixVersion является последней выпущенной версией проекта ProjectName:
fixVersion = latestReleasedVersion(ProjectName)
Найти заявки, которые относятся к последней выпущенной версии проекта ProjectName:
affectedVersion = latestReleasedVersion(ProjectName) or fixVersion = latestReleasedVersion(ProjectName)

linkedIssues()

Список заявок, связанных с указанной заявкой. Список можно ограничить ссылками определенного типа.
Внимание: LinkType чувствителен к регистру.

linkedIssues(issueKey), linkedIssues(issueKey, linkType)

Issue

IN, NOT IN

=, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки, которые связаны с определенной заявкой: issue in linkedIssues(XXX-1000)
Найти заявки, которые связаны с определенной заявкой указанным типом связи: issue in linkedIssues(XXX-1000, "is mentioned by")

 now()

Текущие дата и время
now()

Created. Due, Resolved, Updated, custom fields of type Date/Time

 =, !=, >, >=, <, <=WAS*, WAS IN*, WAS NOT*, WAS NOT IN*, CHANGED** Только в предикате

 ~, !~, IS, IS NOT, IN, NOT IN

Найти просроченные заявки:
duedate < now() AND status not in (Закрыт, Решенные)

 projectsLeadByUser()

Возвращает список проектов, владельцем которых является указанный пользователь. Если пользователь не указан, используется текущий пользователь
projectsLeadByUser(), projectsLeadByUser(username)

 Project

 IN, NOT IN

 =, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти открытые заявки в проектах, владельцем которых является текущий пользователь:
project in projectsLeadByUser() AND status = "In Progress"

projectsWhereUserHasPermission()

Найти заявки в проектах, в которых у текущего пользователя есть указанное право доступа
projectsWhereUserHasPermission(permission)

Project

IN, NOT IN

=, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки в статусе "In Progress" в проектах, в которых у текущего пользователя есть право доступа "Resolve Issues":
project in projectsWhereUserHasPermission("Resolve Issues") AND status = "In Progress"

projectsWhereUserHasRole()

Найти заявки в проектах, в которых у текущего пользователя есть указанная роль
projectsWhereUserHasRole(rolename)

Project

IN, NOT IN

=, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки в проектах, в которых у текущего пользователя есть указанное роль Developers:
project in projectsWhereUserHasRole("Developers") AND status = "In Progress"

releasedVersions()

Список выпущенных версий указанного проекта. Если проект не указан, отображаются выпущенные версии всех проектов
releasedVersions(), releasedVersions(project)

AffectedVersion, FixVersion, custom fields of type Version

 IN, NOT IN

 =, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки, чьи FixVersion являются одной из выпущенных версий проекта ProjectName:
fixVersion in releasedVersions(ProjectName)
Найти заявки, которые относятся к одной из выпущенных версий проекта ProjectName:
affectedVersion in releasedVersions(ProjectName)) or (fixVersion in releasedVersions(ProjectName))

standardIssueTypes()

Список стандартных типов заявок (не включает подзадачи).
standardIssueTypes()

Type

IN, NOT IN

=, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки только со стандартными типами:
issuetype in standardIssueTypes()

startOfDay(),
startOfMonth(),
startOfWeek(),
startOfYear()

Начало текущего дня (месяца, недели, года).
startOfDay(), startOfDay("inc"), startOfMonth(), startOfMonth("inc"), startOfWeek(), startOfWeek("inc"), startOfYear(), startOfYear("inc")

Created, Due, Resolved, Updated, custom fields of type Date/Time

=, !=, >, >=, <, <=WAS*, WAS IN*, WAS NOT*, WAS NOT IN*, CHANGED** Только в предикате

~, !~, IS, IS NOT, IN, NOT IN

Найти заявки, созданные с начала текущего дня:
created > startOfDay()
Найти заявки, созданные с начала прошлой недели:
created > startOfWeek("-1")
Найти заявки, созданные с 15-го числа этого месяца:
created > startOfMonth("+14d")

subtaskIssueTypes()

Список типов подзадач
subtaskIssueTypes()

Type

IN, NOT IN

=, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки с типами, которые соответствуют подзадачам:
issuetype in subtaskIssueTypes()

unreleasedVersions()

Список невыпущенных версий указанного проекта. Если проект не указан, отображаются невыпущенные версии всех проектов
unreleasedVersions(), unreleasedVersions(project)

AffectedVersion, FixVersion, custom fields of type Version

IN, NOT IN

=, !=, ~, !~, >, >=, <, <=,  IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки, чья FixVersion является одной из невыпущенных версий проекта ProjectName:
fixVersion in unreleasedVersions(ProjectName)
Найти заявки, которые касаются одной из не выпущенных версий проекта ProjectName:

affectedVersion in unreleasedVersions(ProjectName)

watchedIssues()

Список заявок, в которых текущий пользователь является наблюдателем
watchedIssues()

Issue

IN, NOT IN

=, !=, ~, !~, >, >=, <, <=, IS, IS NOT, WAS, WAS IN, WAS NOT, WAS NOT IN, CHANGED

Найти заявки, в которых текущий пользователь является наблюдателем:
issue in watchedIssues()

Script Runner

Функции

Функция

Описание 

Пример

hasComments()

Возвращает список заявок с указанным количеством комментариев. Если количество комментариев не указано, список содержит заявки с хотя бы одним комментарием
hasComments()

Найти заявки с тремя комментариями:
issueFunction in hasComments(3)
с пятью или более комментариями:
issueFunction in hasComments('+5')
с тремя или менее комментариями:
issueFunction in hasComments('-3')

lastComment()

Возвращает список заявок, последний комментарий в которых добавлен в указанное время или указанной ролью
lastComment()

Найти заявки, последний комментарий в которых оставлен не участником с ролью Developers:
issueFunction not in lastComment("inRole Developers")
Найти заявки, в которых последний комментарий добавлен более четырех часов назад:
issueFunction in lastComment("before -4h") 

lastUpdated()

Возвращает список заявок, последнее обновление которых выполнено сотрудником с указанной учетной записью (by), ролью (inRole) или группой (inGroup)
lastUpdated()

Найти заявки, которые последний раз были обновлены сотрудником с ролью Administrators:
issueFunction in lastUpdated('inRole Administrators')

hasAttachments()

Возвращает список заявок с вложениями указанного типа
hasAttachments()

 

Найти заявки с вложениями:
issueFunction in hasAttachments()
Найти заявки с вложениями с расширением pdf:
issueFunction in hasAttachments("pdf")

fileAttached()

Возвращает список заявок с вложениями прикрепленными кем-то и в течение времени
fileAttached()

Поиск заявок с вложениями, добавленными пользователем UserName в течение последних 4 недель:
issueFunction in fileAttached("after -4w by UserName")

worklogged()

Возвращает список заявок с записями о проделанной работе, оставленными указанными пользователями в указанный промежуток времени
worklogged()

Поиск заявок с записью о проделанной работе пользователем TruVN на 30 января 2017 года:
issueFunction in worklogged("on 2017/01/30 by TruVN")
Найти все журналы работы роли разработчиков в предыдущем календарном месяце:
issueFunction in worklogged("after startOfMonth(-1) before endOfMonth(-1) inRole Developers")

dateCompare()

Позволяет сравнивать две даты в рамках подзапроса
dateCompare(Subquery, date comparison expression)

Найти все заявки, которые были решены позднее их срока:
issueFunction in dateCompare("", "resolutionDate > dueDate")

hasSubtasks()

Возвращает список заявок с подзадачами
hasSubtasks()

Найти заявки с подзадачами:
issueFunction in hasSubtasks()

subtasksOF()

Возвращает список подзадач, удовлетворяющих запросу
subtasksOF()

Найти подзадачи в указанном проекте
issueFunction in subtasksOf("project = ProjectName")

parentsOF()

Возвращает список родительских задач, удовлетворяющих запросу
parentsOF()

Найти все родительские задачи, в которых текущий пользователь является ответственным открытой подзадачи:
issueFunction in parentsOf("resolution is empty and assignee = currentUser()")

linkedIssuesFromQuery()

Возвращает список заявок, которые связаны указанным образом
linkedIssuesFromQuery()

Найти все заявки, слинкованные любой связью во всех заявках проекта ProjectName с типом Доработка:
issue in linkedIssuesFromQuery("project = ProjectName AND issuetype = Доработка")

linkedIssuesOf()

Возвращает список заявок, связанных с указанными
linkedIssuesOf()

Найти все нерешенные заявки, которые блокируются проблемами в статусе New:
issueFunction in linkedIssuesOf("status = New", "blocks") and resolution is empty

hasLinks()

Возвращает список заявок, у которых есть связи указанного типа
hasLinks()

У задачи есть связи:
issueFunction in hasLinks()
У заачи есть связи с типом blocks
issueFunction in hasLinks("blocks")

expression()

Позволяет сравнивать значения полей в подзапросе

Найти заявки, где было зарегистрировано больше работы, чем первоначально предполагалось:
issueFunction in expression("", "timespent > originalestimate")

issueFieldMatch()

Выполняет поиск с помощью регулярного выражения

Найти все заявки в проекте ProjectName, у которых описание содержит запись вида ABC0000, где 0000 - любое число:
issueFunction in issueFieldMatch("project = ProjectName", "description", "ABCd{4}")

aggregateExpression()

Аггрегирует указанные данные

Подсчитать оценку на проект ProjectName:
project = ProjectName and issueFunction in aggregateExpression("Total Estimate for all Issues", "originalEstimate.sum()")

Операторы

Оператор

Описание

Пример

=

Оператор "=" означает, что выбранное поле равно указанному значению.

Найти заявки, проект в которых ProjectName:
project = ProjectName или project = ProjectKey

!=

Оператор "!=" означает, что выбранное поле не равно указанному значению.

Найти заявки, в которых Исполнитель не Atlassian_User:
assignee != "DisplayName" или not assignee = UserName, или assignee != UserName
Найти заявки, в которых поле Исполнитель не пустое:
assignee is not empty или assignee != null

> 

Оператор  ">" используется для поиска заявок, где значение указанного поля больше указанного значения.

Найти все просроченные заявки:
duedate < now() and resolution is empty

>=

Оператор ">=" используется для поиска проблем, где значение указанного поля больше или равно указанному значению.

Найти все заявки, созданные в последние пять дней:
created >= "-5d"
Найти все заявки, созданные после 01/01/2017 включительно:
createdDate >= "2017/01/01"

< 

Оператор  "<" используется для поиска заявок, где значение указанного поля меньше указанного значения.

Найти все заявки, где приоритет ниже, чем "Высокий":
priority < Высокий

 <=

 Оператор "<=" используется для поиска заявок, где значение указанного поля больше или равно указанному значению.

Найти все заявки, которые не были обновлены в прошлом месяце (30 дней):
updated <= "-4w 2d"

IN

Оператор "IN" используется для поиска заявок, где значение указанного поля является одним из нескольких заданных значений. Значения задаются в виде списка, разделенного запятыми, круглые скобки.

Найти заявки, входящие в несколько определённых проектов:
project in(ProjectName_1, ProjectName_2, ProjectName_3)

NOT IN

 Оператор "NOT IN" используется для поиска заявок, где значение указанного поля не является одним из нескольких заданных значений.

Найти заявки, в которых исполнителями являются все кроме указанных или поле Исполнитель пустое:
assignee not in (UserName_1, UserName_2) or assignee is empty

~

Оператор "~" используется для поиска проблем, где значение указанного поля соответствует заданному значению. Поиск осуществляется по текстовым полям (Summary, Description, Environment, Comments, пользовательские поля, которые используют поле для поиска текста).

Найти заявки, в тексте которых встречается фраза "необходимо разработать ТЗ":
text ~ "необходимо разработать ТЗ"

!~

Оператор "!~" используется для поиска проблем, где значение указанного поля не соответствует заданному значению. Поиск осуществляется по текстовым полям. (Summary, Description, Environment, Comments, пользовательские поля, которые используют поле для поиска текста).

Найти в проекте ProjectName все заявки, в теме которых нет фразы: "бронь тестировщика":
project = ProjectName AND summary !~ "бронь тестировщика"

IS

Оператор "IS" может быть использован только c EMPTY или NULL. Т.е. указанное поле является пустым.

Найти в проекте ProjectName все заявки, в которых поле Заказчик пустое:
project = ProjectName AND Заказчик is EMPTY

IS NOT

Оператор "IS NOT" может быть использован только c EMPTY или NULL. Т.е. указанное поле имеет значение.

Найти в проекте ProjectName все заявки, в которых поле Заказчик заполнено:
project = ProjectName AND Заказчик is not EMPTY

WAS

Оператор "WAS" используется для поиска заявок, в которых значение указанного поля соответствовало заданному значению.
*Предикаты, с которыми используется данный оператор:

  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"

Найти все заявки, которые были переведены в статус Закрыт пользователем UserName до 01.01.2017г.:
status WAS Закрыт BY User BEFORE "2017/01/01"

WAS IN

Оператор "WAS IN" используется для поиска заявок, в которых значение указанного поля являлось одним из нескольких заданных значений.
*Предикаты, с которыми используется данный оператор:

  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"

Найти все заявки, которые были в статусах Закрыт и Готов пользователем  UserName до 01.10.2016г.:
status was in(Закрыт, Готов) BY UserName BEFORE "2016/10/01"

WAS NOT IN

Оператор "WAS NOT IN" используется для поиска заявок, где значение указанного поля не являлось одним из нескольких заданных значений.
*Предикаты, с которыми используется данный оператор:

  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"

Найти все заявки, которые не были в статусах Закрыт и Готов до 27.01.2017г.:
status was not in(Закрыт, Готов) BEFORE "2016/01/27"

WAS NOT

Оператор "WAS NOT" может быть использован только c EMPTY или NULL. Т.е. указанное поле имело значение.
Предикаты, с которыми используется данный оператор:

  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"

Найти все заявки, статус которых был не "Закрыт" после 30.01.2017г.:
status was not Закрыт AFTER "2017/01/30"

changed

Оператор "CHANGED" позволяет получить заявки, которые были изменены в соответствии с условием.
Предикаты, с которыми используется данный оператор:

  • AFTER "date"
  • BEFORE "date"
  • BY "username"
  • DURING ("date1","date2")
  • ON "date"
  • FROM "oldvalue"
  • TO "newvalue"

Вывести все заявки, у которых был изменен статус с "Новый" на "Согласование" пользователем UserName после 01 января 2017
status changed from Новый to Согласование by UserName AFTER '2017-01-01'

3 comments

@Andrey Goryunov очень тяжело таблицу читать( Но спасибо.

Спасибо! А следующие части были?

Я совсем забыл про статью и новый материал не выкладывал. Постараюсь найти время до конца сентября.

Like Maryna Topikha likes this

Подскажите а как можно сортировать список от новых к просмотренным, или как то выделить не просмотренные.

Comment

Log in or Sign up to comment