lita-jenkins-notifier 0.0.2.pre.alpha.pre.6
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.
- checksums.yaml +15 -0
- data/.gitignore +17 -0
- data/.rspec +2 -0
- data/.rubocop.yml +3 -0
- data/.travis.yml +15 -0
- data/Gemfile +3 -0
- data/LICENSE +19 -0
- data/README.md +42 -0
- data/Rakefile +11 -0
- data/lib/lita/handlers/jenkins_notifier.rb +80 -0
- data/lib/lita_jenkins_notifier.rb +7 -0
- data/lita-jenkins-notifier.gemspec +27 -0
- data/locales/en.yml +4 -0
- data/spec/lita/handlers/jenkins_notifier_spec.rb +107 -0
- data/spec/spec_helper.rb +29 -0
- metadata +175 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YTNhNTFhYWE3YTVlMTU4YWU3NGQ4NGQxYWE1YTcyMGNkMjI2N2NmYg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ODJkMTczZTI2Mzk2YzJhOGE5NDBmMWZhMWM5ZWFhMGRjOWUzNjY0MQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZGE3ZDZmNWUwOWUxYzhkZWFmZmVlYzEyNTdjMzNkZWI3NzdhNmZhNTFiY2Yx
|
10
|
+
OTg2M2U0N2I1ODQwOGFmMWRkYmZhMDZkYjZmMWZkNjVkYTJkZDA4OWQyYWJk
|
11
|
+
ZjFmYWFmNjRhZjllM2I4OTkzZmM4YzkwYzNlOTM2YmFmMDAwMzA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MjUzYTE2MTdjOTYxMmNiODFiODY1ZTQ0MzViMmQ4OTljZmIwNTRlYzg1Yzhm
|
14
|
+
ZDRhZGFmMjFhOTAxODA4NjE5NDljNjdlMGIwZDhkM2Q4YTFiYWVkMmJhYzhl
|
15
|
+
NzkzNzc5OTNjNjdiNGYwZjNlMDA3YjY3ZThhMzI0MTFkNWZjNWI=
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 2.3.0
|
4
|
+
sudo: required
|
5
|
+
services:
|
6
|
+
- redis-server
|
7
|
+
cache: bundler
|
8
|
+
deploy:
|
9
|
+
provider: rubygems
|
10
|
+
api_key:
|
11
|
+
secure: PR4iJ3IN4CBR4Y4YTc3W5o7i+w6TuCtE/O2z5X3jyaHWvB+7CQrHqP22n2ALLJNZgeKBgkfEBBJ8ZWPtEK1j4GQw7Hdy1Ct0tFnhtYpCaFVAaLnx0fiN7vOT349ZYVSZ3DzviOmyjy31HjxjWNqLmLxOkoxPpSv5TpK2WDjr4dxiv2ufNm+W+6RNBdCR/Pd9Au+Z4Wzl2rbOmbj2zNXTgFHS7U16owLuJqpK/lR9iQZhPAHG/hDOOYmZBXXJKkpqwC7WTA3zhYQj3/dPDmZKU+mHhqRuOKoy3ylyYK3TIwIgc8GuaDUY2Ekk3j99kGC7xKn6pghyxjP+z2WITeXGX9OKBkH13K1+uXXUhZnfAWUlaDiUwOIa+mfYpjbw64CZr25zabljZhAgZhnluuImp4h7NwlFyqu9TjugPToIjmKXRJASBJudmoEY+Qpq/6adWsY9mD61RVQ0z7USNIKNUr0T8fVYe7CzW2qgScUKcYN9i/Mp88AZkX+GZ+5NUyau94nRt9+z1vK9pGg30FGVr9nrXb17dBVRXttH4tjHbdOxJ9YSWTQc8cX6qBfxmavEyjzJNiBuJBuDfIAC8gayT/mxueCmX0sDoG9WyYpf6p6P8uQ+fhR8s7R5jdQdRz1vO9IE8osjNl0k908Cs2DsSBLnD9E+tnUTMt51Khx2k0U=
|
12
|
+
gem: lita-jenkins-notifier
|
13
|
+
on:
|
14
|
+
tags: true
|
15
|
+
repo: cyberkov/lita-jenkins-notifier
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Copyright (c) 2014 David Kowis
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
5
|
+
in the Software without restriction, including without limitation the rights
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
8
|
+
furnished to do so, subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
11
|
+
all copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# lita-jenkins-notifier
|
2
|
+
|
3
|
+
[](https://travis-ci.org/dkowis/lita-jenkins-notifier)
|
4
|
+
[](https://codeclimate.com/github/dkowis/lita-jenkins-notifier)
|
5
|
+
[](https://coveralls.io/r/dkowis/lita-jenkins-notifier)
|
6
|
+
|
7
|
+
|
8
|
+
This plugin will provide a way for the [Jenkins Notification Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Notification+Plugin)
|
9
|
+
to push notifications to your bot, so it can annoy you in IRC when things fail, or succeed, or some combination of both!
|
10
|
+
|
11
|
+
## Installation
|
12
|
+
|
13
|
+
Add lita-jenkins-notifier to your Lita instance's Gemfile:
|
14
|
+
|
15
|
+
``` ruby
|
16
|
+
gem "lita-jenkins-notifier"
|
17
|
+
```
|
18
|
+
|
19
|
+
## Configuration
|
20
|
+
|
21
|
+
`jobs` (Hash) - A map of job names to channel notifications.
|
22
|
+
Keys should be a regex that matches a job name (Dev.*) . You could match many of the regexpes, all will be tested.
|
23
|
+
Values should be either the string room name, or an array of string room names.
|
24
|
+
|
25
|
+
### Example
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
Lita.configure do |config|
|
29
|
+
config.handlers.jenkins_notifier.jbos = {
|
30
|
+
"JenkinsJob" => "#someroom",
|
31
|
+
".*" => "#spamroom"
|
32
|
+
}
|
33
|
+
```
|
34
|
+
|
35
|
+
## Usage
|
36
|
+
|
37
|
+
You add to the jenkins notifier plugin to post to the `http://<BotHost>:<port>/jenkins/notifications` and when builds happen
|
38
|
+
it'll notify in chat based on the matched job name.
|
39
|
+
|
40
|
+
## License
|
41
|
+
|
42
|
+
[MIT](http://opensource.org/licenses/MIT)
|
data/Rakefile
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
require 'rubocop/rake_task'
|
4
|
+
|
5
|
+
RSpec::Core::RakeTask.new(:spec)
|
6
|
+
RuboCop::RakeTask.new(:rubocop) do |task|
|
7
|
+
# don't abort rake on failure
|
8
|
+
task.fail_on_error = false
|
9
|
+
end
|
10
|
+
|
11
|
+
task default: [:spec, :rubocop]
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module Lita
|
2
|
+
module Handlers
|
3
|
+
class JenkinsNotifier < Handler
|
4
|
+
def initialize(robot)
|
5
|
+
super(robot)
|
6
|
+
@job_statuses = {}
|
7
|
+
end
|
8
|
+
|
9
|
+
config :jobs, default: {}
|
10
|
+
|
11
|
+
http.post '/jenkins/notifications', :build_notification
|
12
|
+
|
13
|
+
def build_notification(request, _response)
|
14
|
+
json_stuff = request.body
|
15
|
+
begin
|
16
|
+
payload = MultiJson.load(json_stuff, symbolize_keys: true)
|
17
|
+
rescue MultiJson::LoadError => e
|
18
|
+
Lita.logger.error("Could not parse JSON payload from jenkins: #{e.message}")
|
19
|
+
Lita.logger.debug('JSON PAYLOAD: ' + json_stuff)
|
20
|
+
return
|
21
|
+
end
|
22
|
+
rooms = get_rooms(payload[:name])
|
23
|
+
|
24
|
+
message = create_message(payload)
|
25
|
+
rooms.each do |room|
|
26
|
+
target = Source.new(room: room)
|
27
|
+
robot.send_message(target, message)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def create_message(payload)
|
34
|
+
name = payload[:name]
|
35
|
+
build = payload[:build]
|
36
|
+
|
37
|
+
phase = build[:phase]
|
38
|
+
number = build[:number]
|
39
|
+
status = build[:status]
|
40
|
+
branch = build[:scm][:branch]
|
41
|
+
full_url = build[:full_url]
|
42
|
+
|
43
|
+
if phase == 'STARTED'
|
44
|
+
"[Jenkins] Build ##{number} started for #{name} on #{branch}: #{full_url}"
|
45
|
+
elsif phase == 'COMPLETED' || phase == 'FINISHED'
|
46
|
+
if @job_statuses[name] == status
|
47
|
+
phrase = if status == 'SUCCESS'
|
48
|
+
'SUCCESSFUL'
|
49
|
+
elsif status == 'FAILURE'
|
50
|
+
'FAILING'
|
51
|
+
elsif status == 'NOT_BUILT'
|
52
|
+
'NOT BUILT'
|
53
|
+
end
|
54
|
+
"[Jenkins] [STILL #{phrase}] Build ##{number} Completed for #{name} on #{branch}: #{full_url}"
|
55
|
+
else
|
56
|
+
@job_statuses[name] = status
|
57
|
+
"[Jenkins] [#{status}] Build ##{number} Completed for #{name} on #{branch}: #{full_url}"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def get_rooms(job_name)
|
63
|
+
jobs = Lita.config.handlers.jenkins_notifier.jobs
|
64
|
+
|
65
|
+
rooms = []
|
66
|
+
jobs.keys.each do |key|
|
67
|
+
rooms << jobs[key] if key.match(job_name)
|
68
|
+
end
|
69
|
+
|
70
|
+
if rooms.empty?
|
71
|
+
Lita.logger.warn "Jenkins notification for job that didn't match any: #{job_name}"
|
72
|
+
end
|
73
|
+
|
74
|
+
rooms.sort.uniq
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
Lita.register_handler(JenkinsNotifier)
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = 'lita-jenkins-notifier'
|
3
|
+
spec.version = '0.0.2'
|
4
|
+
spec.version = "#{spec.version}-alpha-#{ENV['TRAVIS_BUILD_NUMBER']}" if ENV['TRAVIS']
|
5
|
+
spec.authors = ['David Kowis', 'Hannes Schaller']
|
6
|
+
spec.email = ['dkowis@shlrm.org', 'admin@cyberkov.at']
|
7
|
+
spec.description = 'Reports notifications from the jenkins notification plugin'
|
8
|
+
spec.summary = 'Sends notifications based on reporting from: https://wiki.jenkins-ci.org/display/JENKINS/Notification+Plugin'
|
9
|
+
spec.homepage = 'http://github.com/dkowis/lita-jenkins-notifier'
|
10
|
+
spec.license = 'MIT'
|
11
|
+
spec.metadata = { 'lita_plugin_type' => 'handler' }
|
12
|
+
|
13
|
+
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
14
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
15
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
16
|
+
spec.require_paths = ['lib']
|
17
|
+
|
18
|
+
spec.add_runtime_dependency 'lita', '>= 4.0'
|
19
|
+
spec.add_runtime_dependency 'multi_json', '>= 1.9.0'
|
20
|
+
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
22
|
+
spec.add_development_dependency 'rake'
|
23
|
+
spec.add_development_dependency 'rspec', '~> 3.4'
|
24
|
+
spec.add_development_dependency 'rubocop'
|
25
|
+
spec.add_development_dependency 'simplecov'
|
26
|
+
spec.add_development_dependency 'coveralls'
|
27
|
+
end
|
data/locales/en.yml
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Lita::Handlers::JenkinsNotifier, lita_handler: true do
|
4
|
+
it { is_expected.to route_http(:post, '/jenkins/notifications').to(:build_notification) }
|
5
|
+
|
6
|
+
describe '#build_notification' do
|
7
|
+
let(:request) do
|
8
|
+
request = double('Rack::Request')
|
9
|
+
allow(request).to receive(:params).and_return(params)
|
10
|
+
request
|
11
|
+
end
|
12
|
+
|
13
|
+
let(:response) { Rack::Response.new }
|
14
|
+
|
15
|
+
let(:params) { double('Hash') }
|
16
|
+
|
17
|
+
# phase: STARTED, COMPLETED, FINISHED
|
18
|
+
# status: ABORTED, FAILURE, NOT_BUILT, SUCCESS, UNSTABLE
|
19
|
+
# rubocop:disable Metrics/MethodLength
|
20
|
+
def jenkins_payload(job_name, build_number, phase, status, branch)
|
21
|
+
# rubocop:enable Metrics/MethodLength
|
22
|
+
<<-DATA.chomp
|
23
|
+
{"name":"#{job_name}",
|
24
|
+
"url":"JobUrl",
|
25
|
+
"build":{
|
26
|
+
"number":#{build_number},
|
27
|
+
"phase":"#{phase}",
|
28
|
+
"status":"#{status}",
|
29
|
+
"url":"job/project/5",
|
30
|
+
"full_url":"http://ci.jenkins.org/job/project/5",
|
31
|
+
"scm":{"branch":"#{branch}"},
|
32
|
+
"artifacts": { }
|
33
|
+
}
|
34
|
+
}
|
35
|
+
DATA
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'notifications from jenkins' do
|
39
|
+
it 'sends a notification when the build starts' do
|
40
|
+
Lita.config.handlers.jenkins_notifier.jobs[/.*/] = '#baz'
|
41
|
+
expect(robot).to receive(:send_message) do |target, message|
|
42
|
+
expect(target.room).to eq('#baz')
|
43
|
+
expect(message).to eq('[Jenkins] Build #1 started for devBuild on master: http://ci.jenkins.org/job/project/5')
|
44
|
+
end
|
45
|
+
|
46
|
+
allow(request).to receive(:body).and_return(jenkins_payload('devBuild', 1, 'STARTED', 'SUCCESS', 'master'))
|
47
|
+
|
48
|
+
subject.build_notification(request, response)
|
49
|
+
end
|
50
|
+
it 'sends a notification message when the build fails' do
|
51
|
+
Lita.config.handlers.jenkins_notifier.jobs[/.*/] = '#baz'
|
52
|
+
expect(robot).to receive(:send_message) do |target, message|
|
53
|
+
expect(target.room).to eq('#baz')
|
54
|
+
expect(message).to eq('[Jenkins] [FAILURE] Build #1 Completed for devBuild on master: http://ci.jenkins.org/job/project/5')
|
55
|
+
end
|
56
|
+
|
57
|
+
allow(request).to receive(:body).and_return(jenkins_payload('devBuild', 1, 'COMPLETED', 'FAILURE', 'master'))
|
58
|
+
|
59
|
+
subject.build_notification(request, response)
|
60
|
+
end
|
61
|
+
it 'sends a notification message when the build passes' do
|
62
|
+
Lita.config.handlers.jenkins_notifier.jobs[/.*/] = '#baz'
|
63
|
+
expect(robot).to receive(:send_message) do |target, message|
|
64
|
+
expect(target.room).to eq('#baz')
|
65
|
+
expect(message).to eq('[Jenkins] [SUCCESS] Build #1 Completed for devBuild on master: http://ci.jenkins.org/job/project/5')
|
66
|
+
end
|
67
|
+
|
68
|
+
allow(request).to receive(:body).and_return(jenkins_payload('devBuild', 1, 'COMPLETED', 'SUCCESS', 'master'))
|
69
|
+
|
70
|
+
subject.build_notification(request, response)
|
71
|
+
end
|
72
|
+
it 'sends a notification message when the build is still passing' do
|
73
|
+
Lita.config.handlers.jenkins_notifier.jobs[/.*/] = '#baz'
|
74
|
+
|
75
|
+
expect(robot).to receive(:send_message) do |target, message|
|
76
|
+
expect(target.room).to eq('#baz')
|
77
|
+
expect(message).to eq('[Jenkins] [SUCCESS] Build #1 Completed for devBuild on master: http://ci.jenkins.org/job/project/5')
|
78
|
+
end
|
79
|
+
allow(request).to receive(:body).and_return(jenkins_payload('devBuild', 1, 'COMPLETED', 'SUCCESS', 'master'))
|
80
|
+
subject.build_notification(request, response)
|
81
|
+
|
82
|
+
expect(robot).to receive(:send_message) do |target, message|
|
83
|
+
expect(target.room).to eq('#baz')
|
84
|
+
expect(message).to eq('[Jenkins] [STILL SUCCESSFUL] Build #2 Completed for devBuild on master: http://ci.jenkins.org/job/project/5')
|
85
|
+
end
|
86
|
+
allow(request).to receive(:body).and_return(jenkins_payload('devBuild', 2, 'COMPLETED', 'SUCCESS', 'master'))
|
87
|
+
subject.build_notification(request, response)
|
88
|
+
end
|
89
|
+
it 'sends a notification message when the build is still failing' do
|
90
|
+
Lita.config.handlers.jenkins_notifier.jobs[/.*/] = '#baz'
|
91
|
+
expect(robot).to receive(:send_message) do |target, message|
|
92
|
+
expect(target.room).to eq('#baz')
|
93
|
+
expect(message).to eq('[Jenkins] [FAILURE] Build #1 Completed for devBuild on master: http://ci.jenkins.org/job/project/5')
|
94
|
+
end
|
95
|
+
allow(request).to receive(:body).and_return(jenkins_payload('devBuild', 1, 'COMPLETED', 'FAILURE', 'master'))
|
96
|
+
subject.build_notification(request, response)
|
97
|
+
|
98
|
+
expect(robot).to receive(:send_message) do |target, message|
|
99
|
+
expect(target.room).to eq('#baz')
|
100
|
+
expect(message).to eq('[Jenkins] [STILL FAILING] Build #2 Completed for devBuild on master: http://ci.jenkins.org/job/project/5')
|
101
|
+
end
|
102
|
+
allow(request).to receive(:body).and_return(jenkins_payload('devBuild', 2, 'COMPLETED', 'FAILURE', 'master'))
|
103
|
+
subject.build_notification(request, response)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
require 'coveralls'
|
3
|
+
SimpleCov.formatters = [
|
4
|
+
SimpleCov::Formatter::HTMLFormatter,
|
5
|
+
Coveralls::SimpleCov::Formatter
|
6
|
+
]
|
7
|
+
SimpleCov.start { add_filter '/spec/' }
|
8
|
+
|
9
|
+
require 'lita_jenkins_notifier'
|
10
|
+
require 'lita/rspec'
|
11
|
+
|
12
|
+
Lita.version_3_compatibility_mode = false
|
13
|
+
|
14
|
+
RSpec.configure do |config|
|
15
|
+
config.expect_with :rspec do |expectations|
|
16
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
17
|
+
end
|
18
|
+
|
19
|
+
config.mock_with :rspec do |mocks|
|
20
|
+
mocks.verify_partial_doubles = true
|
21
|
+
end
|
22
|
+
|
23
|
+
config.filter_run :focus
|
24
|
+
config.run_all_when_everything_filtered = true
|
25
|
+
config.default_formatter = 'doc' if config.files_to_run.one?
|
26
|
+
config.order = :random
|
27
|
+
|
28
|
+
Kernel.srand config.seed
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,175 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lita-jenkins-notifier
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2.pre.alpha.pre.6
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- David Kowis
|
8
|
+
- Hannes Schaller
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2016-05-25 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: lita
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ! '>='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '4.0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ! '>='
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '4.0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: multi_json
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ! '>='
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 1.9.0
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ! '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 1.9.0
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: bundler
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '1.3'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '1.3'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rake
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rspec
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '3.4'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ~>
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '3.4'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rubocop
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ! '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ! '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: simplecov
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ! '>='
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: coveralls
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ! '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
description: Reports notifications from the jenkins notification plugin
|
127
|
+
email:
|
128
|
+
- dkowis@shlrm.org
|
129
|
+
- admin@cyberkov.at
|
130
|
+
executables: []
|
131
|
+
extensions: []
|
132
|
+
extra_rdoc_files: []
|
133
|
+
files:
|
134
|
+
- .gitignore
|
135
|
+
- .rspec
|
136
|
+
- .rubocop.yml
|
137
|
+
- .travis.yml
|
138
|
+
- Gemfile
|
139
|
+
- LICENSE
|
140
|
+
- README.md
|
141
|
+
- Rakefile
|
142
|
+
- lib/lita/handlers/jenkins_notifier.rb
|
143
|
+
- lib/lita_jenkins_notifier.rb
|
144
|
+
- lita-jenkins-notifier.gemspec
|
145
|
+
- locales/en.yml
|
146
|
+
- spec/lita/handlers/jenkins_notifier_spec.rb
|
147
|
+
- spec/spec_helper.rb
|
148
|
+
homepage: http://github.com/dkowis/lita-jenkins-notifier
|
149
|
+
licenses:
|
150
|
+
- MIT
|
151
|
+
metadata:
|
152
|
+
lita_plugin_type: handler
|
153
|
+
post_install_message:
|
154
|
+
rdoc_options: []
|
155
|
+
require_paths:
|
156
|
+
- lib
|
157
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ! '>='
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
162
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ! '>'
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 1.3.1
|
167
|
+
requirements: []
|
168
|
+
rubyforge_project:
|
169
|
+
rubygems_version: 2.5.1
|
170
|
+
signing_key:
|
171
|
+
specification_version: 4
|
172
|
+
summary: ! 'Sends notifications based on reporting from: https://wiki.jenkins-ci.org/display/JENKINS/Notification+Plugin'
|
173
|
+
test_files:
|
174
|
+
- spec/lita/handlers/jenkins_notifier_spec.rb
|
175
|
+
- spec/spec_helper.rb
|