From: dklawren Date: Tue, 28 May 2019 19:18:55 +0000 (-0400) Subject: Bug 1546437 - group reviewers not properly flagged in "Phabricator Revisions" bugzill... X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4353d735d93e83a9240f638d36eb0e3243c1ccaf;p=thirdparty%2Fbugzilla.git Bug 1546437 - group reviewers not properly flagged in "Phabricator Revisions" bugzilla section --- diff --git a/extensions/PhabBugz/lib/Revision.pm b/extensions/PhabBugz/lib/Revision.pm index 1e3a1fa4c..4c6338b5c 100644 --- a/extensions/PhabBugz/lib/Revision.pm +++ b/extensions/PhabBugz/lib/Revision.pm @@ -44,7 +44,7 @@ has subscriber_count => (is => 'ro', isa => Int); has bug => (is => 'lazy', isa => Object); has author => (is => 'lazy', isa => Object); has reviews => - (is => 'lazy', isa => ArrayRef [Dict [user => PhabUser, status => Str]]); + (is => 'lazy', isa => ArrayRef [Dict [user => PhabUser | PhabProject, status => Str]]); has subscribers => (is => 'lazy', isa => ArrayRef [PhabUser]); has projects => (is => 'lazy', isa => ArrayRef [Project]); has reviewers_raw => ( @@ -285,14 +285,23 @@ sub _build_reviews { my ($self) = @_; my %by_phid = map { $_->{reviewerPHID} => $_ } @{$self->reviewers_raw}; - my $users - = Bugzilla::Extension::PhabBugz::User->match({phids => [keys %by_phid]}); + my @users; + foreach my $phid (keys %by_phid) { + if ($phid =~ /^PHID-PROJ/) { + push(@users, + Bugzilla::Extension::PhabBugz::Project->new_from_query({phids => [$phid]})); + } + else { + push(@users, + Bugzilla::Extension::PhabBugz::User->new_from_query({phids => [$phid]})); + } + } my @reviewers; - foreach my $user (@{$users}) { + foreach my $user (@users) { my $reviewer_data = {user => $user, status => $by_phid{$user->phid}{status}}; -# Set to accepted-prior if the diffs reviewer are different and the reviewer status is accepted + # Set to accepted-prior if the diffs reviewer are different and the reviewer status is accepted foreach my $reviewer_extra (@{$self->reviewers_extra_raw}) { if ($reviewer_extra->{reviewerPHID} eq $user->phid) { if ($reviewer_extra->{diffPHID}) { diff --git a/extensions/PhabBugz/lib/Types.pm b/extensions/PhabBugz/lib/Types.pm index 267b8c26a..49dcd2e53 100644 --- a/extensions/PhabBugz/lib/Types.pm +++ b/extensions/PhabBugz/lib/Types.pm @@ -12,14 +12,16 @@ use strict; use warnings; use Type::Library -base, - -declare => qw( Revision LinkedPhabUser PhabUser Policy Project ); + -declare => qw( Revision LinkedPhabUser PhabProject PhabUser Policy Project ); use Type::Utils -all; use Types::Standard -all; -class_type Revision, {class => 'Bugzilla::Extension::PhabBugz::Revision'}; -class_type Policy, {class => 'Bugzilla::Extension::PhabBugz::Policy'}; -class_type Project, {class => 'Bugzilla::Extension::PhabBugz::Project'}; -class_type PhabUser, {class => 'Bugzilla::Extension::PhabBugz::User'}; +class_type Revision, {class => 'Bugzilla::Extension::PhabBugz::Revision'}; +class_type Policy, {class => 'Bugzilla::Extension::PhabBugz::Policy'}; +class_type Project, {class => 'Bugzilla::Extension::PhabBugz::Project'}; +class_type PhabProject, {class => 'Bugzilla::Extension::PhabBugz::Project'}; +class_type PhabUser, {class => 'Bugzilla::Extension::PhabBugz::User'}; declare LinkedPhabUser, as PhabUser, where { is_Int($_->bugzilla_id) }; + 1;