Время прочтения: 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»