summaryrefslogtreecommitdiffstats
path: root/extensions/Push
diff options
context:
space:
mode:
authorPiotr Zalewa <zaloon@gmail.com>2018-02-28 23:13:43 +0100
committerdklawren <dklawren@users.noreply.github.com>2018-02-28 23:13:43 +0100
commitc7fd0908bd85bc5761aa28fe9c893f93394bfd4b (patch)
tree2aa2a35a97c7c38018baad35a0d92504ca59570d /extensions/Push
parent26f4bcb1ce2dad98c457c3b6b755cca134485b14 (diff)
downloadbugzilla-c7fd0908bd85bc5761aa28fe9c893f93394bfd4b.tar.gz
bugzilla-c7fd0908bd85bc5761aa28fe9c893f93394bfd4b.tar.xz
Bug 1440239 - PhabBugz - Assign a secure-revision
Diffstat (limited to 'extensions/Push')
-rw-r--r--extensions/Push/lib/Connector/Phabricator.pm28
1 files changed, 23 insertions, 5 deletions
diff --git a/extensions/Push/lib/Connector/Phabricator.pm b/extensions/Push/lib/Connector/Phabricator.pm
index 8c3b56112..5da64901a 100644
--- a/extensions/Push/lib/Connector/Phabricator.pm
+++ b/extensions/Push/lib/Connector/Phabricator.pm
@@ -20,11 +20,19 @@ use Bugzilla::User;
use Bugzilla::Extension::PhabBugz::Constants;
use Bugzilla::Extension::PhabBugz::Util qw(
- add_comment_to_revision create_private_revision_policy
- edit_revision_policy get_attachment_revisions get_bug_role_phids
- intersect make_revision_public
- make_revision_private set_revision_subscribers
- get_security_sync_groups add_security_sync_comments);
+ add_comment_to_revision
+ add_security_sync_comments
+ create_private_revision_policy
+ edit_revision_policy
+ get_attachment_revisions
+ get_bug_role_phids
+ get_project_phid
+ get_security_sync_groups
+ intersect
+ make_revision_public
+ make_revision_private
+ set_revision_subscribers
+);
use Bugzilla::Extension::Push::Constants;
use Bugzilla::Extension::Push::Util qw(is_public);
@@ -96,9 +104,14 @@ sub send {
$subscribers = get_bug_role_phids($bug);
}
+ my $secure_project_phid = get_project_phid('secure-revision');
+
foreach my $revision (@revisions) {
my $revision_phid = $revision->{phid};
+ my $rev_obj = Bugzilla::Extension::PhabBugz::Revision->new_from_query({ phids => [ $revision_phid ] });
+ my $revision_updated;
+
if ( $is_public && $group_change ) {
Bugzilla->audit(sprintf(
'Making revision %s public for bug %s',
@@ -106,6 +119,8 @@ sub send {
$bug->id
));
make_revision_public($revision_phid);
+ $rev_obj->remove_project($secure_project_phid);
+ $revision_updated = 1;
}
elsif ( !$is_public && $group_change ) {
Bugzilla->audit(sprintf(
@@ -115,6 +130,8 @@ sub send {
));
my $policy_phid = create_private_revision_policy( $bug, \@set_groups );
edit_revision_policy( $revision_phid, $policy_phid, $subscribers );
+ $rev_obj->add_project($secure_project_phid);
+ $revision_updated = 1;
}
elsif ( !$is_public && !$group_change ) {
Bugzilla->audit(sprintf(
@@ -124,6 +141,7 @@ sub send {
));
set_revision_subscribers( $revision_phid, $subscribers );
}
+ $rev_obj->update() if $revision_updated;
}
return PUSH_RESULT_OK;