当错误被标记为已解决时,如何自动将错误的受让人更改回报告者?

时间:2010-07-20 07:56:45

标签: bugzilla

我们有一个工作流程,所有传入的错误都标记为已分配给其产品的默认受让人,然后他们将保持分配,直到受让人解决。

此时,一旦记者满意,他们就会从RESOLVED回到ASSIGNED(例如尚未完成)或CLOSED。

当第一个受让人将其标记为已解决时,我们如何自动将错误的受让人更改给记者?

2 个答案:

答案 0 :(得分:1)

实际上,使用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的主要开发人员通常可以在irc.mozilla.org上的#mozwebtools上找到,如果我的回答不足以让你滚动,可以直接与他们聊聊细节。

答案 1 :(得分:0)

这将起作用:(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;