2010-07-20 5 views
2

Nous avons un workflow où tous les bogues entrants sont marqués ASSIGNED à l'assigné par défaut de leur produit, puis ils restent dans ASSIGNED jusqu'à RESOLUTION par le cessionnaire. À ce stade, ils passent soit de RESOLVED à ASSIGNED (par exemple, pas encore terminé), soit à CLOSED une fois qu'ils sont satisfaits.Comment est-ce que je change automatiquement le destinataire d'un bogue au journaliste lorsqu'un bogue est marqué RESOLU?

Comment change-t-on automatiquement le destinataire du bogue au rapporteur lorsque le premier attribut le marque RÉSOLU?

Répondre

1

En fait, c'est assez facile avec les crochets Bugzilla. L'emplacement du code d'extension dépend de la version que vous utilisez, car il s'agit d'une fonctionnalité qui se développe rapidement. Dans Bugzilla 3.6.1, la version actuelle, si vous voulez appeler votre extension Local, vous devez créer un fichier extensions/Local/Extension.pm.

http://www.bugzilla.org/docs/3.6/en/html/api/Bugzilla/Extension.html est l'aperçu de l'ensemble du système d'extension.

Le point d'ancrage que vous souhaitez utiliser est bug_end_of_update, appelé Bugzilla/Bug.pm après la modification de l'objet mais avant son écriture dans la base de données. Pour ce que vous faites, vous devriez probablement vérifier changes pour voir si bug_status a changé.Si c'est le cas, mettez à jour bug pour définir le propriétaire sur le rapporteur et ajoutez cette modification à changes.

Les principaux développeurs de Bugzilla peuvent généralement être trouvés sur #mozwebtools sur irc.mozilla.org, y passer et les discuter sur les détails si ma réponse ne suffit pas à vous lancer.

0

Cela fonctionne: (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;