github-web-hooks-receiver 1.0.0 → 1.0.1

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