lita-github_pr_list 0.0.14 → 0.0.15

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: 850224d702e0b26ea9455ecd7467cf5d0fc73934
4
- data.tar.gz: 8210f0fb068dd059c4c9344d4f4079cdd04e032c
3
+ metadata.gz: ad7d7dbd86f8b5b0ee27cbd6b1f3f38dd3e2c7f3
4
+ data.tar.gz: 1e3bfd2c9b477c49b3807b0c388018c9233a9bc5
5
5
  SHA512:
6
- metadata.gz: 2b657122ac32c84e570b93ecd35e8eabd53ad81649e78f4fe4dd1edfc3b23d31222a0d0e1d172693145a12daa58aab9cb147b4b7917e42d4f9512372b0e0e9ef
7
- data.tar.gz: 46e9dacb4cf541c6d910c887affa4ad4ecc2e29eb8b12fc1b7d3fb21cd8fdb85dc25768765b341d728a743bbf81db8b6f4c552bc35d20865a7aeccb104df18db
6
+ metadata.gz: fe9cdc0d3e28a3179bb51c7335ea7ca75db29f06acd1a46b79c0c09bbeed6075b524bfccc3e62dff5b846b9210229d97b2e4b56cb08bb90a06f9d3c5bac07fcc
7
+ data.tar.gz: 262da8e81bab986a5347a1f517cf190e672422e1c9e7c898f782f2828cb9c3ce0b9dfa3b1d682e9a4eafd06536bce74e506b13afc4c3a53474587c6b7cf5f967
@@ -0,0 +1,25 @@
1
+ module Lita
2
+ module GithubPrList
3
+ class PullRequestOpenMessageHook
4
+ attr_accessor :response, :request, :redis, :payload, :pull_request_owner, :title, :repo_name
5
+
6
+ def initialize(params = {})
7
+ self.response = params.fetch(:response, nil)
8
+ self.request = params.fetch(:request, nil)
9
+ self.redis = params.fetch(:redis, nil)
10
+
11
+ raise "invalid params in #{self.class.name}" if response.nil? || request.nil? || redis.nil?
12
+
13
+ # https://developer.github.com/v3/activity/events/types/#pullrequestevent
14
+ self.payload = JSON.parse(request.body.read)
15
+ self.pull_request_owner = redis.get("alias:#{payload["pull_request"]["user"]["login"]}") || payload["pull_request"]["user"]["login"]
16
+ self.title = payload["pull_request"]["title"]
17
+ self.repo_name = payload["pull_request"]["head"]["repo"]["full_name"]
18
+ end
19
+
20
+ def message
21
+ "@#{pull_request_owner} opened pull request: '#{title}' in '#{repo_name}'"
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,5 +1,5 @@
1
1
  module Lita
2
2
  module GithubPrList
3
- VERSION = "0.0.14"
3
+ VERSION = "0.0.15"
4
4
  end
5
5
  end
@@ -6,4 +6,5 @@ require "lita/github_pr_list/web_hook"
6
6
  require "lita/github_pr_list/alias_user"
7
7
  require "lita/github_pr_list/check_list"
8
8
  require "lita/github_pr_list/merge_request"
9
+ require "lita/github_pr_list/pull_request_open_message_hook"
9
10
  require "lita/handlers/github_pr_list"
@@ -15,6 +15,8 @@ module Lita
15
15
  config.comment_hook_event_type = nil
16
16
  config.check_list_hook_url = nil
17
17
  config.check_list_event_type = nil
18
+ config.pull_request_open_message_hook_url = nil
19
+ config.pull_request_open_message_hook_event_type = nil
18
20
  end
19
21
 
20
22
  route(/pr list/i, :list_org_pr, command: true,
@@ -37,6 +39,7 @@ module Lita
37
39
  http.post "/comment_hook", :comment_hook
38
40
  http.post "/check_list", :check_list
39
41
  http.post "/merge_request_action", :merge_request_action
42
+ http.post "/pull_request_open_message_hook", :pull_request_open_message_hook
40
43
 
41
44
  def list_org_pr(response)
42
45
  pull_requests = Lita::GithubPrList::PullRequest.new({ github_organization: github_organization,
@@ -63,6 +66,11 @@ module Lita
63
66
  Lita::GithubPrList::CheckList.new(check_list_params)
64
67
  end
65
68
 
69
+ def pull_request_open_message_hook(request, response)
70
+ message = Lita::GithubPrList::PullRequestOpenMessageHook.new({ request: request, response: response, redis: redis }).message
71
+ message_rooms(message, response)
72
+ end
73
+
66
74
  def message_rooms(message, response)
67
75
  rooms = Lita.config.adapter.rooms
68
76
  rooms ||= [:all]
@@ -111,7 +119,8 @@ module Lita
111
119
 
112
120
  def hook_info
113
121
  { comment_hook: { hook_url: comment_hook_url, event_type: comment_hook_event_type },
114
- check_list_hook: { hook_url: check_list_hook_url, event_type: check_list_event_type } }
122
+ check_list_hook: { hook_url: check_list_hook_url, event_type: check_list_event_type },
123
+ pull_request_open_message_hook: { hook_url: pull_request_open_message_hook_url, event_type: pull_request_open_message_hook_event_type } }
115
124
  end
116
125
 
117
126
  def comment_hook_url
@@ -122,6 +131,14 @@ module Lita
122
131
  Lita.config.handlers.github_pr_list.comment_hook_event_type
123
132
  end
124
133
 
134
+ def pull_request_open_message_hook_url
135
+ Lita.config.handlers.github_pr_list.pull_request_open_message_hook_url
136
+ end
137
+
138
+ def pull_request_open_message_hook_event_type
139
+ Lita.config.handlers.github_pr_list.pull_request_open_message_hook_event_type
140
+ end
141
+
125
142
  def check_list_hook_url
126
143
  Lita.config.handlers.github_pr_list.check_list_hook_url
127
144
  end
@@ -0,0 +1,20 @@
1
+ describe Lita::Handlers::GithubPrList, lita_handler: true do
2
+ before :each do
3
+ Lita.config.handlers.github_pr_list.github_organization = 'aaaaaabbbbbbcccccc'
4
+ Lita.config.handlers.github_pr_list.github_access_token = 'wafflesausages111111'
5
+ end
6
+
7
+ let(:open_pull_request_response) { [File.read("spec/fixtures/open_pull_request_response.json")] }
8
+
9
+ it { routes_http(:post, "/pull_request_open_message_hook").to(:pull_request_open_message_hook) }
10
+
11
+ it "sends a message to hipchat - pull request opened" do
12
+ request = Rack::Request.new("rack.input" => StringIO.new(open_pull_request_response.first))
13
+ response = Rack::Response.new(['Hello'], 200, {'Content-Type' => 'text/plain'})
14
+
15
+ github_handler = Lita::Handlers::GithubPrList.new
16
+ github_handler.pull_request_open_message_hook(request, response)
17
+
18
+ expect(replies.last).to include("@baxterthehacker opened pull request: 'Update the README with new information' in 'baxterthehacker/public-repo'")
19
+ end
20
+ end
@@ -8,6 +8,8 @@ describe Lita::Handlers::GithubPrList, lita_handler: true do
8
8
  Lita.config.handlers.github_pr_list.comment_hook_event_type = 'comment_event_type'
9
9
  Lita.config.handlers.github_pr_list.check_list_hook_url = 'https://example.com/hook'
10
10
  Lita.config.handlers.github_pr_list.check_list_event_type = 'check_list_event_type'
11
+ Lita.config.handlers.github_pr_list.pull_request_open_message_hook_url = 'https://example.com/hook'
12
+ Lita.config.handlers.github_pr_list.pull_request_open_message_hook_event_type = 'pull_request_open_message_event_type'
11
13
  end
12
14
 
13
15
  let(:agent) do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-github_pr_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael van den Beuken
@@ -13,132 +13,132 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2014-10-09 00:00:00.000000000 Z
16
+ date: 2014-11-03 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: lita
20
20
  requirement: !ruby/object:Gem::Requirement
21
21
  requirements:
22
- - - ">="
22
+ - - '>='
23
23
  - !ruby/object:Gem::Version
24
24
  version: '0'
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
28
28
  requirements:
29
- - - ">="
29
+ - - '>='
30
30
  - !ruby/object:Gem::Version
31
31
  version: '0'
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: octokit
34
34
  requirement: !ruby/object:Gem::Requirement
35
35
  requirements:
36
- - - "~>"
36
+ - - ~>
37
37
  - !ruby/object:Gem::Version
38
38
  version: '3.0'
39
39
  type: :runtime
40
40
  prerelease: false
41
41
  version_requirements: !ruby/object:Gem::Requirement
42
42
  requirements:
43
- - - "~>"
43
+ - - ~>
44
44
  - !ruby/object:Gem::Version
45
45
  version: '3.0'
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: bundler
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  requirements:
50
- - - "~>"
50
+ - - ~>
51
51
  - !ruby/object:Gem::Version
52
52
  version: '1.6'
53
53
  type: :development
54
54
  prerelease: false
55
55
  version_requirements: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - "~>"
57
+ - - ~>
58
58
  - !ruby/object:Gem::Version
59
59
  version: '1.6'
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: rake
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
- - - ">="
64
+ - - '>='
65
65
  - !ruby/object:Gem::Version
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
69
  version_requirements: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - ">="
71
+ - - '>='
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
74
  - !ruby/object:Gem::Dependency
75
75
  name: pry
76
76
  requirement: !ruby/object:Gem::Requirement
77
77
  requirements:
78
- - - ">="
78
+ - - '>='
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
81
  type: :development
82
82
  prerelease: false
83
83
  version_requirements: !ruby/object:Gem::Requirement
84
84
  requirements:
85
- - - ">="
85
+ - - '>='
86
86
  - !ruby/object:Gem::Version
87
87
  version: '0'
88
88
  - !ruby/object:Gem::Dependency
89
89
  name: rspec
90
90
  requirement: !ruby/object:Gem::Requirement
91
91
  requirements:
92
- - - ">="
92
+ - - '>='
93
93
  - !ruby/object:Gem::Version
94
94
  version: '0'
95
95
  type: :development
96
96
  prerelease: false
97
97
  version_requirements: !ruby/object:Gem::Requirement
98
98
  requirements:
99
- - - ">="
99
+ - - '>='
100
100
  - !ruby/object:Gem::Version
101
101
  version: '0'
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rspec-instafail
104
104
  requirement: !ruby/object:Gem::Requirement
105
105
  requirements:
106
- - - ">="
106
+ - - '>='
107
107
  - !ruby/object:Gem::Version
108
108
  version: '0'
109
109
  type: :development
110
110
  prerelease: false
111
111
  version_requirements: !ruby/object:Gem::Requirement
112
112
  requirements:
113
- - - ">="
113
+ - - '>='
114
114
  - !ruby/object:Gem::Version
115
115
  version: '0'
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: simplecov
118
118
  requirement: !ruby/object:Gem::Requirement
119
119
  requirements:
120
- - - ">="
120
+ - - '>='
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0'
123
123
  type: :development
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - ">="
127
+ - - '>='
128
128
  - !ruby/object:Gem::Version
129
129
  version: '0'
130
130
  - !ruby/object:Gem::Dependency
131
131
  name: pimpmychangelog
132
132
  requirement: !ruby/object:Gem::Requirement
133
133
  requirements:
134
- - - ">="
134
+ - - '>='
135
135
  - !ruby/object:Gem::Version
136
136
  version: '0'
137
137
  type: :development
138
138
  prerelease: false
139
139
  version_requirements: !ruby/object:Gem::Requirement
140
140
  requirements:
141
- - - ">="
141
+ - - '>='
142
142
  - !ruby/object:Gem::Version
143
143
  version: '0'
144
144
  description: List open pull requests for an organization.
@@ -155,10 +155,10 @@ executables:
155
155
  extensions: []
156
156
  extra_rdoc_files: []
157
157
  files:
158
- - ".gitignore"
159
- - ".hound.yml"
160
- - ".rspec"
161
- - ".travis.yml"
158
+ - .gitignore
159
+ - .hound.yml
160
+ - .rspec
161
+ - .travis.yml
162
162
  - CHANGELOG.md
163
163
  - Gemfile
164
164
  - LICENSE
@@ -172,6 +172,7 @@ files:
172
172
  - lib/lita/github_pr_list/comment_hook.rb
173
173
  - lib/lita/github_pr_list/merge_request.rb
174
174
  - lib/lita/github_pr_list/pull_request.rb
175
+ - lib/lita/github_pr_list/pull_request_open_message_hook.rb
175
176
  - lib/lita/github_pr_list/status.rb
176
177
  - lib/lita/github_pr_list/version.rb
177
178
  - lib/lita/github_pr_list/web_hook.rb
@@ -198,6 +199,7 @@ files:
198
199
  - spec/lita/handlers/alias_spec.rb
199
200
  - spec/lita/handlers/check_list_spec.rb
200
201
  - spec/lita/handlers/comment_hook_spec.rb
202
+ - spec/lita/handlers/open_pull_request_message_hook_spec.rb
201
203
  - spec/lita/handlers/pull_request_spec.rb
202
204
  - spec/lita/handlers/web_hook_spec.rb
203
205
  - spec/spec_helper.rb
@@ -212,17 +214,17 @@ require_paths:
212
214
  - lib
213
215
  required_ruby_version: !ruby/object:Gem::Requirement
214
216
  requirements:
215
- - - ">="
217
+ - - '>='
216
218
  - !ruby/object:Gem::Version
217
219
  version: '0'
218
220
  required_rubygems_version: !ruby/object:Gem::Requirement
219
221
  requirements:
220
- - - ">="
222
+ - - '>='
221
223
  - !ruby/object:Gem::Version
222
224
  version: '0'
223
225
  requirements: []
224
226
  rubyforge_project:
225
- rubygems_version: 2.4.1
227
+ rubygems_version: 2.0.0
226
228
  signing_key:
227
229
  specification_version: 4
228
230
  summary: List open pull requests for an organization.
@@ -248,6 +250,7 @@ test_files:
248
250
  - spec/lita/handlers/alias_spec.rb
249
251
  - spec/lita/handlers/check_list_spec.rb
250
252
  - spec/lita/handlers/comment_hook_spec.rb
253
+ - spec/lita/handlers/open_pull_request_message_hook_spec.rb
251
254
  - spec/lita/handlers/pull_request_spec.rb
252
255
  - spec/lita/handlers/web_hook_spec.rb
253
256
  - spec/spec_helper.rb