1. И никуда не надо
ехать!
JIRA: dashboards
и SOAP API
Никита Налютин,
Undev.ru
2. О чем мы сегодня?
● Какие отчеты бывают
● Какие средства есть в JIRA для
облегчения подготовки отчетов
(dashboards)
● Как можно генерировать отчеты
при помощи внешних скриптов
(SOAP API в Python)
7. SOAP API: когда нам нужно
большее
● SOAP — протокол обмена данными
с сервером
● Клиент и сервер обмениваются
друг с другом маленькими XML-
документами
8. Необходимые библиотеки
● PyXML 0.8.4
● SOAPpy 0.11.6
● fpconst 0.7.2
● Еще есть библиотека
● Jira-cli-1.5.0
про нее в этой презентации
ничего не сказано :)
11. Запросы
● JQL запросы:
issuesFromTextSearch =
soap.getIssuesFromJqlSearch(auth,
'project = DEV AND (issuetype = "DEV:
QA testing " AND "Affects Patch/es" =
"*point") AND status in ("DEV:
Resolved", "DEV: Developed")', 10000);
● Сохраненные из фильтра:
issues = soap.getIssuesFromFilter(auth,
"17395")
12. Атрибуты тикетов
for issue in issues:
priority = pr[issue['priority']]
status = st[issue['status']]
if not issue['resolution'] == None:
resolution = res[issue['resolution']]
else:
resolution = ""
13. Пользовательские атрибуты
customFields = issue['customFieldValues']
for customField in customFields:
if customField['customfieldId'] ==
'customfield_10685':
for i in customField['values']:
fixPatches = fixPatches + i
14. Списанное время
worklogs = soap.getWorklogs(auth,issue['key'])
for worklog in worklogs:
date = datetime.date(
worklog['startDate'][0],
worklog['startDate'][1],
worklog['startDate'][2])
if date == reportDate:
author = soap.getUser(auth,
worklog['author'])['fullname']
timeSpent = worklog['timeSpent']
comment = worklog['comment']