Created
August 28, 2013 03:26
-
-
Save spicyjack/6361842 to your computer and use it in GitHub Desktop.
Patch to Net::Jenkins to get the Jenkins server version after an API request
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/lib/Net/Jenkins.pm b/lib/Net/Jenkins.pm | |
index 5126b1b..c8b9eeb 100644 | |
--- a/lib/Net/Jenkins.pm | |
+++ b/lib/Net/Jenkins.pm | |
@@ -36,25 +36,41 @@ has user_agent => ( | |
default => sub { return LWP::UserAgent->new; }, | |
); | |
+has jenkins_version => ( | |
+ is => 'rw', | |
+ isa => 'Str', | |
+); | |
+ | |
method get_base_url { | |
return $self->scheme . '://' . $self->host . ':' . $self->port; | |
} | |
+method update_jenkins_version ($response) { | |
+ $self->jenkins_version( $response->header(q(X-Jenkins)) ); | |
+ return $self->jenkins_version; | |
+} | |
+ | |
method post_url ($uri,%args) { | |
- return $self->user_agent->post( $uri , \%args ); | |
+ my $response = $self->user_agent->post( $uri , \%args ); | |
+ $self->update_jenkins_version($response); | |
+ return $response; | |
} | |
method get_url ($uri) { | |
- return $self->user_agent->get($uri); | |
+ my $response = $self->user_agent->get($uri); | |
+ $self->update_jenkins_version($response); | |
+ return $response; | |
} | |
method get_json ( $uri ) { | |
my $response = $self->user_agent->get($uri); | |
+ $self->update_jenkins_version($response); | |
return decode_json $response->decoded_content if $response->is_success; | |
} | |
method summary { | |
my $uri = $self->get_base_url . '/api/json'; | |
+ # $self->get_json already sets $self->jenkins_version | |
return $self->get_json( $uri ); | |
} | |
diff --git a/t/01_utils.t b/t/01_utils.t | |
index df3675b..6281e71 100644 | |
--- a/t/01_utils.t | |
+++ b/t/01_utils.t | |
@@ -5,6 +5,8 @@ use Net::Jenkins::Utils qw(build_job_object build_api_object build_build_object) | |
my $api = build_api_object 'http://ci.jruby.org/job/jruby-git'; | |
ok $api; | |
+ok $api->summary; | |
+ok $api->jenkins_version; | |
my $job = build_job_object 'http://ci.jruby.org/job/jruby-git'; | |
ok $job; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment