我们有一个工作流程,所有传入的错误都标记为已分配给其产品的默认受让人,然后他们将保持分配,直到受让人解决。
此时,一旦记者满意,他们就会从RESOLVED回到ASSIGNED(例如尚未完成)或CLOSED。
当第一个受让人将其标记为已解决时,我们如何自动将错误的受让人更改给记者?
答案 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;