summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2018-07-10 23:27:17 +0200
committerFlorian Pritz <bluewind@xinu.at>2018-12-06 11:30:11 +0100
commit392c7fc0236c92629aa25ddcd11e1877252f32c0 (patch)
tree3c7576190907706a03033b7c8fcb6d046ac2be66
parentb15c50e2897fe9709c243f7c4397701ae3b8bc61 (diff)
downloadbugzilla-392c7fc0236c92629aa25ddcd11e1877252f32c0.tar.gz
bugzilla-392c7fc0236c92629aa25ddcd11e1877252f32c0.tar.xz
Flyspray: Add private bug support
Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rw-r--r--Bugzilla/Migrate.pm16
-rw-r--r--Bugzilla/Migrate/Flyspray.pm17
2 files changed, 30 insertions, 3 deletions
diff --git a/Bugzilla/Migrate.pm b/Bugzilla/Migrate.pm
index dce795400..e074d4c01 100644
--- a/Bugzilla/Migrate.pm
+++ b/Bugzilla/Migrate.pm
@@ -584,6 +584,7 @@ sub insert_products {
my ($self, $products) = @_;
foreach my $product (@$products) {
my $components = delete $product->{components};
+ my $groups = delete $product->{groups};
my $created_prod = new Bugzilla::Product({name => $product->{name}});
if (!$created_prod) {
@@ -591,6 +592,21 @@ sub insert_products {
print get_text('migrate_product_created', {created => $created_prod}), "\n";
}
+ for my $group (@$groups) {
+ my $group_id = new Bugzilla::Group({name => $group->{name}});
+ if (!$group_id) {
+ $group_id = Bugzilla::Group->create({
+ name => $group->{name},
+ description => $group->{description},
+ isbuggroup => 1,
+ isactive => 1,
+ owner_user_id => $group->{owner},
+ });
+ }
+ $created_prod->set_group_controls($group_id, $group->{settings});
+ $created_prod->update();
+ }
+
foreach my $component (@$components) {
next
if new Bugzilla::Component({
diff --git a/Bugzilla/Migrate/Flyspray.pm b/Bugzilla/Migrate/Flyspray.pm
index d96ebeaf4..b0fcf29e6 100644
--- a/Bugzilla/Migrate/Flyspray.pm
+++ b/Bugzilla/Migrate/Flyspray.pm
@@ -50,6 +50,7 @@ use constant FIELD_MAP => {
'comments' => 'comments',
'history' => 'history',
'attachments' => 'attachments',
+ 'groups' => 'groups',
};
use constant VALUE_MAP => {
@@ -237,6 +238,15 @@ sub _read_products {
isactive => 1,
components => $self->_get_fs_project_components($row->{project_id}),
version => "unspecified",
+ groups => [
+ {
+ name => "private",
+ description => "Private bug group",
+ owner => $self->_get_username(-1),
+ settings =>
+ {"membercontrol" => CONTROLMAPSHOWN, "othercontrol" => CONTROLMAPSHOWN,}
+ },
+ ],
};
$self->{map_project_id_to_name}->{$row->{project_id}} = $row->{project_title};
}
@@ -318,9 +328,6 @@ sub _read_bugs {
my @result;
while (my $row = $sth->fetchrow_hashref()) {
- if ($row->{mark_private} == 1) {
- ...;
- }
$self->debug("Processing bug " . $row->{task_id}, 2);
my $bug = {
short_desc => $row->{item_summary},
@@ -351,6 +358,10 @@ sub _read_bugs {
if not defined $self->{project_id_components}->{$row->{project_id}}
->{$bug->{component}};
+ if ($row->{mark_private} == 1) {
+ $bug->{groups} = ["private"];
+ }
+
# handle initial comment/description
if (length($bug->{comment}) > 65535) {
$bug->{comment}