diff options
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/Example/Extension.pm | 6 | ||||
-rw-r--r-- | extensions/Example/lib/Migrate/ImportBugs.pm | 102 |
2 files changed, 108 insertions, 0 deletions
diff --git a/extensions/Example/Extension.pm b/extensions/Example/Extension.pm index 1649957fd..ad96066f7 100644 --- a/extensions/Example/Extension.pm +++ b/extensions/Example/Extension.pm @@ -635,6 +635,12 @@ sub mailer_before_send { $email->header_set('X-Bugzilla-Example-Header', 'Example'); } +sub migrate_modules { + my ($self, $args) = @_; + $args->{path} = bz_locations->{'extensionsdir'} . "/Example/lib/Migrate"; + $args->{prefix} = "Bugzilla::Extension::Example:Migrate"; +} + sub object_before_create { my ($self, $args) = @_; diff --git a/extensions/Example/lib/Migrate/ImportBugs.pm b/extensions/Example/lib/Migrate/ImportBugs.pm new file mode 100644 index 000000000..42a393c73 --- /dev/null +++ b/extensions/Example/lib/Migrate/ImportBugs.pm @@ -0,0 +1,102 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This Source Code Form is "Incompatible With Secondary Licenses", as +# defined by the Mozilla Public License, v. 2.0. + + +=head1 NAME + +Bugzilla::Extension::Example::Migrate::ImportBugs - Bugzilla example bug importer + +=head1 DESCRIPTION + +This is not a complete implementation of a Import module. For a working +implementation see L<Bugzilla::Migrate::Gnats>. + +=cut + +package Bugzilla::Extension::Example::Migrate::ImportBugs; +use strict; +use base qw(Bugzilla::Migrate); + +use Bugzilla::Constants; +use Bugzilla::Install::Util qw(indicate_progress); +use Bugzilla::Util qw(format_time trim generate_random_password); + +use constant REQUIRED_MODULES => [ + { + package => 'Email-Simple-FromHandle', + module => 'Email::Simple::FromHandle', + version => 0.050, + }, +]; + +use constant FIELD_MAP => { + 'Number' => 'bug_id', + 'Category' => 'product', +}; + +use constant VALUE_MAP => { + bug_severity => { + 'serious' => 'major', + 'non-critical' => 'normal', + }, + bug_status => { + 'feedback' => 'RESOLVED', + 'released' => 'VERIFIED', + }, +}; + +use constant IMPORTBUGS_CONFIG_VARS => ( + { + name => 'default_email_domain', + default => 'example.com', + desc => <<'END', +# Some users do not have full email addresses, but Bugzilla requires +# every user to have an email address. What domain should be appended to +# usernames that don't have emails, to make them into email addresses? +# (For example, if you leave this at the default, "unknown" would become +# "unknown@example.com".) +END + }, +); + +######### +# Hooks # +######### + +sub before_insert { + my $self = shift; +} + +######### +# Users # +######### + +sub _read_users { + my $self = shift; +} + +############ +# Products # +############ + +sub _read_products { + my $self = shift; +} + +################ +# Reading Bugs # +################ + +sub _read_bugs { + my $self = shift; +} + +sub _parse_project { + my ($self, $directory) = @_; +} + +1; |