lita-github-commits 0.0.3 → 0.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7aa1facf7a84b6537381b3ef78694d97c65508de
4
- data.tar.gz: 3822f5ff206ca183233670c018b9bc20fd3fa20c
3
+ metadata.gz: 12e8b4542b71a4926a65325bd81f31a69dceacf4
4
+ data.tar.gz: acc6306f84b6d82b40743428b14d004a2bfbdf74
5
5
  SHA512:
6
- metadata.gz: 3d3668c149f36b55f0bd9b5f108f96d832c53e402604eb5b4223110cb2f9e2dd4291c8ee0fde5eda9316392321f89bdb549478dc46b68939edd7a54a04c27ab4
7
- data.tar.gz: d808c5f2ad8bf7d4dfd173b85f725c1bdd81301f59d0ae820b031bef5d14ca0f0f23ddb164f7b0048be1f28430013cef2eeaab33cf6b07166ba582c70947f6ca
6
+ metadata.gz: dd51f0c3ea78a96592479c754131f625b848975e5689d3ece758b7ba7ccba1ddd16bb21972b276b3482d714fdfbb2927ed5bdec7236bf4317bf79e683563626b
7
+ data.tar.gz: e84a2d04d86673822b265c083d567712c47b4ee5edbd472206c64c98bca8b6ba2a3699cd986ce9e47f94bdcc0343593da4db143f1d6f254ebbc58553ea18f256
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ .ruby-version
data/.travis.yml CHANGED
@@ -1,6 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 2.0.0
4
+ - 2.1.2
4
5
  script: bundle exec rake
5
6
  before_install:
6
7
  - gem update --system
data/README.md CHANGED
@@ -31,6 +31,8 @@ Lita.configure do |config|
31
31
  end
32
32
  ```
33
33
 
34
+ **Note**: For HipChat, the room should be the JID of the HipChat room (eg. `123_development@conf.hipchat.com`)
35
+
34
36
  ## Usage
35
37
 
36
38
  You will need to add a GitHub Webhook url that points to: `http://address.of.lita/github-commits`
@@ -44,18 +44,35 @@ module Lita
44
44
  end
45
45
 
46
46
  def format_message(payload)
47
- if payload['commits'].size > 0
48
- "[GitHub] Got #{payload['commits'].size} new commits from #{payload['commits'].first['author']['name']} on #{payload['repository']['owner']['name']}/#{payload['repository']['name']}"
47
+ commits = payload['commits']
48
+ branch = branch_from_ref(payload['ref'])
49
+ if commits.size > 0
50
+ author = committer_and_author(commits.first)
51
+ commit_pluralization = commits.size > 1 ? 'commits' : 'commit'
52
+ "[GitHub] Got #{commits.size} new #{commit_pluralization} #{author} on #{payload['repository']['owner']['name']}/#{payload['repository']['name']} on the #{branch} branch"
49
53
  elsif payload['created']
50
54
  "[GitHub] #{payload['pusher']['name']} created: #{payload['ref']}: #{payload['base_ref']}"
51
55
  elsif payload['deleted']
52
56
  "[GitHub] #{payload['pusher']['name']} deleted: #{payload['ref']}"
53
57
  end
54
58
  rescue
55
- Lita.logger.warn "Error formatting message for #{repo} repo. Payload: #{payload}"
59
+ Lita.logger.warn "Error formatting message for payload: #{payload}"
56
60
  return
57
61
  end
58
62
 
63
+ def branch_from_ref(ref)
64
+ ref.split('/').last
65
+ end
66
+
67
+ def committer_and_author(commit)
68
+ if commit['author']['username'] != commit['committer']['username']
69
+ "authored by #{commit['author']['name']} and committed by " +
70
+ "#{commit['committer']['name']}"
71
+ else
72
+ "from #{commit['author']['name']}"
73
+ end
74
+ end
75
+
59
76
  def rooms_for_repo(repo)
60
77
  rooms = Lita.config.handlers.github_commits.repos[repo]
61
78
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-github-commits"
3
- spec.version = "0.0.3"
3
+ spec.version = "0.1.0"
4
4
  spec.authors = ["Mitch Dempsey"]
5
5
  spec.email = ["mrdempsey@gmail.com"]
6
6
  spec.description = %q{A Lita handler that will display GitHub commit messages in the channel}
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
14
14
  spec.require_paths = ["lib"]
15
15
 
16
- spec.add_runtime_dependency "lita", ">= 2.3"
16
+ spec.add_runtime_dependency "lita", ">= 2.3", "< 5.0"
17
17
 
18
18
  spec.add_development_dependency "bundler", "~> 1.3"
19
19
  spec.add_development_dependency "rake"
@@ -1,6 +1,10 @@
1
1
  require "spec_helper"
2
+ require_relative "payload"
2
3
 
3
4
  describe Lita::Handlers::GithubCommits, lita_handler: true do
5
+
6
+ include Payload
7
+
4
8
  it { routes_http(:post, "/github-commits").to(:receive) }
5
9
 
6
10
  describe "#receive" do
@@ -16,415 +20,145 @@ describe Lita::Handlers::GithubCommits, lita_handler: true do
16
20
 
17
21
  let(:params) { double("Hash") }
18
22
 
19
- let(:valid_payload) do
20
- <<-JSON.chomp
21
- {
22
- "after":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
23
- "before":"17c497ccc7cca9c2f735aa07e9e3813060ce9a6a",
24
- "commits":[
25
- {
26
- "added":[
27
-
28
- ],
29
- "author":{
30
- "email":"lolwut@noway.biz",
31
- "name":"Garen Torikian",
32
- "username":"octokitty"
33
- },
34
- "committer":{
35
- "email":"lolwut@noway.biz",
36
- "name":"Garen Torikian",
37
- "username":"octokitty"
38
- },
39
- "distinct":true,
40
- "id":"c441029cf673f84c8b7db52d0a5944ee5c52ff89",
41
- "message":"Test",
42
- "modified":[
43
- "README.md"
44
- ],
45
- "removed":[
46
-
47
- ],
48
- "timestamp":"2013-02-22T13:50:07-08:00",
49
- "url":"https://github.com/octokitty/testing/commit/c441029cf673f84c8b7db52d0a5944ee5c52ff89"
50
- },
51
- {
52
- "added":[
53
-
54
- ],
55
- "author":{
56
- "email":"lolwut@noway.biz",
57
- "name":"Garen Torikian",
58
- "username":"octokitty"
59
- },
60
- "committer":{
61
- "email":"lolwut@noway.biz",
62
- "name":"Garen Torikian",
63
- "username":"octokitty"
64
- },
65
- "distinct":true,
66
- "id":"36c5f2243ed24de58284a96f2a643bed8c028658",
67
- "message":"This is me testing the windows client.",
68
- "modified":[
69
- "README.md"
70
- ],
71
- "removed":[
72
-
73
- ],
74
- "timestamp":"2013-02-22T14:07:13-08:00",
75
- "url":"https://github.com/octokitty/testing/commit/36c5f2243ed24de58284a96f2a643bed8c028658"
76
- },
77
- {
78
- "added":[
79
- "words/madame-bovary.txt"
80
- ],
81
- "author":{
82
- "email":"lolwut@noway.biz",
83
- "name":"Garen Torikian",
84
- "username":"octokitty"
85
- },
86
- "committer":{
87
- "email":"lolwut@noway.biz",
88
- "name":"Garen Torikian",
89
- "username":"octokitty"
90
- },
91
- "distinct":true,
92
- "id":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
93
- "message":"Rename madame-bovary.txt to words/madame-bovary.txt",
94
- "modified":[
95
-
96
- ],
97
- "removed":[
98
- "madame-bovary.txt"
99
- ],
100
- "timestamp":"2013-03-12T08:14:29-07:00",
101
- "url":"https://github.com/octokitty/testing/commit/1481a2de7b2a7d02428ad93446ab166be7793fbb"
102
- }
103
- ],
104
- "compare":"https://github.com/octokitty/testing/compare/17c497ccc7cc...1481a2de7b2a",
105
- "created":false,
106
- "deleted":false,
107
- "forced":false,
108
- "head_commit":{
109
- "added":[
110
- "words/madame-bovary.txt"
111
- ],
112
- "author":{
113
- "email":"lolwut@noway.biz",
114
- "name":"Garen Torikian",
115
- "username":"octokitty"
116
- },
117
- "committer":{
118
- "email":"lolwut@noway.biz",
119
- "name":"Garen Torikian",
120
- "username":"octokitty"
121
- },
122
- "distinct":true,
123
- "id":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
124
- "message":"Rename madame-bovary.txt to words/madame-bovary.txt",
125
- "modified":[
126
-
127
- ],
128
- "removed":[
129
- "madame-bovary.txt"
130
- ],
131
- "timestamp":"2013-03-12T08:14:29-07:00",
132
- "url":"https://github.com/octokitty/testing/commit/1481a2de7b2a7d02428ad93446ab166be7793fbb"
133
- },
134
- "pusher":{
135
- "email":"lolwut@noway.biz",
136
- "name":"Garen Torikian"
137
- },
138
- "ref":"refs/heads/master",
139
- "repository":{
140
- "created_at":1332977768,
141
- "description":"",
142
- "fork":false,
143
- "forks":0,
144
- "has_downloads":true,
145
- "has_issues":true,
146
- "has_wiki":true,
147
- "homepage":"",
148
- "id":3860742,
149
- "language":"Ruby",
150
- "master_branch":"master",
151
- "name":"testing",
152
- "open_issues":2,
153
- "owner":{
154
- "email":"lolwut@noway.biz",
155
- "name":"octokitty"
156
- },
157
- "private":false,
158
- "pushed_at":1363295520,
159
- "size":2156,
160
- "stargazers":1,
161
- "url":"https://github.com/octokitty/testing",
162
- "watchers":1
163
- }
164
- }
165
- JSON
23
+ context "request with commits" do
24
+ before do
25
+ Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
26
+ allow(params).to receive(:[]).with("payload").and_return(valid_payload)
166
27
  end
167
28
 
168
-
169
-
170
- let(:created_payload) do
171
- <<-JSON.chomp
172
- {
173
- "after":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
174
- "before":"17c497ccc7cca9c2f735aa07e9e3813060ce9a6a",
175
- "commits":[],
176
- "compare":"https://github.com/octokitty/testing/compare/17c497ccc7cc...1481a2de7b2a",
177
- "created":true,
178
- "deleted":false,
179
- "forced":false,
180
- "head_commit":{
181
- "added":[
182
- "words/madame-bovary.txt"
183
- ],
184
- "author":{
185
- "email":"lolwut@noway.biz",
186
- "name":"Garen Torikian",
187
- "username":"octokitty"
188
- },
189
- "committer":{
190
- "email":"lolwut@noway.biz",
191
- "name":"Garen Torikian",
192
- "username":"octokitty"
193
- },
194
- "distinct":true,
195
- "id":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
196
- "message":"Rename madame-bovary.txt to words/madame-bovary.txt",
197
- "modified":[
198
-
199
- ],
200
- "removed":[
201
- "madame-bovary.txt"
202
- ],
203
- "timestamp":"2013-03-12T08:14:29-07:00",
204
- "url":"https://github.com/octokitty/testing/commit/1481a2de7b2a7d02428ad93446ab166be7793fbb"
205
- },
206
- "pusher":{
207
- "email":"lolwut@noway.biz",
208
- "name":"Garen Torikian"
209
- },
210
- "ref":"refs/heads/master",
211
- "repository":{
212
- "created_at":1332977768,
213
- "description":"",
214
- "fork":false,
215
- "forks":0,
216
- "has_downloads":true,
217
- "has_issues":true,
218
- "has_wiki":true,
219
- "homepage":"",
220
- "id":3860742,
221
- "language":"Ruby",
222
- "master_branch":"master",
223
- "name":"testing",
224
- "open_issues":2,
225
- "owner":{
226
- "email":"lolwut@noway.biz",
227
- "name":"octokitty"
228
- },
229
- "private":false,
230
- "pushed_at":1363295520,
231
- "size":2156,
232
- "stargazers":1,
233
- "url":"https://github.com/octokitty/testing",
234
- "watchers":1
235
- }
236
- }
237
- JSON
29
+ it "sends a notification message to the applicable rooms" do
30
+ expect(robot).to receive(:send_message) do |target, message|
31
+ expect(target.room).to eq("#baz")
32
+ expect(message).to eq(
33
+ "[GitHub] Got 3 new commits from Garen Torikian on octokitty/testing on the master branch")
34
+ end
35
+ subject.receive(request, response)
238
36
  end
37
+ end
239
38
 
240
-
241
- let(:deleted_payload) do
242
- <<-JSON.chomp
243
- {
244
- "after":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
245
- "before":"17c497ccc7cca9c2f735aa07e9e3813060ce9a6a",
246
- "commits":[],
247
- "compare":"https://github.com/octokitty/testing/compare/17c497ccc7cc...1481a2de7b2a",
248
- "created":false,
249
- "deleted":true,
250
- "forced":false,
251
- "head_commit":{
252
- "added":[
253
- "words/madame-bovary.txt"
254
- ],
255
- "author":{
256
- "email":"lolwut@noway.biz",
257
- "name":"Garen Torikian",
258
- "username":"octokitty"
259
- },
260
- "committer":{
261
- "email":"lolwut@noway.biz",
262
- "name":"Garen Torikian",
263
- "username":"octokitty"
264
- },
265
- "distinct":true,
266
- "id":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
267
- "message":"Rename madame-bovary.txt to words/madame-bovary.txt",
268
- "modified":[
269
-
270
- ],
271
- "removed":[
272
- "madame-bovary.txt"
273
- ],
274
- "timestamp":"2013-03-12T08:14:29-07:00",
275
- "url":"https://github.com/octokitty/testing/commit/1481a2de7b2a7d02428ad93446ab166be7793fbb"
276
- },
277
- "pusher":{
278
- "email":"lolwut@noway.biz",
279
- "name":"Garen Torikian"
280
- },
281
- "ref":"refs/heads/master",
282
- "repository":{
283
- "created_at":1332977768,
284
- "description":"",
285
- "fork":false,
286
- "forks":0,
287
- "has_downloads":true,
288
- "has_issues":true,
289
- "has_wiki":true,
290
- "homepage":"",
291
- "id":3860742,
292
- "language":"Ruby",
293
- "master_branch":"master",
294
- "name":"testing",
295
- "open_issues":2,
296
- "owner":{
297
- "email":"lolwut@noway.biz",
298
- "name":"octokitty"
299
- },
300
- "private":false,
301
- "pushed_at":1363295520,
302
- "size":2156,
303
- "stargazers":1,
304
- "url":"https://github.com/octokitty/testing",
305
- "watchers":1
306
- }
307
- }
308
- JSON
39
+ context "request with one commit" do
40
+ before do
41
+ Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
42
+ allow(params).to receive(:[]).with("payload").and_return(
43
+ valid_payload_one_commit)
309
44
  end
310
45
 
311
- let(:ping_payload) do
312
- <<-JSON.chomp
313
- {
314
- "zen":"Non-blocking is better than blocking",
315
- "hook_id":12345
316
- }
317
- JSON
46
+ it "sends a singular commit notification message to the applicable rooms" do
47
+ expect(robot).to receive(:send_message) do |target, message|
48
+ expect(target.room).to eq("#baz")
49
+ expect(message).to eq(
50
+ "[GitHub] Got 1 new commit from Garen Torikian on octokitty/testing on the master branch")
51
+ end
52
+ subject.receive(request, response)
318
53
  end
54
+ end
319
55
 
56
+ context "request with commits" do
57
+ before do
58
+ Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
59
+ allow(params).to receive(:[]).with("payload").and_return(valid_payload_diff_committer)
60
+ end
320
61
 
321
- context "request with commits" do
322
- before do
323
- Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
324
- allow(params).to receive(:[]).with("payload").and_return(valid_payload)
325
- end
326
-
327
- it "sends a notification message to the applicable rooms" do
328
- expect(robot).to receive(:send_message) do |target, message|
329
- expect(target.room).to eq("#baz")
330
- expect(message).to include("[GitHub] Got")
331
- end
332
- subject.receive(request, response)
62
+ it "sends a notification message to the applicable rooms" do
63
+ expect(robot).to receive(:send_message) do |target, message|
64
+ expect(message).to eq(
65
+ "[GitHub] Got 3 new commits authored by Garen Torikian and " +
66
+ "committed by Repository Owner on octokitty/testing on the master branch")
333
67
  end
68
+ subject.receive(request, response)
334
69
  end
70
+ end
335
71
 
336
72
 
73
+ context "create payload" do
74
+ before do
75
+ Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
76
+ allow(params).to receive(:[]).with("payload").and_return(created_payload)
77
+ end
337
78
 
338
- context "create payload" do
339
- before do
340
- Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
341
- allow(params).to receive(:[]).with("payload").and_return(created_payload)
342
- end
343
-
344
- it "sends a notification message to the applicable rooms" do
345
- expect(robot).to receive(:send_message) do |target, message|
346
- expect(target.room).to eq("#baz")
347
- expect(message).to include("[GitHub] Garen Torikian created")
348
- end
349
- subject.receive(request, response)
79
+ it "sends a notification message to the applicable rooms" do
80
+ expect(robot).to receive(:send_message) do |target, message|
81
+ expect(target.room).to eq("#baz")
82
+ expect(message).to include("[GitHub] Garen Torikian created")
350
83
  end
84
+ subject.receive(request, response)
351
85
  end
86
+ end
352
87
 
353
88
 
354
- context "delete payload" do
355
- before do
356
- Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
357
- allow(params).to receive(:[]).with("payload").and_return(deleted_payload)
358
- end
89
+ context "delete payload" do
90
+ before do
91
+ Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
92
+ allow(params).to receive(:[]).with("payload").and_return(deleted_payload)
93
+ end
359
94
 
360
- it "sends a notification message to the applicable rooms" do
361
- expect(robot).to receive(:send_message) do |target, message|
362
- expect(target.room).to eq("#baz")
363
- expect(message).to include("[GitHub] Garen Torikian deleted")
364
- end
365
- subject.receive(request, response)
95
+ it "sends a notification message to the applicable rooms" do
96
+ expect(robot).to receive(:send_message) do |target, message|
97
+ expect(target.room).to eq("#baz")
98
+ expect(message).to include("[GitHub] Garen Torikian deleted")
366
99
  end
100
+ subject.receive(request, response)
367
101
  end
102
+ end
368
103
 
369
104
 
370
- context "bad payload" do
371
- before do
372
- Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
373
- allow(params).to receive(:[]).with("payload").and_return("yaryary")
374
- end
105
+ context "bad payload" do
106
+ before do
107
+ Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
108
+ allow(params).to receive(:[]).with("payload").and_return("yaryary")
109
+ end
375
110
 
376
- it "sends a notification message to the applicable rooms" do
377
- expect(Lita.logger).to receive(:error) do |error|
378
- expect(error).to include("Could not parse JSON payload from Github")
379
- end
380
- subject.receive(request, response)
111
+ it "sends a notification message to the applicable rooms" do
112
+ expect(Lita.logger).to receive(:error) do |error|
113
+ expect(error).to include("Could not parse JSON payload from Github")
381
114
  end
115
+ subject.receive(request, response)
382
116
  end
117
+ end
383
118
 
384
119
 
385
- context "ping event" do
386
- before do
387
- Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
388
- allow(params).to receive(:[]).with("payload").and_return(ping_payload)
389
- allow(request).to receive(:env).and_return({"HTTP_X_GITHUB_EVENT" => "ping"})
390
- end
120
+ context "ping event" do
121
+ before do
122
+ Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
123
+ allow(params).to receive(:[]).with("payload").and_return(ping_payload)
124
+ allow(request).to receive(:env).and_return({"HTTP_X_GITHUB_EVENT" => "ping"})
125
+ end
391
126
 
392
- it "handles the ping event" do
393
- expect(Lita.logger).to_not receive(:error)
394
- expect(response).to receive(:write).with("Working!")
395
- subject.receive(request, response)
396
- end
127
+ it "handles the ping event" do
128
+ expect(Lita.logger).to_not receive(:error)
129
+ expect(response).to receive(:write).with("Working!")
130
+ subject.receive(request, response)
397
131
  end
132
+ end
398
133
 
399
- context "unknown event" do
400
- before do
401
- Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
402
- allow(params).to receive(:[]).with("payload").and_return(ping_payload)
403
- allow(request).to receive(:env).and_return({"HTTP_X_GITHUB_EVENT" => "fakefake"})
404
- end
134
+ context "unknown event" do
135
+ before do
136
+ Lita.config.handlers.github_commits.repos["octokitty/testing"] = "#baz"
137
+ allow(params).to receive(:[]).with("payload").and_return(ping_payload)
138
+ allow(request).to receive(:env).and_return({"HTTP_X_GITHUB_EVENT" => "fakefake"})
139
+ end
405
140
 
406
- it "handles the ping event" do
407
- expect(Lita.logger).to_not receive(:error)
408
- expect(response).to_not receive(:write)
409
- subject.receive(request, response)
410
- end
141
+ it "handles the ping event" do
142
+ expect(Lita.logger).to_not receive(:error)
143
+ expect(response).to_not receive(:write)
144
+ subject.receive(request, response)
411
145
  end
146
+ end
412
147
 
413
148
 
414
- context "improper config" do
415
- before do
416
- allow(params).to receive(:[]).with("payload").and_return(deleted_payload)
417
- end
149
+ context "improper config" do
150
+ before do
151
+ allow(params).to receive(:[]).with("payload").and_return(deleted_payload)
152
+ end
418
153
 
419
- it "sends a notification message to the applicable rooms" do
420
- expect(Lita.logger).to receive(:warn) do |warning|
421
- expect(warning).to include("Notification from GitHub Commits for unconfigured project")
422
- end
423
- subject.receive(request, response)
154
+ it "sends a notification message to the applicable rooms" do
155
+ expect(Lita.logger).to receive(:warn) do |warning|
156
+ expect(warning).to include("Notification from GitHub Commits for unconfigured project")
424
157
  end
158
+ subject.receive(request, response)
425
159
  end
426
-
427
-
428
160
  end
429
161
 
162
+ end
163
+
430
164
  end
@@ -0,0 +1,320 @@
1
+ module Payload
2
+
3
+ def valid_payload_one_commit
4
+ payload = MultiJson.load(valid_payload, symbolize_keys: true)
5
+ payload[:commits] = [payload[:commits].first]
6
+ payload.to_json
7
+ end
8
+
9
+ def valid_payload_diff_committer
10
+ payload = MultiJson.load(valid_payload, symbolize_keys: true)
11
+ payload[:commits] = payload[:commits].map do |commit|
12
+ commit[:committer] = {
13
+ email: "committer@noway.biz",
14
+ name: "Repository Owner",
15
+ username: "owner"
16
+ }
17
+ commit
18
+ end
19
+ payload.to_json
20
+ end
21
+
22
+ def valid_payload
23
+ <<-JSON.chomp
24
+ {
25
+ "after":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
26
+ "before":"17c497ccc7cca9c2f735aa07e9e3813060ce9a6a",
27
+ "commits":[
28
+ {
29
+ "added":[
30
+
31
+ ],
32
+ "author":{
33
+ "email":"lolwut@noway.biz",
34
+ "name":"Garen Torikian",
35
+ "username":"octokitty"
36
+ },
37
+ "committer":{
38
+ "email":"lolwut@noway.biz",
39
+ "name":"Garen Torikian",
40
+ "username":"octokitty"
41
+ },
42
+ "distinct":true,
43
+ "id":"c441029cf673f84c8b7db52d0a5944ee5c52ff89",
44
+ "message":"Test",
45
+ "modified":[
46
+ "README.md"
47
+ ],
48
+ "removed":[
49
+
50
+ ],
51
+ "timestamp":"2013-02-22T13:50:07-08:00",
52
+ "url":"https://github.com/octokitty/testing/commit/c441029cf673f84c8b7db52d0a5944ee5c52ff89"
53
+ },
54
+ {
55
+ "added":[
56
+
57
+ ],
58
+ "author":{
59
+ "email":"lolwut@noway.biz",
60
+ "name":"Garen Torikian",
61
+ "username":"octokitty"
62
+ },
63
+ "committer":{
64
+ "email":"lolwut@noway.biz",
65
+ "name":"Garen Torikian",
66
+ "username":"octokitty"
67
+ },
68
+ "distinct":true,
69
+ "id":"36c5f2243ed24de58284a96f2a643bed8c028658",
70
+ "message":"This is me testing the windows client.",
71
+ "modified":[
72
+ "README.md"
73
+ ],
74
+ "removed":[
75
+
76
+ ],
77
+ "timestamp":"2013-02-22T14:07:13-08:00",
78
+ "url":"https://github.com/octokitty/testing/commit/36c5f2243ed24de58284a96f2a643bed8c028658"
79
+ },
80
+ {
81
+ "added":[
82
+ "words/madame-bovary.txt"
83
+ ],
84
+ "author":{
85
+ "email":"lolwut@noway.biz",
86
+ "name":"Garen Torikian",
87
+ "username":"octokitty"
88
+ },
89
+ "committer":{
90
+ "email":"lolwut@noway.biz",
91
+ "name":"Garen Torikian",
92
+ "username":"octokitty"
93
+ },
94
+ "distinct":true,
95
+ "id":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
96
+ "message":"Rename madame-bovary.txt to words/madame-bovary.txt",
97
+ "modified":[
98
+
99
+ ],
100
+ "removed":[
101
+ "madame-bovary.txt"
102
+ ],
103
+ "timestamp":"2013-03-12T08:14:29-07:00",
104
+ "url":"https://github.com/octokitty/testing/commit/1481a2de7b2a7d02428ad93446ab166be7793fbb"
105
+ }
106
+ ],
107
+ "compare":"https://github.com/octokitty/testing/compare/17c497ccc7cc...1481a2de7b2a",
108
+ "created":false,
109
+ "deleted":false,
110
+ "forced":false,
111
+ "head_commit":{
112
+ "added":[
113
+ "words/madame-bovary.txt"
114
+ ],
115
+ "author":{
116
+ "email":"lolwut@noway.biz",
117
+ "name":"Garen Torikian",
118
+ "username":"octokitty"
119
+ },
120
+ "committer":{
121
+ "email":"lolwut@noway.biz",
122
+ "name":"Garen Torikian",
123
+ "username":"octokitty"
124
+ },
125
+ "distinct":true,
126
+ "id":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
127
+ "message":"Rename madame-bovary.txt to words/madame-bovary.txt",
128
+ "modified":[
129
+
130
+ ],
131
+ "removed":[
132
+ "madame-bovary.txt"
133
+ ],
134
+ "timestamp":"2013-03-12T08:14:29-07:00",
135
+ "url":"https://github.com/octokitty/testing/commit/1481a2de7b2a7d02428ad93446ab166be7793fbb"
136
+ },
137
+ "pusher":{
138
+ "email":"lolwut@noway.biz",
139
+ "name":"Garen Torikian"
140
+ },
141
+ "ref":"refs/heads/master",
142
+ "repository":{
143
+ "created_at":1332977768,
144
+ "description":"",
145
+ "fork":false,
146
+ "forks":0,
147
+ "has_downloads":true,
148
+ "has_issues":true,
149
+ "has_wiki":true,
150
+ "homepage":"",
151
+ "id":3860742,
152
+ "language":"Ruby",
153
+ "master_branch":"master",
154
+ "name":"testing",
155
+ "open_issues":2,
156
+ "owner":{
157
+ "email":"lolwut@noway.biz",
158
+ "name":"octokitty"
159
+ },
160
+ "private":false,
161
+ "pushed_at":1363295520,
162
+ "size":2156,
163
+ "stargazers":1,
164
+ "url":"https://github.com/octokitty/testing",
165
+ "watchers":1
166
+ }
167
+ }
168
+ JSON
169
+ end
170
+
171
+ def created_payload
172
+ <<-JSON.chomp
173
+ {
174
+ "after":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
175
+ "before":"17c497ccc7cca9c2f735aa07e9e3813060ce9a6a",
176
+ "commits":[],
177
+ "compare":"https://github.com/octokitty/testing/compare/17c497ccc7cc...1481a2de7b2a",
178
+ "created":true,
179
+ "deleted":false,
180
+ "forced":false,
181
+ "head_commit":{
182
+ "added":[
183
+ "words/madame-bovary.txt"
184
+ ],
185
+ "author":{
186
+ "email":"lolwut@noway.biz",
187
+ "name":"Garen Torikian",
188
+ "username":"octokitty"
189
+ },
190
+ "committer":{
191
+ "email":"lolwut@noway.biz",
192
+ "name":"Garen Torikian",
193
+ "username":"octokitty"
194
+ },
195
+ "distinct":true,
196
+ "id":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
197
+ "message":"Rename madame-bovary.txt to words/madame-bovary.txt",
198
+ "modified":[
199
+
200
+ ],
201
+ "removed":[
202
+ "madame-bovary.txt"
203
+ ],
204
+ "timestamp":"2013-03-12T08:14:29-07:00",
205
+ "url":"https://github.com/octokitty/testing/commit/1481a2de7b2a7d02428ad93446ab166be7793fbb"
206
+ },
207
+ "pusher":{
208
+ "email":"lolwut@noway.biz",
209
+ "name":"Garen Torikian"
210
+ },
211
+ "ref":"refs/heads/master",
212
+ "repository":{
213
+ "created_at":1332977768,
214
+ "description":"",
215
+ "fork":false,
216
+ "forks":0,
217
+ "has_downloads":true,
218
+ "has_issues":true,
219
+ "has_wiki":true,
220
+ "homepage":"",
221
+ "id":3860742,
222
+ "language":"Ruby",
223
+ "master_branch":"master",
224
+ "name":"testing",
225
+ "open_issues":2,
226
+ "owner":{
227
+ "email":"lolwut@noway.biz",
228
+ "name":"octokitty"
229
+ },
230
+ "private":false,
231
+ "pushed_at":1363295520,
232
+ "size":2156,
233
+ "stargazers":1,
234
+ "url":"https://github.com/octokitty/testing",
235
+ "watchers":1
236
+ }
237
+ }
238
+ JSON
239
+ end
240
+
241
+ def deleted_payload
242
+ <<-JSON.chomp
243
+ {
244
+ "after":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
245
+ "before":"17c497ccc7cca9c2f735aa07e9e3813060ce9a6a",
246
+ "commits":[],
247
+ "compare":"https://github.com/octokitty/testing/compare/17c497ccc7cc...1481a2de7b2a",
248
+ "created":false,
249
+ "deleted":true,
250
+ "forced":false,
251
+ "head_commit":{
252
+ "added":[
253
+ "words/madame-bovary.txt"
254
+ ],
255
+ "author":{
256
+ "email":"lolwut@noway.biz",
257
+ "name":"Garen Torikian",
258
+ "username":"octokitty"
259
+ },
260
+ "committer":{
261
+ "email":"lolwut@noway.biz",
262
+ "name":"Garen Torikian",
263
+ "username":"octokitty"
264
+ },
265
+ "distinct":true,
266
+ "id":"1481a2de7b2a7d02428ad93446ab166be7793fbb",
267
+ "message":"Rename madame-bovary.txt to words/madame-bovary.txt",
268
+ "modified":[
269
+
270
+ ],
271
+ "removed":[
272
+ "madame-bovary.txt"
273
+ ],
274
+ "timestamp":"2013-03-12T08:14:29-07:00",
275
+ "url":"https://github.com/octokitty/testing/commit/1481a2de7b2a7d02428ad93446ab166be7793fbb"
276
+ },
277
+ "pusher":{
278
+ "email":"lolwut@noway.biz",
279
+ "name":"Garen Torikian"
280
+ },
281
+ "ref":"refs/heads/master",
282
+ "repository":{
283
+ "created_at":1332977768,
284
+ "description":"",
285
+ "fork":false,
286
+ "forks":0,
287
+ "has_downloads":true,
288
+ "has_issues":true,
289
+ "has_wiki":true,
290
+ "homepage":"",
291
+ "id":3860742,
292
+ "language":"Ruby",
293
+ "master_branch":"master",
294
+ "name":"testing",
295
+ "open_issues":2,
296
+ "owner":{
297
+ "email":"lolwut@noway.biz",
298
+ "name":"octokitty"
299
+ },
300
+ "private":false,
301
+ "pushed_at":1363295520,
302
+ "size":2156,
303
+ "stargazers":1,
304
+ "url":"https://github.com/octokitty/testing",
305
+ "watchers":1
306
+ }
307
+ }
308
+ JSON
309
+ end
310
+
311
+ def ping_payload
312
+ <<-JSON.chomp
313
+ {
314
+ "zen":"Non-blocking is better than blocking",
315
+ "hook_id":12345
316
+ }
317
+ JSON
318
+ end
319
+
320
+ end
data/spec/spec_helper.rb CHANGED
@@ -8,3 +8,5 @@ SimpleCov.start { add_filter "/spec/" }
8
8
 
9
9
  require "lita-github-commits"
10
10
  require "lita/rspec"
11
+
12
+ Lita.version_3_compatibility_mode = true
metadata CHANGED
@@ -1,97 +1,103 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-github-commits
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mitch Dempsey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-13 00:00:00.000000000 Z
11
+ date: 2014-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.3'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - '>='
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '2.3'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: bundler
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - ~>
37
+ - - "~>"
32
38
  - !ruby/object:Gem::Version
33
39
  version: '1.3'
34
40
  type: :development
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
- - - ~>
44
+ - - "~>"
39
45
  - !ruby/object:Gem::Version
40
46
  version: '1.3'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: rake
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - '>='
51
+ - - ">="
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - '>='
58
+ - - ">="
53
59
  - !ruby/object:Gem::Version
54
60
  version: '0'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: rspec
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - '>='
65
+ - - ">="
60
66
  - !ruby/object:Gem::Version
61
67
  version: 3.0.0.beta2
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
- - - '>='
72
+ - - ">="
67
73
  - !ruby/object:Gem::Version
68
74
  version: 3.0.0.beta2
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: simplecov
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
- - - '>='
79
+ - - ">="
74
80
  - !ruby/object:Gem::Version
75
81
  version: '0'
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
- - - '>='
86
+ - - ">="
81
87
  - !ruby/object:Gem::Version
82
88
  version: '0'
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: coveralls
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
- - - '>='
93
+ - - ">="
88
94
  - !ruby/object:Gem::Version
89
95
  version: '0'
90
96
  type: :development
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
- - - '>='
100
+ - - ">="
95
101
  - !ruby/object:Gem::Version
96
102
  version: '0'
97
103
  description: A Lita handler that will display GitHub commit messages in the channel
@@ -101,8 +107,8 @@ executables: []
101
107
  extensions: []
102
108
  extra_rdoc_files: []
103
109
  files:
104
- - .gitignore
105
- - .travis.yml
110
+ - ".gitignore"
111
+ - ".travis.yml"
106
112
  - Gemfile
107
113
  - LICENSE
108
114
  - README.md
@@ -111,6 +117,7 @@ files:
111
117
  - lib/lita/handlers/github_commits.rb
112
118
  - lita-github-commits.gemspec
113
119
  - spec/lita/handlers/github_commits_spec.rb
120
+ - spec/lita/handlers/payload.rb
114
121
  - spec/spec_helper.rb
115
122
  homepage: https://github.com/webdestroya/lita-github-commits
116
123
  licenses:
@@ -123,20 +130,21 @@ require_paths:
123
130
  - lib
124
131
  required_ruby_version: !ruby/object:Gem::Requirement
125
132
  requirements:
126
- - - '>='
133
+ - - ">="
127
134
  - !ruby/object:Gem::Version
128
135
  version: '0'
129
136
  required_rubygems_version: !ruby/object:Gem::Requirement
130
137
  requirements:
131
- - - '>='
138
+ - - ">="
132
139
  - !ruby/object:Gem::Version
133
140
  version: '0'
134
141
  requirements: []
135
142
  rubyforge_project:
136
- rubygems_version: 2.0.14
143
+ rubygems_version: 2.2.2
137
144
  signing_key:
138
145
  specification_version: 4
139
146
  summary: A Lita handler that will display GitHub commit messages in the channel
140
147
  test_files:
141
148
  - spec/lita/handlers/github_commits_spec.rb
149
+ - spec/lita/handlers/payload.rb
142
150
  - spec/spec_helper.rb