понедельник, 7 октября 2013 г.

Синхронизация систем ведения отчётов об ошибках

На многих проектах приходится пользоваться одновременно несколькими системами ведения отчётов об ошибках (bug tracking systems) - такими, как JIRA, launchpad, bugzilla и другие. Причина в основном одна - что-то используется "для команды", а что-то - для заказчика или community.
Часто приходится "синхронизировать" описания багов в различных системах "вручную" - это становится настоящим ночным кошмаром, ведь это работа для роботов (они могут делать её регулярно и максимально аккуратно), а у людей есть множество более интересных занятий.

Чтобы избежать дублирования багов вручную в двух системах (мы сейчас на многих проектах используем JIRA и Launchpad), я сначала поискал что-нибудь для решения этой проблемы на просторах Сети.

(пример скрипта автоматической синхронизации прилагается ;) )

Забавно, что в обоих системах уже давно заведены соответствующие баги:
https://bugs.launchpad.net/launchpad/+bug/157488
https://jira.atlassian.com/browse/JRA-13811
баги завели давно, а интеграция даже не начата.

И у JIRA, и у launchpad есть своё собственное API и даже готовые клиенты на Python (местами плохо документированные, но разобраться можно)

Я написал простой скрипт(на Python) для синхронизации багов между JIRA и launchpad, которым с удовольствием готов поделиться )
Мы запускаем этот скрипт с помощью Jenkins CI каждые 20ть минут, и теперь не приходится беспокоиться об актуальности информации в различных системах ведения отчётов об ошибках - всё работает автоматически, само по себе, как и должно работать :)

Если вы знаете, как его можно улучшить - предлагайте свои варианты :) сейчас доделываем в нём синхронизацию прикреплённых файлов, тегов с версиями и комментариев.

Кстати, у нас ещё есть скрипт синхронизации JIRA с bugzilla, если кому интересно - пишите, отправлю вам работающий черновой вариант такого скрипта.