lita-gitlab2jenkins_ghp 0.0.1
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 +7 -0
- data/.gitignore +18 -0
- data/.ruby-version +1 -0
- data/.travis.yml +8 -0
- data/Gemfile +3 -0
- data/LICENSE +19 -0
- data/README.md +28 -0
- data/Rakefile +6 -0
- data/lib/lita/handlers/gitlab2jenkins_ghp.rb +274 -0
- data/lib/lita-gitlab2jenkins_ghp.rb +7 -0
- data/lita-gitlab2jenkins_ghp.gemspec +29 -0
- data/locales/en.yml +4 -0
- data/spec/lita/handlers/gitlab2jenkins_ghp_spec.rb +4 -0
- data/spec/spec_helper.rb +10 -0
- metadata +188 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0908ce7f7863a694a3c39bb3259f8cfcccf42351
|
4
|
+
data.tar.gz: 17ba6f9d09848dfbca5316d81352a5e733866d67
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c61e93f9e8cbbc44df5ffb918f26eeb25dfdf2b69d4ec34c798f61f763c13acd92a29d293a30102cd5d8a25bc064cd6f9c7dc58aa997201482651e6fa8886ae1
|
7
|
+
data.tar.gz: 895512be891ee28d08d326ec0a14b2ee2c28af861ea3921d9454d59a9f725939bf3f0ec8d2598566db956472b45ea6c38e1f6eb0b8450b088f9f37eec158356c
|
data/.gitignore
ADDED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.1.0
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Copyright (c) 2014 Juan Carlos Alonso Holmstron
|
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,28 @@
|
|
1
|
+
# lita-gitlab2jenkins_ghp
|
2
|
+
|
3
|
+
TODO: Add a description of the plugin.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add lita-gitlab2jenkins_ghp to your Lita instance's Gemfile:
|
8
|
+
|
9
|
+
``` ruby
|
10
|
+
gem "lita-gitlab2jenkins_ghp"
|
11
|
+
```
|
12
|
+
|
13
|
+
## Configuration
|
14
|
+
|
15
|
+
REQUERIMENTS:
|
16
|
+
|
17
|
+
from Jenkins =>
|
18
|
+
Gitlab Hook Plugin 1.0.0
|
19
|
+
Embeddable Build Status 1.4.0
|
20
|
+
|
21
|
+
|
22
|
+
## Usage
|
23
|
+
|
24
|
+
TODO: Describe the plugin's features and how to use them.
|
25
|
+
|
26
|
+
## License
|
27
|
+
|
28
|
+
[MIT](http://opensource.org/licenses/MIT)
|
data/Rakefile
ADDED
@@ -0,0 +1,274 @@
|
|
1
|
+
module Lita
|
2
|
+
module Handlers
|
3
|
+
class Gitlab2jenkinsGhp < Handler
|
4
|
+
def self.default_config(config)
|
5
|
+
config.room = '#test2'
|
6
|
+
config.group = 'group_name'
|
7
|
+
config.gitlab_url = 'http://example.gitlab'
|
8
|
+
config.private_token = 'orwejnweuf'
|
9
|
+
config.jenkins_url = 'http://example.jenkins'
|
10
|
+
config.jenkins_hook = '/gitlab/build'
|
11
|
+
config.saved_request = ''
|
12
|
+
end
|
13
|
+
|
14
|
+
http.post '/lita/gitlab2jenkinsghp', :do_mr
|
15
|
+
|
16
|
+
http.post '/lita/gitlab2jenkinsghp_mr_status', :do_mr_change_status
|
17
|
+
|
18
|
+
http.get '/lita/gitlab2jenkinsghp_ci_status/*id_project/builds/*sha_commit', :do_ci_change_status
|
19
|
+
|
20
|
+
http.get '/lita/gitlab2jenkinsghp_ci_status/*id_project', :do_img_jenkins
|
21
|
+
|
22
|
+
def do_mr(request, response)
|
23
|
+
json_body = extract_json_from_request(request)
|
24
|
+
Lita.logger.info("Payload: #{json_body}")
|
25
|
+
data = symbolize parse_payload(json_body)
|
26
|
+
message = format_message(data, json_body)
|
27
|
+
|
28
|
+
rescue Exception => e
|
29
|
+
Lita.logger.error "Could not domr: #{e.inspect}"
|
30
|
+
end
|
31
|
+
|
32
|
+
def do_mr_change_status(request, response)
|
33
|
+
json_body = extract_json_from_request(request)
|
34
|
+
id_project = request.params['id_project'].to_s
|
35
|
+
Lita.logger.info "Jenkins Proyect: #{id_project}"
|
36
|
+
Lita.logger.info("Payload: #{json_body}")
|
37
|
+
data = symbolize parse_payload(json_body)
|
38
|
+
message = format_message_mr(data, json_body, id_project)
|
39
|
+
|
40
|
+
rescue Exception => e
|
41
|
+
Lita.logger.error "Could not domr_change_status: #{e.inspect}"
|
42
|
+
end
|
43
|
+
|
44
|
+
def do_ci_change_status(request, response)
|
45
|
+
Lita.logger.info "GitLab CI Project ID: #{request.env['router.params'][:id_project]}"
|
46
|
+
Lita.logger.info "GitLab CI Commit SHA: #{request.env['router.params'][:sha_commit]}"
|
47
|
+
Lita.logger.info "GitLab CI Token: #{request.params['token']}"
|
48
|
+
message = format_message_ci(request.env['router.params'][:id_project][0], request.env['router.params'][:sha_commit][0])
|
49
|
+
room = Lita.config.handlers.gitlab2jenkins_ghp.room
|
50
|
+
target = Source.new(room: room)
|
51
|
+
if message.to_s != 'true'
|
52
|
+
response['status'] = message
|
53
|
+
Lita.logger.info "CI Final Status: #{message.to_s}"
|
54
|
+
end
|
55
|
+
rescue Exception => e
|
56
|
+
Lita.logger.error "Could not domr_change_status: #{e.inspect}"
|
57
|
+
end
|
58
|
+
|
59
|
+
def do_img_jenkins(request, response)
|
60
|
+
project_name = git_lab_data_project_info(request.env['router.params'][:id_project][0])['name']
|
61
|
+
|
62
|
+
gkeys = @redis.keys("mr:#{project_name}:*")
|
63
|
+
|
64
|
+
code_climate('QA-API', response)
|
65
|
+
|
66
|
+
rescue Exception => e
|
67
|
+
Lita.logger.error "Could not do_img_jenkins: #{e.inspect}"
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
def code_climate(job, response)
|
73
|
+
url = "#{Lita.config.handlers.gitlab2jenkins_ghp.url_jenkins.to_s}"<<"#{Lita.config.handlers.gitlab2jenkins_ghp.url_jenkins_img.to_s}"<<"#{job}"
|
74
|
+
uri = URI(url)
|
75
|
+
res = Net::HTTP.get_response(uri)
|
76
|
+
|
77
|
+
if res.is_a?(Net::HTTPSuccess)
|
78
|
+
response.body << res.body
|
79
|
+
response['Content-Type'] = res['Content-Type']
|
80
|
+
end
|
81
|
+
|
82
|
+
Lita.logger.info "Sending Jenkins to Gitlab Code Climate #{url}"
|
83
|
+
|
84
|
+
rescue Exception => e
|
85
|
+
Lita.logger.error "Could not do_img_jenkins: #{e.inspect}"
|
86
|
+
end
|
87
|
+
|
88
|
+
def extract_json_from_request(request)
|
89
|
+
request.body.rewind
|
90
|
+
request.body.read
|
91
|
+
end
|
92
|
+
|
93
|
+
def parse_payload(payload)
|
94
|
+
MultiJson.load(payload)
|
95
|
+
rescue MultiJson::LoadError => e
|
96
|
+
Lita.logger.error("Could not parse JSON payload from Github: #{e.message}")
|
97
|
+
return
|
98
|
+
end
|
99
|
+
|
100
|
+
def symbolize(obj)
|
101
|
+
return obj.reduce({}) { |memo, (k, v)| memo[k.to_sym] = symbolize(v); memo } if obj.is_a? Hash
|
102
|
+
return obj.reduce([]) { |memo, v | memo << symbolize(v); memo } if obj.is_a? Array
|
103
|
+
obj
|
104
|
+
end
|
105
|
+
|
106
|
+
def format_message(data, json)
|
107
|
+
if data.key? :before
|
108
|
+
build_branch_hook(data, json)
|
109
|
+
elsif data.key? :object_kind
|
110
|
+
build_merge_hook(data, json)
|
111
|
+
end
|
112
|
+
|
113
|
+
rescue => e
|
114
|
+
Lita.logger.error "Could not format message: #{e.inspect}"
|
115
|
+
end
|
116
|
+
|
117
|
+
def build_branch_hook(data, json)
|
118
|
+
data[:link] = "<#{data[:repository][:homepage]}|#{data[:repository][:name]}>"
|
119
|
+
redis.set("commit:#{data[:commits][0][:id]}", json.to_s)
|
120
|
+
"Commit Stored: #{data[:commits][0][:id]}"
|
121
|
+
end
|
122
|
+
|
123
|
+
def gitlab_rescue_commit(project_id, branch)
|
124
|
+
http.get("#{Lita.config.handlers.gitlab2jenkins_ghp.url_gitlab}/api/v3/projects/#{project_id}/repository/branches/#{branch}?private_token=#{Lita.config.handlers.gitlab2jenkins_ghp.private_token_gitlab}")
|
125
|
+
|
126
|
+
rescue => e
|
127
|
+
Lita.logger.error "Could not rescue GitLab commit: #{e.inspect}"
|
128
|
+
end
|
129
|
+
|
130
|
+
def git_lab_data_branch_info(project_id, branch)
|
131
|
+
parse_payload((((gitlab_rescue_commit(project_id, branch)).to_hash)[:body]))
|
132
|
+
end
|
133
|
+
|
134
|
+
def jenkins_hook_ghp(json)
|
135
|
+
url = "#{Lita.config.handlers.gitlab2jenkins_ghp.url_jenkins}" << "#{Lita.config.handlers.gitlab2jenkins_ghp.url_jenkins_hook}"
|
136
|
+
http.post do |req|
|
137
|
+
req.url url
|
138
|
+
req.headers['Content-Type'] = 'application/json'
|
139
|
+
req.body = json
|
140
|
+
end
|
141
|
+
|
142
|
+
Lita.logger.info "Sending data to Jenkins: #{Lita.config.handlers.gitlab2jenkins_ghp.url_jenkins}#{Lita.config.handlers.gitlab2jenkins_ghp.url_jenkins_hook}"
|
143
|
+
Lita.logger.info "With JSON: #{json}"
|
144
|
+
|
145
|
+
rescue => e
|
146
|
+
Lita.logger.error "Could not make hook to jenkins: #{e.inspect}"
|
147
|
+
end
|
148
|
+
|
149
|
+
def rescue_gitlab_project_name (id)
|
150
|
+
url = http.get("#{Lita.config.handlers.gitlab2jenkins_ghp.url_gitlab}/api/v3/projects/#{id}?private_token=#{Lita.config.handlers.gitlab2jenkins_ghp.private_token_gitlab}")
|
151
|
+
rescue => e
|
152
|
+
Lita.logger.error "Could not rescue GitLab commit: #{e.inspect}"
|
153
|
+
end
|
154
|
+
|
155
|
+
def git_lab_data_project_info(id)
|
156
|
+
parse_payload((((rescue_gitlab_project_name(id)).to_hash)[:body]))
|
157
|
+
end
|
158
|
+
|
159
|
+
def build_merge_hook(data, json)
|
160
|
+
redis.set("mr:#{git_lab_data_project_info(data[:object_attributes][:target_project_id])['name']}:#{data[:object_attributes][:id]}", json.to_s)
|
161
|
+
if ['reopened', 'opened'].include? data[:object_attributes][:state]
|
162
|
+
Lita.logger.info "It's a merge request"
|
163
|
+
payload_rescue = redis.get("commit:#{git_lab_data_branch_info(data[:object_attributes][:source_project_id], data[:object_attributes][:source_branch])['commit']['id']}")
|
164
|
+
if (payload_rescue).size > 0
|
165
|
+
Lita.logger.info "Merge request found"
|
166
|
+
jenkins_hook_ghp(payload_rescue)
|
167
|
+
end
|
168
|
+
else
|
169
|
+
redis.del("mr:#{git_lab_data_project_info(data[:object_attributes][:target_project_id])['name']}:#{data[:object_attributes][:id]}")
|
170
|
+
jproject_name = git_lab_data_project_info(data[:object_attributes][:target_project_id])['name']
|
171
|
+
gkeys = @redis.keys("jenkins:#{jproject_name}:*")
|
172
|
+
gkeys.each do |key|
|
173
|
+
Lita.logger.info "Jenkins Key for Delete: #{key}"
|
174
|
+
json_off = redis.get(key)
|
175
|
+
jdata = symbolize parse_payload(json_off)
|
176
|
+
Lita.logger.info "Branch found for delete: #{jdata[:build][:parameters][:ANY_BRANCH_PATTERN]}"
|
177
|
+
redis.del(key) if data[:object_attributes][:source_branch] == jdata[:build][:parameters][:ANY_BRANCH_PATTERN]
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
rescue Exception => e
|
182
|
+
Lita.logger.error "Could not make Build Merge Reques #{e.inspect}"
|
183
|
+
end
|
184
|
+
|
185
|
+
def key_value_source_project_finder_mr(source_project, project_name)
|
186
|
+
gkeys = @redis.keys("mr:#{project_name}:*")
|
187
|
+
gkeys.each do |key|
|
188
|
+
json = redis.get(key)
|
189
|
+
data = symbolize parse_payload(json)
|
190
|
+
source_project_id = data[:object_attributes][:source_project_id] if data[:object_attributes][:source_branch] == source_project
|
191
|
+
end
|
192
|
+
|
193
|
+
rescue Exception => e
|
194
|
+
Lita.logger.error "Could not key_value_source_project_finder_mr #{e.inspect}"
|
195
|
+
end
|
196
|
+
|
197
|
+
def format_message_mr(data, json, id)
|
198
|
+
project_name = git_lab_data_project_info(id)['name']
|
199
|
+
source_project_id = key_value_source_project_finder_mr(data[:build][:parameters]['ANY_BRANCH_PATTERN'],project_name)
|
200
|
+
redis.set("jenkins:#{project_name}:#{data[:build][:number]}", json)
|
201
|
+
|
202
|
+
rescue Exception => e
|
203
|
+
Lita.logger.error "Could not format_message_mr #{e.inspect}"
|
204
|
+
end
|
205
|
+
|
206
|
+
def key_value_build_finder_jenkins(source_project, project_name)
|
207
|
+
gkeys = @redis.keys("jenkins:#{project_name}:*")
|
208
|
+
Lita.logger.info "Jenkins Status found key: #{gkeys.inspect}"
|
209
|
+
gkeys.each do |key|
|
210
|
+
Lita.logger.info "Jenkins Status key #{key}"
|
211
|
+
json = redis.get(key)
|
212
|
+
data = symbolize parse_payload(json)
|
213
|
+
Lita.logger.info "Branch found #{data[:build][:parameters][:ANY_BRANCH_PATTERN]}"
|
214
|
+
if data[:build][:phase] == 'FINISHED'
|
215
|
+
if data[:build][:parameters][:ANY_BRANCH_PATTERN] == source_project
|
216
|
+
if data[:build][:status] == 'FAILURE'
|
217
|
+
return 'failed'
|
218
|
+
else
|
219
|
+
return 'success'
|
220
|
+
end
|
221
|
+
Lita.logger.info "Status: #{data[:build][:status]}"
|
222
|
+
end
|
223
|
+
elsif data[:build][:phase] == 'STARTED'
|
224
|
+
return 'running' if data[:build][:parameters][:ANY_BRANCH_PATTERN] == source_project
|
225
|
+
else
|
226
|
+
return 'pending'
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
return 'error'
|
231
|
+
|
232
|
+
rescue Exception => e
|
233
|
+
Lita.logger.error "Could not key_value_build_finder_jenkins #{e.inspect}"
|
234
|
+
end
|
235
|
+
|
236
|
+
|
237
|
+
def key_value_commit_source_project_finder_jenkins(commit, project_name)
|
238
|
+
gkeys = @redis.keys("mr:#{project_name}:*")
|
239
|
+
Lita.logger.info "Loking Array data for: #{gkeys.inspect}"
|
240
|
+
gkeys.each do |key|
|
241
|
+
Lita.logger.info "Loking data in #{key.inspect}"
|
242
|
+
json = redis.get(key)
|
243
|
+
data = symbolize parse_payload(json)
|
244
|
+
json_from_gitlab = get_commit_from_gitlab_source_project(data[:object_attributes][:source_project_id],data[:object_attributes][:source_branch]).body
|
245
|
+
data_gitlab = symbolize parse_payload(json_from_gitlab)
|
246
|
+
return data_gitlab[:name] if data_gitlab[:commit][:id] == commit
|
247
|
+
end
|
248
|
+
|
249
|
+
rescue Exception => e
|
250
|
+
Lita.logger.error "Could not key_value_commit_source_project_finder_jenkins #{e.inspect}"
|
251
|
+
end
|
252
|
+
|
253
|
+
def get_commit_from_gitlab_source_project(id, branch)
|
254
|
+
url = http.get("#{Lita.config.handlers.gitlab2jenkins_ghp.url_gitlab}/api/v3/projects/#{id}/repository/branches/#{branch}?private_token=#{Lita.config.handlers.gitlab2jenkins_ghp.private_token_gitlab}")
|
255
|
+
rescue => e
|
256
|
+
Lita.logger.error "Could not rescue GitLab commit: #{e.inspect}"
|
257
|
+
end
|
258
|
+
|
259
|
+
def format_message_ci(id, commit)
|
260
|
+
project_name = git_lab_data_project_info(id)['name']
|
261
|
+
source_project = key_value_commit_source_project_finder_jenkins(commit, project_name)
|
262
|
+
Lita.logger.info "Looking Status CI: #{source_project}"
|
263
|
+
return key_value_build_finder_jenkins(source_project, project_name)
|
264
|
+
|
265
|
+
rescue Exception => e
|
266
|
+
Lita.logger.error "Could not format_message_ci #{e.inspect}"
|
267
|
+
end
|
268
|
+
|
269
|
+
|
270
|
+
end
|
271
|
+
|
272
|
+
Lita.register_handler(Gitlab2jenkinsGhp)
|
273
|
+
end
|
274
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = 'lita-gitlab2jenkins_ghp'
|
3
|
+
spec.version = '0.0.1'
|
4
|
+
spec.authors = ['Juan Carlos Alonso Holmstron']
|
5
|
+
spec.email = ['j.carlos.alonso.h@gmail.com']
|
6
|
+
spec.description = %q{A Lita Handler for storing gitlabs's pushed events for after send them in a merge request trigger}
|
7
|
+
spec.summary = %q{A Lita Handler for storing gitlabs's pushed events for after send them in a merge request trigger}
|
8
|
+
spec.homepage = 'https://github.com/jcalonsoh/lita-gitlab2jenkins_ghp'
|
9
|
+
spec.license = 'MIT'
|
10
|
+
spec.metadata = { 'lita_plugin_type' => 'handler' }
|
11
|
+
|
12
|
+
spec.files = `git ls-files`.split($/)
|
13
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
14
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
15
|
+
spec.require_paths = ['lib']
|
16
|
+
|
17
|
+
spec.add_runtime_dependency 'lita', '>= 3.0'
|
18
|
+
spec.add_runtime_dependency 'redis', '~> 3.0.7'
|
19
|
+
spec.add_runtime_dependency 'gitlab', '~> 3.0.0'
|
20
|
+
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
22
|
+
spec.add_development_dependency 'rake'
|
23
|
+
spec.add_development_dependency 'rspec', '>= 3.0.0.beta2'
|
24
|
+
spec.add_development_dependency 'shoulda', '>= 3.5.0'
|
25
|
+
spec.add_development_dependency 'simplecov'
|
26
|
+
spec.add_development_dependency 'coveralls'
|
27
|
+
|
28
|
+
|
29
|
+
end
|
data/locales/en.yml
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
require 'coveralls'
|
3
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
4
|
+
SimpleCov::Formatter::HTMLFormatter,
|
5
|
+
Coveralls::SimpleCov::Formatter
|
6
|
+
]
|
7
|
+
SimpleCov.start { add_filter '/spec/' }
|
8
|
+
|
9
|
+
require 'lita-gitlab2jenkins_ghp'
|
10
|
+
require 'lita/rspec'
|
metadata
ADDED
@@ -0,0 +1,188 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lita-gitlab2jenkins_ghp
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Juan Carlos Alonso Holmstron
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: lita
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: redis
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.0.7
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.0.7
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: gitlab
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.0.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.0.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.3'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 3.0.0.beta2
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 3.0.0.beta2
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: shoulda
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 3.5.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 3.5.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: simplecov
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: coveralls
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
description: A Lita Handler for storing gitlabs's pushed events for after send them
|
140
|
+
in a merge request trigger
|
141
|
+
email:
|
142
|
+
- j.carlos.alonso.h@gmail.com
|
143
|
+
executables: []
|
144
|
+
extensions: []
|
145
|
+
extra_rdoc_files: []
|
146
|
+
files:
|
147
|
+
- ".gitignore"
|
148
|
+
- ".ruby-version"
|
149
|
+
- ".travis.yml"
|
150
|
+
- Gemfile
|
151
|
+
- LICENSE
|
152
|
+
- README.md
|
153
|
+
- Rakefile
|
154
|
+
- lib/lita-gitlab2jenkins_ghp.rb
|
155
|
+
- lib/lita/handlers/gitlab2jenkins_ghp.rb
|
156
|
+
- lita-gitlab2jenkins_ghp.gemspec
|
157
|
+
- locales/en.yml
|
158
|
+
- spec/lita/handlers/gitlab2jenkins_ghp_spec.rb
|
159
|
+
- spec/spec_helper.rb
|
160
|
+
homepage: https://github.com/jcalonsoh/lita-gitlab2jenkins_ghp
|
161
|
+
licenses:
|
162
|
+
- MIT
|
163
|
+
metadata:
|
164
|
+
lita_plugin_type: handler
|
165
|
+
post_install_message:
|
166
|
+
rdoc_options: []
|
167
|
+
require_paths:
|
168
|
+
- lib
|
169
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - ">="
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '0'
|
179
|
+
requirements: []
|
180
|
+
rubyforge_project:
|
181
|
+
rubygems_version: 2.2.2
|
182
|
+
signing_key:
|
183
|
+
specification_version: 4
|
184
|
+
summary: A Lita Handler for storing gitlabs's pushed events for after send them in
|
185
|
+
a merge request trigger
|
186
|
+
test_files:
|
187
|
+
- spec/lita/handlers/gitlab2jenkins_ghp_spec.rb
|
188
|
+
- spec/spec_helper.rb
|