github-web-hooks-receiver 1.0.0 → 1.0.1

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: de99b9c01f899326fd8b4cf3422244ab1afbe6bc
4
- data.tar.gz: 0638ab1bc10af285fce9e117074df11959e02975
3
+ metadata.gz: 9ee5be645f09fb213a17ddab34dbae213360c97b
4
+ data.tar.gz: 59b19d6a18d006ab60ebccb5b690b094c20e97a4
5
5
  SHA512:
6
- metadata.gz: 9e1ef74e2f4d9d411c7d69e4e9cb87b56c5396db505534b7cd3f51b85e31778255deaea5a6a6dadd90d0d4437b84c6214980b6557371067ffa7b5cea8938d94b
7
- data.tar.gz: fd4b1e4779938c54b116d4d7a1ccddbf77699c0f4ec97bf61747578dced26904a7622394fa12be39d2373010e8dddb3d27f23451409d362c0d52b9bfc9f08147
6
+ metadata.gz: 25b01bbbd7ea6940bf1cb0865532eb9551030591b41b52e1c78d43bdf76a3148f898d4d388c2da80f710b741a3bacd2bd7534320021b0f2c089f422a67bbc4c9
7
+ data.tar.gz: 1c69e82f98aeba475370abd2513f44b76d6accb8059404904594282ec53ed066251c26ff32be806d76f8471aaa1ddb77fd8ae1c00ac247ee9e6d0160926b9826
data/.gitignore CHANGED
@@ -2,4 +2,5 @@
2
2
  /Gemfile.lock
3
3
  /vendor/
4
4
  /test/.test-result/
5
-
5
+ /mirrors/
6
+ /pkg/
data/README.md CHANGED
@@ -38,6 +38,8 @@ end
38
38
 
39
39
  /home/github-web-hooks-receiver/github-web-hooks-receiver/config.yaml:
40
40
  ```
41
+ mirrors_directory: /path/to/mirrors
42
+ git_commit_mailer: /path/to/git-commit-mailer
41
43
  to: receiver@example.com
42
44
  sender: sender@example.com
43
45
  add_html: true
@@ -209,4 +211,3 @@ $ sudo -u github-web-hooks-receiver -H ~github-web-hooks-receiver/bin/github-web
209
211
 
210
212
  You need to edit config.yaml to configure this web application.
211
213
  See config.yaml.example and test codes.
212
-
data/config.ru CHANGED
@@ -1,6 +1,6 @@
1
1
  # -*- mode: ruby; coding: utf-8 -*-
2
2
  #
3
- # Copyright (C) 2010-2013 Kouhei Sutou <kou@clear-code.com>
3
+ # Copyright (C) 2010-2015 Kouhei Sutou <kou@clear-code.com>
4
4
  #
5
5
  # This program is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU General Public License as published by
@@ -39,8 +39,8 @@ use Rack::ContentLength
39
39
  config_file = base_dir + "config.yaml"
40
40
  options = YAML.load_file(config_file.to_s)
41
41
  notifier_options = options.dup
42
- if options[:error_to]
43
- notifier_options[:to] = options[:error_to]
42
+ if options["error_to"]
43
+ notifier_options["to"] = options["error_to"]
44
44
  end
45
45
  notifier_options.merge!(options["exception_notifier"] || {})
46
46
  notifiers = [Racknga::ExceptionMailNotifier.new(notifier_options)]
@@ -1,9 +1,3 @@
1
- private_token: VERYSECRETTOKEN
2
- gitlab_api_end_point: https://gitlab.example.com/api/v3
3
- web_hooks:
4
- - http://gh.example.com/post-receiver1
5
- - http://gh.example.com/post-receiver2
6
- - http://gh.example.com/post-receiver3
7
1
  to: receiver@example.com
8
2
  error_to: admin@example.com
9
3
  exception_notifier:
@@ -11,10 +5,36 @@ exception_notifier:
11
5
  sender: sender@example.com
12
6
  add_html: true
13
7
  owners:
14
- ranguba:
15
- to: groonga-commit@rubyforge.org
8
+ mroonga:
9
+ to: groonga-mysql-commit@lists.sourceforge.jp
16
10
  repositories:
17
11
  examples:
18
12
  to: null@example.com
19
13
  groonga:
20
14
  to: groonga-commit@lists.sourceforge.jp
15
+
16
+ # For multiple domains
17
+ #
18
+ # domains:
19
+ # github.com: &github
20
+ # owners:
21
+ # clear-code:
22
+ # to: commit+clear-code@example.com
23
+ # kou:
24
+ # enabled: false # Disabled by default
25
+ # repositories:
26
+ # mruby-pp:
27
+ # enabled: true # Enabled only the specified repository
28
+ # # GitHub uses api.github.com for gollum event (Wiki change event)
29
+ # # "api.github.com: *github" means that api.github.com configuaration
30
+ # # is the same as github.com.
31
+ # api.github.com: *github
32
+ # gitlab.example.com:
33
+ # to: commit+gitlab@example.com
34
+ # from: null+gitlab@example.com
35
+ # owners:
36
+ # owner1:
37
+ # repositories:
38
+ # repository1:
39
+ # to:
40
+ # - commit+repository1@example.com
@@ -0,0 +1,27 @@
1
+ # News
2
+
3
+ ## 1.0.1 - 2016-10-07 {#version-1-0-1}
4
+
5
+ ### Improvements
6
+
7
+ * Added `git_commit_mailer` top level option in configure YAML. It's
8
+ for changing mailer command.
9
+
10
+ * Serialized Git repository update.
11
+
12
+ * Showed standard output content on git-commit-mailer error.
13
+
14
+ * Returned success response ("202 Accepted") for disabled repository.
15
+
16
+ * Supported `enabled` option to each repository for
17
+ enabling/disabling the repository.
18
+
19
+ * Removed branches no longer exist.
20
+
21
+ * [GitLab] Supported Wiki event.
22
+
23
+ * Supported logging on error response.
24
+
25
+ ## 1.0.0 - 2015-05-19 {#version-1-0-0}
26
+
27
+ The initial release!
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["kou@clear-code.com", "okimoto@clear-code.com"]
11
11
  spec.summary = %q{GitHub web hook receiver}
12
12
  spec.description = %q{GitHub web hook receiver}
13
- spec.homepage = ""
13
+ spec.homepage = "https://github.com/clear-code/github-web-hooks-receiver"
14
14
  spec.license = "GPL-3.0+"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
@@ -28,19 +28,22 @@ module GitHubWebHooksReceiver
28
28
  def process_payload(request, response, raw_payload)
29
29
  metadata = {
30
30
  "x-github-event" => github_event(request),
31
+ "x-gitlab-event" => gitlab_event(request),
31
32
  }
32
33
  payload = Payload.new(raw_payload, metadata)
33
34
  case payload.event_name
34
35
  when "ping"
35
36
  # Do nothing
36
- when "push", nil # nil is for GitLab
37
+ when "push"
37
38
  process_push_payload(request, response, payload)
38
39
  when "gollum"
39
40
  process_gollum_payload(request, response, payload)
41
+ when "wiki_page"
42
+ process_gitlab_wiki_payload(request, response, payload)
40
43
  else
41
- set_error_response(response,
42
- :bad_request,
43
- "Unsupported event: <#{payload.event_name}>")
44
+ set_response(response,
45
+ :bad_request,
46
+ "Unsupported event: <#{payload.event_name}>")
44
47
  end
45
48
  end
46
49
 
@@ -48,6 +51,10 @@ module GitHubWebHooksReceiver
48
51
  request.env["HTTP_X_GITHUB_EVENT"]
49
52
  end
50
53
 
54
+ def gitlab_event(request)
55
+ request.env["HTTP_X_GITLAB_EVENT"]
56
+ end
57
+
51
58
  def process_push_payload(request, response, payload)
52
59
  repository = process_payload_repository(request, response, payload)
53
60
  return if repository.nil?
@@ -64,51 +71,117 @@ module GitHubWebHooksReceiver
64
71
  repository.process(*change)
65
72
  end
66
73
 
74
+ def process_gitlab_wiki_payload(request, response, payload)
75
+ repository = process_gitlab_wiki_repository(request, response, payload)
76
+ return if repository.nil?
77
+ change = process_gitlab_wiki_parameters(request, response, payload)
78
+ return if change.nil?
79
+ repository.process(*change)
80
+ end
81
+
67
82
  def process_payload_repository(request, response, payload)
68
83
  repository = payload["repository"]
69
84
  if repository.nil?
70
- set_error_response(response, :bad_request,
71
- "repository information is missing")
85
+ set_response(response, :bad_request,
86
+ "repository information is missing")
72
87
  return
73
88
  end
74
89
 
75
90
  unless repository.is_a?(Hash)
76
- set_error_response(response, :bad_request,
77
- "invalid repository information format: " +
78
- "<#{repository.inspect}>")
91
+ set_response(response, :bad_request,
92
+ "invalid repository information format: " +
93
+ "<#{repository.inspect}>")
79
94
  return
80
95
  end
81
96
 
82
97
  repository_uri = repository["url"]
83
98
  domain = extract_domain(repository_uri)
84
99
  if domain.nil?
85
- set_error_response(response, :bad_request,
86
- "invalid repository URI: <#{repository.inspect}>")
100
+ set_response(response, :bad_request,
101
+ "invalid repository URI: <#{repository.inspect}>")
87
102
  return
88
103
  end
89
104
 
90
105
  repository_name = repository["name"]
91
106
  if repository_name.nil?
92
- set_error_response(response, :bad_request,
93
- "repository name is missing: <#{repository.inspect}>")
107
+ set_response(response, :bad_request,
108
+ "repository name is missing: <#{repository.inspect}>")
109
+ return
110
+ end
111
+
112
+ owner_name = extract_owner_name(repository_uri, payload)
113
+ if owner_name.nil?
114
+ set_response(response, :bad_request,
115
+ "repository owner or owner name is missing: " +
116
+ "<#{repository.inspect}>")
117
+ return
118
+ end
119
+
120
+ options = repository_options(domain, owner_name, repository_name)
121
+ repository = repository_class.new(domain, owner_name, repository_name,
122
+ payload, options)
123
+ unless repository.enabled?
124
+ set_response(response, :accepted,
125
+ "ignore disabled repository: " +
126
+ "<#{owner_name.inspect}>:<#{repository_name.inspect}>")
127
+ return
128
+ end
129
+
130
+ repository
131
+ end
132
+
133
+ def process_gitlab_wiki_repository(request, response, payload)
134
+ wiki = payload["wiki"]
135
+ if wiki.nil?
136
+ set_response(response, :bad_request,
137
+ "Wiki information is missing")
138
+ return
139
+ end
140
+
141
+ unless wiki.is_a?(Hash)
142
+ set_response(response, :bad_request,
143
+ "invalid Wiki information format: " +
144
+ "<#{wiki.inspect}>")
145
+ return
146
+ end
147
+
148
+ repository_uri = wiki["git_ssh_url"]
149
+ domain = extract_domain(repository_uri)
150
+ if domain.nil?
151
+ set_response(response, :bad_request,
152
+ "invalid repository URI: <#{wiki.inspect}>")
153
+ return
154
+ end
155
+
156
+ project = payload["project"]
157
+ if wiki.nil?
158
+ set_response(response, :bad_request,
159
+ "Project information is missing")
160
+ return
161
+ end
162
+
163
+ repository_name = project["name"]
164
+ if repository_name.nil?
165
+ set_response(response, :bad_request,
166
+ "repository name is missing: <#{project.inspect}>")
94
167
  return
95
168
  end
96
169
 
97
170
  owner_name = extract_owner_name(repository_uri, payload)
98
171
  if owner_name.nil?
99
- set_error_response(response, :bad_request,
100
- "repository owner or owner name is missing: " +
101
- "<#{repository.inspect}>")
172
+ set_response(response, :bad_request,
173
+ "repository owner or owner name is missing: " +
174
+ "<#{project.inspect}>")
102
175
  return
103
176
  end
104
177
 
105
178
  options = repository_options(domain, owner_name, repository_name)
106
179
  repository = repository_class.new(domain, owner_name, repository_name,
107
180
  payload, options)
108
- unless repository.target?
109
- set_error_response(response, :forbidden,
110
- "unacceptable repository: " +
111
- "<#{owner_name.inspect}>:<#{repository_name.inspect}>")
181
+ unless repository.enabled?
182
+ set_response(response, :accepted,
183
+ "ignore disabled repository: " +
184
+ "<#{owner_name.inspect}>:<#{repository_name.inspect}>")
112
185
  return
113
186
  end
114
187
 
@@ -116,21 +189,18 @@ module GitHubWebHooksReceiver
116
189
  end
117
190
 
118
191
  def extract_domain(repository_uri)
119
- domain = nil
120
192
  case repository_uri
121
193
  when /\Agit@/
122
- domain = repository_uri[/@(.+):/, 1]
194
+ repository_uri[/@(.+):/, 1]
123
195
  when /\Ahttps:\/\//
124
- domain = URI.parse(repository_uri).hostname
196
+ URI.parse(repository_uri).hostname
125
197
  else
126
- return
198
+ nil
127
199
  end
128
- domain
129
200
  end
130
201
 
131
202
  def extract_owner_name(repository_uri, payload)
132
203
  owner_name = nil
133
- repository = payload["repository"]
134
204
  if payload.gitlab?
135
205
  case repository_uri
136
206
  when /\Agit@/
@@ -141,7 +211,7 @@ module GitHubWebHooksReceiver
141
211
  return
142
212
  end
143
213
  else
144
- owner = repository["owner"]
214
+ owner = payload["repository.owner"]
145
215
  return if owner.nil?
146
216
 
147
217
  owner_name = owner["name"] || owner["login"]
@@ -153,22 +223,22 @@ module GitHubWebHooksReceiver
153
223
  def process_push_parameters(request, response, payload)
154
224
  before = payload["before"]
155
225
  if before.nil?
156
- set_error_response(response, :bad_request,
157
- "before commit ID is missing")
226
+ set_response(response, :bad_request,
227
+ "before commit ID is missing")
158
228
  return
159
229
  end
160
230
 
161
231
  after = payload["after"]
162
232
  if after.nil?
163
- set_error_response(response, :bad_request,
164
- "after commit ID is missing")
233
+ set_response(response, :bad_request,
234
+ "after commit ID is missing")
165
235
  return
166
236
  end
167
237
 
168
238
  reference = payload["ref"]
169
239
  if reference.nil?
170
- set_error_response(response, :bad_request,
171
- "reference is missing")
240
+ set_response(response, :bad_request,
241
+ "reference is missing")
172
242
  return
173
243
  end
174
244
 
@@ -178,13 +248,14 @@ module GitHubWebHooksReceiver
178
248
  def process_gollum_parameters(request, response, payload)
179
249
  pages = payload["pages"]
180
250
  if pages.nil?
181
- set_error_response(response, :bad_request,
182
- "pages are missing")
251
+ set_response(response, :bad_request,
252
+ "pages are missing")
183
253
  return
184
254
  end
185
255
  if pages.empty?
186
- set_error_response(response, :bad_request,
187
- "no pages")
256
+ set_response(response, :bad_request,
257
+ "no pages")
258
+ return
188
259
  end
189
260
 
190
261
  revisions = pages.collect do |page|
@@ -203,7 +274,23 @@ module GitHubWebHooksReceiver
203
274
  [before, after, reference]
204
275
  end
205
276
 
206
- def set_error_response(response, status_keyword, message)
277
+ def process_gitlab_wiki_parameters(request, response, payload)
278
+ before = "HEAD~"
279
+ after = "HEAD"
280
+ reference = "refs/heads/master"
281
+ [before, after, reference]
282
+ end
283
+
284
+ def set_response(response, status_keyword, message)
285
+ if File.directory?("log")
286
+ begin
287
+ require "pp"
288
+ File.open("log/response.log", "w") do |log|
289
+ PP.pp([status_keyword, message], log)
290
+ end
291
+ rescue SystemCallError
292
+ end
293
+ end
207
294
  response.status = status(status_keyword)
208
295
  response["Content-Type"] = "text/plain"
209
296
  response.write(message)
@@ -21,7 +21,7 @@ module GitHubWebHooksReceiver
21
21
  def base_dir
22
22
  @base_dir ||=
23
23
  @options[:base_dir] ||
24
- File.expand_path(File.join(File.dirname(__FILE__), ".."))
24
+ File.expand_path(File.join(File.dirname(__FILE__), "..", ".."))
25
25
  end
26
26
 
27
27
  def path(*paths)
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2010-2013 Kouhei Sutou <kou@clear-code.com>
1
+ # Copyright (C) 2010-2016 Kouhei Sutou <kou@clear-code.com>
2
2
  # Copyright (C) 2015 Kenji Okimoto <okimoto@clear-code.com>
3
3
  #
4
4
  # This program is free software: you can redistribute it and/or modify
@@ -32,7 +32,9 @@ module GitHubWebHooksReceiver
32
32
  end
33
33
 
34
34
  def repository_url
35
- if gitlab?
35
+ if gitlab_wiki?
36
+ self["wiki.git_ssh_url"]
37
+ elsif gitlab?
36
38
  self["repository.url"]
37
39
  elsif github_gollum?
38
40
  self["repository.clone_url"].gsub(/(\.git)\z/, ".wiki\\1")
@@ -42,7 +44,11 @@ module GitHubWebHooksReceiver
42
44
  end
43
45
 
44
46
  def gitlab?
45
- not self["user_name"].nil?
47
+ not self["object_kind"].nil?
48
+ end
49
+
50
+ def gitlab_wiki?
51
+ event_name == "wiki_page"
46
52
  end
47
53
 
48
54
  def github_gollum?
@@ -50,7 +56,11 @@ module GitHubWebHooksReceiver
50
56
  end
51
57
 
52
58
  def event_name
53
- @metadata["x-github-event"]
59
+ if gitlab?
60
+ self["object_kind"]
61
+ else
62
+ @metadata["x-github-event"]
63
+ end
54
64
  end
55
65
  end
56
66
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2010-2013 Kouhei Sutou <kou@clear-code.com>
1
+ # Copyright (C) 2010-2016 Kouhei Sutou <kou@clear-code.com>
2
2
  # Copyright (C) 2015 Kenji Okimoto <okimoto@clear-code.com>
3
3
  #
4
4
  # This program is free software: you can redistribute it and/or modify
@@ -14,6 +14,8 @@
14
14
  # You should have received a copy of the GNU General Public License
15
15
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
16
 
17
+ require "stringio"
18
+
17
19
  module GitHubWebHooksReceiver
18
20
  class Repository
19
21
  include PathResolver
@@ -32,39 +34,53 @@ module GitHubWebHooksReceiver
32
34
  raise Error.new("mail receive address is missing: <#{@name}>") if @to.nil?
33
35
  end
34
36
 
35
- def target?
36
- (@options[:targets] || [/\A[a-z\d_.\-]+\z/i]).any? do |target|
37
- target === @name
38
- end
37
+ def enabled?
38
+ enabled = @options[:enabled]
39
+ enabled = true if enabled.nil?
40
+ enabled
39
41
  end
40
42
 
41
43
  def process(before, after, reference)
42
- FileUtils.mkdir_p(mirrors_directory)
44
+ FileUtils.mkdir_p(File.dirname(mirror_path))
43
45
  n_retries = 0
44
- begin
45
- if File.exist?(mirror_path)
46
- git("--git-dir", mirror_path, "fetch", "--quiet")
47
- else
48
- git("clone", "--quiet",
49
- "--mirror", @payload.repository_url,
50
- mirror_path)
46
+ lock("#{mirror_path}.lock") do
47
+ begin
48
+ if File.exist?(mirror_path)
49
+ git("--git-dir", mirror_path, "fetch", "--quiet", "--prune")
50
+ else
51
+ git("clone", "--quiet",
52
+ "--mirror", @payload.repository_url,
53
+ mirror_path)
54
+ end
55
+ rescue Error
56
+ n_retries += 1
57
+ retry if n_retries <= @max_n_retries
58
+ raise
51
59
  end
52
- rescue Error
53
- n_retries += 1
54
- retry if n_retries <= @max_n_retries
55
- raise
56
60
  end
57
61
  send_commit_email(before, after, reference)
58
62
  end
59
63
 
64
+ def lock(path)
65
+ File.open(path, "w") do |file|
66
+ file.flock(File::LOCK_EX)
67
+ yield
68
+ end
69
+ end
70
+
60
71
  def send_commit_email(before, after, reference)
61
72
  options = [
62
73
  "--repository", mirror_path,
63
74
  "--max-size", "1M"
64
75
  ]
65
76
  if @payload.gitlab?
66
- add_option(options, "--repository-browser", "gitlab")
67
- gitlab_project_uri = @payload["repository"]["homepage"]
77
+ if @payload.gitlab_wiki?
78
+ add_option(options, "--repository-browser", "gitlab-wiki")
79
+ gitlab_project_uri = @payload["project"]["homepage"]
80
+ else
81
+ add_option(options, "--repository-browser", "gitlab")
82
+ gitlab_project_uri = @payload["repository"]["homepage"]
83
+ end
68
84
  add_option(options, "--gitlab-project-uri", gitlab_project_uri)
69
85
  else
70
86
  if @payload.github_gollum?
@@ -92,16 +108,20 @@ module GitHubWebHooksReceiver
92
108
  else
93
109
  options << @to
94
110
  end
95
- command_line = [ruby, commit_email, *options].collect do |component|
111
+ command_line = [ruby, git_commit_mailer, *options].collect do |component|
96
112
  Shellwords.escape(component)
97
113
  end.join(" ")
98
114
  change = "#{before} #{after} #{reference}"
99
- IO.popen(command_line, "w") do |io|
100
- io.puts(change)
115
+ status = nil
116
+ output = capture_output do
117
+ IO.popen(command_line, "w") do |io|
118
+ io.puts(change)
119
+ end
120
+ status = $?
101
121
  end
102
- unless $?.success?
103
- raise Error.new("failed to run commit-email.rb: " +
104
- "<#{command_line}>:<#{change}>")
122
+ unless status.success?
123
+ raise Error.new("failed to run git-commit-mailer: " +
124
+ "<#{command_line}>:<#{change}>:<#{output}>")
105
125
  end
106
126
  end
107
127
 
@@ -126,7 +146,7 @@ module GitHubWebHooksReceiver
126
146
 
127
147
  def mirror_path
128
148
  components = [mirrors_directory, @domain, @owner_name]
129
- if @payload.github_gollum?
149
+ if @payload.github_gollum? or @payload.gitlab_wiki?
130
150
  components << "#{@name}.wiki"
131
151
  else
132
152
  components << @name
@@ -144,6 +164,10 @@ module GitHubWebHooksReceiver
144
164
  path("..", "commit-email.rb")
145
165
  end
146
166
 
167
+ def git_commit_mailer
168
+ @git_commit_mailer ||= @options[:git_commit_mailer] || commit_email
169
+ end
170
+
147
171
  def from
148
172
  @from ||= @options[:from]
149
173
  end
@@ -188,5 +212,20 @@ module GitHubWebHooksReceiver
188
212
  return if value.empty?
189
213
  options.concat([name, value])
190
214
  end
215
+
216
+ def capture_output
217
+ output = StringIO.new
218
+ stdout = $stdout
219
+ stderr = $stderr
220
+ begin
221
+ $stdout = output
222
+ $stderr = output
223
+ yield
224
+ ensure
225
+ $stdout = stdout
226
+ $stderr = stderr
227
+ end
228
+ output.string
229
+ end
191
230
  end
192
231
  end
@@ -14,5 +14,5 @@
14
14
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
15
 
16
16
  module GitHubWebHooksReceiver
17
- VERSION = "1.0.0"
17
+ VERSION = "1.0.1"
18
18
  end
@@ -102,8 +102,8 @@ class ReceiverTest < Test::Unit::TestCase
102
102
  :name => owner_name,
103
103
  },
104
104
  })
105
- assert_response("Forbidden")
106
- assert_equal("unacceptable repository: " +
105
+ assert_response("Accepted")
106
+ assert_equal("ignore disabled repository: " +
107
107
  "<#{owner_name.inspect}>:<#{repository_name.inspect}>",
108
108
  body)
109
109
  end
@@ -225,6 +225,7 @@ class ReceiverTest < Test::Unit::TestCase
225
225
  assert_false(File.exist?(repository_mirror_path))
226
226
  options[:owners] = {
227
227
  "ranguba" => {
228
+ :enabled => true,
228
229
  :to => "ranguba-commit@example.org",
229
230
  :from => "ranguba+commit@example.org",
230
231
  :sender => "null@example.org",
@@ -272,6 +273,7 @@ class ReceiverTest < Test::Unit::TestCase
272
273
  :sender => "null@example.org",
273
274
  "repositories" => {
274
275
  "rroonga" => {
276
+ :enabled => true,
275
277
  :to => "ranguba-commit@example.net",
276
278
  :from => "ranguba+commit@example.net",
277
279
  :sender => "null@example.net",
@@ -371,12 +373,17 @@ class ReceiverTest < Test::Unit::TestCase
371
373
 
372
374
  def options
373
375
  @options ||= {
374
- :targets => ["rroonga"],
376
+ :enabled => false,
375
377
  :base_dir => @tmp_dir,
376
378
  :fixtures_dir => @fixtures_dir,
377
379
  :repository_class => LocalRepository,
378
380
  :commit_email => File.join(@fixtures_dir, "mock-commit-email.rb"),
379
381
  :to => "null@example.com",
382
+ :owners => {
383
+ "ranguba" => {
384
+ :enabled => true,
385
+ },
386
+ },
380
387
  }
381
388
  end
382
389
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-web-hooks-receiver
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-03-25 00:00:00.000000000 Z
12
+ date: 2016-10-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -110,6 +110,7 @@ files:
110
110
  - Rakefile
111
111
  - config.ru
112
112
  - config.yaml.example
113
+ - doc/text/news.md
113
114
  - github-web-hooks-receiver.gemspec
114
115
  - lib/github-web-hooks-receiver.rb
115
116
  - lib/github-web-hooks-receiver/app.rb
@@ -128,7 +129,7 @@ files:
128
129
  - test/receiver-test.rb
129
130
  - test/run-test.rb
130
131
  - test/test-unit.yml
131
- homepage: ''
132
+ homepage: https://github.com/clear-code/github-web-hooks-receiver
132
133
  licenses:
133
134
  - GPL-3.0+
134
135
  metadata: {}
@@ -148,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
149
  version: '0'
149
150
  requirements: []
150
151
  rubyforge_project:
151
- rubygems_version: 2.4.5
152
+ rubygems_version: 2.5.1
152
153
  signing_key:
153
154
  specification_version: 4
154
155
  summary: GitHub web hook receiver