my_api_client 0.16.1 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +90 -15
  3. data/.rubocop.yml +4 -0
  4. data/.rubocop_challenge.yml +2 -0
  5. data/.rubocop_todo.yml +24 -1
  6. data/CHANGELOG.md +25 -0
  7. data/Gemfile.lock +14 -15
  8. data/README.jp.md +60 -0
  9. data/lib/generators/rspec/templates/api_client_spec.rb.erb +22 -15
  10. data/lib/my_api_client/base.rb +2 -2
  11. data/lib/my_api_client/errors.rb +1 -0
  12. data/lib/my_api_client/request/executor.rb +1 -1
  13. data/lib/my_api_client/version.rb +1 -1
  14. data/my_api/Gemfile.lock +24 -24
  15. data/rails_app/rails_5.2/.rspec +3 -0
  16. data/rails_app/rails_5.2/Gemfile +18 -0
  17. data/rails_app/rails_5.2/Gemfile.lock +171 -0
  18. data/rails_app/rails_5.2/README.md +24 -0
  19. data/rails_app/rails_5.2/Rakefile +8 -0
  20. data/rails_app/rails_5.2/app/controllers/application_controller.rb +4 -0
  21. data/rails_app/rails_5.2/app/jobs/application_job.rb +4 -0
  22. data/rails_app/rails_5.2/bin/bundle +5 -0
  23. data/rails_app/rails_5.2/bin/rails +6 -0
  24. data/rails_app/rails_5.2/bin/rake +6 -0
  25. data/rails_app/rails_5.2/bin/setup +27 -0
  26. data/rails_app/rails_5.2/bin/update +27 -0
  27. data/rails_app/rails_5.2/config.ru +7 -0
  28. data/rails_app/rails_5.2/config/application.rb +37 -0
  29. data/rails_app/rails_5.2/config/boot.rb +6 -0
  30. data/rails_app/rails_5.2/config/credentials.yml.enc +1 -0
  31. data/rails_app/rails_5.2/config/environment.rb +7 -0
  32. data/rails_app/rails_5.2/config/environments/development.rb +41 -0
  33. data/rails_app/rails_5.2/config/environments/production.rb +70 -0
  34. data/rails_app/rails_5.2/config/environments/test.rb +38 -0
  35. data/rails_app/rails_5.2/config/initializers/application_controller_renderer.rb +9 -0
  36. data/rails_app/rails_5.2/config/initializers/backtrace_silencers.rb +8 -0
  37. data/rails_app/rails_5.2/config/initializers/cors.rb +17 -0
  38. data/rails_app/rails_5.2/config/initializers/filter_parameter_logging.rb +6 -0
  39. data/rails_app/rails_5.2/config/initializers/inflections.rb +17 -0
  40. data/rails_app/rails_5.2/config/initializers/mime_types.rb +5 -0
  41. data/rails_app/rails_5.2/config/initializers/wrap_parameters.rb +11 -0
  42. data/rails_app/rails_5.2/config/locales/en.yml +33 -0
  43. data/rails_app/rails_5.2/config/routes.rb +5 -0
  44. data/rails_app/rails_5.2/config/spring.rb +8 -0
  45. data/rails_app/rails_5.2/public/robots.txt +1 -0
  46. data/rails_app/rails_5.2/spec/rails_helper.rb +14 -0
  47. data/rails_app/rails_5.2/spec/spec_helper.rb +13 -0
  48. data/rails_app/rails_6.0/.rspec +3 -0
  49. data/rails_app/rails_6.0/Gemfile +17 -0
  50. data/rails_app/rails_6.0/Gemfile.lock +186 -0
  51. data/rails_app/rails_6.0/README.md +24 -0
  52. data/rails_app/rails_6.0/Rakefile +8 -0
  53. data/rails_app/rails_6.0/app/controllers/application_controller.rb +4 -0
  54. data/rails_app/rails_6.0/app/jobs/application_job.rb +9 -0
  55. data/rails_app/rails_6.0/bin/rails +6 -0
  56. data/rails_app/rails_6.0/bin/rake +6 -0
  57. data/rails_app/rails_6.0/bin/setup +27 -0
  58. data/rails_app/rails_6.0/config.ru +7 -0
  59. data/rails_app/rails_6.0/config/application.rb +39 -0
  60. data/rails_app/rails_6.0/config/boot.rb +6 -0
  61. data/rails_app/rails_6.0/config/credentials.yml.enc +1 -0
  62. data/rails_app/rails_6.0/config/environment.rb +7 -0
  63. data/rails_app/rails_6.0/config/environments/development.rb +39 -0
  64. data/rails_app/rails_6.0/config/environments/production.rb +90 -0
  65. data/rails_app/rails_6.0/config/environments/test.rb +41 -0
  66. data/rails_app/rails_6.0/config/initializers/application_controller_renderer.rb +9 -0
  67. data/rails_app/rails_6.0/config/initializers/backtrace_silencers.rb +8 -0
  68. data/rails_app/rails_6.0/config/initializers/cors.rb +17 -0
  69. data/rails_app/rails_6.0/config/initializers/filter_parameter_logging.rb +6 -0
  70. data/rails_app/rails_6.0/config/initializers/inflections.rb +17 -0
  71. data/rails_app/rails_6.0/config/initializers/mime_types.rb +5 -0
  72. data/rails_app/rails_6.0/config/initializers/wrap_parameters.rb +11 -0
  73. data/rails_app/rails_6.0/config/locales/en.yml +33 -0
  74. data/rails_app/rails_6.0/config/routes.rb +5 -0
  75. data/rails_app/rails_6.0/config/spring.rb +8 -0
  76. data/rails_app/rails_6.0/public/robots.txt +1 -0
  77. data/rails_app/rails_6.0/spec/rails_helper.rb +14 -0
  78. data/rails_app/rails_6.0/spec/spec_helper.rb +13 -0
  79. metadata +66 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1eb52f8cf1220f7a0db30d5a6f83a8ef880315d6f23f878103ea234812c4071e
4
- data.tar.gz: d6176d4ea51df4d2486be4150055b05b60ded0d674c937c61bc46dc9df79f0a6
3
+ metadata.gz: 4e3243e1c615b0f94cd59c9b0c47c9c8de69dd17c3113a0a5f32e3d1dfaebff5
4
+ data.tar.gz: 8b3405efa79ef2c94aa97b0bbb8b90e1c445f2b27bbe590d70a1cc2efac49466
5
5
  SHA512:
6
- metadata.gz: 4bfcd9f62258c714797b9234959f53b2c84c2bc7c651d8ea6b4ba8ce2a6750c8528c8cd33ee842f090c01414c65028d0e8c412a2ec3e425b9382984f632cda37
7
- data.tar.gz: 6f48b2d64393db7ca69da8e68236c095f5bf94fd424e87cd805cb264a09e616782816d7b83308b512d6e45a3f500b6c85f1a2f93e2ef6b96cb2a23d486909561
6
+ metadata.gz: 7ddd98c45754dd5bc65695e73671debea7467bc961bc35cc4ad5167d421e407260fd941eacc1ef264eed44ce588ef2a739cd075254353e14889bcafe176618f3
7
+ data.tar.gz: 574d774f927aca3693b7f11bb2d1aae12d1300625b492ccfb8c31d1313856c6f754f3d06524b85d60504bafac9f6b6ec2b89e9bdf3eb42995ef0658bbc39459e
@@ -25,18 +25,25 @@ references:
25
25
  default: ''
26
26
 
27
27
  executors:
28
- executor_for_api:
28
+ api_executor:
29
29
  parameters:
30
30
  <<: *ruby_version
31
31
  docker:
32
- - image: circleci/ruby:<< parameters.ruby_version >>-node-browsers
32
+ - image: circleci/ruby:<< parameters.ruby_version >>
33
33
  working_directory: ~/repo/my_api
34
- executor_for_gem:
34
+ gem_executor:
35
35
  parameters:
36
36
  <<: *ruby_version
37
37
  docker:
38
- - image: circleci/ruby:<< parameters.ruby_version >>-node-browsers
38
+ - image: circleci/ruby:<< parameters.ruby_version >>
39
39
  working_directory: ~/repo
40
+ rails_executor:
41
+ parameters:
42
+ <<: *ruby_version
43
+ <<: *rails_version
44
+ docker:
45
+ - image: circleci/ruby:<< parameters.ruby_version >>
46
+ working_directory: ~/repo/rails_app/rails_<< parameters.rails_version >>
40
47
 
41
48
  commands:
42
49
  modify_active_support_version:
@@ -144,18 +151,18 @@ commands:
144
151
  path: ~/repo
145
152
  - run:
146
153
  name: Install Bundler 2.x
147
- command: gem install bundler:2.1.2
154
+ command: gem install bundler -v '~> 2.0'
148
155
  - ruby-orbs/bundle-install:
149
156
  cache_key_prefix: v1-dependencies-<< parameters.ruby_version >>
150
157
  bundle_extra_args: << parameters.bundler_options >>
151
158
  restore_bundled_with: false
152
159
  test_and_deploy_for_api:
153
- description: Build the API
160
+ description: Test and build the API
154
161
  steps:
155
162
  - run_rspec_for_api
156
163
  - deploy_api_server
157
164
  test_and_build_for_gem:
158
- description: Build the RubyGem
165
+ description: Test and build the RubyGem
159
166
  parameters:
160
167
  <<: *rails_version
161
168
  steps:
@@ -163,13 +170,33 @@ commands:
163
170
  rails_version: << parameters.rails_version >>
164
171
  - run_rspec_for_gem
165
172
  - rake_build
173
+ verify_api_client_generator:
174
+ description: Verify the API client generator
175
+ parameters:
176
+ <<: *rails_version
177
+ steps:
178
+ - run:
179
+ name: Generate new API client files
180
+ command: |
181
+ bin/rails g api_client path/to/resource \
182
+ get:path/to/resource \
183
+ post:path/to/resource
184
+ - run:
185
+ name: Check the API client files exists
186
+ command: |
187
+ test -e "app/api_clients/application_api_client.rb" & \
188
+ test -e "app/api_clients/path/to/resource_api_client.rb" & \
189
+ test -e "spec/api_clients/path/to/resource_api_client_spec.rb"
190
+ - run:
191
+ name: Run rspec with the generated spec file
192
+ command: bundle exec rspec -f d spec/api_clients/path/to
166
193
 
167
194
  jobs:
168
195
  test_api:
169
196
  parameters:
170
197
  <<: *ruby_version
171
198
  executor:
172
- name: executor_for_api
199
+ name: api_executor
173
200
  ruby_version: << parameters.ruby_version >>
174
201
  steps:
175
202
  - setup:
@@ -179,7 +206,7 @@ jobs:
179
206
  parameters:
180
207
  <<: *ruby_version
181
208
  executor:
182
- name: executor_for_api
209
+ name: api_executor
183
210
  ruby_version: << parameters.ruby_version >>
184
211
  steps:
185
212
  - setup:
@@ -191,7 +218,7 @@ jobs:
191
218
  <<: *rails_version
192
219
  <<: *bundler_options
193
220
  executor:
194
- name: executor_for_gem
221
+ name: gem_executor
195
222
  ruby_version: << parameters.ruby_version >>
196
223
  steps:
197
224
  - setup:
@@ -199,8 +226,21 @@ jobs:
199
226
  bundler_options: << parameters.bundler_options >>
200
227
  - test_and_build_for_gem:
201
228
  rails_version: << parameters.rails_version >>
229
+ verify_generator:
230
+ parameters:
231
+ <<: *ruby_version
232
+ <<: *rails_version
233
+ executor:
234
+ name: rails_executor
235
+ ruby_version: << parameters.ruby_version >>
236
+ rails_version: << parameters.rails_version >>
237
+ steps:
238
+ - setup:
239
+ ruby_version: << parameters.ruby_version >>
240
+ - verify_api_client_generator:
241
+ rails_version: << parameters.rails_version >>
202
242
  upload-coverage:
203
- executor: executor_for_gem
243
+ executor: gem_executor
204
244
  steps:
205
245
  - attach_workspace:
206
246
  at: ~/repo
@@ -210,22 +250,22 @@ jobs:
210
250
  parts: 19
211
251
  - code-climate/upload-coverage
212
252
  rubocop:
213
- executor: executor_for_gem
253
+ executor: gem_executor
214
254
  steps:
215
255
  - setup
216
256
  - rubocop
217
257
  yardoc:
218
- executor: executor_for_gem
258
+ executor: gem_executor
219
259
  steps:
220
260
  - setup
221
261
  - yardoc
222
262
  rubocop_challenge:
223
- executor: executor_for_gem
263
+ executor: gem_executor
224
264
  steps:
225
265
  - checkout
226
266
  - rubocop_challenge
227
267
  release:
228
- executor: executor_for_gem
268
+ executor: gem_executor
229
269
  steps:
230
270
  - setup
231
271
  - release
@@ -313,6 +353,34 @@ workflows:
313
353
  ruby_version: '2.7'
314
354
  rails_version: '6.0'
315
355
  bundler_options: '--without integrations'
356
+ - verify_generator:
357
+ name: verify_generator_on_ruby_2.4_and_rails_5.2
358
+ ruby_version: '2.4'
359
+ rails_version: '5.2'
360
+ - verify_generator:
361
+ name: verify_generator_on_ruby_2.5_and_rails_5.2
362
+ ruby_version: '2.5'
363
+ rails_version: '5.2'
364
+ - verify_generator:
365
+ name: verify_generator_on_ruby_2.5_and_rails_6.0
366
+ ruby_version: '2.5'
367
+ rails_version: '6.0'
368
+ - verify_generator:
369
+ name: verify_generator_on_ruby_2.6_and_rails_5.2
370
+ ruby_version: '2.6'
371
+ rails_version: '5.2'
372
+ - verify_generator:
373
+ name: verify_generator_on_ruby_2.6_and_rails_6.0
374
+ ruby_version: '2.6'
375
+ rails_version: '6.0'
376
+ - verify_generator:
377
+ name: verify_generator_on_ruby_2.7_and_rails_5.2
378
+ ruby_version: '2.7'
379
+ rails_version: '5.2'
380
+ - verify_generator:
381
+ name: verify_generator_on_ruby_2.7_and_rails_6.0
382
+ ruby_version: '2.7'
383
+ rails_version: '6.0'
316
384
  - test_api
317
385
  - rubocop
318
386
  - yardoc
@@ -359,6 +427,13 @@ workflows:
359
427
  - build_on_ruby_2.7_and_rails_5.2
360
428
  - build_on_ruby_2.7_and_rails_6.0_with_integrations
361
429
  - build_on_ruby_2.7_and_rails_6.0_without_integrations
430
+ - verify_generator_on_ruby_2.4_and_rails_5.2
431
+ - verify_generator_on_ruby_2.5_and_rails_5.2
432
+ - verify_generator_on_ruby_2.5_and_rails_6.0
433
+ - verify_generator_on_ruby_2.6_and_rails_5.2
434
+ - verify_generator_on_ruby_2.6_and_rails_6.0
435
+ - verify_generator_on_ruby_2.7_and_rails_5.2
436
+ - verify_generator_on_ruby_2.7_and_rails_6.0
362
437
  - rubocop
363
438
  filters:
364
439
  branches:
@@ -6,6 +6,10 @@ inherit_from: .rubocop_todo.yml
6
6
 
7
7
  AllCops:
8
8
  TargetRubyVersion: 2.4
9
+ NewCops: enable
10
+ Exclude:
11
+ - rails_app/**/*
12
+ - vendor/bundle/**/*
9
13
 
10
14
  Layout/LineLength:
11
15
  Max: 100
@@ -1,3 +1,5 @@
1
1
  ---
2
2
  Ignore:
3
3
  - Performance/StartWith
4
+ - Style/HashTransformValues
5
+ - Style/StringConcatenation
@@ -1,12 +1,35 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2020-08-17 23:30:51 UTC using RuboCop version 0.89.1.
3
+ # on 2020-09-15 23:30:28 UTC using RuboCop version 0.91.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
+ # Offense count: 5
10
+ Lint/MissingSuper:
11
+ Exclude:
12
+ - 'lib/my_api_client/error_handling/generator.rb'
13
+ - 'lib/my_api_client/error_handling/retry_option_processor.rb'
14
+ - 'lib/my_api_client/integrations/bugsnag.rb'
15
+ - 'lib/my_api_client/request/executor.rb'
16
+ - 'lib/my_api_client/sleeper.rb'
17
+
9
18
  # Offense count: 60
10
19
  # Configuration parameters: AllowSubject.
11
20
  RSpec/MultipleMemoizedHelpers:
12
21
  Max: 15
22
+
23
+ # Offense count: 1
24
+ # Cop supports --auto-correct.
25
+ Style/HashTransformValues:
26
+ Exclude:
27
+ - 'lib/my_api_client/integrations/bugsnag.rb'
28
+
29
+ # Offense count: 3
30
+ # Cop supports --auto-correct.
31
+ Style/StringConcatenation:
32
+ Exclude:
33
+ - 'lib/my_api_client/request.rb'
34
+ - 'lib/my_api_client/rspec/matchers/request_to.rb'
35
+ - 'my_api/app/controllers/pagination_controller.rb'
@@ -1,5 +1,30 @@
1
1
  # Change log
2
2
 
3
+ ## v0.17.0 (Sep 20, 2020)
4
+
5
+ ### Feature
6
+
7
+ * [#303](https://github.com/ryz310/my_api_client/pull/303) Change the duration format to milliseconds ([@ryz310](https://github.com/ryz310))
8
+ * [#308](https://github.com/ryz310/my_api_client/pull/308) Add testing for api client generators ([@ryz310](https://github.com/ryz310))
9
+
10
+ ### Rubocop Challenge
11
+
12
+ * [#311](https://github.com/ryz310/my_api_client/pull/311) Style/GlobalStdStream-20200906233350 ([@ryz310](https://github.com/ryz310))
13
+ * [#312](https://github.com/ryz310/my_api_client/pull/312) Style/StringConcatenation-20200907233020 ([@ryz310](https://github.com/ryz310))
14
+ * [#313](https://github.com/ryz310/my_api_client/pull/313) Style/HashTransformValues-20200908233016 ([@ryz310](https://github.com/ryz310))
15
+ * [#316](https://github.com/ryz310/my_api_client/pull/316) Layout/EmptyLinesAroundAttributeAccessor-20200909233021 ([@ryz310](https://github.com/ryz310))
16
+ * [#320](https://github.com/ryz310/my_api_client/pull/320) Re-generate .rubocop_todo.yml with RuboCop v0.91.0 ([@ryz310](https://github.com/ryz310))
17
+
18
+ ### Dependabot
19
+
20
+ * [#299](https://github.com/ryz310/my_api_client/pull/299) ryz310/dependabot/bundler/bugsnag-6.17.0 ([@ryz310](https://github.com/ryz310))
21
+ * [#310](https://github.com/ryz310/my_api_client/pull/310) ryz310/dependabot/bundler/rubocop-performance-1.8.0 ([@ryz310](https://github.com/ryz310))
22
+ * [#314](https://github.com/ryz310/my_api_client/pull/314) ryz310/dependabot/bundler/activesupport-5.2.4.4 ([@ryz310](https://github.com/ryz310))
23
+ * [#315](https://github.com/ryz310/my_api_client/pull/315) ryz310/dependabot/bundler/my_api/actionview-6.0.3.3 ([@ryz310](https://github.com/ryz310))
24
+ * [#318](https://github.com/ryz310/my_api_client/pull/318) ryz310/dependabot/bundler/webmock-3.9.1 ([@ryz310](https://github.com/ryz310))
25
+ * [#319](https://github.com/ryz310/my_api_client/pull/319) ryz310/dependabot/bundler/rubocop-0.91.0 ([@ryz310](https://github.com/ryz310))
26
+ * [#321](https://github.com/ryz310/my_api_client/pull/321) ryz310/dependabot/bundler/my_api/puma-5.0.0 ([@ryz310](https://github.com/ryz310))
27
+
3
28
  ## v0.16.1 (Aug 27, 2020)
4
29
 
5
30
  ### Feature
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- my_api_client (0.16.1)
4
+ my_api_client (0.17.0)
5
5
  activesupport (>= 4.2.0)
6
6
  faraday (>= 0.17.1)
7
7
  jsonpath
@@ -10,7 +10,7 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activesupport (5.2.4.3)
13
+ activesupport (5.2.4.4)
14
14
  concurrent-ruby (~> 1.0, >= 1.0.2)
15
15
  i18n (>= 0.7, < 2)
16
16
  minitest (~> 5.1)
@@ -18,13 +18,12 @@ GEM
18
18
  addressable (2.7.0)
19
19
  public_suffix (>= 2.0.2, < 5.0)
20
20
  ast (2.4.1)
21
- bugsnag (6.16.0)
21
+ bugsnag (6.17.0)
22
22
  concurrent-ruby (~> 1.0)
23
23
  byebug (11.1.3)
24
24
  coderay (1.1.3)
25
25
  concurrent-ruby (1.1.7)
26
- crack (0.4.3)
27
- safe_yaml (~> 1.0.0)
26
+ crack (0.4.4)
28
27
  diff-lcs (1.4.4)
29
28
  docile (1.3.2)
30
29
  faraday (1.0.1)
@@ -37,7 +36,7 @@ GEM
37
36
  multi_json
38
37
  to_regexp (~> 0.2.1)
39
38
  method_source (1.0.0)
40
- minitest (5.14.1)
39
+ minitest (5.14.2)
41
40
  multi_json (1.15.0)
42
41
  multipart-post (2.1.1)
43
42
  parallel (1.19.2)
@@ -49,10 +48,10 @@ GEM
49
48
  pry-byebug (3.9.0)
50
49
  byebug (~> 11.0)
51
50
  pry (~> 0.13.0)
52
- public_suffix (4.0.5)
51
+ public_suffix (4.0.6)
53
52
  rainbow (3.0.0)
54
53
  rake (13.0.1)
55
- regexp_parser (1.7.1)
54
+ regexp_parser (1.8.0)
56
55
  rexml (3.2.4)
57
56
  rspec (3.9.0)
58
57
  rspec-core (~> 3.9.0)
@@ -69,23 +68,23 @@ GEM
69
68
  rspec-support (3.9.3)
70
69
  rspec_junit_formatter (0.4.1)
71
70
  rspec-core (>= 2, < 4, != 2.12.0)
72
- rubocop (0.89.1)
71
+ rubocop (0.91.0)
73
72
  parallel (~> 1.10)
74
73
  parser (>= 2.7.1.1)
75
74
  rainbow (>= 2.2.2, < 4.0)
76
75
  regexp_parser (>= 1.7)
77
76
  rexml
78
- rubocop-ast (>= 0.3.0, < 1.0)
77
+ rubocop-ast (>= 0.4.0, < 1.0)
79
78
  ruby-progressbar (~> 1.7)
80
79
  unicode-display_width (>= 1.4.0, < 2.0)
81
- rubocop-ast (0.3.0)
80
+ rubocop-ast (0.4.2)
82
81
  parser (>= 2.7.1.4)
83
- rubocop-performance (1.7.1)
84
- rubocop (>= 0.82.0)
82
+ rubocop-performance (1.8.1)
83
+ rubocop (>= 0.87.0)
84
+ rubocop-ast (>= 0.4.0)
85
85
  rubocop-rspec (1.43.2)
86
86
  rubocop (~> 0.87)
87
87
  ruby-progressbar (1.10.1)
88
- safe_yaml (1.0.5)
89
88
  sawyer (0.8.2)
90
89
  addressable (>= 2.3.5)
91
90
  faraday (> 0.8, < 2.0)
@@ -99,7 +98,7 @@ GEM
99
98
  tzinfo (1.2.7)
100
99
  thread_safe (~> 0.1)
101
100
  unicode-display_width (1.7.0)
102
- webmock (3.8.3)
101
+ webmock (3.9.1)
103
102
  addressable (>= 2.3.6)
104
103
  crack (>= 0.3.2)
105
104
  hashdiff (>= 0.4.0, < 2.0.0)
@@ -642,6 +642,66 @@ rescue MyApiClient::Error => e
642
642
  end
643
643
  ```
644
644
 
645
+ ## Deployment
646
+
647
+ この gem のリリースには [gem_comet](https://github.com/ryz310/gem_comet) を利用しています。
648
+ `gem_comet` の README.md にも使い方が載っていますが、備忘録のため、こちらにもリリースフローを記載しておきます。
649
+
650
+ ### Preparement
651
+
652
+ 以下のコマンドで `.envrc` を作成し、 `GITHUB_ACCESS_TOKEN` を設定します。
653
+
654
+ ```sh
655
+ $ cp .envrc.skeleton .envrc
656
+ ```
657
+
658
+ 以下のコマンドで `gem_comet` をインストールします。
659
+
660
+ ```sh
661
+ $ gem install gem_comet
662
+ ```
663
+
664
+ ### USAGE
665
+
666
+ 以下のコマンドで、最後のリリースから現在までに merge した PR の一覧を確認できます。
667
+
668
+ ```sh
669
+ $ gem_comet changelog
670
+ ```
671
+
672
+ 以下のコマンドで gem のリリースを実行します。
673
+ `{VERSION}` には新しく付与するバージョン番号を指定します。
674
+
675
+ ```sh
676
+ $ gem_comet release {VERSION}
677
+ ```
678
+
679
+ 実行すると、 https://github.com/ryz310/my_api_client/pulls に以下のような PR が作成されます。
680
+
681
+ * [Update v0\.16\.1](https://github.com/ryz310/my_api_client/pull/297)
682
+ * [Release v0\.16\.1](https://github.com/ryz310/my_api_client/pull/298)
683
+
684
+ まず、 `Update v{VERSION}` という PR から merge に取り掛かります。
685
+
686
+ PR のコメントにも TODO が記載されていますが、まず、バージョン番号が正しく採番されているかを確認します。
687
+
688
+ See: [314a4c0](https://github.com/ryz310/my_api_client/pull/297/commits/314a4c06f66324ce77b640b1ee8db5c84ee038a2)
689
+
690
+ 次に `CHANGELOG.md` を編集して、 CHANGELOG を見やすく整理します。
691
+
692
+ See: [33a2d17](https://github.com/ryz310/my_api_client/pull/297/commits/33a2d1703c773813c837e74ee3181906b2f2e502)
693
+
694
+ これらが整ったら、 `Update v{VERSION}` を merge します。
695
+
696
+ これでリリース準備が整ったので、`Release v{VERSION}` の merge に取り掛かります。
697
+
698
+ この PR にこれからリリースする gem に対する変更が全て載っています。
699
+ 変更内容の最終確認をして、 CI も通ったことを確認したら `Release v{VERSION}` を merge します。
700
+
701
+ あとは Circle CI 側で gem のリリースが自動実行されるので、暫く待ちましょう。
702
+
703
+ お疲れさまでした :tea:
704
+
645
705
  ## Contributing
646
706
 
647
707
  不具合の報告や Pull Request を歓迎しています。OSS という事で自分はなるべく頑張って英語を使うようにしていますが、日本語での報告でも大丈夫です :+1: