qiita_team_services 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +36 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +27 -0
  5. data/.travis.yml +11 -0
  6. data/CHANGELOG.md +7 -0
  7. data/Gemfile +3 -0
  8. data/LICENSE +22 -0
  9. data/README.md +5 -0
  10. data/Rakefile +26 -0
  11. data/config/locales/en.yml +31 -0
  12. data/config/locales/ja.yml +32 -0
  13. data/lib/qiita/team/services/engine.rb +6 -0
  14. data/lib/qiita/team/services/errors.rb +7 -0
  15. data/lib/qiita/team/services/events/base.rb +47 -0
  16. data/lib/qiita/team/services/events/item_became_coediting.rb +10 -0
  17. data/lib/qiita/team/services/events/item_comment_created.rb +17 -0
  18. data/lib/qiita/team/services/events/item_comment_destroyed.rb +17 -0
  19. data/lib/qiita/team/services/events/item_comment_updated.rb +17 -0
  20. data/lib/qiita/team/services/events/item_created.rb +10 -0
  21. data/lib/qiita/team/services/events/item_destroyed.rb +10 -0
  22. data/lib/qiita/team/services/events/item_updated.rb +10 -0
  23. data/lib/qiita/team/services/events/project_activated.rb +10 -0
  24. data/lib/qiita/team/services/events/project_archived.rb +10 -0
  25. data/lib/qiita/team/services/events/project_comment_created.rb +19 -0
  26. data/lib/qiita/team/services/events/project_comment_destroyed.rb +19 -0
  27. data/lib/qiita/team/services/events/project_comment_updated.rb +19 -0
  28. data/lib/qiita/team/services/events/project_created.rb +10 -0
  29. data/lib/qiita/team/services/events/project_destroyed.rb +10 -0
  30. data/lib/qiita/team/services/events/project_updated.rb +10 -0
  31. data/lib/qiita/team/services/events/team_member_added.rb +12 -0
  32. data/lib/qiita/team/services/events/team_member_removed.rb +12 -0
  33. data/lib/qiita/team/services/events.rb +28 -0
  34. data/lib/qiita/team/services/hooks/base.rb +45 -0
  35. data/lib/qiita/team/services/hooks/chatwork_v1.rb +149 -0
  36. data/lib/qiita/team/services/hooks/concerns/event_handlable.rb +49 -0
  37. data/lib/qiita/team/services/hooks/concerns/http_client.rb +74 -0
  38. data/lib/qiita/team/services/hooks/concerns/persistable.rb +64 -0
  39. data/lib/qiita/team/services/hooks/concerns/service.rb +31 -0
  40. data/lib/qiita/team/services/hooks/concerns/slack.rb +338 -0
  41. data/lib/qiita/team/services/hooks/hipchat_v1.rb +143 -0
  42. data/lib/qiita/team/services/hooks/slack_v1.rb +25 -0
  43. data/lib/qiita/team/services/hooks/slack_v2.rb +19 -0
  44. data/lib/qiita/team/services/hooks/webhook.rb +193 -0
  45. data/lib/qiita/team/services/hooks.rb +25 -0
  46. data/lib/qiita/team/services/properties/base.rb +20 -0
  47. data/lib/qiita/team/services/properties/boolean_property.rb +12 -0
  48. data/lib/qiita/team/services/properties/string_property.rb +12 -0
  49. data/lib/qiita/team/services/properties.rb +21 -0
  50. data/lib/qiita/team/services/resources/README.md +177 -0
  51. data/lib/qiita/team/services/templates/chatwork_v1.html.erb +25 -0
  52. data/lib/qiita/team/services/templates/hipchat_v1.html.erb +58 -0
  53. data/lib/qiita/team/services/templates/slack_v1.html.erb +54 -0
  54. data/lib/qiita/team/services/templates/slack_v2.html.erb +44 -0
  55. data/lib/qiita/team/services/templates/webhook.html.erb +25 -0
  56. data/lib/qiita/team/services/version.rb +3 -0
  57. data/lib/qiita_team_services.rb +34 -0
  58. data/qiita_team_services.gemspec +42 -0
  59. data/spec/hooks/chatwork_v1_spec.rb +118 -0
  60. data/spec/hooks/hipchat_v1_spec.rb +139 -0
  61. data/spec/hooks/slack_v1_spec.rb +55 -0
  62. data/spec/hooks/slack_v2_spec.rb +50 -0
  63. data/spec/hooks/webhook_spec.rb +465 -0
  64. data/spec/spec_helper.rb +17 -0
  65. data/spec/support/factories/comments.rb +21 -0
  66. data/spec/support/factories/items.rb +26 -0
  67. data/spec/support/factories/projects.rb +17 -0
  68. data/spec/support/factories/taggings.rb +9 -0
  69. data/spec/support/factories/teams.rb +9 -0
  70. data/spec/support/factories/users.rb +11 -0
  71. data/spec/support/factory_girl.rb +13 -0
  72. data/spec/support/helpers/event_helper.rb +49 -0
  73. data/spec/support/helpers/hook_helper.rb +33 -0
  74. data/spec/support/helpers/http_client_stub_helper.rb +19 -0
  75. data/spec/support/helpers/slack_hook_helper.rb +104 -0
  76. data/spec/support/matchers/match_slack_attachments_request.rb +7 -0
  77. data/spec/support/resources/base.rb +23 -0
  78. data/spec/support/resources/comment.rb +29 -0
  79. data/spec/support/resources/item.rb +53 -0
  80. data/spec/support/resources/project.rb +45 -0
  81. data/spec/support/resources/tagging.rb +15 -0
  82. data/spec/support/resources/team.rb +11 -0
  83. data/spec/support/resources/user.rb +17 -0
  84. metadata +323 -0
@@ -0,0 +1,104 @@
1
+ require "active_support/concern"
2
+
3
+ require "support/helpers/event_helper"
4
+
5
+ module Qiita::Team::Services
6
+ module Helpers
7
+ module SlackHookHelper
8
+ extend ActiveSupport::Concern
9
+ include EventHelper
10
+
11
+ EXPECTED_AVAILABLE_EVENT_NAMES = [
12
+ :item_became_coediting,
13
+ :item_comment_created,
14
+ :item_comment_destroyed,
15
+ :item_comment_updated,
16
+ :item_created,
17
+ :item_destroyed,
18
+ :item_updated,
19
+ :project_activated,
20
+ :project_archived,
21
+ :project_comment_created,
22
+ :project_comment_destroyed,
23
+ :project_comment_updated,
24
+ :project_created,
25
+ :project_destroyed,
26
+ :project_updated,
27
+ :team_member_added,
28
+ :team_member_removed,
29
+ ].freeze
30
+
31
+ included do
32
+ shared_examples "Slack hook" do
33
+ describe ".service_name" do
34
+ subject do
35
+ described_class.service_name
36
+ end
37
+
38
+ it { should eq "Slack" }
39
+ end
40
+
41
+ describe ".available_event_names" do
42
+ subject do
43
+ described_class.available_event_names
44
+ end
45
+
46
+ it { should match_array EXPECTED_AVAILABLE_EVENT_NAMES }
47
+ end
48
+
49
+ describe "#ping" do
50
+ subject do
51
+ hook.ping
52
+ end
53
+
54
+ it "sends message with proper attachments" do
55
+ expect(hook).to receive(:send_message) do |request_body|
56
+ expect(request_body).to match_slack_attachments_request
57
+ end.once
58
+ subject
59
+ end
60
+
61
+ context "when message is delivered successful" do
62
+ include_context "Delivery success"
63
+
64
+ it { expect { subject }.not_to raise_error }
65
+ end
66
+
67
+ context "when message is not delivered" do
68
+ include_context "Delivery fail"
69
+
70
+ it { expect { subject }.not_to raise_error }
71
+ end
72
+ end
73
+
74
+ EXPECTED_AVAILABLE_EVENT_NAMES.each do |event_name|
75
+ describe "##{event_name}" do
76
+ subject do
77
+ hook.public_send(event_name, public_send("#{event_name}_event"))
78
+ end
79
+
80
+ it "sends message with proper attachments" do
81
+ expect(hook).to receive(:send_message) do |request_body|
82
+ expect(request_body).to match_slack_attachments_request
83
+ end.once
84
+ subject
85
+ end
86
+
87
+ context "when message is delivered successfully" do
88
+ include_context "Delivery success"
89
+
90
+ it { expect { subject }.not_to raise_error }
91
+ end
92
+
93
+ context "when message is not delivered successfully" do
94
+ include_context "Delivery fail"
95
+
96
+ it { expect { subject }.to raise_error(Qiita::Team::Services::DeliveryError) }
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,7 @@
1
+ RSpec::Matchers.define :match_slack_attachments_request do
2
+ match do |request_body|
3
+ request_body.is_a?(Hash) && \
4
+ request_body.key?(:attachments) && \
5
+ request_body[:attachments].is_a?(Array)
6
+ end
7
+ end
@@ -0,0 +1,23 @@
1
+ module Qiita::Team::Services
2
+ module Resources
3
+ class Base
4
+ def self.webhook_property(name)
5
+ webhook_properties << name
6
+ end
7
+
8
+ def self.webhook_properties
9
+ @webhook_properties ||= []
10
+ end
11
+
12
+ def as_json
13
+ self.class.webhook_properties.each_with_object({}) do |property, hash|
14
+ hash[property] = public_send(property).as_json
15
+ end
16
+ end
17
+
18
+ def save!
19
+ self
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,29 @@
1
+ require "support/resources/base"
2
+
3
+ module Qiita::Team::Services
4
+ module Resources
5
+ class Comment < Base
6
+ attr_accessor :id
7
+ attr_accessor :body
8
+ attr_accessor :rendered_body
9
+ attr_accessor :url
10
+ attr_accessor :item
11
+ attr_accessor :team
12
+ attr_accessor :user
13
+ attr_accessor :created_at
14
+ attr_accessor :updated_at
15
+
16
+ webhook_property :id
17
+ webhook_property :body
18
+ webhook_property :raw_body
19
+ webhook_property :url
20
+ webhook_property :user
21
+ webhook_property :created_at
22
+ webhook_property :updated_at
23
+
24
+ def raw_body
25
+ body
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,53 @@
1
+ require "support/resources/base"
2
+
3
+ module Qiita::Team::Services
4
+ module Resources
5
+ class Item < Base
6
+ attr_accessor :body
7
+ attr_accessor :coediting
8
+ attr_accessor :comment_count
9
+ attr_accessor :created_at
10
+ attr_accessor :created_at_as_seconds
11
+ attr_accessor :created_at_in_words
12
+ attr_accessor :editor
13
+ attr_accessor :id
14
+ attr_accessor :lgtm_count
15
+ attr_accessor :message
16
+ attr_accessor :rendered_body
17
+ attr_accessor :stock_count
18
+ attr_accessor :stock_users
19
+ attr_accessor :tags
20
+ attr_accessor :title
21
+ attr_accessor :updated_at
22
+ attr_accessor :updated_at_in_words
23
+ attr_accessor :url
24
+ attr_accessor :user
25
+ attr_accessor :uuid
26
+
27
+ alias_method :coediting?, :coediting
28
+
29
+ webhook_property :body
30
+ webhook_property :coediting
31
+ webhook_property :comment_count
32
+ webhook_property :created_at
33
+ webhook_property :created_at_as_seconds
34
+ webhook_property :created_at_in_words
35
+ webhook_property :id
36
+ webhook_property :lgtm_count
37
+ webhook_property :raw_body
38
+ webhook_property :stock_count
39
+ webhook_property :stock_users
40
+ webhook_property :tags
41
+ webhook_property :title
42
+ webhook_property :updated_at
43
+ webhook_property :updated_at_in_words
44
+ webhook_property :url
45
+ webhook_property :user
46
+ webhook_property :uuid
47
+
48
+ def raw_body
49
+ body
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,45 @@
1
+ require "support/resources/base"
2
+
3
+ module Qiita::Team::Services
4
+ module Resources
5
+ class Project < Base
6
+ attr_accessor :archived
7
+ attr_accessor :body
8
+ attr_accessor :comment_count
9
+ attr_accessor :created_at
10
+ attr_accessor :created_at_as_seconds
11
+ attr_accessor :created_at_in_words
12
+ attr_accessor :editor
13
+ attr_accessor :id
14
+ attr_accessor :message
15
+ attr_accessor :name
16
+ attr_accessor :rendered_body
17
+ attr_accessor :tags
18
+ attr_accessor :team
19
+ attr_accessor :updated_at
20
+ attr_accessor :updated_at_in_words
21
+ attr_accessor :url
22
+ attr_accessor :user
23
+
24
+ alias_method :archived?, :archived
25
+
26
+ webhook_property :archived
27
+ webhook_property :body
28
+ webhook_property :comment_count
29
+ webhook_property :created_at
30
+ webhook_property :created_at_as_seconds
31
+ webhook_property :created_at_in_words
32
+ webhook_property :id
33
+ webhook_property :name
34
+ webhook_property :raw_body
35
+ webhook_property :tags
36
+ webhook_property :updated_at
37
+ webhook_property :updated_at_in_words
38
+ webhook_property :url
39
+
40
+ def raw_body
41
+ body
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,15 @@
1
+ require "support/resources/base"
2
+
3
+ module Qiita::Team::Services
4
+ module Resources
5
+ class Tagging < Base
6
+ attr_accessor :name
7
+ attr_accessor :url_name
8
+ attr_accessor :versions
9
+
10
+ webhook_property :name
11
+ webhook_property :url_name
12
+ webhook_property :versions
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ require "support/resources/base"
2
+
3
+ module Qiita::Team::Services
4
+ module Resources
5
+ class Team < Base
6
+ attr_accessor :id
7
+ attr_accessor :name
8
+ attr_accessor :url
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,17 @@
1
+ require "support/resources/base"
2
+
3
+ module Qiita::Team::Services
4
+ module Resources
5
+ class User < Base
6
+ attr_accessor :id
7
+ attr_accessor :url_name
8
+ attr_accessor :name
9
+ attr_accessor :url
10
+ attr_accessor :profile_image_url
11
+
12
+ webhook_property :id
13
+ webhook_property :profile_image_url
14
+ webhook_property :url_name
15
+ end
16
+ end
17
+ end
metadata ADDED
@@ -0,0 +1,323 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: qiita_team_services
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.1
5
+ platform: ruby
6
+ authors:
7
+ - Yuku Takahashi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-10-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.9'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.9'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday_middleware
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.10'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.10'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '4.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails-i18n
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: hipchat
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.5.2
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 1.5.2
83
+ - !ruby/object:Gem::Dependency
84
+ name: slacken
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.1.3
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.1.3
97
+ - !ruby/object:Gem::Dependency
98
+ name: factory_girl
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 4.5.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 4.5.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: ffaker
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.1'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.1'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rake
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '10.4'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '10.4'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rspec
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '3.3'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '3.3'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '0.33'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '0.33'
181
+ - !ruby/object:Gem::Dependency
182
+ name: webmock
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '1.21'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '1.21'
195
+ - !ruby/object:Gem::Dependency
196
+ name: yard
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: 0.8.7
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: 0.8.7
209
+ description:
210
+ email:
211
+ - yuku@qiita.com
212
+ executables: []
213
+ extensions: []
214
+ extra_rdoc_files: []
215
+ files:
216
+ - ".gitignore"
217
+ - ".rspec"
218
+ - ".rubocop.yml"
219
+ - ".travis.yml"
220
+ - CHANGELOG.md
221
+ - Gemfile
222
+ - LICENSE
223
+ - README.md
224
+ - Rakefile
225
+ - config/locales/en.yml
226
+ - config/locales/ja.yml
227
+ - lib/qiita/team/services/engine.rb
228
+ - lib/qiita/team/services/errors.rb
229
+ - lib/qiita/team/services/events.rb
230
+ - lib/qiita/team/services/events/base.rb
231
+ - lib/qiita/team/services/events/item_became_coediting.rb
232
+ - lib/qiita/team/services/events/item_comment_created.rb
233
+ - lib/qiita/team/services/events/item_comment_destroyed.rb
234
+ - lib/qiita/team/services/events/item_comment_updated.rb
235
+ - lib/qiita/team/services/events/item_created.rb
236
+ - lib/qiita/team/services/events/item_destroyed.rb
237
+ - lib/qiita/team/services/events/item_updated.rb
238
+ - lib/qiita/team/services/events/project_activated.rb
239
+ - lib/qiita/team/services/events/project_archived.rb
240
+ - lib/qiita/team/services/events/project_comment_created.rb
241
+ - lib/qiita/team/services/events/project_comment_destroyed.rb
242
+ - lib/qiita/team/services/events/project_comment_updated.rb
243
+ - lib/qiita/team/services/events/project_created.rb
244
+ - lib/qiita/team/services/events/project_destroyed.rb
245
+ - lib/qiita/team/services/events/project_updated.rb
246
+ - lib/qiita/team/services/events/team_member_added.rb
247
+ - lib/qiita/team/services/events/team_member_removed.rb
248
+ - lib/qiita/team/services/hooks.rb
249
+ - lib/qiita/team/services/hooks/base.rb
250
+ - lib/qiita/team/services/hooks/chatwork_v1.rb
251
+ - lib/qiita/team/services/hooks/concerns/event_handlable.rb
252
+ - lib/qiita/team/services/hooks/concerns/http_client.rb
253
+ - lib/qiita/team/services/hooks/concerns/persistable.rb
254
+ - lib/qiita/team/services/hooks/concerns/service.rb
255
+ - lib/qiita/team/services/hooks/concerns/slack.rb
256
+ - lib/qiita/team/services/hooks/hipchat_v1.rb
257
+ - lib/qiita/team/services/hooks/slack_v1.rb
258
+ - lib/qiita/team/services/hooks/slack_v2.rb
259
+ - lib/qiita/team/services/hooks/webhook.rb
260
+ - lib/qiita/team/services/properties.rb
261
+ - lib/qiita/team/services/properties/base.rb
262
+ - lib/qiita/team/services/properties/boolean_property.rb
263
+ - lib/qiita/team/services/properties/string_property.rb
264
+ - lib/qiita/team/services/resources/README.md
265
+ - lib/qiita/team/services/templates/chatwork_v1.html.erb
266
+ - lib/qiita/team/services/templates/hipchat_v1.html.erb
267
+ - lib/qiita/team/services/templates/slack_v1.html.erb
268
+ - lib/qiita/team/services/templates/slack_v2.html.erb
269
+ - lib/qiita/team/services/templates/webhook.html.erb
270
+ - lib/qiita/team/services/version.rb
271
+ - lib/qiita_team_services.rb
272
+ - qiita_team_services.gemspec
273
+ - spec/hooks/chatwork_v1_spec.rb
274
+ - spec/hooks/hipchat_v1_spec.rb
275
+ - spec/hooks/slack_v1_spec.rb
276
+ - spec/hooks/slack_v2_spec.rb
277
+ - spec/hooks/webhook_spec.rb
278
+ - spec/spec_helper.rb
279
+ - spec/support/factories/comments.rb
280
+ - spec/support/factories/items.rb
281
+ - spec/support/factories/projects.rb
282
+ - spec/support/factories/taggings.rb
283
+ - spec/support/factories/teams.rb
284
+ - spec/support/factories/users.rb
285
+ - spec/support/factory_girl.rb
286
+ - spec/support/helpers/event_helper.rb
287
+ - spec/support/helpers/hook_helper.rb
288
+ - spec/support/helpers/http_client_stub_helper.rb
289
+ - spec/support/helpers/slack_hook_helper.rb
290
+ - spec/support/matchers/match_slack_attachments_request.rb
291
+ - spec/support/resources/base.rb
292
+ - spec/support/resources/comment.rb
293
+ - spec/support/resources/item.rb
294
+ - spec/support/resources/project.rb
295
+ - spec/support/resources/tagging.rb
296
+ - spec/support/resources/team.rb
297
+ - spec/support/resources/user.rb
298
+ homepage: https://github.com/increments/qiita-team-services
299
+ licenses:
300
+ - MIT
301
+ metadata: {}
302
+ post_install_message:
303
+ rdoc_options: []
304
+ require_paths:
305
+ - lib
306
+ required_ruby_version: !ruby/object:Gem::Requirement
307
+ requirements:
308
+ - - ">="
309
+ - !ruby/object:Gem::Version
310
+ version: '0'
311
+ required_rubygems_version: !ruby/object:Gem::Requirement
312
+ requirements:
313
+ - - ">="
314
+ - !ruby/object:Gem::Version
315
+ version: '0'
316
+ requirements: []
317
+ rubyforge_project:
318
+ rubygems_version: 2.4.5.1
319
+ signing_key:
320
+ specification_version: 4
321
+ summary: Official Qiita:Team Services Integration
322
+ test_files: []
323
+ has_rdoc: