diff options
-rw-r--r-- | Bugzilla/User/APIKey.pm | 6 | ||||
-rwxr-xr-x | scripts/issue-api-key.pl | 11 |
2 files changed, 15 insertions, 2 deletions
diff --git a/Bugzilla/User/APIKey.pm b/Bugzilla/User/APIKey.pm index d89203e68..500f0ad59 100644 --- a/Bugzilla/User/APIKey.pm +++ b/Bugzilla/User/APIKey.pm @@ -88,6 +88,12 @@ sub _check_app_id { return $app_id; } + +sub create_special { + my ($class, @args) = @_; + local VALIDATORS->{api_key} = sub { return $_[1] }; + return $class->create(@args); +} 1; __END__ diff --git a/scripts/issue-api-key.pl b/scripts/issue-api-key.pl index 35abb9200..334cddeaa 100755 --- a/scripts/issue-api-key.pl +++ b/scripts/issue-api-key.pl @@ -22,19 +22,26 @@ use Bugzilla::User::APIKey; Bugzilla->usage_mode(USAGE_MODE_CMDLINE); my $login = shift - or die "syntax: $0 bugzilla-login [description]\n"; + or die "syntax: $0 bugzilla-login [description] [api key]\n"; my $description = shift; +my $given_api_key = shift; +my $api_key; my $user = Bugzilla::User->check({ name => $login }); my $params = { user_id => $user->id, description => $description, + api_key => $given_api_key, }; if ($description && $description eq 'mozreview') { $params->{app_id} = Bugzilla->params->{mozreview_app_id} // ''; } -my $api_key = Bugzilla::User::APIKey->create($params); +if ($given_api_key) { + $api_key = Bugzilla::User::APIKey->create_special($params); +} else { + $api_key = Bugzilla::User::APIKey->create($params); +} say $api_key->api_key; |