lita-travis 0.2.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 281766fc85013339455d961b7e50a8d474652096
4
- data.tar.gz: 6344a3fdf756025ef3c61b0320b67cf4bfa3ac28
3
+ metadata.gz: 88c770748392b7b5086b6c89694bce642cbc8128
4
+ data.tar.gz: 9787a09aa44ad5ebe43ee32d5ef4819db5926e25
5
5
  SHA512:
6
- metadata.gz: e58c006f89c8bc6fa830e06c89761a63e512e12c7df7767868c6494f67d96244ff729e26f757dcf1a65ba1924921a91972596b5526e9426aa8729983303ae8f9
7
- data.tar.gz: bdafa443957cad73565a555b140f9d8e15f86b85990860379b48dbecf75b9254580917be1b7bf1e2fcacc5031d837f26e1e57a6085e33511af9d5f1f7f970108
6
+ metadata.gz: 1e0d7dbcd66792787ec222046a088f350d0b76ab36be3b37e1d988facddeb2efe9ce0b06a65ad1097f5f1467290291c324f2b5a1d5b649015a984d27e195ac00
7
+ data.tar.gz: dcefccc5175a2385b09d5833cd3b57cf6898cfbe35c348ccb093a79a37dd3514681558009cbf6131f695308ed77e3a1ea9ec5ef4d8852666b844c096907ef597
@@ -6,11 +6,9 @@ module Lita
6
6
  module Handlers
7
7
  # Provides Travis CI webhooks for Lita.
8
8
  class Travis < Handler
9
- def self.default_config(config)
10
- config.token = nil
11
- config.repos = {}
12
- config.default_rooms = nil
13
- end
9
+ config :token, type: String, required: true
10
+ config :repos, type: Hash, default: {}
11
+ config :default_rooms, type: [Array, String]
14
12
 
15
13
  http.post "/travis", :receive
16
14
 
@@ -56,8 +54,8 @@ module Lita
56
54
  end
57
55
 
58
56
  def rooms_for_repo(repo)
59
- rooms = Lita.config.handlers.travis.repos[repo]
60
- default_rooms = Lita.config.handlers.travis.default_rooms
57
+ rooms = config.repos[repo]
58
+ default_rooms = config.default_rooms
61
59
 
62
60
  if rooms
63
61
  Array(rooms)
@@ -70,14 +68,7 @@ module Lita
70
68
  end
71
69
 
72
70
  def validate_repo(repo, auth_hash)
73
- token = Lita.config.handlers.travis.token
74
-
75
- unless token
76
- Lita.logger.warn(t("no_token"))
77
- return
78
- end
79
-
80
- unless Digest::SHA2.hexdigest("#{repo}#{token}") == auth_hash
71
+ unless Digest::SHA2.hexdigest("#{repo}#{config.token}") == auth_hash
81
72
  Lita.logger.warn(t("auth_failed"), repo: repo)
82
73
  return
83
74
  end
data/lita-travis.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-travis"
3
- spec.version = "0.2.0"
3
+ spec.version = "1.0.0"
4
4
  spec.authors = ["Jimmy Cuadra"]
5
5
  spec.email = ["jimmy@jimmycuadra.com"]
6
6
  spec.description = %q{A Lita handler for receiving notifications from Travis CI.}
@@ -14,11 +14,11 @@ Gem::Specification.new do |spec|
14
14
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
15
  spec.require_paths = ["lib"]
16
16
 
17
- spec.add_runtime_dependency "lita", ">= 2.5"
17
+ spec.add_runtime_dependency "lita", ">= 4.0"
18
18
 
19
19
  spec.add_development_dependency "bundler", "~> 1.3"
20
20
  spec.add_development_dependency "rake"
21
- spec.add_development_dependency "rspec", ">= 3.0.0.beta2"
21
+ spec.add_development_dependency "rspec", ">= 3.0.0"
22
22
  spec.add_development_dependency "simplecov"
23
23
  spec.add_development_dependency "coveralls"
24
24
  end
data/locales/en.yml CHANGED
@@ -10,6 +10,3 @@ en:
10
10
  no_room_configured: >-
11
11
  Notification from Travis CI for %{repo} ignored because no rooms were specified in the
12
12
  config.repos hash, and no default rooms were specified in config.default_rooms.
13
- no_token: >-
14
- Notification from Travis CI could not be validated because Lita.config.handlers.token
15
- is not set.
@@ -1,17 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe Lita::Handlers::Travis, lita_handler: true do
4
- it { routes_http(:post, "/travis").to(:receive) }
5
-
6
- describe ".default_config" do
7
- it "sets token to nil" do
8
- expect(Lita.config.handlers.travis.token).to be_nil
9
- end
10
-
11
- it "sets repos to an empty hash" do
12
- expect(Lita.config.handlers.travis.repos).to eq({})
13
- end
14
- end
4
+ it { is_expected.to route_http(:post, "/travis").to(:receive) }
15
5
 
16
6
  describe "#receive" do
17
7
  let(:request) do
@@ -54,10 +44,14 @@ describe Lita::Handlers::Travis, lita_handler: true do
54
44
  JSON
55
45
  end
56
46
 
47
+ before do
48
+ registry.config.handlers.travis.repos = {}
49
+ end
50
+
57
51
  context "happy path" do
58
52
  before do
59
- Lita.config.handlers.travis.token = "abc123"
60
- Lita.config.handlers.travis.repos["foo/bar"] = "#baz"
53
+ registry.config.handlers.travis.token = "abc123"
54
+ registry.config.handlers.travis.repos["foo/bar"] = "#baz"
61
55
  allow(request).to receive(:env).and_return(valid_env)
62
56
  allow(params).to receive(:[]).with("payload").and_return(valid_payload)
63
57
  end
@@ -71,25 +65,10 @@ describe Lita::Handlers::Travis, lita_handler: true do
71
65
  end
72
66
  end
73
67
 
74
- context "with a missing token" do
75
- before do
76
- Lita.config.handlers.travis.repos["foo/bar"] = "#baz"
77
- allow(request).to receive(:env).and_return(valid_env)
78
- allow(params).to receive(:[]).with("payload").and_return(valid_payload)
79
- end
80
-
81
- it "logs a warning that the token is not set" do
82
- expect(Lita.logger).to receive(:warn) do |warning|
83
- expect(warning).to include("token is not set")
84
- end
85
- subject.receive(request, response)
86
- end
87
- end
88
-
89
68
  context "with an invalid authorization header" do
90
69
  before do
91
- Lita.config.handlers.travis.token = "abc123"
92
- Lita.config.handlers.travis.repos["foo/bar"] = "#baz"
70
+ registry.config.handlers.travis.token = "abc123"
71
+ registry.config.handlers.travis.repos["foo/bar"] = "#baz"
93
72
  allow(request).to receive(:env).and_return(invalid_env)
94
73
  allow(params).to receive(:[]).with("payload").and_return(valid_payload)
95
74
  end
@@ -104,8 +83,8 @@ describe Lita::Handlers::Travis, lita_handler: true do
104
83
 
105
84
  context "with only config.default_rooms set" do
106
85
  before do
107
- Lita.config.handlers.travis.token = "abc123"
108
- Lita.config.handlers.travis.default_rooms = "#default"
86
+ registry.config.handlers.travis.token = "abc123"
87
+ registry.config.handlers.travis.default_rooms = "#default"
109
88
  allow(request).to receive(:env).and_return(valid_env)
110
89
  allow(params).to receive(:[]).with("payload").and_return(valid_payload)
111
90
  end
@@ -121,7 +100,8 @@ describe Lita::Handlers::Travis, lita_handler: true do
121
100
 
122
101
  context "without setting a value for the repo in config.repos and no default" do
123
102
  before do
124
- Lita.config.handlers.travis.token = "abc123"
103
+ registry.config.handlers.travis.token = "abc123"
104
+ allow(registry.config.handlers.travis).to receive(:default_rooms).and_return(nil)
125
105
  allow(request).to receive(:env).and_return(valid_env)
126
106
  allow(params).to receive(:[]).with("payload").and_return(valid_payload)
127
107
  end
data/spec/spec_helper.rb CHANGED
@@ -8,3 +8,5 @@ SimpleCov.start { add_filter "/spec/" }
8
8
 
9
9
  require "lita-travis"
10
10
  require "lita/rspec"
11
+
12
+ Lita.version_3_compatibility_mode = false
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-travis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmy Cuadra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-27 00:00:00.000000000 Z
11
+ date: 2014-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.5'
19
+ version: '4.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '2.5'
26
+ version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 3.0.0.beta2
61
+ version: 3.0.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 3.0.0.beta2
68
+ version: 3.0.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -141,4 +141,3 @@ summary: A Lita handler for receiving notifications from Travis CI.
141
141
  test_files:
142
142
  - spec/lita/handlers/travis_spec.rb
143
143
  - spec/spec_helper.rb
144
- has_rdoc: