Язык запросов в Tracker
Если возможностей простых фильтров вам не хватает, задайте фильтр с помощью языка запросов.
Язык запросов позволяет:
-
искать задачи по имени, описанию и комментариям;
-
фильтровать задачи по нескольким значениям одного параметра;
-
использовать в фильтрах операции сравнения и логические операторы;
-
указывать функции в качестве значения для сравнения;
-
задавать порядок сортировки задач в результатах фильтра.
Формат запросов
Чтобы задать фильтр с помощью языка запросов:
-
Откройте страницу Задачи
. -
В правом верхнем углу страницы нажмите кнопку
Язык запросов. -
Введите запрос и нажмите кнопку Применить.
Общий формат записи запроса:
"<параметр>": "<значение>"
Чтобы задать параметр, начните вводить его название и выберите подходящий из подсказки. Полный список параметров смотрите в разделе Параметры фильтров.
Примеры
- Задачи, входящие в очередь
TEST
:"Queue": "TEST"
- Задачи, исполнителем которых является пользователь Иван Иванов:
"Assignee": "Иван Иванов"
- Задачи, со статусами
Открыт
илиВ работе
."Status": "Открыт", "В работе"
- Задачи, созданные с 1 по 30 января 2017 года:
"Created": "2017-01-01".."2017-01-30"
Несколько значений параметра
Если вы хотите отфильтровать задачи по нескольким значениям одного параметра, перечислите их через запятую:
<параметр>: "<значение_1>", "<значение_2>", "<значение_3>"
Пример
author: "vpupkin","iivanov"
Такой фильтр выведет все задачи, автором которых является пользователь
vpupkin
илиiivanov
.
Фильтры с несколькими условиями
Вы можете объединять несколько условий в одном фильтре с помощью логических операторов:
-
AND
— логический оператор И. Условия, объединенные таким оператором, должны выполняться одновременно.Пример:
<параметр_1>: "<значение_1>" AND <параметр_2>: "<значение_2>"
Такой запрос выведет задачи, у которых
<параметр_1>
имеет значение<значение_1>
И<параметр_2>
имеет значение<значение_2>
.Примечание
Вместо оператора
AND
вы можете просто перечислить поля через пробел. -
OR
— логический оператор Или. Должно выполняться хотя бы одно из условий, объединенных таким оператором.Пример:
<параметр_1>: "<значение_1>" OR <параметр_2>: "<значение_2>"
Такой запрос выведет задачи, у которых выполнено хотя бы одно из условий:
<параметр_1>
имеет значение<значение_1>
Или<параметр_2>
имеет значение<значение_2>
.
Вы можете создавать сложные фильтры, комбинируя несколько операторов в одном запросе:
<параметр_1>: "<значение_1>" AND <параметр_2>: "<значение_2>" OR <параметр_3>: "<значение_3>"
При вычислении сложных фильтров сначала применяются операторы AND
. Чтобы изменить порядок действий, воспользуйтесь скобками:
<параметр_1>: "<значение_1>" AND (<параметр_2>: "<значение_2>" OR <параметр_3>: "<значение_3>")
Поиск по тексту
Кроме поиска по параметрам, вы можете воспользоваться привычным текстовым поиском. Для этого в поле ввода запросов введите текст, который нужно найти, и нажмите Применить.
Поиск ведется по всем текстовым полям задачи: названию, описанию и комментариям.
-
Чтобы искать только по одному из полей, укажите его с помощью параметра:
-
Summary
— название задачи. -
Description
— описание задачи. -
Comment
— текст комментария. -
History
— текст в истории изменений.
Description: "Эта местность мне знакома, как окраина Китая"
Такой фильтр выведет все задачи, в описании которых присутствуют слова и словоформы исходного запроса.
-
-
Чтобы найти только те задачи, у которых в заданном поле есть точное совпадение с текстом запроса, воспользуйтесь оператором
#
:Summary: #"Version 2.0"
Такой фильтр выведет только те задачи, в названии которых присутствует точное совпадение с текстом запроса.
-
Чтобы найти только те задачи, у которых в заданном поле есть точное совпадение с текстом запроса и дополнительный текст, воспользуйтесь оператором
#
и добавьте в месте дополнительного текста оператор||
:Description`: #"Оформить ||"
Такой фильтр выведет только те задачи, в которых присутствует текст "Оформить" и продолжение фразы после него. Например, "Оформить списки", "Оформить карту".
Оператор
||
используется только вместе с оператором#
. -
Чтобы найти только те задачи, в заданном поле которых не встречается фрагмент текста, воспользуйтесь оператором
!
:Summary: !"UI"
Такой фильтр выведет только те задачи, в названии которых отсутствует фрагмент текста
UI
. -
Чтобы найти только те задачи, в названии которых нет точного совпадения с текстом запроса, воспользуйтесь оператором
~
. Оператор работает только для поляSummary
:Summary: ~"UI Update 2.0"
Такой фильтр выведет только те задачи, название которых не совпадает с текстом запроса.
Поиск по пользователю
Задачи можно искать по именам или логинам пользователей, указанных в полях задачи. В запросах можно указать имя и логин несколькими способами:
-
Логин с символом
@
в конце:логин@
— для поиска по точному совпадению с логином пользователя.Пример:
Assignee: user3370@
Такой запрос выведет задачи, исполнитель которых — пользователь с логином
user3370
. Это наиболее точный способ поиска по пользователю. -
Имя и фамилия в кавычках:
"<имя_фамилия>"
— для поиска по совпадению с именем и фамилией пользователя.Пример:
Author: "Иван Иванов"
Такой запрос выведет задачи, автор которых — пользователь с именем Иван Иванов. При этом в выдачу могут попасть задачи других авторов, у которых логин или имя похожи на
Иван Иванов
. Чтобы избежать этого, используйте поиск по логину с символом@
. -
Имя, фамилия или логин пользователя — для поиска по точному совпадению с любыми из этих данных.
Примеры:
-
Followers: Иван
— такой запрос выведет задачи, наблюдатели которых — пользователи с именем Иван и любой фамилией. -
Followers: ivan
— такой запрос выведет задачи, наблюдатель которых — пользователь с логиномivan@
или пользователь с именем Ivan (если имя указано по-английски).
-
Поиск по локальным полям
Чтобы указать в запросе значение локального поля задачи, введите ключ очереди, к которой привязано поле, затем точку и название поля на русском или английском языке. Если название поля состоит из нескольких слов, укажите название в кавычках. Примеры:
DEVS.Тестировщик: "Иван Иванов"
DEVS."Ведущий тестировщик": "Иван Иванов"
DEVS.tester: user3370@
Параметры даты и времени
Многие параметры задач имеют значения даты и времени. В языке запросов поддерживается несколько форматов записи таких параметров:
Дата
-
MM/DD/YYYY
Пример:
04/30/2017
-
DD.MM.YYYY
Пример:
30.04.2017
-
DD-MM-YYYY
Пример:
30-04-2017
-
YYYY-MM-DD
Пример:
2017-04-30
Дата и время
Чтобы точно указать дату и время, используйте формат:
"YYYY-MM-DD XXh:XXm:XXs"
Пример:
"2017-04-30 17:25:00"
Интервалы и отрезки времени
-
Вы можете задавать отрезки времени в неделях, днях, часах, минутах и секундах в формате:
"XXw XXd XXh XXm XXs"
Например, отрезок времени в 3 дня 5 часов и 32 минуты можно записать как:
"3d 5h 32m"
-
Вы можете задавать интервалы, используя допустимые форматы записи даты:
DD-MM-YYYY .. DD-MM-YYYY
Например, фильтр для задач, созданных в определенный промежуток времени:
Created: 01-01-2017 .. 02-03-2017
-
Интервалы времени можно задавать с помощью функций, операций сравнения, сложения и вычитания.
Например, фильтр для задач, созданных не раньше недели и одного дня назад:
Created: > today() - "1w 1d"
Операции сравнения
Кроме проверки на точное совпадение, язык запросов поддерживает операции сравнения:
-
Не равно
<параметр>: !"<значение>"
-
Больше, Меньше, Меньше или равно, Больше или равно
Операции применяются только для числовых параметров и параметров даты и времени.
<параметр>: ><число> <параметр>: <<число> <параметр>: >=<число> <параметр>: <=<число>
-
Лежит в интервале
Операция применяется только для числовых параметров.
<параметр>: <число_1> ... <число_2>
Примеры
Найти задачи, у которых дедлайн через несколько дней или сегодня:
- Задачи, у которых дедлайн через 3 дня:
Deadline: <= today() +3d and deadline: >= today()
Чтобы кастомизировать параметры, используйте в запросе функции:
- Задачи, у которых дедлайн сегодня:
Deadline: today()
Функции
Кроме точных значений параметров вы можете использовать функции. Функция — это переменная, значение которой вычисляется в момент выполнения запроса. Например, функция today()
принимает значение сегодняшней даты. Чтобы вывести все задачи, созданные сегодня, воспользуйтесь запросом:
Created: today()
Функция | Результат выполнения | Пример |
---|---|---|
empty() |
Пустое значение (параметр не задан) | Найти задачи, у которых не задан исполнитель:Assignee: empty() |
notEmpty() |
Любое непустое значение (параметр задан) | Найти задачи, у которых назначен дедлайн:Deadline: notEmpty() |
me() |
Имя пользователя, выполнившего запрос | Найти задачи, автором которых вы являетесь:Author: me() |
now() |
Текущее время с точностью до минуты | Найти задачи, созданные за последние 12 часов:Created: >now()-12h |
today() |
Интервал времени, соответствующий текущей дате | Найти задачи, созданные сегодня:Created: today() |
week() |
Интервал дат, соответствующий текущей неделе | Найти задачи, созданные на этой неделе:Created: week() |
month() |
Интервал дат, соответствующий текущему месяцу | Найти задачи, созданные в этом месяце:Created: month() |
quarter() |
Интервал дат, соответствующий текущему кварталу | Найти задачи, созданные в этом квартале:Created: quarter() |
year() |
Интервал дат, соответствующий текущему году | Найти задачи, созданные в этом году:Created: year() |
unresolved() |
Резолюция не задана | Найти все задачи, у которых не задана резолюция:Resolution: unresolved() |
group() |
Список сотрудников подразделения | Найти задачи, над которыми работают сотрудники Коммерческого отдела:Assignee: group(value: "Коммерческий отдел") Примечание. Если в группе, по которой ведется отбор, более 1 000 пользователей, запрос выполнит поиск не по всем, а только по 1 000. Причем заранее неизвестно, какие пользователи будут включены в выборку, так как управлять этим процессом невозможно. |
Поиск по изменениям параметра
Если вы знаете, когда и как был изменен параметр задачи, вы можете использовать этот критерий для фильтра:
"<параметр>": changed(from: "<старое_значение>" to: "<новое_значение>" by: "<кто_изменил>" date: "<когда_изменил>")
Например, чтобы узнать список задач, которые пользователь Иван Иванов перевел в статус «в работе» в определенный период времени, нужно составить запрос:
Status: changed(to: "В работе" by: "Иван Иванов" date: 01.09.2017 .. 15.09.2017)
Чтобы узнать список задач, которые пользователь Иван Иванов перевел в статус «в работе» за последнюю неделю, используйте в запросе функцию:
Status: changed(to: "В работе" by: "Иван Иванов" date: >today()-1w)
Сортировка результатов
Вы можете отсортировать результаты фильтра, задав в конце запроса параметр "Sort By"
. В качестве значения укажите имя поля для сортировки:
"Sort By": Created
При необходимости задайте порядок сортировки по возрастанию (ASC
) или по убыванию (DESC
):
"Sort By": Created ASC
Чтобы указать несколько полей для сортировки, перечислите их через запятую в порядке приоритета:
"Sort By": Created ASC, Updated DESC
Полезные запросы
Попробуйте несколько готовых запросов, чтобы лучше разобраться в их работе:
-
Активные задачи, автором которых вы являетесь:
Author: me() Resolution: empty()
-
Активные задачи, исполнителем которых вы являетесь:
Assignee: me() Resolution: empty()
-
Активные задачи, за которыми вы наблюдаете:
Followers: me() Resolution: empty()
-
Задачи с истекающим в течение недели дедлайном, исполнителем которых вы являетесь::
Assignee: me() Deadline: week()
-
Задачи с приоритетами Critical или Blocker, для которых вы являетесь автором, исполнителем или наблюдателем.
(Followers: me() OR Assignee: me() OR Author: me()) AND Resolution: empty() AND Priority: Blocker, Critical
Параметры фильтров
Параметр | Значение | Описание |
---|---|---|
"Access" |
Логины или имена пользователей | Поиск задач, у которых в поле Доступ указаны заданные пользователи. Например: "Access": user3370@, "Иван Иванов" |
"Affected Version" |
Названия версий | Поиск задач, у которых в поле Найдено в версиях указано заданное значение. Например: "Affected Version": "14.09.1978" |
"Assignee" |
Логины или имена пользователей | Поиск задач, исполнителями которых являются заданные пользователи. Например: "Assignee": user3370@, "Иван Иванов" |
"Author" |
Логины или имена пользователей | Поиск задач, авторами которых являются заданные пользователи. Например: "Author": user3370@, "Иван Иванов" |
"Block Queue" |
Названия или ключи очередей | Поиск задач, у которых есть зависимые (блокируемые) задачи в заданных очередях. Например: "Block Queue": TEST |
"Clone" |
Ключи задач | Поиск задач, которые являются клонами заданных задач. Например: "Clone": "TASK-123", "TASK-321" |
"Clones Of Queue" |
Названия или ключи очередей | Поиск задач, которые являются клонами задач из заданных очередей. Например: "Clones Of Queue": TEST, DEVELOP |
"Comment" |
Текстовая строка | Поиск задач, у которых есть комментарии с заданным текстом. Например:
|
"Comment Author" |
Логины или имена пользователей | Поиск задач, в которых оставляли комментарии заданные пользователи. Например: "Comment Author": user3370@, "Иван Иванов" |
"Component Owner" |
Логины или имена пользователей | Поиск задач, относящихся к компонентам, за которые отвечают заданные пользователи. Например: "Component Owner": user3370@, "Иван Иванов" |
"Components" |
Названия компонентов | Поиск задач, относящихся к заданным компонентам. Например: "Components": "бекенд", " фронтенд" |
"Created" |
Дата или интервал дат | Поиск задач, созданных в заданный день или в заданном интервале дат. Например: "Created": 2017-01-01..2017-01-30 |
"Deadline" |
Дата или интервал дат | Поиск задач, которые имеют дедлайн в заданный день или в заданном интервале дат. Например: "Deadline": 2017-01-30 |
"Depend On Queue" |
Названия или ключи очередей | Поиск задач, которые зависят от задач (блокируются задачами) из заданных очередей. Например: "Depend On Queue": Тестирование |
"Depends On" |
Ключи задач | Поиск задач, которые зависят от заданных задач (блокируются заданными задачами). Например: "Depends On": "TASK-123", "TASK-321" |
"Description" |
Текстовая строка | Поиск задач, описание которых содержит заданный текст. Например:
|
"Duplicated In Queue" |
Названия или ключи очередей | Поиск задач, которые имеют дублирующие задачи в заданных очередях. Например: "Duplicated In Queue": TEST |
"Duplicates" |
Ключи задач | Поиск задач, которые дублируют заданные задачи. Например: "Duplicates": "TASK-123", "TASK-321" |
"Duplicates In Queue" |
Названия или ключи очередей | Поиск задач, которые дублируют задачи из заданных очередей. Например: "Duplicates In Queue": Тестирование |
"End Date" |
Дата или интервал дат | Поиск задач, у которых значение поля Дата завершения совпадает с заданной датой или находится в заданном интервале дат. Например: "End Date": 2017-01-30 |
"Epic" |
Ключи эпиков | Поиск задач, относящихся к заданным эпикам. Например: Epic: "TASK-123", "TASK-321" |
"Epics For Queue" |
Названия или ключи очередей | Поиск эпиков, к которым относятся задачи из заданных очередей. Например: "Epics For Queue": TEST, DEVELOP |
"Favorited by" |
В качестве значения параметра может использоваться только функция me() |
Поиск ваших избранных задач. Например: "Favorited by": me() |
"Filter" |
Идентификаторы или имена фильтров | Поиск задач, удовлетворяющих заданным фильтрам. Например: "Filter": "Задачи моего отдела" Примечание. Если разные пользователи создали фильтры с одинаковыми именами, при выполнении одного и того же запроса с указанием имени фильтра они могут получить разные результаты, так как при поиске будет применен фильтр того пользователя, который выполняет запрос. |
"Fix Version" |
Названия версий | Поиск задач, у которых в поле Исправить в версиях указано заданное значение. Например: "Fix Version": "12.11.1986" |
"Followers" |
Логины или имена пользователей | Поиск задач, наблюдателями которых являются заданные пользователи. Например: "Followers": user3370@, "Иван Иванов" |
"Has Epic" |
Ключи задач | Поиск задач, которые относятся к заданным эпикам. Например: "Has Epic": TASK-123 |
"Have Links To Queue" |
Названия или ключи очередей | Поиск задач, которые имеют связи любого типа (родительские, дочерние, связанные, дубликат и так далее) с задачами из заданных очередей. Например: "Have Links To Queue": TEST |
"History" |
Текстовая строка | Поиск задач, в истории изменений которых есть слова и словоформы заданной фразы. Поиск осуществляется только по значениям полей Название задачи и Описание задачи. Например: "History": "проще простого" |
"In Epics Of Queue" |
Названия или ключи очередей | Поиск задач, которые относятся к эпикам заданной очереди. Например: "In Epics Of Queue": Тестирование |
"Is Dependent By" |
Ключи задач | Поиск задач, которые блокируют (от которых зависят) заданные задачи. Например: "Is Dependent By": "TASK-123", "TASK-321" |
"Is Duplicated By" |
Ключи задач | Поиск задач, которые дублируются заданными задачами. Например: "Is Duplicated By": "TASK-123", "TASK-321" |
"Is Epic Of" |
Ключи задач | Поиск эпиков, к которым относятся заданные задачи. Например: "Is Epic Of": "TASK-123", "TASK-321" |
"Is Parent Task For" |
Ключи задач | Поиск задач, которые являются родительскими для указанных задач. Например: "Is Parent Task For": "TASK-123", "TASK-321" |
"Is Subtask For" |
Ключи задач | Поиск задач, которые являются дочерними для указанных задач. Например: "Is Subtask For": "TASK-123", "TASK-321" |
"Key" |
Ключи задач | Поиск задач с заданными ключами. Например: "Key": "TASK-123", "TASK-321" |
"Last comment" |
Дата и время добавления последнего комментария | Поиск задач, в которых определенное время не появлялись новые комментарии. Например: "Last Comment": < now()-1h |
"Linked to" |
Ключи задач | Поиск задач, которые имеют связи любого типа (родительские, дочерние, связанные, дубликат и так далее) с заданными задачами. Например: "Linked to": "TASK-123", "TASK-321" |
"Modifier" |
Логины или имена пользователей | Поиск задач, последние изменения которых сделаны заданными пользователями. Например: "Modifier": user3370@, "Иван Иванов" |
"Old Queue" |
Названия или ключи очередей | Поиск задач, перенесенных из заданных очередей. Например: "Old Queue": TEST |
"Original" |
Ключи задач | Поиск клонов заданных задач. Например: "Original": "TASK-123", "TASK-321" |
"Original Estimate" |
Отрезок времени в формате "XXw XXd XXh XXm XXs" |
Поиск задач с заданной первоначальной оценкой. Например: "Original Estimate": "5d 2h 30m" |
"Originals Of Queue" |
Названия или ключи очередей | Поиск задач, которые имеют клоны в заданных очередях. Например: "Originals Of Queue": Тестирование |
"Parent Tasks For Queue" |
Названия или ключи очередей | Поиск задач, у которых есть подзадачи в заданных очередях. Например: "Parent Tasks For Queue": TEST, DEVELOP |
"Pending Reply From" |
Логины или имена пользователей | Поиск задач, в которых требуется ответ от заданного пользователя (пользователя призвали в комментарии). Например, найти задачи, в которых нужен ответ от пользователя с логином user3370 или от пользователя по имени Иван Иванов:"Pending Reply From": user3370@, "Иван Иванов" |
"Priority" |
Значения приоритета | Поиск задач, которые имеют заданные значения приоритета. Например: "Priority": "Minor", "Средний" |
"Project" |
Названия проектов | Поиск задач, которые относятся к заданным проектам. Например: "Project": "Perpetuum mobile" |
"Queue" |
Названия или ключи очередей | Поиск задач, которые относятся к заданным очередям. Например: "Queue": TEST |
"Queue Owner" |
Логины или имена пользователей | Поиск задач из очередей, владельцами которых являются заданные пользователи. Например: "Queue Owner": user3370@, "Иван Иванов" |
"Related" |
Логины или имена пользователей | Поиск задач, авторами, исполнителями или наблюдателями которых являются заданные пользователи. Например: "Related": user3370@, "Иван Иванов" |
"Related To Queue" |
Названия или ключи очередей | Поиск задач, которые связаны с задачами определенных очередей (связь типа «Связанные»). Например: "Related To Queue": Тестирование |
"Relates" |
Ключи задач | Поиск задач, связанных с определенными задачами (связь типа «Связанные»). Например: "Relates": "TASK-123", "TASK-321" |
"Resolved" |
Дата или интервал дат | Поиск задач, которые были закрыты (была установлена резолюция) в заданный день или в заданном интервале дат. Например: "Resolved": 2017-01-01..2017-01-30 |
"Resolver" |
Логины или имена пользователей | Поиск задач, которые закрыли (установили резолюцию) заданные пользователи. Например: "Resolver": user3370@, "Иван Иванов" |
"Sprint" |
Идентификаторы или названия спринтов | Поиск задач, относящихся к заданным спринтам. Например: Sprint: "TrackerSprint32" |
"Sprint In Progress By Board" |
Идентификатор доски задач (можно узнать в URL страницы доски) | Поиск задач, относящихся к активному спринту на заданной доске задач. Например: "Sprint In Progress By Board": 87 |
"Sprints By Board" |
Идентификатор доски задач (можно узнать в URL страницы доски) | Поиск задач, относящихся к заданной доске задач. Например: "Sprints By Board": 87 |
"Start Date" |
Дата или интервал дат | Поиск задач, у которых значение поля Дата начала совпадает с заданной датой или находится в заданном интервале дат. Например: "Start Date": <2017-01-30 |
"Status" |
Названия статусов | Поиск задач, имеющих заданные статусы. Например: "Status": Open, Resolved, Closed |
"Story Points" |
Число очков Story Points | Поиск задач, имеющих заданную трудоемкость в очках Story Points. Например: "Story Points": >=5 |
"Subtasks For Queue" |
Названия или ключи очередей | Поиск задач, у которых есть родительские задачи в заданных очередях. Например: "Subtasks For Queue": TEST |
"Summary" |
Текстовая строка | Поиск задач, название которых содержит заданный текст. Например:
|
"Tags" |
Теги задач | Поиск задач, отмеченных заданными тегами. Например: "Tags": "Поддержка", "wiki" |
"Time Spent" |
Отрезок времени в формате "XXw XXd XXh XXm XXs" |
Поиск задач, на решение которых потрачено заданное время. Например: "Time Spent": >"5d 2h 30m" |
"Type" |
Тип задачи | Поиск задач с заданным типом. Например:"Type": Epic |
"Updated" |
Дата или интервал дат | Поиск задач, которые были изменены в заданный день или в заданном интервале дат. Например: "Updated": >2017-01-30 |
"Voted by" |
Логины или имена пользователей | Поиск задач, за которые проголосовали заданные пользователи. Например: "Voted By": user3370@, "Иван Иванов" |
"Votes" |
Число голосов | Поиск задач, за которые отдали заданное число голосов. Например: "Votes": > 6 |