Bugzilla - настройка рабочего процесса
Я хочу изменить рабочий процесс Bugzilla, чтобы пользователь не мог закрыть ошибку, если она не прошла несколько этапов (например, ASSIGNED, IN_PROGRESS и т. Д.).
Как мне изменить Bugzilla, чтобы создать свой рабочий процесс?
5 ответов
Вы пытались изменить рабочий процесс из самой bugzilla?
(Изменить: обновленный URL для 5.0)
Если ваша основная проблема - права доступа, вы можете проверить check_can_change_field в Bugzilla/Bug.pm.
Вам нужно сделать это в два этапа:
- Перейдите в editvalues.cgi? Field=bug_status и добавьте / удалите / переименуйте имена другого статуса.
- Перейдите в editworkflow.cgi и настройте матрицу.
- Сначала создайте статус. Введите "закрыто" для типа " Состояние" ("Администрирование / Значения полей / Состояние" (это значение не будет использоваться (например, имя "Не использовать"))
- Перейдите в Администрирование / Параметры / Политика изменения ошибок. Выберите свой новый статус
- Перейдите в Редактировать рабочий процесс (Администрирование / Рабочий статус ошибки). Теперь вы можете снять флажок РАЗРЕШЕНО
Это способ сделать
В editworkflow.cgi вы можете сделать только так много настроек, потому что RESOLVED может быть доступно из любого другого состояния (потому что когда он помечен как дубликат, например, он становится RESOLVED). Сам рабочий процесс не учитывает историю ошибки.
Если вы действительно хотите применить подобную бизнес-логику, вам следует начать изучать process_bug.cgi. Если кто-то хочет установить статус FOO, но он должен был находиться в статусе BAR раньше, вы можете проверить историю ошибок в bugs_activity.
Но это большая работа, и у вас могут быть особые случаи, больше правил, больше особых случаев и т. Д.
Я думаю, что вам лучше было бы выявить ошибки, которые не прошли должный рабочий процесс после факта. Когда вы обнаружите такую ошибку, вы снова откроете ее или переведете в любой статус.
Это можно сделать, изучив bugs_activity, чтобы увидеть, какие значения bug_status были добавлены / удалены.