Импорт ошибок в bugzilla из XML

Из данной статьи Вы узнаете, как импортировать ошибки из другой баг-трэкинговой системы в bugzilla через xml файл. В данной статье будет рассказано, как сделать импорт ошибок из системы TestTrack версии 7.6.3 в Bugzilla версии 3.4.2. Обе системы хранят данные в формате utf8.

1. Получаем xml-файл источник из баг-трекинговой системы. В TestTrack это делается в меню File->Export->XML Export (Ctrl + E) там выбираем, что экспортировать и обязательно ставим галочку Export file attachments.
Получаем файл test_xml.xml и набор файлов с расширением .dat (это непосредственно attachments вложения).
Если Вы осуществляете экспорт из другой версии bugzilla необходимо, чтобы в ней данные хранились в формате utf-8. Для экспорта нужно сделать следующее:
1)сделать отбор нужных ошибок для экспорта например с помощью Поиска ( search)
2)В полученном результате нажать кнопку Подробно (Long Format) и в низу отобразится весь список номеров ошибок этого поиска( в поле рядом с кнопкой Сохранить). Его надо скопировать.
3)Теперь в строку запроса URL записываем http://localhost/bugzilla/xml.cgi?id=3040,3050,3060
После id добавляем весь тот список ошибок, что вернул нам поиск. Из броузера сохраняем xml-файл. Вот и все для экспорта из bugzilla.

2. Продумываем и записываем соответствие какие поля баг-трекинговой системы будут соответствовать полям системы bugzilla, к примеру, так:

Bugzilla

TestTrack

bug = defect
bug_id = defect-number
creation_ts =date-created
short_desc =summary

и т.д. После такой прикидки переходим к п.3 непосредственно к разработке парсера исходного файла XML баг-трекинговой системы TestTrack.

3. Пишем парсер для xml файла из баг-трекинговой системы TestTrack версии 7.6.3 с одновременным сохранением в корректную структуру подходящую для системы Bugzilla 3.4.2, как описано здесь.
Вызываем парсер для исходного файла:

# ./parser.pl -i test_xml.xml  -o bugzilla1.xml

Таким образом произошла нужная конвертация исходного файла test_xml.xml из TestTrack в формат Bugzilla 3.4.2 bugzilla1.xml.
Скачать парсер здесь.
PS парсер был разработан с включенным параметром в Администрировании - Настройки системы-Поля ошибок useqacontact = true Использовать поле "Приемка".

4.Чтобы скрипт импорта importxml.pl запустился необходимо доустанавливать все необходимые модули, а именно MIME::Parser и XML::Twig.
Для начала зайдите в папку с установленной багзилой и проверьте установлены ли эти модули:

# ./checksetup.pl --check-modules

Если нет, то установите их следующим образом :

# /usr/bin/perl install-module.pl MIME::Parser
# /usr/bin/perl install-module.pl XML::Twig

5. Теперь настраиваем несколько параметров Администратором багзилы. А именно:
1) Параметр move-enabled = true

2) Также необходимо задать параметр moved-default-product, к примеру, "СПб - Продукт 1" и moved-default-component, к примеру, "Интерфейс пользователя".

3) Также на время импорта необходимо задать значения для вложений по-больше например 2500 ( 2,5 Мб) - maxattachmentsize = 2500 на вкладке Приложения.

6. Непосредственно сам импорт производится с помощью скрипта importxml.pl. Про параметры вызова можно подробнее почитать здесь . Главное, что параметр -v служит для выдачи ошибок и другой полезной информации при импорте.
Выполняем импорт XML для bugzilla версии 3.4.2:

# ./importxml.pl -v bugzilla1.xml
OK: Bug http://localhost/TestTrack/show_bug.cgi?id=2033 imported as bug 44628.
http://192.168.1.119/bug_new/show_bug.cgi?id=44628


OK: Bug http://localhost/TestTrack/show_bug.cgi?id=2042 imported as bug 44629.
http://192.168.1.119/bug_new/show_bug.cgi?id=44629


OK: Bug http://localhost/TestTrack/show_bug.cgi?id=2043 imported as bug 44630.
http://192.168.1.119/bug_new/show_bug.cgi?id=44630

Вот и все.