lita-github_pr_list 0.0.14 → 0.0.15

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: 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