lita-slack-handler 0.2.2 → 1.0.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: 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"