lita-github-commits 0.0.2 → 0.0.3
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 +4 -4
- data/lib/lita/handlers/github_commits.rb +11 -3
- data/lita-github-commits.gemspec +1 -1
- data/spec/lita/handlers/github_commits_spec.rb +39 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7aa1facf7a84b6537381b3ef78694d97c65508de
|
4
|
+
data.tar.gz: 3822f5ff206ca183233670c018b9bc20fd3fa20c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d3668c149f36b55f0bd9b5f108f96d832c53e402604eb5b4223110cb2f9e2dd4291c8ee0fde5eda9316392321f89bdb549478dc46b68939edd7a54a04c27ab4
|
7
|
+
data.tar.gz: d808c5f2ad8bf7d4dfd173b85f725c1bdd81301f59d0ae820b031bef5d14ca0f0f23ddb164f7b0048be1f28430013cef2eeaab33cf6b07166ba582c70947f6ca
|
@@ -11,9 +11,17 @@ module Lita
|
|
11
11
|
http.post "/github-commits", :receive
|
12
12
|
|
13
13
|
def receive(request, response)
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
event_type = request.env['HTTP_X_GITHUB_EVENT'] || 'unknown'
|
15
|
+
if event_type == "push"
|
16
|
+
payload = parse_payload(request.params['payload']) or return
|
17
|
+
repo = get_repo(payload)
|
18
|
+
notify_rooms(repo, payload)
|
19
|
+
elsif event_type == "ping"
|
20
|
+
response.status = 200
|
21
|
+
response.write "Working!"
|
22
|
+
else
|
23
|
+
response.status = 404
|
24
|
+
end
|
17
25
|
end
|
18
26
|
|
19
27
|
private
|
data/lita-github-commits.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "lita-github-commits"
|
3
|
-
spec.version = "0.0.
|
3
|
+
spec.version = "0.0.3"
|
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}
|
@@ -7,6 +7,7 @@ describe Lita::Handlers::GithubCommits, lita_handler: true do
|
|
7
7
|
|
8
8
|
let(:request) do
|
9
9
|
request = double("Rack::Request")
|
10
|
+
allow(request).to receive(:env).and_return({"HTTP_X_GITHUB_EVENT" => "push"})
|
10
11
|
allow(request).to receive(:params).and_return(params)
|
11
12
|
request
|
12
13
|
end
|
@@ -307,6 +308,15 @@ describe Lita::Handlers::GithubCommits, lita_handler: true do
|
|
307
308
|
JSON
|
308
309
|
end
|
309
310
|
|
311
|
+
let(:ping_payload) do
|
312
|
+
<<-JSON.chomp
|
313
|
+
{
|
314
|
+
"zen":"Non-blocking is better than blocking",
|
315
|
+
"hook_id":12345
|
316
|
+
}
|
317
|
+
JSON
|
318
|
+
end
|
319
|
+
|
310
320
|
|
311
321
|
context "request with commits" do
|
312
322
|
before do
|
@@ -372,6 +382,35 @@ describe Lita::Handlers::GithubCommits, lita_handler: true do
|
|
372
382
|
end
|
373
383
|
|
374
384
|
|
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
|
391
|
+
|
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
|
397
|
+
end
|
398
|
+
|
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
|
405
|
+
|
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
|
411
|
+
end
|
412
|
+
|
413
|
+
|
375
414
|
context "improper config" do
|
376
415
|
before do
|
377
416
|
allow(params).to receive(:[]).with("payload").and_return(deleted_payload)
|