Время прочтения: 4 мин.

Ранее на NTA рассматривали статью по Jira (Ссылка). У рядовых пользователей Jira часто возникают вопросы непосредственно по поиску необходимых задач. Для этого нам поможет JQL.

JQL (Jira Query Language) – это гибкий инструмент, позволяющий искать задачи в Jira, который использует четыре основных “сущностей”:

Поля — сюда входят название всех системных и пользовательских полей: Название проекта (project), Название темы (summary), Описание (description), Автор (reporter), Исполнитель (assignee), Обновлено (updated) и т.д.

Операторы:

  • привычные нам сравнения «=», «<», «>», «<=», «>=», «!=»;;
  • для включения/не включения значений, содержащихся в поле «IN»/«NOT IN»;
  • содержания/не содержания значения в поле «~»/«!~»;
  • для работы с пустыми (обычно это null и empty) значениями полей «IS»/«IS NOT»;
  • для поиска по истории значений хранившихся в поле (поддерживаются не все поля) «WAS»/«WAS NOT». Тут можно указать дополнительные параметры:
  • AFTER date_1 – после выбранной даты
  • BEFORE date_1 – до выбранной даты
  • BY username – каким пользователем
  • DURING (date_1, date_2) – между датами
  • ON date_1 – в определенную выбранную дату
  • Также имеется оператор для поиска задач, которые имеют, ранее имели значения поля в заданном списке значений/никогда не имели значения поля в заданном списке значений «WAS IN»/«WAS NOT IN». Имеются аналогично пункту 5 необязательные предикаты для уточнения данных;
  • Оператор изменения значения поля «CHANGED». Имеются аналогично пункту 5 необязательные предикаты для уточнения данных и добавляются еще два:
    • FROM old_value – изменился со значения
    • TO new_value – изменился в значение

Значения — это непосредственно данные, которые находятся в полях

Ключевые слова:

  • Для объединения нескольких условий конъюнкцией «AND» и дизъюнкцией «OR»;
  • Для отрицания условия «NOT»;
  • Для поиска задач, когда поле не имеет значения «EMPTY», «NULL»;
  • Для сортировки по указанным полям «ORDER BY». Можно также в каком порядке мы сортируем «DESC», «ASC»

В действительности, синтаксис JQL похож на SQL, однако в отличие от SQL, в JQL нам не ну нужно выбирать поля, таблицы или базы данных для отображения – нам будут показываться непосредственно сами задачи, согласно прописанным нами условиям.

Рассмотрим подробнее на примерах пункты 2 и 4 как искать некоторые задачи.

  • Для того, чтобы показать нам задачи, не находящиеся в статусе «Clossed» и созданные пользователем Ivan, в строку JQL мы вводим следующее:
reporter = Ivan and status != Clossed
  • Для задачи, в которых в поле «score» находится значение больше 2, но не больше 4, в строку JQL мы вводим следующее:
score > 2 and score<= 4
  • Для того, чтобы найти задачи в статусах «To Do» и «In Progress», в строку JQL мы вводим следующее:
status IN ("To Do", "In Progress")
  • Для того, чтобы найти задачи, где исполнителем не являются пользователи Lena и Egor, в строку JQL мы вводим следующее:
assignee NOT IN (Lena, Egor)
  • Для нахождения задач, где в заголовке нет слова «разработка», в строку JQL мы вводим следующее:
summary !~ "разработка"
  • Для того, чтобы показать задачи, где статус был изменен после 1 июня 2021 и исполнителем когда-либо был пользователь Olga, в строку JQL мы вводим следующее:
status CHANGED AFTER "2021/06/01" and assignee WAS Olga
  • А для того, чтобы найти задачи, где исполнитель был изменен с пользователя Ivan на пользователя Lena, в строку JQL мы вводим следующее:
assignee CHANGED FROM Ivan TO Lena

А теперь попробуйте самостоятельно.

  • Как найти задачи, созданные пользователем Egor после 1 июня 2021, где исполнителем является Ivan, и статус не менялся после 10 июня 2021?
  • Как найти задачи, где в Описании содержится слово «NewTechAudit», автором не является пользователь Olga, и статус был изменен из «In Progress» в «Clossed» до 10 июня 2021?

Мы рассмотрели основной функционал JQL. В следующей статье мы рассмотрим какие существуют функции в JQL и полезные возможности по управлению вашими запросами JQL