summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Côté <mcote@alumni.uwaterloo.ca>2016-07-13 23:16:01 +0200
committerMark Côté <mcote@alumni.uwaterloo.ca>2016-07-13 23:16:01 +0200
commit3c3b40c618586c8cbc9cf62d162b6c08b82bf0c6 (patch)
tree26871ec618cfb39af2675567920062221c74ce21
parent20af085df8330dd40652d25f7542317ca4212ef2 (diff)
downloadbugzilla-3c3b40c618586c8cbc9cf62d162b6c08b82bf0c6.tar.gz
bugzilla-3c3b40c618586c8cbc9cf62d162b6c08b82bf0c6.tar.xz
Bug 1286650 - Add option to scripts/issue-api-key.pl to specify an API key explicitly. r=dylan
This is useful for testing, so we don't have to store a randomly generated key for the duration of the test; instead we can hardcode one in the tests.
-rw-r--r--Bugzilla/User/APIKey.pm6
-rwxr-xr-xscripts/issue-api-key.pl11
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;