diff options
author | dklawren <dklawren@users.noreply.github.com> | 2018-04-26 19:41:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-26 19:41:27 +0200 |
commit | ba5f2af68c6dd8639c6bd45d3e419741e1946134 (patch) | |
tree | 496e5ae7aca2239752bcdbca5a587a3504fea48d | |
parent | 79dd60d845e426dcd243057cd1bca36be27076db (diff) | |
download | bugzilla-ba5f2af68c6dd8639c6bd45d3e419741e1946134.tar.gz bugzilla-ba5f2af68c6dd8639c6bd45d3e419741e1946134.tar.xz |
Bug 1454647 - Mirror all BMO groups as Phabricator projects and keep them in sync
-rw-r--r-- | extensions/PhabBugz/lib/Config.pm | 5 | ||||
-rw-r--r-- | extensions/PhabBugz/lib/Feed.pm | 20 | ||||
-rw-r--r-- | extensions/PhabBugz/lib/Policy.pm | 2 | ||||
-rw-r--r-- | extensions/PhabBugz/lib/Util.pm | 7 | ||||
-rw-r--r-- | extensions/PhabBugz/lib/WebService.pm | 1 | ||||
-rw-r--r-- | extensions/PhabBugz/template/en/default/admin/params/phabbugz.html.tmpl | 1 | ||||
-rw-r--r-- | extensions/PhabBugz/template/en/default/hook/global/user-error-errors.html.tmpl | 7 | ||||
-rw-r--r-- | extensions/Push/lib/Connector/Phabricator.pm | 1 | ||||
-rwxr-xr-x | scripts/generate_conduit_data.pl | 1 |
9 files changed, 15 insertions, 30 deletions
diff --git a/extensions/PhabBugz/lib/Config.pm b/extensions/PhabBugz/lib/Config.pm index 85ba37e74..d4b71430b 100644 --- a/extensions/PhabBugz/lib/Config.pm +++ b/extensions/PhabBugz/lib/Config.pm @@ -31,11 +31,6 @@ sub get_param_list { checker => \&check_urlbase }, { - name => 'phabricator_sync_groups', - type => 't', - default => '', - }, - { name => 'phabricator_api_key', type => 't', default => '', diff --git a/extensions/PhabBugz/lib/Feed.pm b/extensions/PhabBugz/lib/Feed.pm index 4c7fe54a5..c35eeba4d 100644 --- a/extensions/PhabBugz/lib/Feed.pm +++ b/extensions/PhabBugz/lib/Feed.pm @@ -16,8 +16,9 @@ use List::MoreUtils qw(any); use Moo; use Try::Tiny; -use Bugzilla::Logging; use Bugzilla::Constants; +use Bugzilla::Field; +use Bugzilla::Logging; use Bugzilla::Search; use Bugzilla::Util qw(diff_arrays with_writable_database with_readonly_database); @@ -104,7 +105,7 @@ sub start { sub feed_query { my ($self) = @_; - Bugzilla::Logging->fields->{type} = 'FEED'; + local Bugzilla::Logging->fields->{type} = 'FEED'; # Ensure Phabricator syncing is enabled if (!Bugzilla->params->{phabricator_enabled}) { @@ -164,7 +165,7 @@ sub feed_query { sub user_query { my ( $self ) = @_; - Bugzilla::Logging->fields->{type} = 'USERS'; + local Bugzilla::Logging->fields->{type} = 'USERS'; # Ensure Phabricator syncing is enabled if (!Bugzilla->params->{phabricator_enabled}) { @@ -204,21 +205,17 @@ sub user_query { sub group_query { my ($self) = @_; + local Bugzilla::Logging->fields->{type} = 'GROUPS'; + # Ensure Phabricator syncing is enabled if ( !Bugzilla->params->{phabricator_enabled} ) { WARN("PHABRICATOR SYNC DISABLED"); return; } - my $phab_sync_groups = Bugzilla->params->{phabricator_sync_groups}; - if ( !$phab_sync_groups ) { - WARN('A comma delimited list of security groups was not provided.'); - return; - } - # PROCESS SECURITY GROUPS - INFO("GROUPS: Updating group memberships"); + INFO("Updating group memberships"); # Loop through each group and perform the following: # @@ -228,8 +225,7 @@ sub group_query { # 4. Set project members to exact list # 5. Profit - my $sync_groups = Bugzilla::Group->match( - { name => [ split( '[,\s]+', $phab_sync_groups ) ] } ); + my $sync_groups = Bugzilla::Group->match( { isactive => 1, isbuggroup => 1 } ); foreach my $group (@$sync_groups) { diff --git a/extensions/PhabBugz/lib/Policy.pm b/extensions/PhabBugz/lib/Policy.pm index 0beecc8e1..3ad6f284c 100644 --- a/extensions/PhabBugz/lib/Policy.pm +++ b/extensions/PhabBugz/lib/Policy.pm @@ -112,7 +112,7 @@ sub create { push @$project_phids, $project->phid if $project; } - ThrowUserError('invalid_phabricator_sync_groups') unless @$project_phids; + ThrowUserError('invalid_phabricator_projects') unless @$project_phids; push @{ $data->{policy} }, { action => 'allow', diff --git a/extensions/PhabBugz/lib/Util.pm b/extensions/PhabBugz/lib/Util.pm index 0f9351285..42da79c39 100644 --- a/extensions/PhabBugz/lib/Util.pm +++ b/extensions/PhabBugz/lib/Util.pm @@ -162,7 +162,7 @@ sub create_private_revision_policy { push(@$project_phids, $phid) if $phid; } - ThrowUserError('invalid_phabricator_sync_groups') unless @$project_phids; + ThrowUserError('invalid_phabricator_projects') unless @$project_phids; push(@{ $data->{policy} }, { @@ -512,9 +512,8 @@ sub request { sub get_security_sync_groups { my $bug = shift; - my $phab_sync_groups = Bugzilla->params->{phabricator_sync_groups} - || ThrowUserError('invalid_phabricator_sync_groups'); - my $sync_group_names = [ split('[,\s]+', $phab_sync_groups) ]; + my $sync_groups = Bugzilla::Group->match( { isactive => 1, isbuggroup => 1 } ); + my $sync_group_names = [ map { $_->name } @$sync_groups ]; my $bug_groups = $bug->groups_in; my $bug_group_names = [ map { $_->name } @$bug_groups ]; diff --git a/extensions/PhabBugz/lib/WebService.pm b/extensions/PhabBugz/lib/WebService.pm index adf127a1f..32cea1b51 100644 --- a/extensions/PhabBugz/lib/WebService.pm +++ b/extensions/PhabBugz/lib/WebService.pm @@ -35,7 +35,6 @@ use Bugzilla::Extension::PhabBugz::Util qw( get_project_phid get_revisions_by_ids get_security_sync_groups - intersect is_attachment_phab_revision make_revision_public request diff --git a/extensions/PhabBugz/template/en/default/admin/params/phabbugz.html.tmpl b/extensions/PhabBugz/template/en/default/admin/params/phabbugz.html.tmpl index d67839cc8..1b5bdda4b 100644 --- a/extensions/PhabBugz/template/en/default/admin/params/phabbugz.html.tmpl +++ b/extensions/PhabBugz/template/en/default/admin/params/phabbugz.html.tmpl @@ -16,7 +16,6 @@ phabricator_enabled => 'Enable Phabricator Integration', phabricator_base_uri => 'Phabricator Base URI', phabricator_api_key => 'Phabricator User API Key', - phabricator_sync_groups => 'Comma delimited list of Bugzilla groups to sync to Phabricator projects', phabricator_auth_callback_url => 'Phabricator Auth Delegation URL', phabricator_app_id => 'app_id for API Keys delegated to Phabricator', } diff --git a/extensions/PhabBugz/template/en/default/hook/global/user-error-errors.html.tmpl b/extensions/PhabBugz/template/en/default/hook/global/user-error-errors.html.tmpl index 1457e3525..f1366e7b6 100644 --- a/extensions/PhabBugz/template/en/default/hook/global/user-error-errors.html.tmpl +++ b/extensions/PhabBugz/template/en/default/hook/global/user-error-errors.html.tmpl @@ -14,10 +14,9 @@ [% title = "Invalid Phabricator API Key" %] You must provide a valid Phabricator API Key. -[% ELSIF error == "invalid_phabricator_sync_groups" %] - [% title = "Invalid Phabricator Sync Groups" %] - You must provide a comma delimited list of security groups - to sync with Phabricator. +[% ELSIF error == "invalid_phabricator_projects" %] + [% title = "Invalid Phabricator Projects" %] + One or more Phabricator projects selected are invalid. [% ELSIF error == "invalid_phabricator_revision_id" %] [% title = "Invalid Phabricator Revision ID" %] diff --git a/extensions/Push/lib/Connector/Phabricator.pm b/extensions/Push/lib/Connector/Phabricator.pm index 1878834a9..cea73f410 100644 --- a/extensions/Push/lib/Connector/Phabricator.pm +++ b/extensions/Push/lib/Connector/Phabricator.pm @@ -28,7 +28,6 @@ use Bugzilla::Extension::PhabBugz::Util qw( get_bug_role_phids get_project_phid get_security_sync_groups - intersect make_revision_public make_revision_private set_revision_subscribers diff --git a/scripts/generate_conduit_data.pl b/scripts/generate_conduit_data.pl index 50a7379f4..541afb52a 100755 --- a/scripts/generate_conduit_data.pl +++ b/scripts/generate_conduit_data.pl @@ -133,7 +133,6 @@ set_params( password_check_on_login => 0, phabricator_base_uri => 'http://phabricator.test/', phabricator_enabled => 1, - phabricator_sync_groups => 'core-security', ); set_push_connector_options(); |