diff options
author | Dylan William Hardison <dylan@hardison.net> | 2018-05-09 16:28:26 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-09 16:28:26 +0200 |
commit | 2c2b5a5644c17e2a9cc2d56fdbea76a25a24280f (patch) | |
tree | 85fd62c2ec982c67128de472ac1cc3d3904578d9 /extensions/PhabBugz/lib/Feed.pm | |
parent | 739676cf4b122cdec12981c2bc3a79c3f54aa7e4 (diff) | |
download | bugzilla-2c2b5a5644c17e2a9cc2d56fdbea76a25a24280f.tar.gz bugzilla-2c2b5a5644c17e2a9cc2d56fdbea76a25a24280f.tar.xz |
Revert "Bug 1440086 - Refactor PhabBugz extension code to use new User.pm module for better type checking"
This reverts commit 739676cf4b122cdec12981c2bc3a79c3f54aa7e4.
Diffstat (limited to 'extensions/PhabBugz/lib/Feed.pm')
-rw-r--r-- | extensions/PhabBugz/lib/Feed.pm | 67 |
1 files changed, 24 insertions, 43 deletions
diff --git a/extensions/PhabBugz/lib/Feed.pm b/extensions/PhabBugz/lib/Feed.pm index 648844055..821ec6527 100644 --- a/extensions/PhabBugz/lib/Feed.pm +++ b/extensions/PhabBugz/lib/Feed.pm @@ -31,6 +31,7 @@ use Bugzilla::Extension::PhabBugz::Util qw( add_security_sync_comments create_revision_attachment get_bug_role_phids + get_phab_bmo_ids get_project_phid get_security_sync_groups is_attachment_phab_revision @@ -145,14 +146,10 @@ sub feed_query { } # Skip changes done by phab-bot user - my $phab_user = Bugzilla::Extension::PhabBugz::User->new_from_query( - { - phids => [ $author_phid ] - } - ); - - if ($phab_user && $phab_user->bugzilla_id) { - if ($phab_user->bugzilla_user->login eq PHAB_AUTOMATION_USER) { + my $phab_users = get_phab_bmo_ids({ phids => [$author_phid] }); + if (@$phab_users) { + my $user = Bugzilla::User->new({ id => $phab_users->[0]->{id}, cache => 1 }); + if ($user->login eq PHAB_AUTOMATION_USER) { INFO("SKIPPING: Change made by phabricator user"); $self->save_last_id($story_id, 'feed'); next; @@ -259,10 +256,11 @@ sub group_query { ); } - INFO("Setting group members for " . $project->name); - my @group_members = get_group_members($group); - $project->set_members( \@group_members ); - $project->update(); + if ( my @group_members = get_group_members($group) ) { + INFO("Setting group members for " . $project->name); + $project->set_members( \@group_members ); + $project->update(); + } } } @@ -416,28 +414,15 @@ sub process_revision_change { my (@accepted_phids, @denied_phids, @accepted_user_ids, @denied_user_ids); unless ($revision->status eq 'changes-planned' || $revision->status eq 'needs-review') { foreach my $reviewer (@{ $revision->reviewers }) { - push(@accepted_phids, $reviewer->phid) if $reviewer->{phab_review_status} eq 'accepted'; - push(@denied_phids, $reviewer->phid) if $reviewer->{phab_review_status} eq 'rejected'; + push(@accepted_phids, $reviewer->phab_phid) if $reviewer->phab_review_status eq 'accepted'; + push(@denied_phids, $reviewer->phab_phid) if $reviewer->phab_review_status eq 'rejected'; } } - if ( @accepted_phids ) { - my $phab_users = Bugzilla::Extension::PhabBugz::User->match( - { - phids => \@accepted_phids - } - ); - @accepted_user_ids = map { $_->bugzilla_user->id } @$phab_users; - } - - if ( @denied_phids ) { - my $phab_users = Bugzilla::Extension::PhabBugz::User->match( - { - phids => \@denied_phids - } - ); - @denied_user_ids = map { $_->bugzilla_user->id } @$phab_users; - } + my $phab_users = get_phab_bmo_ids({ phids => \@accepted_phids }); + @accepted_user_ids = map { $_->{id} } @$phab_users; + $phab_users = get_phab_bmo_ids({ phids => \@denied_phids }); + @denied_user_ids = map { $_->{id} } @$phab_users; my %reviewers_hash = map { $_->name => 1 } @{ $revision->reviewers }; @@ -727,28 +712,24 @@ sub save_last_id { sub get_group_members { my ($group) = @_; - my $group_obj = ref $group ? $group : Bugzilla::Group->check( { name => $group, cache => 1 } ); my $members_all = $group_obj->members_complete(); - - my @userids; + my %users; foreach my $name ( keys %$members_all ) { foreach my $user ( @{ $members_all->{$name} } ) { - push @userids, $user->id; + $users{ $user->id } = $user; } } - return if !@userids; - # Look up the phab ids for these users - my $phab_users = Bugzilla::Extension::PhabBugz::User->match( - { - ids => \@userids - } - ); + my $phab_users = get_phab_bmo_ids( { ids => [ keys %users ] } ); + foreach my $phab_user ( @{$phab_users} ) { + $users{ $phab_user->{id} }->{phab_phid} = $phab_user->{phid}; + } - return map { $_->phid } @$phab_users; + # We only need users who have accounts in phabricator + return grep { $_->phab_phid } values %users; } 1; |