Поиск (JQL)
Какую часть языка запросов трекера понимает Kaiku — и так же прямо, какую не понимает.
Подмножество — нарочно
Kaiku читает язык запросов трекера, с которым совместим, но не целиком. Здесь перечислено, что он понимает. Прежде чем полагаться на запрос в скрипте, прочитайте последний раздел: REST API запрос никогда не отвергает, а непонятая часть результат не сужает.
Поля
| Поле | С чем сравнивается |
|---|---|
project | ключ проекта |
status, statusCategory | название статуса; категория — "To Do", "In Progress" или Done |
issuetype (или type), priority, resolution | название |
assignee, reporter (или creator) | имя пользователя — не отображаемое имя и не почта |
key (или issuekey, id) | ключ задачи, например ABC-12 |
summary, description, text | текст; text ищет в названии, описании и всех комментариях |
labels | любая одна метка |
sprint | название спринта |
parent | ключ родителя — только прямые потомки |
epic | ключ эпика — сам эпик, его задачи и их подзадачи |
created, updated, duedate | дата |
archived | своё поле Kaiku: только его упоминание добавляет архивные задачи в ответ |
| собственный столбец проекта | по названию (Segment = AI) или как cf[20003] / customfield_20003 |
Регистр в названиях полей не важен; название с пробелом берётся в кавычки.
Операторы и сочетания
=и!=— точное совпадение без учёта регистра.~и!~— содержит: обычная подстрока без учёта регистра. Ни словоформ, ни масок, ни сортировки по релевантности.IN (…)иNOT IN (…).IS EMPTYиIS NOT EMPTY(илиIS NULL,IS NOT NULL). Пишитеassignee IS EMPTY, а неassignee = EMPTY— второе не находит ничего.>,>=,<,<=— только дляcreated,updatedиduedate.AND,ORи скобки.ANDсвязывает сильнее, чемOR.- Одна функция:
currentUser()— дляassignee,reporterиcreator. ORDER BYполе,ASCилиDESC, несколько полей через запятую. Сортируются:created,updated,priority,status,key,summary,duedate. Без него первыми идут самые новые задачи.
Даты
Дата пишется полностью: created >= 2026-09-01 или updated < "2026-09-01 10:00". Чтобы спросить «за последнюю неделю», посчитайте дату сами.
Относительные даты — -7d, startOfDay(), now() — не понимаются, и условие с ними подходит любой задаче. created = 2026-09-01 не находит ничего: дату сравнивайте через >= и <.
Чего нет
- Операторов истории:
WAS,CHANGED. NOTперед условием. Используйте!=,!~илиNOT IN.- Функций, кроме
currentUser():membersOf(),openSprints(),startOfWeek()и прочих. - Полей, которых нет в таблице выше:
component,fixVersion,watcher,worklogDateи прочих. - Вокруг
ANDиORдолжно быть ровно по пробелу: запрос, разбитый на несколько строк, прочитается не так.
Запрос не отвергается
REST-поиск отвечает на любой запрос. Условие, которое он не смог прочитать или которое называет незнакомое поле, выпадает — и результат не сужает. Поэтому опечатка в названии поля возвращает больше задач, а не ошибку.
!=иNOT INвключают задачи, у которых поле пустое. Привычный вам трекер их исключает.- Значение в кавычках, внутри которого есть слова
in,not inили знак оператора (summary ~ "sign in page"), читается неверно и подходит любой задаче. Ищите по более короткому куску фразы.
Инструмент поиска в собственном MCP-сервере Kaiku строже: запрос с незнакомым полем или непрочитанным условием он отвергает, называет, что не прочитал, и ничего не выполняет. См. MCP-серверы.
Чего-то не хватает или всё не так, как здесь написано? Напишите на hello@kaiku.tech