lita-rundeck 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 +17 -0
- data/.travis.yml +8 -0
- data/Gemfile +3 -0
- data/LICENSE +19 -0
- data/README.md +160 -0
- data/Rakefile +6 -0
- data/lib/lita-rundeck.rb +7 -0
- data/lib/lita/handlers/rundeck.rb +648 -0
- data/lita-rundeck.gemspec +26 -0
- data/locales/en.yml +51 -0
- data/spec/files/definition.xml +24 -0
- data/spec/files/executions.xml +188 -0
- data/spec/files/executions_empty.xml +3 -0
- data/spec/files/info.xml +52 -0
- data/spec/files/jobs.xml +22 -0
- data/spec/files/jobs_empty.xml +3 -0
- data/spec/files/projects.xml +8 -0
- data/spec/files/projects_empty.xml +3 -0
- data/spec/files/run.xml +19 -0
- data/spec/files/run_conflict.xml +5 -0
- data/spec/files/run_options_invalid.xml +6 -0
- data/spec/files/run_unauthorized.xml +5 -0
- data/spec/files/running.xml +19 -0
- data/spec/files/running_empty.xml +3 -0
- data/spec/lita/handlers/rundeck_spec.rb +383 -0
- data/spec/spec_helper.rb +10 -0
- metadata +199 -0
@@ -0,0 +1,383 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Lita::Handlers::Rundeck, lita_handler: true do
|
4
|
+
|
5
|
+
let(:rundeck_info) do
|
6
|
+
File.read("spec/files/info.xml")
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:rundeck_projects) do
|
10
|
+
File.read("spec/files/projects.xml")
|
11
|
+
end
|
12
|
+
|
13
|
+
let(:rundeck_projects_empty) do
|
14
|
+
File.read("spec/files/projects_empty.xml")
|
15
|
+
end
|
16
|
+
|
17
|
+
let(:rundeck_jobs) do
|
18
|
+
File.read("spec/files/jobs.xml")
|
19
|
+
end
|
20
|
+
|
21
|
+
let(:rundeck_jobs_empty) do
|
22
|
+
File.read("spec/files/jobs_empty.xml")
|
23
|
+
end
|
24
|
+
|
25
|
+
let(:rundeck_executions) do
|
26
|
+
File.read("spec/files/executions.xml")
|
27
|
+
end
|
28
|
+
|
29
|
+
let(:rundeck_executions_empty) do
|
30
|
+
File.read("spec/files/executions_empty.xml")
|
31
|
+
end
|
32
|
+
|
33
|
+
let(:rundeck_running) do
|
34
|
+
File.read("spec/files/running.xml")
|
35
|
+
end
|
36
|
+
|
37
|
+
let(:rundeck_runnning_empty) do
|
38
|
+
File.read("spec/files/running_empty.xml")
|
39
|
+
end
|
40
|
+
|
41
|
+
let(:rundeck_run) do
|
42
|
+
File.read("spec/files/run.xml")
|
43
|
+
end
|
44
|
+
|
45
|
+
let(:rundeck_run_conflict) do
|
46
|
+
File.read("spec/files/run_conflict.xml")
|
47
|
+
end
|
48
|
+
|
49
|
+
let(:rundeck_run_options_invalid) do
|
50
|
+
File.read("spec/files/run_options_invalid.xml")
|
51
|
+
end
|
52
|
+
|
53
|
+
let(:rundeck_run_unauthorized) do
|
54
|
+
File.read("spec/files/run_unauthorized.xml")
|
55
|
+
end
|
56
|
+
|
57
|
+
let(:rundeck_options) do
|
58
|
+
File.read("spec/files/definition.xml")
|
59
|
+
end
|
60
|
+
|
61
|
+
it { routes_command("rundeck info").to(:info) }
|
62
|
+
it { routes_command("rundeck projects").to(:projects) }
|
63
|
+
it { routes_command("rundeck jobs").to(:jobs) }
|
64
|
+
it { routes_command("rundeck executions").to(:executions) }
|
65
|
+
it { routes_command("rundeck running").to(:running) }
|
66
|
+
it { routes_command("rundeck aliases").to(:aliases) }
|
67
|
+
it { routes_command("rundeck alias register aliasfoo --project Litatest --job dateoutput").to(:alias_register) }
|
68
|
+
it { routes_command("rundeck alias forget aliasfoo").to(:alias_forget) }
|
69
|
+
it { routes_command("rundeck run aliasfoo").to(:run) }
|
70
|
+
it { routes_command("rundeck run aliasfoo --options SECONDS=60").to(:run) }
|
71
|
+
it { routes_command("rundeck run --project Litatest --job dateoutput").to(:run) }
|
72
|
+
it { routes_command("rundeck run --project Litatest --job dateoutput --options SECONDS=60").to(:run) }
|
73
|
+
it { routes_command("rundeck options aliasfoo").to(:options) }
|
74
|
+
it { routes_command("rundeck options --project Litatest --job dateoutput").to(:options) }
|
75
|
+
|
76
|
+
def grab_request(method, status, body)
|
77
|
+
response = double('Faraday::Response', status: status, body: body)
|
78
|
+
expect_any_instance_of(Faraday::Connection).to \
|
79
|
+
receive(method.to_sym).and_return(response)
|
80
|
+
end
|
81
|
+
|
82
|
+
before do
|
83
|
+
Lita.config.handlers.rundeck.url = "https://rundeck.mycompany.org"
|
84
|
+
Lita.config.handlers.rundeck.token = "abcdefghijzlmnopqrstuvwxyz"
|
85
|
+
Lita.config.handlers.rundeck.api_debug = true
|
86
|
+
end
|
87
|
+
|
88
|
+
describe "#info" do
|
89
|
+
it "replies with the rundeck server information with no users" do
|
90
|
+
grab_request("get", 200, rundeck_info)
|
91
|
+
send_command("rundeck info")
|
92
|
+
expect(replies.last).to eq <<-EOF.chomp
|
93
|
+
System Stats for Rundeck 2.0.4 on node rundeck.mycompany.org
|
94
|
+
No users are currently allowed to execute jobs. Ask an admin to 'lita add CHAT_ID rundeck_users'
|
95
|
+
EOF
|
96
|
+
end
|
97
|
+
|
98
|
+
context "with users" do
|
99
|
+
before do
|
100
|
+
allow(Lita::Authorization).to receive(:groups_with_users).and_return(
|
101
|
+
:rundeck_users => [ Lita::User.new(1, {"name"=>"Shell User"} ) ]
|
102
|
+
)
|
103
|
+
end
|
104
|
+
|
105
|
+
it "replies with the rundeck server information with users" do
|
106
|
+
grab_request("get", 200, rundeck_info)
|
107
|
+
send_command("rundeck info")
|
108
|
+
expect(replies.last).to eq <<-EOF.chomp
|
109
|
+
System Stats for Rundeck 2.0.4 on node rundeck.mycompany.org
|
110
|
+
Users allowed to execute jobs: Shell User
|
111
|
+
EOF
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
describe "#projects" do
|
117
|
+
it "replies with the project list" do
|
118
|
+
grab_request("get", 200, rundeck_projects)
|
119
|
+
send_command("rundeck projects")
|
120
|
+
expect(replies.last).to eq <<-EOF.chomp
|
121
|
+
[Litatest] - https://rundeck.mycompany.org/api/10/project/Litatest
|
122
|
+
EOF
|
123
|
+
end
|
124
|
+
|
125
|
+
it "replies emtpy project list" do
|
126
|
+
grab_request("get", 200, rundeck_projects_empty)
|
127
|
+
send_command("rundeck projects")
|
128
|
+
expect(replies.last).to eq <<-EOF.chomp
|
129
|
+
No projects found
|
130
|
+
EOF
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
describe "#jobs" do
|
135
|
+
it "replies with the jobs list" do
|
136
|
+
grab_request("get", 200, rundeck_projects)
|
137
|
+
grab_request("get", 200, rundeck_jobs)
|
138
|
+
send_command("rundeck alias register aliasfoo --project Litatest --job dateoutput")
|
139
|
+
send_command("rundeck jobs")
|
140
|
+
expect(replies.last).to eq <<-EOF.chomp
|
141
|
+
[Litatest] - Foo:Bar;baz
|
142
|
+
aliasfoo = [Litatest] - dateoutput
|
143
|
+
[Litatest] - test2
|
144
|
+
EOF
|
145
|
+
end
|
146
|
+
|
147
|
+
it "replies with an empty jobs list" do
|
148
|
+
grab_request("get", 200, rundeck_projects)
|
149
|
+
grab_request("get", 200, rundeck_jobs_empty)
|
150
|
+
send_command("rundeck jobs")
|
151
|
+
expect(replies.last).to eq <<-EOF.chomp
|
152
|
+
No jobs found
|
153
|
+
EOF
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
describe "#executions" do
|
158
|
+
it "replies with the executions list" do
|
159
|
+
grab_request("get", 200, rundeck_projects)
|
160
|
+
grab_request("get", 200, rundeck_executions)
|
161
|
+
send_command("rundeck executions")
|
162
|
+
expect(replies.last).to eq <<-EOF.chomp
|
163
|
+
254 succeeded Shell User [Litatest] dateoutput SECONDS:60 start:2014-08-10T06:19:22Z end:2014-08-10T06:20:23Z
|
164
|
+
255 succeeded Shell User [Litatest] dateoutput SECONDS:600 start:2014-08-10T06:20:33Z end:2014-08-10T06:30:36Z
|
165
|
+
256 succeeded Shell User [Litatest] dateoutput start:2014-08-10T18:21:41Z end:2014-08-10T18:21:41Z
|
166
|
+
257 succeeded Shell User [Litatest] dateoutput SECONDS:60 start:2014-08-10T21:31:29Z end:2014-08-10T21:32:30Z
|
167
|
+
258 succeeded Shell User [Litatest] dateoutput SECOND:600 start:2014-08-10T21:33:06Z end:2014-08-10T21:33:06Z
|
168
|
+
259 succeeded Shell User [Litatest] dateoutput SECONDS:600 start:2014-08-10T21:34:16Z end:2014-08-10T21:44:21Z
|
169
|
+
260 succeeded Shell User [Litatest] dateoutput start:2014-08-10T22:03:37Z end:2014-08-10T22:03:40Z
|
170
|
+
282 succeeded Shell User [Litatest] dateoutput SECONDS:60 start:2014-08-14T01:07:09Z end:2014-08-14T01:08:09Z
|
171
|
+
283 succeeded Shell User [Litatest] dateoutput SECONDS:5 start:2014-08-14T02:27:41Z end:2014-08-14T02:27:46Z
|
172
|
+
285 succeeded Shell User [Litatest] dateoutput SECONDS:600 start:2014-08-14T15:06:28Z end:2014-08-14T15:16:32Z
|
173
|
+
EOF
|
174
|
+
end
|
175
|
+
|
176
|
+
it "replies with the executions list limited to 2" do
|
177
|
+
grab_request("get", 200, rundeck_projects)
|
178
|
+
grab_request("get", 200, rundeck_executions)
|
179
|
+
send_command("rundeck executions 2")
|
180
|
+
expect(replies.last).to eq <<-EOF.chomp
|
181
|
+
283 succeeded Shell User [Litatest] dateoutput SECONDS:5 start:2014-08-14T02:27:41Z end:2014-08-14T02:27:46Z
|
182
|
+
285 succeeded Shell User [Litatest] dateoutput SECONDS:600 start:2014-08-14T15:06:28Z end:2014-08-14T15:16:32Z
|
183
|
+
EOF
|
184
|
+
end
|
185
|
+
|
186
|
+
it "replies with an empty executions list" do
|
187
|
+
grab_request("get", 200, rundeck_projects)
|
188
|
+
grab_request("get", 200, rundeck_executions_empty)
|
189
|
+
send_command("rundeck executions")
|
190
|
+
expect(replies.last).to eq <<-EOF.chomp
|
191
|
+
No executions found
|
192
|
+
EOF
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
describe "#running" do
|
197
|
+
it "replies with the running list" do
|
198
|
+
grab_request("get", 200, rundeck_projects)
|
199
|
+
grab_request("get", 200, rundeck_running)
|
200
|
+
send_command("rundeck running")
|
201
|
+
expect(replies.last).to eq <<-EOF.chomp
|
202
|
+
285 running Shell User [Litatest] dateoutput SECONDS:600 start:2014-08-14T15:06:28Z
|
203
|
+
EOF
|
204
|
+
end
|
205
|
+
|
206
|
+
it "replies with an empty running list" do
|
207
|
+
grab_request("get", 200, rundeck_projects)
|
208
|
+
grab_request("get", 200, rundeck_executions_empty)
|
209
|
+
send_command("rundeck running")
|
210
|
+
expect(replies.last).to eq <<-EOF.chomp
|
211
|
+
No executions found
|
212
|
+
EOF
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
describe "#run" do
|
217
|
+
it "submit job and be denied because of authorization" do
|
218
|
+
allow(Lita::Authorization).to receive(:user_in_group?).and_return(false)
|
219
|
+
send_command("rundeck run --project Litatest --job dateoutput --options SECONDS=60")
|
220
|
+
expect(replies.last).to eq <<-EOF.chomp
|
221
|
+
You aren't authorized to run jobs
|
222
|
+
EOF
|
223
|
+
end
|
224
|
+
|
225
|
+
it "submit aliased job and have it succeed" do
|
226
|
+
allow(Lita::Authorization).to receive(:user_in_group?).and_return(true)
|
227
|
+
grab_request("get", 200, rundeck_projects)
|
228
|
+
grab_request("get", 200, rundeck_jobs)
|
229
|
+
grab_request("get", 200, rundeck_run)
|
230
|
+
send_command("rundeck alias register aliasfoo --project Litatest --job dateoutput")
|
231
|
+
send_command("rundeck run aliasfoo --options SECONDS=60")
|
232
|
+
expect(replies.last).to eq <<-EOF.chomp
|
233
|
+
Execution 285 is running
|
234
|
+
EOF
|
235
|
+
end
|
236
|
+
|
237
|
+
it "submit fully qualified job and have it succeed" do
|
238
|
+
allow(Lita::Authorization).to receive(:user_in_group?).and_return(true)
|
239
|
+
grab_request("get", 200, rundeck_projects)
|
240
|
+
grab_request("get", 200, rundeck_jobs)
|
241
|
+
grab_request("get", 200, rundeck_run)
|
242
|
+
send_command("rundeck run --project Litatest --job dateoutput --options SECONDS=60")
|
243
|
+
expect(replies.last).to eq <<-EOF.chomp
|
244
|
+
Execution 285 is running
|
245
|
+
EOF
|
246
|
+
end
|
247
|
+
|
248
|
+
it "submit a non-existent job" do
|
249
|
+
allow(Lita::Authorization).to receive(:user_in_group?).and_return(true)
|
250
|
+
send_command("rundeck run not-a-real-alias")
|
251
|
+
expect(replies.last).to eq <<-EOF.chomp
|
252
|
+
Can't find an alias or project and job
|
253
|
+
EOF
|
254
|
+
end
|
255
|
+
|
256
|
+
it "submit a conflicting job" do
|
257
|
+
allow(Lita::Authorization).to receive(:user_in_group?).and_return(true)
|
258
|
+
grab_request("get", 200, rundeck_projects)
|
259
|
+
grab_request("get", 200, rundeck_jobs)
|
260
|
+
grab_request("get", 200, rundeck_run)
|
261
|
+
grab_request("get", 200, rundeck_run_conflict)
|
262
|
+
send_command("rundeck run --project Litatest --job dateoutput --options SECONDS=60")
|
263
|
+
send_command("rundeck run --project Litatest --job dateoutput --options SECONDS=60")
|
264
|
+
expect(replies.last).to eq <<-EOF.chomp
|
265
|
+
Job is already running and only allows one execution at a time
|
266
|
+
EOF
|
267
|
+
end
|
268
|
+
|
269
|
+
it "submit a job with bad options" do
|
270
|
+
allow(Lita::Authorization).to receive(:user_in_group?).and_return(true)
|
271
|
+
grab_request("get", 200, rundeck_projects)
|
272
|
+
grab_request("get", 200, rundeck_jobs)
|
273
|
+
grab_request("get", 200, rundeck_run_options_invalid)
|
274
|
+
send_command("rundeck run --project Litatest --job dateoutput --options SECONDS=XXX")
|
275
|
+
expect(replies.last).to eq <<-EOF.chomp
|
276
|
+
Job options were not valid: Option 'SECONDS' doesn't match regular expression \\d+, value: XXX
|
277
|
+
EOF
|
278
|
+
end
|
279
|
+
|
280
|
+
it "submit a job against a server missing the runAs permission" do
|
281
|
+
allow(Lita::Authorization).to receive(:user_in_group?).and_return(true)
|
282
|
+
grab_request("get", 200, rundeck_projects)
|
283
|
+
grab_request("get", 200, rundeck_jobs)
|
284
|
+
grab_request("get", 200, rundeck_run_unauthorized)
|
285
|
+
send_command("rundeck run --project Litatest --job dateoutput --options SECONDS=XXX")
|
286
|
+
expect(replies.last).to eq <<-EOF.chomp
|
287
|
+
API token is unauthorized or lacks runAs permission; check the apitoken.aclpolicy
|
288
|
+
EOF
|
289
|
+
end
|
290
|
+
end
|
291
|
+
|
292
|
+
describe "#aliases" do
|
293
|
+
it "lists empty aliases list" do
|
294
|
+
send_command("rundeck aliases")
|
295
|
+
expect(replies.last).to eq <<-EOF.chomp
|
296
|
+
No aliases have been registered yet
|
297
|
+
EOF
|
298
|
+
end
|
299
|
+
|
300
|
+
it "lists aliases" do
|
301
|
+
send_command("rundeck alias register aliasfoo --project Litatest --job dateoutput")
|
302
|
+
send_command("rundeck aliases")
|
303
|
+
expect(replies.last).to eq <<-EOF.chomp
|
304
|
+
Alias = [Project] - Job
|
305
|
+
aliasfoo = [Litatest] - dateoutput
|
306
|
+
EOF
|
307
|
+
end
|
308
|
+
|
309
|
+
end
|
310
|
+
|
311
|
+
describe "#alias_register" do
|
312
|
+
it "registers a new alias" do
|
313
|
+
send_command("rundeck alias register aliasfoo --project Litatest --job dateoutput")
|
314
|
+
expect(replies.last).to eq <<-EOF.chomp
|
315
|
+
Alias registered
|
316
|
+
EOF
|
317
|
+
end
|
318
|
+
|
319
|
+
it "fails to registers an existing alias" do
|
320
|
+
send_command("rundeck alias register aliasfoo --project Litatest --job dateoutput")
|
321
|
+
send_command("rundeck alias register aliasfoo --project Litatest --job dateoutput")
|
322
|
+
expect(replies.last).to eq <<-EOF.chomp
|
323
|
+
Alias already exists
|
324
|
+
EOF
|
325
|
+
end
|
326
|
+
|
327
|
+
it "fails on a bad format" do
|
328
|
+
send_command("rundeck alias register aliasfoo")
|
329
|
+
expect(replies.last).to eq <<-EOF.chomp
|
330
|
+
Format is bad, see help for more info
|
331
|
+
EOF
|
332
|
+
end
|
333
|
+
end
|
334
|
+
|
335
|
+
describe "#alias_forget" do
|
336
|
+
it "removes an alias" do
|
337
|
+
send_command("rundeck alias register aliasfoo --project Litatest --job dateoutput")
|
338
|
+
send_command("rundeck alias forget aliasfoo")
|
339
|
+
expect(replies.last).to eq <<-EOF.chomp
|
340
|
+
Alias removed
|
341
|
+
EOF
|
342
|
+
end
|
343
|
+
|
344
|
+
it "fails to removes a non-existent alias" do
|
345
|
+
send_command("rundeck alias forget not-a-real-alias")
|
346
|
+
expect(replies.last).to eq <<-EOF.chomp
|
347
|
+
Alias not found
|
348
|
+
EOF
|
349
|
+
end
|
350
|
+
end
|
351
|
+
|
352
|
+
describe "#options" do
|
353
|
+
it "describe options of a job" do
|
354
|
+
grab_request("get", 200, rundeck_projects)
|
355
|
+
grab_request("get", 200, rundeck_jobs)
|
356
|
+
grab_request("get", 200, rundeck_options)
|
357
|
+
send_command("rundeck options --project Litatest --job dateoutput")
|
358
|
+
expect(replies.last).to eq <<-EOF.chomp
|
359
|
+
[Litatest] - dateoutput
|
360
|
+
* SECONDS (REQUIRED)
|
361
|
+
EOF
|
362
|
+
end
|
363
|
+
|
364
|
+
it "describe options of an aliased job" do
|
365
|
+
grab_request("get", 200, rundeck_projects)
|
366
|
+
grab_request("get", 200, rundeck_jobs)
|
367
|
+
grab_request("get", 200, rundeck_options)
|
368
|
+
send_command("rundeck alias register aliasfoo --project Litatest --job dateoutput")
|
369
|
+
send_command("rundeck options aliasfoo")
|
370
|
+
expect(replies.last).to eq <<-EOF.chomp
|
371
|
+
[Litatest] - dateoutput
|
372
|
+
* SECONDS (REQUIRED)
|
373
|
+
EOF
|
374
|
+
end
|
375
|
+
|
376
|
+
it "describe options of a non-existent job" do
|
377
|
+
send_command("rundeck options aliasfoo")
|
378
|
+
expect(replies.last).to eq <<-EOF.chomp
|
379
|
+
Can't find an alias or project and job
|
380
|
+
EOF
|
381
|
+
end
|
382
|
+
end
|
383
|
+
end
|
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-rundeck"
|
10
|
+
require "lita/rspec"
|
metadata
ADDED
@@ -0,0 +1,199 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lita-rundeck
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Harlan Barnes
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-08-16 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.3'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: xml-simple
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.1.4
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.1.4
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: lita-keyword-arguments
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '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
|
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
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: simplecov
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: coveralls
|
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
|
+
description: Lita handler for interacting with Rundeck
|
126
|
+
email:
|
127
|
+
- hbarnes@pobox.com
|
128
|
+
executables: []
|
129
|
+
extensions: []
|
130
|
+
extra_rdoc_files: []
|
131
|
+
files:
|
132
|
+
- .gitignore
|
133
|
+
- .travis.yml
|
134
|
+
- Gemfile
|
135
|
+
- LICENSE
|
136
|
+
- README.md
|
137
|
+
- Rakefile
|
138
|
+
- lib/lita-rundeck.rb
|
139
|
+
- lib/lita/handlers/rundeck.rb
|
140
|
+
- lita-rundeck.gemspec
|
141
|
+
- locales/en.yml
|
142
|
+
- spec/files/definition.xml
|
143
|
+
- spec/files/executions.xml
|
144
|
+
- spec/files/executions_empty.xml
|
145
|
+
- spec/files/info.xml
|
146
|
+
- spec/files/jobs.xml
|
147
|
+
- spec/files/jobs_empty.xml
|
148
|
+
- spec/files/projects.xml
|
149
|
+
- spec/files/projects_empty.xml
|
150
|
+
- spec/files/run.xml
|
151
|
+
- spec/files/run_conflict.xml
|
152
|
+
- spec/files/run_options_invalid.xml
|
153
|
+
- spec/files/run_unauthorized.xml
|
154
|
+
- spec/files/running.xml
|
155
|
+
- spec/files/running_empty.xml
|
156
|
+
- spec/lita/handlers/rundeck_spec.rb
|
157
|
+
- spec/spec_helper.rb
|
158
|
+
homepage: https://github.com/harlanbarnes/lita-rundeck
|
159
|
+
licenses:
|
160
|
+
- MIT
|
161
|
+
metadata:
|
162
|
+
lita_plugin_type: handler
|
163
|
+
post_install_message:
|
164
|
+
rdoc_options: []
|
165
|
+
require_paths:
|
166
|
+
- lib
|
167
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - '>='
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
172
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - '>='
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '0'
|
177
|
+
requirements: []
|
178
|
+
rubyforge_project:
|
179
|
+
rubygems_version: 2.0.14
|
180
|
+
signing_key:
|
181
|
+
specification_version: 4
|
182
|
+
summary: Lita handler for interacting with Rundeck
|
183
|
+
test_files:
|
184
|
+
- spec/files/definition.xml
|
185
|
+
- spec/files/executions.xml
|
186
|
+
- spec/files/executions_empty.xml
|
187
|
+
- spec/files/info.xml
|
188
|
+
- spec/files/jobs.xml
|
189
|
+
- spec/files/jobs_empty.xml
|
190
|
+
- spec/files/projects.xml
|
191
|
+
- spec/files/projects_empty.xml
|
192
|
+
- spec/files/run.xml
|
193
|
+
- spec/files/run_conflict.xml
|
194
|
+
- spec/files/run_options_invalid.xml
|
195
|
+
- spec/files/run_unauthorized.xml
|
196
|
+
- spec/files/running.xml
|
197
|
+
- spec/files/running_empty.xml
|
198
|
+
- spec/lita/handlers/rundeck_spec.rb
|
199
|
+
- spec/spec_helper.rb
|