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

В прошлых JQL часть 1 и JQL часть 2, мы рассматривали внутренний язык Jira — JQL.

Возможности Jira позволяют создать доску типа Scrum или Kanban. Данные доски помогают эффективно управлять проектом. Рассмотрим создание досок типа Kanban.

Kanban — это гибкий инструмент управления проектами, предназначенный для визуализации работы, ограничения объема незавершенных работ и максимизации эффективности выполнения задач. Это помогает как agile командам, так и командам DevOps навести порядок в повседневной работе.

Преимущества канбан-доски, заключаются в скорости настройки, способности асинхронно отслеживать бесконечное количество разговоров и комментариев по мере продвижения проекта. Независимо от того, где и когда члены команды регистрируются на доске канбан, они будут видеть самую последнюю информацию о статусе проекта.

Основными элементы канбан-доски являются следующие пять компонентов: визуальные сигналы (1), столбцы (2), лимиты незавершенной работы (3), точка обязательства (4) и точка доставки (5).

С чего начать работу с канбан-доской? Конечно же с ее создания!

Для создания канбан-доски мы можем через просмотр всех досок нажать на кнопку “Создать доску” и у нас выскочит окошко с выбором доски Scrum или Kanban. Выбираем “Создание доски Kanban”.

Для него заранее создадим фильтр с названием “Покупка”, который поможет нам найти задачи в названии которых содержится слово “Купить”, созданные после 1 октября 2021 года и за авторством текущего пользователя, Марины (Marina7) и Алексея (Alex). Подумайте самостоятельно, как написать такой фильтр (ответ в конце статьи).

Нажимаем “Создать доску”. Поздравляю, у нас создалась доска на основе сохраненного фильтра!

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

Отдельно стоит упомянуть пункт «Быстрые фильры», где мы можем написать дополнительные JQL подзапросы, которые будут при нажатии на кнопки под названием доски, будут добавлены к основному JQL фильтру союзом AND. Мы можем одновременно включать несколько быстрых фильтров, например одни будут отвечать за время, а другие за исполнителя.

Теперь рассмотрим на API составляющую Kanban-досок в Jira. Для простоты воспользуемся python с предустановленной библиотекой JIRA. С помощью нее найдем все доски, куда мы имеем доступ.

Для начала инициируем библиотеку:

from jira import JIRA

Далее заполним необходимые данные:

SERVER_ADDR = '### ССЫЛКА НА СЕРВЕР JIRA ###'
LOGIN = '### ЛОГИН ###'
PASS = '### ПАРОЛЬ ###'

Подключимся к серверу:

jira_options = {
        'server': SERVER_ADDR,
        'verify': False
}

try:
    jira = JIRA(options = jira_options, basic_auth=(ALPHA_LOGIN, ALPHA_PASS))
    print("Успешное подключение к JIRA")
except Exception as e:
    print("Не удалось подключиться к %s - неверный логин/пароль или сервер не доступен" % (SERVER_ADDR))
    print(e)

С помощью метода board() получим названия и id досок, к которым у нас имеется доступ. Непосредственно id используется как значение rapidView в ссылках на доску – так давайте создадим еще и ссылки на эти доски.

boards = jira.boards()
print('Доступных досок:', len(boards))
for board in boards:
    print ("ID %s: %s  ( Ссылка: %s/secure/RapidBoard.jspa?rapidView=%s )" % (board.id, board.name, SERVER_ADDR, board.id))

Также рассмотрим поиск задач с помощью JQL. Для начала объявим переменную jql с самим запросом. Пусть в запросе будут задачи, созданные текущим пользователем, где он не является исполнителем.

jql = "reporter = currentUser() AND assignee != currentUser()"

Далее с помощью search_issues найдем и запишем в переменную issues найденные задачи.

issues_1 = jira.search_issues(jql)

Самими часто используемыми дополнительными параметрами search_issues являются:

  • maxResults – устанавливаем числом максимальное количество задач, которое нам достаточно найти или ставим значение False, когда мы хотим найти все задачи;
  • expand – дополняем наш запрос дополнительной информацией по задаче, например, историей изменений (‘changelog’).
  • fields – тут можем указать список интересующих нас полей, другие при этом выгружаться не будут.
issues_2 = jira.search_issues(jql, maxResults = False, expand = 'changelog', fields = ['summary', 'status', 'reporter', 'issuelinks', 'labels', 'created'])

В переменных issues_1 и issues_2 хранятся объекты JIRA Issue.

Для отображения информации по объекту пройдемся по каждой найденной задаче и покажем некоторые значения полей при помощи цикла for.

for issue in issue_jql:
    print(
"""
Ключ задачи: %s
Название задачи: %s
Автор задачи: %s
Исполнитель задачи: %s
Статус задачи: %s
Дата создания задачи: %s
"""
% (issue.key, issue.fields.summary, issue.fields.reporter, issue.fields.assignee, issue.fields.status, issue.fields.created))

Создавайте, практикуйтесь и повышайте эффективность своей работы!

Ответ: summary ~ Купить and reporter in (currentUser(), Alex, Marina7) AND created < «2021/10/01»