[Перевод] Как настроить интеграцию между Bugzilla и 3SL Cradle

Bugzilla — это популярная система для треккинга ошибок, используема сообществом Mozilla и многими другими компаниями для управления проектами по разработке ПО. Bugzilla — это ПО с открытым кодом, вебинтерфейсом, написанное на Perl и использующее базу данных MySQL. Система доступна бесплатно по адресу Bugzilla.org.Между Cradle и Bugzilla может быть настроена двусторонняя интеграция, такая, что баг в Bugzilla может быть ассоциирован с элементом (требованием) в Cradle и Cradle может открывать Bugzilla для отображения этого бага. Также возможно получить доступ к Cradle из Bugzilla, сделав связь двунаправленной.

Это может быть достигнуто за счет создания нового типа фреймов BUGZILLA (или любое другое имя), после чего можно будет добавить атрибут такого типа к любому типу элементов в Cradle и хранить в нем идентификатор бага из Bugzilla. Аналогично, в Bugzilla вы можете добавить ссылку из бага на элемент Cradle и вызывать ее из Bugzilla, при этом будет открываться веб-интерфейс Cradle.

Как это настроить описано ниже.

Определение типа фрейма BUGZILLA Запустите WorkBench и войдите в ваш проект Cradle под пользователем с привилегиями PROJECT, что даст вам возможность модифицировать схему. Выберите Администрирование→Установки проекта→Определения элементов→Типы фреймов.image

Типы фреймов — это возможные типы атрибутов (типы данных) в Cradle. Вы можете хранить идентификаторы багов Bugzilla внутри любого атрибута любого типа в Cradle, но сейчас мы хотим настроить специальное поведение, ассоциированное с этим фреймом — запуск Bugzilla. Поэтому мы должны определить новый тип атрибута, чтобы задать это новое поведение.

Выберите Новый и введите имя для нового типа фрейма, в данном случае BUGZILLA и нажмите OK. Это добавит новый тип фрейма в список и инициализирует его по умолчанию, как текстовый тип:

image

Выберите созданный тип BUGZILLA и нажмите Редактировать:

image

Значения атрибутов этого типа должны быть ссылками (URL), чтобы получать доступ к Bugzilla, поэтому мы меняем Базовый на URL, который также устанавливает Хранилище в значение «Как связь»

image

Мы должны определить команду, которая будет использоваться для просмотра. Для этого используем директивы $BROWSER и $IDENTITY. Во время исполнения, команда $BROWSER будет заменена путем к браузеру пользователя по умолчанию (например, Firefox или Internet Explorer) и $IDENTITY будет заменен на URL для бага из Bugzilla, который будет храниться в этом атрибуте. Чтобы убедиться, что не будет проблем даже в том случае, если встретятся пробелы, мы окружили оба этих выражения двойными кавычками (»).

Мы также может добавить Описание для будущих ссылок. Двойные кавычки для $BROWSER нужны только когда команда запускается на Windows (когда путь к браузеру имеет пробелы) поэтому мы использовали тег-условие {win and }, чье содержание будет включено в команду только на Windows, а на остальных платформах будет игнорироваться. Есть аналогичные теги для каждой UNIX/Linux платформы и и общий тег {unixand }, который применяется для всех UNIX/Linux платформ.

Теперь нажмите OK, чтобы закрыть диалог.

Альтернативный подход Подход, показанный выше, предполагает, что значение атрибута типа BUGZILLA будет полным URL к багу в Bugzilla. Но есть и альтернатива. Значение атрибута может просто содержать идентификатор бага. В этом случая мы должны определить команду Просмотреть в виде»$BROWSER» http://bugzilla-computer/Bugzilla/show_bug.cgi? id=$IDENTITY

В этом примере мы сохраняем расположение базы данных Bugzilla и саму команду доступа к конкретному багу внутри типа фрейма. Так, например, если некоторый элемент Cradle связан с багом в Bugzilla с номером 1234, тогда вы просто будете указывать в Cradle этот номер, в атрибуте типа BUGZILLA

Когда вы захотите получить доступ к этому элементу запуститься следующая команда

«C:\Program Files\Mozilla Firefox\firefox.exe» http://bugzilla-computer/Bugzilla/show_bug.cgi? id=1234

Этот подход позволяет на дублировать расположение Bugzilla при каждой ссылке на баг, а также позволяет пользователям Cradle сразу видеть номер бага, который гораздо легче понять и изменить.

Определить атрибут типа BUGZILLA для требования Теперь, когда мы имеем тип BUGZILLA, мы можем определить атрибут этого типа. В Установках проекта, выберите вкладку Типы элементов и выберите тип, для которого вы хотите добавить атрибут. В этом примере мы используем предопределенный тип Requirementimage

Выберите Фреймы, чтобы отразить список текущих фреймов данного типа. Чтобы создать новый фрейм нажмите Новый и введите имя, в данном случае BUGZILLA BUG, нажмите OK:

image

Новый фрейм по умолчанию не содержит типа, а значит, что Cradle интерпретирует его просто как текстовый фрейм. Выберите тип фрейма из выпадающего списка Тип и установите его в значение BUGZILLA:

image

Затем нажмите ОК, чтобы закрыть это окно и еще раз ОК, чтобы закрыть установки проекта.Таким образом мы расширили схему проекта, добавив к элементам типа Requirement (требования) атрибут с именем BUGZILLA BUG, ранее созданного типа BUGZILLA. Значение этого атрибута будет URL, который будет ссылаться на баг Bugzilla, при этом при просмотре будет Bugzilla и открывать баг с данным идентификатором.

Связать элементы Cradle с багами Bugzilla С помощью описанных выше настроек мы сделали так, что элементы типа Requirement теперь имеют атрибут BUGZILLA BUG, который содержит ссылку на баг из Bugzilla. Таким образом, значение атрибута BUGZILLA BUG будет следующего вида: http://hostname-or-IP/bugzilla/show_bug.cgi? id=bug-ID

например,

http://10.0.0.235/bugzilla/show_bug.cgi? id=1

где 10.0.0.235 — это IP адрес сервера Bugzilla (конечно же может быть использовано и имя сервера) и 1 это ID бага. Мы также описали альтернативный подход, при котором можем не хранить весь адрес, а хранить только ID бага.

Чтобы сослаться на баг из элемента Cradle, нам необходимо сохранить URL или ID бага в атрибуте BUGZILLA BUG этого конкретного элемента.Например, запрос в базе данных может вывести список требований:

image

Если мы изменим представление, чтобы оно отражало новый атрибут BUGZILLA BUG, мы вначале увидим пустые ячейки:

image

Выберите строчку конкретного элемента, выберите поле BUGZILLA BUG и Редактировать ссылку:

image

В появившемся диалоге введите URL бага (или только ИД, в зависимости от настроек)

image

И нажмите OK.Теперь ссылка на баг будет сохранена

image

Если бы мы использовали второй подход (сохранение только ID), то здесь мы увидели бы только ID. Конечно для пользователей этот второй подход будет удобнее.Запуск просмотра багов из элементов CradleПоскольку теперь в поле требования сохранена ссылка на баг мы можем открыть ее, кликнув на это поле и нажав Просмотреть

image

Cradle откроет ваш браузер по умолчанию и откроет этот баг, в данном случае с номером 1.

image

Просмотр элементов (требований) Cradle из Bugzilla В Bugzilla вы можете создать URL, который будет ссылаться на элемент Cradle. Если вы нажмете эту ссылку, то Cradle откроет свой веб-интерфейс и отобразит элемент, связанный с багом.Есть несколько способов адресации элементов в базе данных Cradle, используя URL.Простейший метод — это использовать идентификатор Project Database Unique ID (PDUID), который автоматически назначается каждому элементу в Cradle. PDUIDs содержит 26 символов и может отображаться в формах и представлениях.Например, PDUID может выглядеть так: 16EC668D4ADEMO010000000001Соответственно URL будет выглядеть следующим образом:

http://10.0.0.235/cradle/access.cgi? projectcode=DEMO&itempduid=16EC668D4ADEMO010000000001

Когда в Bugzilla вы кликните на эту ссылку откроется веб-интерфейс Cradle и отобразится элемент, связанный с этим багом:

© Habrahabr.ru