jenkins-status-tool 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +121 -0
- data/Rakefile +5 -0
- data/bin/jenkins-status-tool +11 -0
- data/lib/jenkins-status-tool.rb +16 -0
- data/lib/jenkins-status-tool/config.rb +22 -0
- data/lib/jenkins-status-tool/jenkins-broker.rb +24 -0
- data/lib/jenkins-status-tool/jenkins-project.rb +36 -0
- data/lib/jenkins-status-tool/runner.rb +67 -0
- data/lib/jenkins-status-tool/utils.rb +17 -0
- data/lib/jenkins-status-tool/version.rb +5 -0
- data/lib/jenkins-status-tool/webapp.rb +61 -0
- data/public/images/fail.png +0 -0
- data/public/images/inactive.png +0 -0
- data/public/images/pass.png +0 -0
- data/public/images/rcov-example.png +0 -0
- data/public/images/rcov-no-data.png +0 -0
- data/public/images/unknown.png +0 -0
- data/tasks/build.rake +44 -0
- data/tasks/tests.rake +5 -0
- data/views/index.erb +46 -0
- data/views/layout.erb +24 -0
- metadata +88 -0
data/README.markdown
ADDED
@@ -0,0 +1,121 @@
|
|
1
|
+
## The Jenkins Status Tool
|
2
|
+
Small tool to get the build status from Jenkins.
|
3
|
+
Useful for embedding Jenkins CI status images on your Github project.
|
4
|
+
|
5
|
+
|
6
|
+
## API
|
7
|
+
<table border=1>
|
8
|
+
<thead align=left>
|
9
|
+
<th>Method</th>
|
10
|
+
<th>Action</th>
|
11
|
+
<th>Info</th>
|
12
|
+
<th>Examples</th>
|
13
|
+
</thead>
|
14
|
+
<tbody>
|
15
|
+
<tr>
|
16
|
+
<td align=center><b>GET</b></td>
|
17
|
+
<td>/project/:project_id/status.json</td>
|
18
|
+
<td>Get project status json string</td>
|
19
|
+
<td>
|
20
|
+
{"status":"pass"}<br/>
|
21
|
+
{"status":"fail"}<br/>
|
22
|
+
{"status":"unknown"}
|
23
|
+
</td>
|
24
|
+
|
25
|
+
</tr>
|
26
|
+
|
27
|
+
<tr>
|
28
|
+
<td align=center><b>GET</b></td>
|
29
|
+
<td>/project/:project_id/status.png</td>
|
30
|
+
<td>Get project status image</td>
|
31
|
+
<td>
|
32
|
+
<img src="https://github.com/kontera-technologies/jenkins-status-tool/raw/master/public/images/pass.png"><br/>
|
33
|
+
<img src="https://github.com/kontera-technologies/jenkins-status-tool/raw/master/public/images/fail.png"><br/>
|
34
|
+
<img src="https://github.com/kontera-technologies/jenkins-status-tool/raw/master/public/images/unknown.png">
|
35
|
+
</td>
|
36
|
+
</tr>
|
37
|
+
|
38
|
+
<tr>
|
39
|
+
<td align=center><b>GET</b></td>
|
40
|
+
<td>/project/:project_id/rcov.png</td>
|
41
|
+
<td>Get project rcov graph image</td>
|
42
|
+
<td>
|
43
|
+
<img src="https://github.com/kontera-technologies/jenkins-status-tool/raw/master/readme-files/rcov.png"><br/>
|
44
|
+
</td>
|
45
|
+
|
46
|
+
</tr>
|
47
|
+
|
48
|
+
|
49
|
+
</tbody>
|
50
|
+
</table>
|
51
|
+
|
52
|
+
|
53
|
+
## Installation
|
54
|
+
currently available only via source
|
55
|
+
|
56
|
+
```bash
|
57
|
+
[root@far-far-away] git clone git@github.com:kontera-technologies/jenkins-status-tool.git
|
58
|
+
[root@far-far-away] bundle install
|
59
|
+
[root@far-far-away] bundle exec rake install
|
60
|
+
```
|
61
|
+
|
62
|
+
## Usage
|
63
|
+
after installing the gem, the `jenkins-status-tool` command should be available
|
64
|
+
|
65
|
+
```bash
|
66
|
+
[root@far-far-away] jenkins-status-tool --help
|
67
|
+
|
68
|
+
The Jenkins Status Tool
|
69
|
+
Usage: jenkins-status-tool [options]
|
70
|
+
|
71
|
+
Options:
|
72
|
+
-j, --jenkins URL Jenkins url, e.g http://jenkins:8080, default is localhost
|
73
|
+
-p, --port URL listening port, default is 7676
|
74
|
+
-d, --daemonize run in background
|
75
|
+
-P, --pid-file FILE pid file, default /var/run/jenkins-status-tool.pid
|
76
|
+
-s, --https use this if running behind https forwarder (e.g stunnel)
|
77
|
+
|
78
|
+
More Info:
|
79
|
+
https://github.com/kontera-technologies/jenkins-status-tool
|
80
|
+
|
81
|
+
```
|
82
|
+
|
83
|
+
## Example
|
84
|
+
lets say that our Jenkins server is running on ```jenkins-server:1234```
|
85
|
+
|
86
|
+
```
|
87
|
+
[root@far-far-away] jenkins-status-tool --jenkins jenkins-server:1234 --port 5555 --daemonize
|
88
|
+
[root@far-far-away] curl http://localhost:5555/project/my-project/status.json
|
89
|
+
{"status":"pass"}
|
90
|
+
[root@far-far-away] wget http://localhost:5555/project/my-project/status.png
|
91
|
+
[...SHOULD DOWNLOAD ONE OF THE IMAGES ABOVE...]
|
92
|
+
```
|
93
|
+
|
94
|
+
## Embed it
|
95
|
+
you can easily embed the current status of your builds in any html type document.
|
96
|
+
|
97
|
+
TextLite
|
98
|
+
|
99
|
+
```bash
|
100
|
+
"!https://jenkins-status-tool-url/projects/PROJECT-NAME/status.png!":http://jenkins.example.com/jobs/PROJET-NAME
|
101
|
+
```
|
102
|
+
|
103
|
+
RDoc
|
104
|
+
|
105
|
+
```bash
|
106
|
+
{<img src="https://jenkins-status-tool-url/projects/PROJECT-NAME/status.png" />}[http://jenkins.example.com/jobs/PROJET-NAME]
|
107
|
+
```
|
108
|
+
|
109
|
+
MarkDown
|
110
|
+
|
111
|
+
```bash
|
112
|
+
[](http://jenkins.example.com/jobs/PROJET-NAME)
|
113
|
+
```
|
114
|
+
|
115
|
+
>
|
116
|
+
> **The tunnel...**
|
117
|
+
> We used STunnel to route jenkins-status-tool-url:443 <=> jenkins-status-tool-url:5555
|
118
|
+
> This allow us to fetch the status images using https.
|
119
|
+
|
120
|
+
## Credits
|
121
|
+
* Status images by [travis-ci](https://github.com/travis-ci/travis-ci)
|
data/Rakefile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
module JenkinsStatusTool
|
2
|
+
ROOT = File.expand_path File.dirname __FILE__
|
3
|
+
|
4
|
+
autoload :Version, "#{ROOT}/jenkins-status-tool/version"
|
5
|
+
autoload :WebApp, "#{ROOT}/jenkins-status-tool/webapp"
|
6
|
+
autoload :Runner, "#{ROOT}/jenkins-status-tool/runner"
|
7
|
+
autoload :Config, "#{ROOT}/jenkins-status-tool/config"
|
8
|
+
autoload :Utils, "#{ROOT}/jenkins-status-tool/utils"
|
9
|
+
autoload :JenkinsBroker, "#{ROOT}/jenkins-status-tool/jenkins-broker"
|
10
|
+
autoload :JenkinsProject, "#{ROOT}/jenkins-status-tool/jenkins-project"
|
11
|
+
|
12
|
+
def self.version
|
13
|
+
Version::VERSION
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
require 'singleton'
|
3
|
+
|
4
|
+
module JenkinsStatusTool
|
5
|
+
class Config < OpenStruct
|
6
|
+
include Singleton
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
super
|
10
|
+
self.port = 7676
|
11
|
+
self.jenkins = "localhost:8080"
|
12
|
+
self.pid = '/var/run/jenkins-status-tool.pid'
|
13
|
+
self.root = File.expand_path File.join(JenkinsStatusTool::ROOT, "..")
|
14
|
+
self.https = false
|
15
|
+
end
|
16
|
+
|
17
|
+
def https?
|
18
|
+
self.https
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'open-uri'
|
3
|
+
require 'singleton'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module JenkinsStatusTool
|
7
|
+
class JenkinsBroker
|
8
|
+
include Singleton
|
9
|
+
|
10
|
+
def project_info project
|
11
|
+
json["jobs"].select {|o| o["name"] == project}.first rescue Hash.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def project_rcov_graph project
|
15
|
+
open("http://#{Config.instance.jenkins}/job/#{project}/rcov/graph").read rescue nil
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
def json
|
20
|
+
JSON.parse open("http://#{Config.instance.jenkins}/api/json").read
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
|
3
|
+
module JenkinsStatusTool
|
4
|
+
class JenkinsProject < OpenStruct
|
5
|
+
|
6
|
+
def initialize hash
|
7
|
+
super
|
8
|
+
self.project = hash.fetch :project
|
9
|
+
self.jenkins = JenkinsBroker::instance
|
10
|
+
end
|
11
|
+
|
12
|
+
def status
|
13
|
+
case color
|
14
|
+
when :red then :fail
|
15
|
+
when :blue then :pass
|
16
|
+
when :gray then :inactive
|
17
|
+
else :unknown
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def color
|
22
|
+
data["color"].to_sym
|
23
|
+
end
|
24
|
+
|
25
|
+
def rcov_image
|
26
|
+
jenkins.project_rcov_graph project
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def data
|
32
|
+
jenkins.project_info project
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
|
3
|
+
module JenkinsStatusTool
|
4
|
+
class Runner
|
5
|
+
|
6
|
+
def initialize(argv)
|
7
|
+
parser.parse! argv
|
8
|
+
end
|
9
|
+
|
10
|
+
def run!
|
11
|
+
config.daemonize ? daemonize! : WebApp.run!
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def daemonize!
|
16
|
+
fork do
|
17
|
+
Process.setsid
|
18
|
+
exit if fork
|
19
|
+
Dir.chdir('/tmp')
|
20
|
+
STDOUT.reopen('/dev/null','a')
|
21
|
+
STDIN.reopen('/dev/null')
|
22
|
+
STDERR.reopen('/dev/null','a')
|
23
|
+
File.open(options.pid, 'w') { |f| f.write Process.pid } rescue nil
|
24
|
+
WebApp.run!
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def parser
|
29
|
+
OptionParser.new do |opts|
|
30
|
+
opts.banner = "The Jenkins Status Tool"
|
31
|
+
opts.define_head "Usage: jenkins-status-tool [options]"
|
32
|
+
opts.separator ""
|
33
|
+
opts.separator "Options:"
|
34
|
+
|
35
|
+
opts.on('-j', '--jenkins URL', 'Jenkins url, e.g http://jenkins:8080, default is localhost') do |url|
|
36
|
+
config.jenkins = url
|
37
|
+
end
|
38
|
+
|
39
|
+
opts.on('-p', '--port URL', 'listening port, default is 7676') do |port|
|
40
|
+
config.port = port
|
41
|
+
end
|
42
|
+
|
43
|
+
opts.on("-d", "--daemonize","run in background") do
|
44
|
+
config.daemonize = true
|
45
|
+
end
|
46
|
+
|
47
|
+
opts.on("-P", "--pid-file FILE","pid file, default /var/run/jenkins-status-tool.pid") do |file|
|
48
|
+
config.pid = file
|
49
|
+
end
|
50
|
+
|
51
|
+
opts.on('-s', '--https', 'add this switch if you are running behind https forwarder (e.g stunnel)') do
|
52
|
+
config.https = true
|
53
|
+
end
|
54
|
+
|
55
|
+
opts.separator ""
|
56
|
+
opts.separator "More Info:"
|
57
|
+
opts.separator "https://github.com/kontera-technologies/jenkins-status-tool"
|
58
|
+
opts.separator ""
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def config
|
63
|
+
Config.instance
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'sinatra/base'
|
2
|
+
|
3
|
+
module JenkinsStatusTool
|
4
|
+
class WebApp < Sinatra::Base
|
5
|
+
|
6
|
+
set :root, Config::instance.root
|
7
|
+
set :port, Config::instance.port
|
8
|
+
|
9
|
+
get "/" do
|
10
|
+
erb :index
|
11
|
+
end
|
12
|
+
|
13
|
+
get "/project/:project/status.?:format?" do
|
14
|
+
case format
|
15
|
+
when :png then
|
16
|
+
redirect "/images/#{project.status}.png"
|
17
|
+
when :json then
|
18
|
+
{:status => project.status }.to_json
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
get "/project/:project/rcov.?:format?" do
|
23
|
+
case format
|
24
|
+
when :png then
|
25
|
+
content_type 'image/jpeg'
|
26
|
+
project.rcov_image or redirect "/images/rcov-no-data.png"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
protected
|
31
|
+
|
32
|
+
def redirect path
|
33
|
+
if config.https? and relative? path
|
34
|
+
super ["https://",request.host,path].join
|
35
|
+
else
|
36
|
+
super path
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def relative? path
|
41
|
+
path !~ /http(s*)?:\/\//i
|
42
|
+
end
|
43
|
+
|
44
|
+
def format
|
45
|
+
symbolize_params.fetch(:format).to_sym
|
46
|
+
end
|
47
|
+
|
48
|
+
def symbolize_params
|
49
|
+
@_params ||= Hash[params.map {|a| [a[0].to_sym,a[1]]}]
|
50
|
+
end
|
51
|
+
|
52
|
+
def project
|
53
|
+
@project ||= JenkinsProject.new symbolize_params
|
54
|
+
end
|
55
|
+
|
56
|
+
def config
|
57
|
+
self.class.config
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/tasks/build.rake
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'rubygems/package_task'
|
2
|
+
|
3
|
+
JenkinsStatusTool::GemSpec = Gem::Specification.new do |s|
|
4
|
+
s.name = "jenkins-status-tool"
|
5
|
+
s.version = JenkinsStatusTool.version
|
6
|
+
s.platform = Gem::Platform::RUBY
|
7
|
+
s.summary = "JenkinsStatusTool"
|
8
|
+
s.description = "JenkinsStatusTool - get jenkins status"
|
9
|
+
s.author = "Eran Barak Levi"
|
10
|
+
s.email = 'eran@kontera.com'
|
11
|
+
s.homepage = 'http://www.kontera.com'
|
12
|
+
s.executables = %w(jenkins-status-tool)
|
13
|
+
s.required_ruby_version = '>= 1.8.7'
|
14
|
+
s.rubyforge_project = "jenkins-status-tool"
|
15
|
+
s.files = %w(README.markdown Rakefile) + Dir.glob("{bin,lib,test,tasks,public,views}/**/*")
|
16
|
+
s.require_path = "lib"
|
17
|
+
s.bindir = "bin"
|
18
|
+
|
19
|
+
s.add_dependency 'sinatra'
|
20
|
+
s.add_dependency 'json'
|
21
|
+
end
|
22
|
+
|
23
|
+
task :gem => [:clobber_package]
|
24
|
+
Gem::PackageTask.new(JenkinsStatusTool::GemSpec) do |p|
|
25
|
+
p.gem_spec = JenkinsStatusTool::GemSpec
|
26
|
+
end
|
27
|
+
|
28
|
+
task :install => [:gem] do
|
29
|
+
sh "gem install pkg/jenkins-status-tool"
|
30
|
+
Rake::Task['clobber_package'].execute
|
31
|
+
end
|
32
|
+
|
33
|
+
namespace :gem do
|
34
|
+
desc "Upload jenkins-status-tool to Kontera's repo"
|
35
|
+
task :upload => [:build] do
|
36
|
+
sh "gem inabox --host http://gems.kontera.com pkg/jenkins-status-tool-#{JenkinsStatusTool.version}.gem"
|
37
|
+
end
|
38
|
+
|
39
|
+
desc "Update GraphiteAPI gem version and build gem"
|
40
|
+
task :build => [:test] do
|
41
|
+
sh "rake gem"
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
data/tasks/tests.rake
ADDED
data/views/index.erb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
<h2> Jenkins Status Tool API</h2></br>
|
2
|
+
|
3
|
+
<table border=1>
|
4
|
+
<thead align=left>
|
5
|
+
<th>Method</th>
|
6
|
+
<th>Action</th>
|
7
|
+
<th>Info</th>
|
8
|
+
<th>Examples</th>
|
9
|
+
</thead>
|
10
|
+
<tbody>
|
11
|
+
<tr>
|
12
|
+
<td align=center><b>GET</b></td>
|
13
|
+
<td>/project/:project_id/status.json</td>
|
14
|
+
<td>Get project status json string</td>
|
15
|
+
<td>
|
16
|
+
{"status":"pass"}<br/>
|
17
|
+
{"status":"fail"}<br/>
|
18
|
+
{"status":"unknown"}
|
19
|
+
</td>
|
20
|
+
|
21
|
+
</tr>
|
22
|
+
|
23
|
+
<tr>
|
24
|
+
<td align=center><b>GET</b></td>
|
25
|
+
<td>/project/:project_id/status.png</td>
|
26
|
+
<td>Get project status image</td>
|
27
|
+
<td>
|
28
|
+
<img src="/images/pass.png"><br/>
|
29
|
+
<img src="/images/fail.png"><br/>
|
30
|
+
<img src="/images/unknown.png">
|
31
|
+
</td>
|
32
|
+
</tr>
|
33
|
+
|
34
|
+
<tr>
|
35
|
+
<td align=center><b>GET</b></td>
|
36
|
+
<td>/project/:project_id/rcov.png</td>
|
37
|
+
<td>Get project rcov graph image</td>
|
38
|
+
<td>
|
39
|
+
<img src="/images/rcov-example.png"><br/>
|
40
|
+
</td>
|
41
|
+
|
42
|
+
</tr>
|
43
|
+
|
44
|
+
|
45
|
+
</tbody>
|
46
|
+
</table>
|
data/views/layout.erb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
<html>
|
2
|
+
|
3
|
+
<head>
|
4
|
+
<style>
|
5
|
+
body { background-color: #fff; color: #333; }
|
6
|
+
body, p, ol, ul, td {
|
7
|
+
font-family: verdana, arial, helvetica, sans-serif;
|
8
|
+
font-size: 16px;
|
9
|
+
line-height: 18px;
|
10
|
+
}
|
11
|
+
a { color: #000; }
|
12
|
+
a:visited { color: #666; }
|
13
|
+
a:hover { color: #fff; background-color:#000; }
|
14
|
+
</style>
|
15
|
+
|
16
|
+
<title>The Jenkins Status Tool</title>
|
17
|
+
</head>
|
18
|
+
|
19
|
+
<body>
|
20
|
+
<div class = "container">
|
21
|
+
<%= yield %>
|
22
|
+
</div>
|
23
|
+
</body>
|
24
|
+
</html>
|
metadata
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jenkins-status-tool
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Eran Barak Levi
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-04-05 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sinatra
|
16
|
+
requirement: &70325820167340 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70325820167340
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: json
|
27
|
+
requirement: &70325820166820 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70325820166820
|
36
|
+
description: JenkinsStatusTool - get jenkins status
|
37
|
+
email: eran@kontera.com
|
38
|
+
executables:
|
39
|
+
- jenkins-status-tool
|
40
|
+
extensions: []
|
41
|
+
extra_rdoc_files: []
|
42
|
+
files:
|
43
|
+
- README.markdown
|
44
|
+
- Rakefile
|
45
|
+
- bin/jenkins-status-tool
|
46
|
+
- lib/jenkins-status-tool/config.rb
|
47
|
+
- lib/jenkins-status-tool/jenkins-broker.rb
|
48
|
+
- lib/jenkins-status-tool/jenkins-project.rb
|
49
|
+
- lib/jenkins-status-tool/runner.rb
|
50
|
+
- lib/jenkins-status-tool/utils.rb
|
51
|
+
- lib/jenkins-status-tool/version.rb
|
52
|
+
- lib/jenkins-status-tool/webapp.rb
|
53
|
+
- lib/jenkins-status-tool.rb
|
54
|
+
- tasks/build.rake
|
55
|
+
- tasks/tests.rake
|
56
|
+
- public/images/fail.png
|
57
|
+
- public/images/inactive.png
|
58
|
+
- public/images/pass.png
|
59
|
+
- public/images/rcov-example.png
|
60
|
+
- public/images/rcov-no-data.png
|
61
|
+
- public/images/unknown.png
|
62
|
+
- views/index.erb
|
63
|
+
- views/layout.erb
|
64
|
+
homepage: http://www.kontera.com
|
65
|
+
licenses: []
|
66
|
+
post_install_message:
|
67
|
+
rdoc_options: []
|
68
|
+
require_paths:
|
69
|
+
- lib
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.8.7
|
76
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ! '>='
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
requirements: []
|
83
|
+
rubyforge_project: jenkins-status-tool
|
84
|
+
rubygems_version: 1.8.15
|
85
|
+
signing_key:
|
86
|
+
specification_version: 3
|
87
|
+
summary: JenkinsStatusTool
|
88
|
+
test_files: []
|