Какой самый простой способ извлечь даты начала и окончания спринта из базы данных JIRA? - PullRequest
3 голосов
/ 14 декабря 2011

Я пытаюсь извлечь даты начала и окончания моих спринтов из базы данных Jira.Это может показаться простой задачей, но на самом деле (насколько я выяснил, по крайней мере) это не так.

Пытаясь выяснить это, я нашел одно решение, но оно кажется мне таким громоздким и сложным, что у меня возникают проблемы, когда я думаю, что это единственный путь.

Вот что я обнаружил:

Спринты не являются нативным выражением Jira, а плагин Greenhopper использует таблицу projectversion для представления спринтов.

Таблица projectversion содержит некоторыеинформация о спринте, например, название, к какому проекту он относится и дата выпуска.Дата выпуска может рассматриваться как дата окончания спринта, но дата начала отсутствует.

Если вы бежите назад к спринту, может быть, дата начала спринта может быть установлена ​​на дату выпуска предыдущего спринта плюс один день?Но это действительно не очень хорошее решение.

Так что я искал модель данных Jira, и лучшая и единственная ссылка, которую я нашел на дату начала спринта, была в структуре свойств.

Вы можете определять свойства и присваивать им значения.В основной таблице этой структуры, в таблице свойств входа, я нашел следующие записи:

ID     ENTITY_NAME     ENTITY_ID     PROPERTY_KEY                          propertytype    
-----  --------------  ------------  ------------------------------------  ------------
 10288  GreenHopper     10010         CONFIGURATION                         6               
 10304  GreenHopper     10012         CONFIGURATION                         6               
 10312  GreenHopper     10013         CONFIGURATION                         6               
 10449  GreenHopper     10014         CONFIGURATION                         6   

Итак, GreenHopper добавил свойство с ключом, установленным в CONFIGURATION.Поле etity_id ссылается на project.id, а свойство конфигурации является конфигурацией проекта.Для свойства property_type установлено значение 6, что указывает нам искать значение в таблице propertytext.

Значение, хранящееся в таблице propertytext, показывает себя как строку XML, содержащую различную информацию о проекте, среди которых есть такие записи, какэто:

<entry>
  <string>BURNDOWN_START_DATE_10074</string>
  <long>1316988000000</long>
</entry> 

Вот оно.Лучший эквивалент, который я нашел для даты начала спринта.Скрыт в строке xml в таблице свойств.

Мой вопрос: действительно ли это единственный способ узнать даты начала моего спринта?

Ответы [ 5 ]

2 голосов
/ 24 декабря 2013

Я не рекомендую обращаться к базе данных JIRA напрямую, если этого можно избежать.Недокументированный JIRA Agile REST API, например rest / greenhopper / 1.0 / rapid / charts / sprintreport.json? RapidViewId = 652 & sprintId = 577, где rapidViewId - это идентификатор платы, предоставляет информацию о Sprint.Этот и другие ресурсы REST можно увидеть в библиотеке jira-python по адресу http://jira -python.readthedocs.org / en / latest /

2 голосов
/ 15 декабря 2011

Кажется, что нет способа получить дату окончания и начала спринта через Jira SOAP / REST API .

Вы можете извлечь даты начала и окончания ваших спринтов, используя: com.pyxis.greenhopper.jira.configurations.ProjectConfiguration#getVersionStartDate com.pyxis.greenhopper.jira.configurations.ProjectConfiguration#getVersionEndDate

Чтобы использовать этот класс, вы можете написать плагин Jira - Разработка с использованием плагина Atlassian SDK

Другой вариант - написать модуль GreenHopper - Документация разработчика GreenHopper

1 голос
/ 24 февраля 2014

Недавно мне дали задание получить список спринтов с датами для конкретного проекта.Сначала мне нужно было найти идентификатор проекта из таблицы Project и идентификатор настраиваемого поля для поля Sprint из таблиц customfield / customfieldvalue.

Вот результат

select 
    p.pname as "Project Name",
    s.NAME as "Sprint Name", 
    from_unixtime(s.START_DATE / 1000) as "Start Date", 
    from_unixtime(s.END_DATE / 1000) as "End Date",
    from_unixtime(s.COMPLETE_DATE / 1000 ) as "Complete Date"
from
    customfieldvalue as c, 
    jiraissue as i, 
    project as p, 
    AO_60DB71_SPRINT as s
where 
    p.id = <project ID> and p.id = i.project and
    c.issue = i.id and c.customfield = <customfield ID> and
    c.stringvalue = s.id
group by s.name 
;

Наш сервер MySQL находится в другом часовом поясе, поэтомуМне пришлось изменить время вывода.

...
    from_unixtime(s.START_DATE / 1000) - interval 1 hour as "Start Date", 
...

Может быть, это кому-нибудь поможет

1 голос
/ 16 января 2013

SELECT * FROM a0_60db71_sprint

Это вопрос MySQL , а не java .

Подключитесь к базе данных JIRA MySQL и найдите таблицусоответствует *_sprint

Поля в приведенной выше таблице:

  • Closed (boolean)
  • ID (key)
  • Start_Date (timestamp)
  • End_Date (timestamp)
  • Complete_Date (timestamp).
0 голосов
/ 24 декабря 2013

Самый простой способ найти дату начала и окончания спринта в Agile jira - это нажать на таблицу jiraschema.AO_60DB71_SPRINT.Это хранит start_date, end_date как большой int.Jira по некоторым причинам сохраняет эти форматы даты как тип данных int.Чтобы преобразовать тип данных int в дату, вот запрос в MS Sql.При необходимости вы можете легко изменить его на другую базу данных.

###This query pulls start_date, end_date, completed_date of all non active sprints in MS SQL.###

select ID, Name SprintName
,START_DATE / 60 / 60 / 24 / 1000  + CAST('12/31/1969' as datetime)+1 StartDate
,END_DATE / 60 / 60 / 24 / 1000  + CAST('12/31/1969' as datetime)+1 EndDate
,COMPLETE_DATE / 60 / 60 / 24 / 1000  + CAST('12/31/1969' as datetime)+1 CompletedDate
FROM
 AO_60DB71_SPRINT as sprint
where COMPLETE_DATE is not null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...