Как автоматически изменить адресата ошибки обратно на репортера, если ошибка помечена как РЕШЕННАЯ? - PullRequest
2 голосов
/ 20 июля 2010

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

В этот момент они переходят от RESOLVED к назначенному (например, еще не сделано) или ЗАКРЫТО, как только репортер будет удовлетворен.

Как мы можем автоматически изменить адресата ошибки на репортера, когда первый уполномоченный помечает его как РЕШЕНОГО?

Ответы [ 2 ]

1 голос
/ 30 июля 2010

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

В Bugzilla 3.6.1, текущая версия, если вы хотите назвать свое расширение Local, вы бы создали файл extensions/Local/Extension.pm.

http://www.bugzilla.org/docs/3.6/en/html/api/Bugzilla/Extension.html - это обзор всей системы расширений.

Хук, который вы хотите использовать для этого, - bug_end_of_update, который вызывается в Bugzilla/Bug.pm после изменения объекта, но до его записи в базу данных.

Для того, что вы делаете, вам, вероятно, следует проверить changes, чтобы увидеть, изменилось ли bug_status,Если это так, обновите bug, чтобы установить владельца для репортера, и добавьте это изменение к changes.

Основные разработчики Bugzilla обычно можно найти на #mozwebtools на irc.mozilla.org, dropи поговорите с ними о подробностях, если моего ответа недостаточно, чтобы вы начали.

0 голосов
/ 08 декабря 2012

Это будет работать: (CustomExtension.pm)

package Bugzilla::Extension::CustomExtension;
use strict;
use base qw(Bugzilla::Extension);

our $VERSION = '1.0';
use constant NAME => 'CustomExtension';

sub object_end_of_set_all {
    my ($self, $args) = @_;

    my $object = $args->{'object'};

    if ($object->isa('Bugzilla::Bug')) {
        if ($object->{'bug_status'} eq 'RESOLVED') {            # Bug has been RESOLVED
            $object->{'assigned_to'} = $object->{'reporter_id'};    # re-assign to Reporter
        }
    }
}

__PACKAGE__->NAME;
...