lita-slack-handler 0.2.2 → 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: 888e139cd7dc22c0d77500813f8f75a6f45a69d7
4
- data.tar.gz: d43559fe54c2279f7ebbc229e88ebddd8d0aff14
3
+ metadata.gz: 36a32e9db79b02bd17e2f83808765117be399fa6
4
+ data.tar.gz: 954bcc5cb26a5a9c58aa0dbf63027e2fded1129b
5
5
  SHA512:
6
- metadata.gz: 816e5a8dbd9dc32b52e38fcf3b07ab3eb1fc7471e6b8c21f64494c75e3dea286ca36658629c5d41dadeb5f27bfebdf3c24d27215ea5f24495ba2c56d7081af49
7
- data.tar.gz: 4a345847a9747c5301088455174eec57081a7bead305be1e985924213ffe2cf45ca556c6c187720465ed2a1c53a64f98121f7f16827bda51c9d1f114552d7b00
6
+ metadata.gz: 5865c29392eb32014dcfe621a85fe7e929bdc9df2960eaed0993c94ee209c25d9a3fc15bbbf5dea91f66e7bfdf518c4e78255706a62fc5b5e91b387466b5bf06
7
+ data.tar.gz: 80a5aa763f5351af4df486469bdcd0a7324bb7d118bbe5cc77994d1001cc36a82b8b9ba3bb65f64d7976720dedac0c491bdcf5665db0ffa6e4750723d3b00324
data/README.md CHANGED
@@ -1,62 +1,6 @@
1
1
  # lita-slack-handler
2
2
 
3
- **lita-slack-handler** is a handler for [Lita](https://github.com/jimmycuadra/lita) that allows you to use the robot with [Slack](https://slack.com/). This handler complements [lita-slack](https://github.com/kenjij/lita-slack) adapter gem.
4
- **lita-slack-handler** sets up an HTTP route to accept messages from Slack:Outgoing WebHooks integrations, then feeds it into Lita.
5
- This handler, otherwise, does nothing by itself; i.e., it does not produce any replies.
6
-
7
- ## Installation
8
-
9
- Add **lita-slack-handler** to your Lita instance's Gemfile:
10
-
11
- ``` ruby
12
- gem "lita-slack-handler"
13
- ```
14
-
15
- But most likely, you'd be adding **lita-slack** gem as well:
16
-
17
- ``` ruby
18
- gem "lita-slack"
19
- gem "lita-slack-handler"
20
- ```
21
-
22
- ## Configuration
23
-
24
- **First, you need to make sure your Slack team has [Outgoing WebHooks](https://my.slack.com/services/new/outgoing-webhook) integration setup with the correct Trigger Word(s) and URL:**
25
-
26
- ```
27
- http://<Lita_server>:<Lita_port>/lita/slack-handler
28
- ```
29
-
30
- Then, define the following attributes:
31
-
32
- ### Required attributes
33
-
34
- * `webhook_token` (String) – Slack integration token.
35
- * `team_domain` (String) – Slack team domain; subdomain of slack.com.
36
-
37
- ### Example lita_config.rb
38
-
39
- ``` ruby
40
- Lita.configure do |config|
41
- config.robot.name = "Lita"
42
- # mention_name should match Slack integration Trigger Word
43
- config.robot.mention_name = "@lita"
44
- config.robot.alias = "lita"
45
- # Most likely you'll be using with the Slack adapter
46
- config.robot.adapter = :slack
47
- # Lita's HTTP port is used for Slack integration
48
- config.http.port = 8080
49
- # lita-slack-handler config
50
- config.handlers.slack_handler.webhook_token = "aN1NvAlIdDuMmYt0k3n"
51
- config.handlers.slack_handler.team_domain = "example"
52
- # Some more adapter and other config
53
- # .....
54
- end
55
- ```
56
-
57
- ## Usage
58
-
59
- None. **lita-slack-handler** just takes messages from Slack and feeds it into Lita.
3
+ This gem is deprecated. Use [lita-slack](https://github.com/kenjij/lita-slack) instead.
60
4
 
61
5
  ## License
62
6
 
data/Rakefile CHANGED
@@ -1,6 +1 @@
1
1
  require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
-
4
- RSpec::Core::RakeTask.new(:spec)
5
-
6
- task :default => :spec
@@ -1,22 +1,18 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-slack-handler"
3
- spec.version = "0.2.2"
4
- spec.authors = ["Ken J."]
5
- spec.email = ["kenjij@gmail.com"]
6
- spec.description = %q{Lita handler for Slack}
7
- spec.summary = %q{Lita handler for Slack; complement lita-slack adapter gem.}
3
+ spec.version = "1.0.0"
4
+ spec.authors = ["Ken J.", "Jimmy Cuadra"]
5
+ spec.email = ["kenjij@gmail.com", "jimmy@jimmycuadra.com"]
6
+ spec.description = %q{Lita handler for Slack. Deprecated. Use lita-slack instead.}
7
+ spec.summary = %q{Lita handler for Slack. Deprecated. Use lita-slack instead.}
8
8
  spec.homepage = "https://github.com/kenjij/lita-slack-handler"
9
9
  spec.license = "MIT"
10
10
  spec.metadata = { "lita_plugin_type" => "handler" }
11
11
 
12
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
13
 
17
- spec.add_runtime_dependency "lita", ">= 3.0"
14
+ spec.add_runtime_dependency "lita-slack", ">= 1.0.0"
18
15
 
19
16
  spec.add_development_dependency "bundler", "~> 1.3"
20
17
  spec.add_development_dependency "rake"
21
- spec.add_development_dependency "rspec", ">= 3.0.0"
22
18
  end
metadata CHANGED
@@ -1,29 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-slack-handler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken J.
8
+ - Jimmy Cuadra
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-12-03 00:00:00.000000000 Z
12
+ date: 2014-12-10 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
- name: lita
15
+ name: lita-slack
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
18
  - - ">="
18
19
  - !ruby/object:Gem::Version
19
- version: '3.0'
20
+ version: 1.0.0
20
21
  type: :runtime
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
25
  - - ">="
25
26
  - !ruby/object:Gem::Version
26
- version: '3.0'
27
+ version: 1.0.0
27
28
  - !ruby/object:Gem::Dependency
28
29
  name: bundler
29
30
  requirement: !ruby/object:Gem::Requirement
@@ -52,23 +53,10 @@ dependencies:
52
53
  - - ">="
53
54
  - !ruby/object:Gem::Version
54
55
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 3.0.0
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: 3.0.0
69
- description: Lita handler for Slack
56
+ description: Lita handler for Slack. Deprecated. Use lita-slack instead.
70
57
  email:
71
58
  - kenjij@gmail.com
59
+ - jimmy@jimmycuadra.com
72
60
  executables: []
73
61
  extensions: []
74
62
  extra_rdoc_files: []
@@ -78,11 +66,7 @@ files:
78
66
  - LICENSE
79
67
  - README.md
80
68
  - Rakefile
81
- - lib/lita-slack-handler.rb
82
- - lib/lita/handlers/slack_handler.rb
83
69
  - lita-slack-handler.gemspec
84
- - spec/lita/handlers/slack_handler_spec.rb
85
- - spec/spec_helper.rb
86
70
  homepage: https://github.com/kenjij/lita-slack-handler
87
71
  licenses:
88
72
  - MIT
@@ -107,8 +91,6 @@ rubyforge_project:
107
91
  rubygems_version: 2.2.2
108
92
  signing_key:
109
93
  specification_version: 4
110
- summary: Lita handler for Slack; complement lita-slack adapter gem.
111
- test_files:
112
- - spec/lita/handlers/slack_handler_spec.rb
113
- - spec/spec_helper.rb
94
+ summary: Lita handler for Slack. Deprecated. Use lita-slack instead.
95
+ test_files: []
114
96
  has_rdoc:
@@ -1 +0,0 @@
1
- require "lita/handlers/slack_handler"
@@ -1,100 +0,0 @@
1
- require "lita"
2
-
3
- module Lita
4
- module Handlers
5
- class SlackHandler < Handler
6
- # Lita HTTPRoute for Slack: Outgoing WebHook integration
7
- http.post '/lita/slack-handler', :receive
8
-
9
- # Class method called by Lita for handler configuration
10
- def self.default_config(default)
11
- # Slack:Outgoing WebHook integration token
12
- default.webhook_token = nil
13
- default.team_domain = nil
14
- default.ignore_user_name = nil
15
- end
16
-
17
- def receive(req, res)
18
- # For security, do not run with missing config
19
- if not config_valid?
20
- res.status = 500
21
- return
22
- end
23
- log.debug 'SlackHandler::receive started'
24
- # Validate request
25
- if not request_valid?(req)
26
- res.status = 403
27
- return
28
- end
29
- # Ignore some requests
30
- if ignore?(req)
31
- log.debug "SlackHandler::receive ignoring request"
32
- res.status = 200
33
- return
34
- end
35
- res.status = 200
36
- log.debug "SlackHandler::receive webhook_token:#{req['token']} team_domain:#{req['team_domain']}"
37
- log.debug "SlackHandler::receive user id:#{req['user_id']} name:#{req['user_name']}"
38
- log.debug "SlackHandler::receive room id:#{req['channel_id']} name:#{req['channel_name']}"
39
- log.debug "SlackHandler::receive message text size #{req['text'].size} byte(s)"
40
- user = User.create(req['user_id'], name: req['user_name'], mention_name: req['user_name'])
41
- # Register channel using Lita::User class
42
- room = User.create(req['channel_id'], name: req['channel_name'])
43
- source = Source.new(user: user, room: room.id)
44
- message = Message.new(robot, req['text'], source)
45
- # Route the message to the adapter
46
- log.info 'SlackHandler::receive routing message to the adapter'
47
- robot.receive message
48
- log.debug 'SlackHandler::receive ending'
49
- end
50
-
51
- def config_valid?
52
- valid = true
53
- if config.webhook_token.nil?
54
- log.error 'SlackHandler: refuse to run; missing config "webhook_token"'
55
- valid = false
56
- end
57
- if config.team_domain.nil?
58
- log.error 'SlackHandler: refuse to run; missing "team_domain"'
59
- valid = false
60
- end
61
- return valid
62
- end
63
-
64
- def request_valid?(req)
65
- valid = true
66
- if req['token'] != config.webhook_token
67
- log.warn "SlackHandler: ignoring request; token does not match (received:#{req['token']})"
68
- valid = false
69
- end
70
- if req['team_domain'] != config.team_domain
71
- log.warn "SlackHandler: ignoring request; team domain does not match (received:#{req['team_domain']})"
72
- valid = false
73
- end
74
- return valid
75
- end
76
-
77
- def ignore?(req)
78
- ignore = false
79
- if !config.ignore_user_name.nil? && req['user_name'].eql?(config.ignore_user_name)
80
- log.warn "SlackHandler: #{req['user_name']} matches ignore_user_name #{config.ignore_user_name}"
81
- ignore = true
82
- end
83
- return ignore
84
- end
85
-
86
- #
87
- # Accessor shortcuts
88
- #
89
- def log
90
- Lita.logger
91
- end
92
-
93
- def config
94
- Lita.config.handlers.slack_handler
95
- end
96
- end
97
-
98
- Lita.register_handler(SlackHandler)
99
- end
100
- end
@@ -1,72 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Lita::Handlers::SlackHandler, lita_handler: true do
4
- http_route_path = '/lita/slack-handler'
5
- req = {}
6
-
7
- it "registers with Lita" do
8
- expect(Lita.handlers).to include(described_class)
9
- end
10
-
11
- it "registers HTTP route POST #{http_route_path} to :receive" do
12
- routes_http(:post, http_route_path).to(:receive)
13
- end
14
-
15
- context "with valid config" do
16
- before :each do
17
- Lita.config.handlers.slack_handler.webhook_token = "aN1NvAlIdDuMmYt0k3n"
18
- Lita.config.handlers.slack_handler.team_domain = "example"
19
- Lita.config.handlers.slack_handler.ignore_user_name = "lita"
20
- end
21
-
22
- describe "#config_valid?" do
23
- it 'returns true' do
24
- expect(subject.config_valid?).to eql(true)
25
- end
26
- end
27
-
28
- describe "#request_valid?" do
29
- it 'returns true with valid request' do
30
- req['token'] = Lita.config.handlers.slack_handler.webhook_token
31
- req['team_domain'] = Lita.config.handlers.slack_handler.team_domain
32
- expect(subject.request_valid?(req)).to eql(true)
33
- end
34
- end
35
-
36
- describe "#request_valid?" do
37
- it 'returns false with invalid token request' do
38
- req['token'] = 'fUnKyT0K3N'
39
- req['team_domain'] = Lita.config.handlers.slack_handler.team_domain
40
- expect(subject.request_valid?(req)).to eql(false)
41
- end
42
-
43
- it 'returns false with invalid team_domain request' do
44
- req['token'] = Lita.config.handlers.slack_handler.webhook_token
45
- req['team_domain'] = 'my'
46
- expect(subject.request_valid?(req)).to eql(false)
47
- end
48
- end
49
-
50
- describe "#ignore?" do
51
- it 'returns true when ignore_user_name matches user_name' do
52
- req['token'] = Lita.config.handlers.slack_handler.webhook_token
53
- req['team_domain'] = Lita.config.handlers.slack_handler.team_domain
54
- req['user_name'] = 'lita'
55
- expect(subject.ignore?(req)).to eql(true)
56
- end
57
- end
58
- end
59
-
60
- context "without valid config" do
61
- before :each do
62
- Lita.config.handlers.slack_handler.webhook_token = nil
63
- Lita.config.handlers.slack_handler.team_domain = nil
64
- end
65
-
66
- describe "#config_valid?" do
67
- it 'returns false' do
68
- expect(subject.config_valid?).to eql(false)
69
- end
70
- end
71
- end
72
- end
@@ -1,2 +0,0 @@
1
- require "lita-slack-handler"
2
- require "lita/rspec"