my_api_client 1.3.1 → 2.1.0

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.
Files changed (248) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +8 -0
  3. data/.envrc.skeleton +0 -1
  4. data/.github/dependabot.yml +130 -7
  5. data/.github/workflows/ci.yml +348 -0
  6. data/.github/workflows/dependabot-auto-merge.yml +148 -0
  7. data/.github/workflows/release.yml +35 -0
  8. data/.github/workflows/rubocop_challenge.yml +35 -0
  9. data/.gitignore +1 -0
  10. data/.rubocop.yml +1 -1
  11. data/.ruby-version +1 -1
  12. data/AGENTS.md +149 -0
  13. data/CHANGELOG.md +81 -2
  14. data/CLAUDE.md +6 -0
  15. data/Dockerfile +22 -0
  16. data/Gemfile +4 -2
  17. data/Gemfile.lock +68 -66
  18. data/README.md +398 -62
  19. data/docker-compose.yml +29 -0
  20. data/docs/runbooks/dependabot_pr_auto_merge.md +122 -0
  21. data/gemfiles/rails_7.2.gemfile +1 -1
  22. data/gemfiles/{rails_7.1.gemfile → rails_8.0.gemfile} +2 -2
  23. data/gemfiles/{rails_6.1.gemfile → rails_8.1.gemfile} +2 -2
  24. data/lib/my_api_client/default_error_handlers.rb +1 -1
  25. data/lib/my_api_client/errors/client_error.rb +5 -1
  26. data/lib/my_api_client/integrations/bugsnag.rb +1 -1
  27. data/lib/my_api_client/version.rb +1 -1
  28. data/lib/my_api_client.rb +1 -1
  29. data/my_api/.ruby-version +1 -1
  30. data/my_api/AGENTS.md +35 -0
  31. data/my_api/Dockerfile +25 -0
  32. data/my_api/Gemfile +5 -16
  33. data/my_api/Gemfile.lock +257 -229
  34. data/my_api/README.md +36 -25
  35. data/my_api/Rakefile +3 -2
  36. data/my_api/app/controllers/application_controller.rb +1 -2
  37. data/my_api/app/controllers/error_controller.rb +2 -2
  38. data/my_api/app/controllers/header_controller.rb +6 -3
  39. data/my_api/app/controllers/pagination_controller.rb +5 -15
  40. data/my_api/app/controllers/rest_controller.rb +12 -16
  41. data/my_api/app/controllers/status_controller.rb +3 -4
  42. data/my_api/config/application.rb +12 -67
  43. data/{rails_app/rails_6.1 → my_api}/config/boot.rb +1 -1
  44. data/{rails_app/rails_7.1 → my_api}/config/environment.rb +0 -2
  45. data/my_api/config/environments/development.rb +6 -6
  46. data/my_api/config/environments/production.rb +5 -8
  47. data/my_api/config/environments/test.rb +5 -6
  48. data/my_api/config/routes.rb +2 -10
  49. data/my_api/config.ru +2 -4
  50. data/my_api/public/index.html +10 -90
  51. data/{rails_app/rails_7.0 → my_api}/spec/rails_helper.rb +3 -4
  52. data/my_api/spec/requests/error_controller_spec.rb +18 -0
  53. data/my_api/spec/requests/pagination_controller_spec.rb +22 -0
  54. data/my_api/spec/requests/rest_controller_spec.rb +22 -0
  55. data/my_api/spec/requests/status_controller_spec.rb +20 -0
  56. data/my_api/spec/spec_helper.rb +15 -23
  57. data/my_api_client.gemspec +3 -3
  58. data/rails_app/AGENTS.md +13 -0
  59. data/rails_app/rails_7.2/Dockerfile +1 -1
  60. data/rails_app/rails_7.2/Gemfile +3 -1
  61. data/rails_app/rails_7.2/Gemfile.lock +155 -131
  62. data/rails_app/{rails_7.1 → rails_8.0}/.dockerignore +16 -2
  63. data/rails_app/{rails_6.1 → rails_8.0}/.gitattributes +2 -1
  64. data/rails_app/rails_8.0/.github/workflows/ci.yml +39 -0
  65. data/rails_app/{rails_6.1 → rails_8.0}/.gitignore +11 -7
  66. data/rails_app/rails_8.0/.rubocop.yml +8 -0
  67. data/rails_app/rails_8.0/.ruby-version +1 -0
  68. data/rails_app/{rails_7.1 → rails_8.0}/Dockerfile +28 -18
  69. data/rails_app/rails_8.0/Gemfile +15 -0
  70. data/rails_app/rails_8.0/Gemfile.lock +287 -0
  71. data/rails_app/{rails_6.1 → rails_8.0}/Rakefile +1 -3
  72. data/rails_app/{rails_7.1 → rails_8.0}/app/controllers/application_controller.rb +0 -2
  73. data/rails_app/rails_8.0/app/jobs/application_job.rb +7 -0
  74. data/rails_app/rails_8.0/app/mailers/application_mailer.rb +4 -0
  75. data/rails_app/{rails_7.0 → rails_8.0}/app/models/application_record.rb +0 -2
  76. data/rails_app/rails_8.0/app/views/layouts/mailer.html.erb +13 -0
  77. data/rails_app/rails_8.0/app/views/layouts/mailer.text.erb +1 -0
  78. data/rails_app/rails_8.0/bin/brakeman +7 -0
  79. data/rails_app/rails_8.0/bin/dev +2 -0
  80. data/rails_app/rails_8.0/bin/docker-entrypoint +14 -0
  81. data/rails_app/rails_8.0/bin/rails +4 -0
  82. data/rails_app/rails_8.0/bin/rake +4 -0
  83. data/rails_app/rails_8.0/bin/rubocop +8 -0
  84. data/rails_app/{rails_7.1 → rails_8.0}/bin/setup +11 -12
  85. data/rails_app/rails_8.0/bin/thrust +5 -0
  86. data/rails_app/{rails_7.1 → rails_8.0}/config/application.rb +14 -16
  87. data/rails_app/rails_8.0/config/boot.rb +3 -0
  88. data/rails_app/rails_8.0/config/cable.yml +10 -0
  89. data/rails_app/rails_8.0/config/credentials.yml.enc +1 -0
  90. data/rails_app/{rails_7.1 → rails_8.0}/config/database.yml +18 -2
  91. data/rails_app/{rails_6.1 → rails_8.0}/config/environment.rb +1 -3
  92. data/rails_app/rails_8.0/config/environments/development.rb +70 -0
  93. data/rails_app/rails_8.0/config/environments/production.rb +86 -0
  94. data/rails_app/{rails_7.1 → rails_8.0}/config/environments/test.rb +16 -19
  95. data/rails_app/{rails_7.1 → rails_8.0}/config/initializers/cors.rb +0 -1
  96. data/rails_app/{rails_7.1 → rails_8.0}/config/initializers/filter_parameter_logging.rb +2 -4
  97. data/rails_app/{rails_7.0 → rails_8.0}/config/initializers/inflections.rb +0 -1
  98. data/rails_app/rails_8.0/config/puma.rb +41 -0
  99. data/rails_app/{rails_7.1 → rails_8.0}/config/routes.rb +1 -3
  100. data/rails_app/rails_8.0/config/storage.yml +34 -0
  101. data/rails_app/{rails_7.1 → rails_8.0}/config.ru +1 -3
  102. data/rails_app/{rails_7.1 → rails_8.0}/db/seeds.rb +0 -1
  103. data/rails_app/{rails_7.1 → rails_8.0}/spec/rails_helper.rb +1 -1
  104. data/rails_app/rails_8.1/.dockerignore +45 -0
  105. data/rails_app/rails_8.1/.gitattributes +9 -0
  106. data/rails_app/rails_8.1/.github/workflows/ci.yml +52 -0
  107. data/rails_app/rails_8.1/.gitignore +33 -0
  108. data/rails_app/rails_8.1/.rspec +1 -0
  109. data/rails_app/rails_8.1/.rubocop.yml +8 -0
  110. data/rails_app/rails_8.1/.ruby-version +1 -0
  111. data/rails_app/rails_8.1/Dockerfile +68 -0
  112. data/rails_app/rails_8.1/Gemfile +15 -0
  113. data/rails_app/rails_8.1/Gemfile.lock +290 -0
  114. data/rails_app/{rails_7.0 → rails_8.1}/Rakefile +1 -3
  115. data/rails_app/{rails_6.1 → rails_8.1}/app/controllers/application_controller.rb +0 -2
  116. data/rails_app/rails_8.1/app/jobs/application_job.rb +7 -0
  117. data/rails_app/rails_8.1/app/mailers/application_mailer.rb +4 -0
  118. data/rails_app/{rails_7.1 → rails_8.1}/app/models/application_record.rb +0 -2
  119. data/rails_app/rails_8.1/app/views/layouts/mailer.html.erb +13 -0
  120. data/rails_app/rails_8.1/app/views/layouts/mailer.text.erb +1 -0
  121. data/rails_app/rails_8.1/bin/brakeman +7 -0
  122. data/rails_app/rails_8.1/bin/bundler-audit +6 -0
  123. data/rails_app/rails_8.1/bin/ci +6 -0
  124. data/rails_app/rails_8.1/bin/dev +2 -0
  125. data/rails_app/{rails_7.1 → rails_8.1}/bin/docker-entrypoint +1 -1
  126. data/rails_app/rails_8.1/bin/rails +4 -0
  127. data/rails_app/rails_8.1/bin/rake +4 -0
  128. data/rails_app/rails_8.1/bin/rubocop +8 -0
  129. data/rails_app/{rails_7.0 → rails_8.1}/bin/setup +13 -13
  130. data/rails_app/rails_8.1/bin/thrust +5 -0
  131. data/rails_app/{rails_6.1 → rails_8.1}/config/application.rb +19 -17
  132. data/rails_app/rails_8.1/config/boot.rb +3 -0
  133. data/rails_app/rails_8.1/config/bundler-audit.yml +5 -0
  134. data/rails_app/rails_8.1/config/cable.yml +10 -0
  135. data/rails_app/rails_8.1/config/ci.rb +19 -0
  136. data/rails_app/rails_8.1/config/credentials.yml.enc +1 -0
  137. data/rails_app/rails_8.1/config/database.yml +40 -0
  138. data/rails_app/{rails_7.0 → rails_8.1}/config/environment.rb +1 -3
  139. data/rails_app/rails_8.1/config/environments/development.rb +73 -0
  140. data/rails_app/rails_8.1/config/environments/production.rb +86 -0
  141. data/rails_app/rails_8.1/config/environments/test.rb +53 -0
  142. data/rails_app/{rails_7.0 → rails_8.1}/config/initializers/cors.rb +1 -2
  143. data/rails_app/rails_8.1/config/initializers/filter_parameter_logging.rb +8 -0
  144. data/rails_app/{rails_7.1 → rails_8.1}/config/initializers/inflections.rb +0 -1
  145. data/rails_app/rails_8.1/config/locales/en.yml +31 -0
  146. data/rails_app/rails_8.1/config/puma.rb +42 -0
  147. data/rails_app/rails_8.1/config/routes.rb +10 -0
  148. data/rails_app/rails_8.1/config/storage.yml +27 -0
  149. data/rails_app/{rails_7.0 → rails_8.1}/config.ru +1 -3
  150. data/rails_app/rails_8.1/db/seeds.rb +9 -0
  151. data/rails_app/{rails_6.1 → rails_8.1}/spec/rails_helper.rb +1 -2
  152. metadata +141 -138
  153. data/.circleci/config.yml +0 -344
  154. data/README.jp.md +0 -785
  155. data/gemfiles/rails_7.0.gemfile +0 -15
  156. data/my_api/.envrc.skeleton +0 -3
  157. data/my_api/.jetskeep +0 -1
  158. data/my_api/Procfile +0 -7
  159. data/my_api/app/helpers/application_helper.rb +0 -5
  160. data/my_api/app/jobs/application_job.rb +0 -7
  161. data/my_api/app/models/application_item.rb +0 -5
  162. data/my_api/config/dynamodb.yml +0 -22
  163. data/my_api/spec/controllers/error_controller_spec.rb +0 -43
  164. data/my_api/spec/controllers/header_controller_spec.rb +0 -33
  165. data/my_api/spec/controllers/pagination_controller_spec.rb +0 -73
  166. data/my_api/spec/controllers/rest_controller_spec.rb +0 -99
  167. data/my_api/spec/controllers/status_controller_spec.rb +0 -47
  168. data/my_api/spec/fixtures/payloads/posts-index.json +0 -51
  169. data/my_api/spec/fixtures/payloads/posts-show.json +0 -53
  170. data/rails_app/rails_6.1/.rspec +0 -3
  171. data/rails_app/rails_6.1/Gemfile +0 -17
  172. data/rails_app/rails_6.1/Gemfile.lock +0 -195
  173. data/rails_app/rails_6.1/app/models/application_record.rb +0 -5
  174. data/rails_app/rails_6.1/bin/bundle +0 -122
  175. data/rails_app/rails_6.1/bin/rails +0 -6
  176. data/rails_app/rails_6.1/bin/rake +0 -6
  177. data/rails_app/rails_6.1/bin/setup +0 -35
  178. data/rails_app/rails_6.1/config/credentials.yml.enc +0 -1
  179. data/rails_app/rails_6.1/config/database.yml +0 -25
  180. data/rails_app/rails_6.1/config/environments/development.rb +0 -59
  181. data/rails_app/rails_6.1/config/environments/production.rb +0 -97
  182. data/rails_app/rails_6.1/config/environments/test.rb +0 -51
  183. data/rails_app/rails_6.1/config/initializers/application_controller_renderer.rb +0 -9
  184. data/rails_app/rails_6.1/config/initializers/backtrace_silencers.rb +0 -10
  185. data/rails_app/rails_6.1/config/initializers/cors.rb +0 -17
  186. data/rails_app/rails_6.1/config/initializers/filter_parameter_logging.rb +0 -8
  187. data/rails_app/rails_6.1/config/initializers/inflections.rb +0 -17
  188. data/rails_app/rails_6.1/config/initializers/mime_types.rb +0 -5
  189. data/rails_app/rails_6.1/config/initializers/wrap_parameters.rb +0 -16
  190. data/rails_app/rails_6.1/config/locales/en.yml +0 -33
  191. data/rails_app/rails_6.1/config/routes.rb +0 -5
  192. data/rails_app/rails_6.1/config.ru +0 -8
  193. data/rails_app/rails_6.1/db/seeds.rb +0 -8
  194. data/rails_app/rails_7.0/Gemfile +0 -13
  195. data/rails_app/rails_7.0/Gemfile.lock +0 -212
  196. data/rails_app/rails_7.0/app/controllers/application_controller.rb +0 -4
  197. data/rails_app/rails_7.0/bin/bundle +0 -122
  198. data/rails_app/rails_7.0/bin/rails +0 -6
  199. data/rails_app/rails_7.0/bin/rake +0 -6
  200. data/rails_app/rails_7.0/config/application.rb +0 -41
  201. data/rails_app/rails_7.0/config/boot.rb +0 -5
  202. data/rails_app/rails_7.0/config/credentials.yml.enc +0 -1
  203. data/rails_app/rails_7.0/config/database.yml +0 -25
  204. data/rails_app/rails_7.0/config/environments/development.rb +0 -58
  205. data/rails_app/rails_7.0/config/environments/production.rb +0 -70
  206. data/rails_app/rails_7.0/config/environments/test.rb +0 -52
  207. data/rails_app/rails_7.0/config/initializers/filter_parameter_logging.rb +0 -8
  208. data/rails_app/rails_7.0/config/locales/en.yml +0 -33
  209. data/rails_app/rails_7.0/config/routes.rb +0 -8
  210. data/rails_app/rails_7.0/db/seeds.rb +0 -8
  211. data/rails_app/rails_7.1/Gemfile +0 -16
  212. data/rails_app/rails_7.1/Gemfile.lock +0 -241
  213. data/rails_app/rails_7.1/README.md +0 -24
  214. data/rails_app/rails_7.1/Rakefile +0 -8
  215. data/rails_app/rails_7.1/bin/bundle +0 -122
  216. data/rails_app/rails_7.1/bin/rails +0 -6
  217. data/rails_app/rails_7.1/bin/rake +0 -6
  218. data/rails_app/rails_7.1/config/boot.rb +0 -5
  219. data/rails_app/rails_7.1/config/credentials.yml.enc +0 -1
  220. data/rails_app/rails_7.1/config/environments/development.rb +0 -58
  221. data/rails_app/rails_7.1/config/environments/production.rb +0 -74
  222. data/rails_app/rails_7.1/config/puma.rb +0 -46
  223. data/rails_app/rails_7.1/public/robots.txt +0 -2
  224. data/rails_app/rails_7.1/spec/spec_helper.rb +0 -13
  225. data/rails_app/rails_7.1/vendor/.keep +0 -0
  226. data/rails_app/rails_7.2/.github/dependabot.yml +0 -12
  227. /data/rails_app/{rails_7.1 → rails_8.0}/.rspec +0 -0
  228. /data/rails_app/{rails_6.1 → rails_8.0}/README.md +0 -0
  229. /data/rails_app/{rails_6.1 → rails_8.0}/app/controllers/concerns/.keep +0 -0
  230. /data/rails_app/{rails_6.1/app/javascript → rails_8.0/app/models/concerns}/.keep +0 -0
  231. /data/rails_app/{rails_7.1 → rails_8.0}/config/locales/en.yml +0 -0
  232. /data/rails_app/{rails_6.1/app/models/concerns → rails_8.0/lib/tasks}/.keep +0 -0
  233. /data/rails_app/{rails_6.1/lib/tasks → rails_8.0/log}/.keep +0 -0
  234. /data/rails_app/{rails_6.1 → rails_8.0}/public/robots.txt +0 -0
  235. /data/rails_app/{rails_6.1/tmp → rails_8.0/script}/.keep +0 -0
  236. /data/rails_app/{rails_6.1 → rails_8.0}/spec/spec_helper.rb +0 -0
  237. /data/rails_app/{rails_6.1/tmp/pids → rails_8.0/storage}/.keep +0 -0
  238. /data/rails_app/{rails_6.1 → rails_8.0}/vendor/.keep +0 -0
  239. /data/rails_app/{rails_7.0 → rails_8.1}/README.md +0 -0
  240. /data/rails_app/{rails_7.1 → rails_8.1}/app/controllers/concerns/.keep +0 -0
  241. /data/rails_app/{rails_7.1 → rails_8.1}/app/models/concerns/.keep +0 -0
  242. /data/rails_app/{rails_7.1 → rails_8.1}/lib/tasks/.keep +0 -0
  243. /data/rails_app/{rails_7.1/storage → rails_8.1/log}/.keep +0 -0
  244. /data/rails_app/{rails_7.0 → rails_8.1}/public/robots.txt +0 -0
  245. /data/rails_app/{rails_7.1/tmp → rails_8.1/script}/.keep +0 -0
  246. /data/rails_app/{rails_7.0 → rails_8.1}/spec/spec_helper.rb +0 -0
  247. /data/rails_app/{rails_7.1/tmp/pids → rails_8.1/storage}/.keep +0 -0
  248. /data/rails_app/{rails_7.1/tmp/storage → rails_8.1/vendor}/.keep +0 -0
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- my_api_client (1.1.0)
5
- activesupport (>= 6.1.0)
4
+ my_api_client (1.3.1)
5
+ activesupport (>= 7.2.0)
6
6
  faraday (>= 0.17.1)
7
7
  jsonpath
8
8
  sawyer (>= 0.8.2)
@@ -10,228 +10,252 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- actioncable (7.2.1)
14
- actionpack (= 7.2.1)
15
- activesupport (= 7.2.1)
13
+ actioncable (7.2.3.2)
14
+ actionpack (= 7.2.3.2)
15
+ activesupport (= 7.2.3.2)
16
16
  nio4r (~> 2.0)
17
17
  websocket-driver (>= 0.6.1)
18
18
  zeitwerk (~> 2.6)
19
- actionmailbox (7.2.1)
20
- actionpack (= 7.2.1)
21
- activejob (= 7.2.1)
22
- activerecord (= 7.2.1)
23
- activestorage (= 7.2.1)
24
- activesupport (= 7.2.1)
19
+ actionmailbox (7.2.3.2)
20
+ actionpack (= 7.2.3.2)
21
+ activejob (= 7.2.3.2)
22
+ activerecord (= 7.2.3.2)
23
+ activestorage (= 7.2.3.2)
24
+ activesupport (= 7.2.3.2)
25
25
  mail (>= 2.8.0)
26
- actionmailer (7.2.1)
27
- actionpack (= 7.2.1)
28
- actionview (= 7.2.1)
29
- activejob (= 7.2.1)
30
- activesupport (= 7.2.1)
26
+ actionmailer (7.2.3.2)
27
+ actionpack (= 7.2.3.2)
28
+ actionview (= 7.2.3.2)
29
+ activejob (= 7.2.3.2)
30
+ activesupport (= 7.2.3.2)
31
31
  mail (>= 2.8.0)
32
32
  rails-dom-testing (~> 2.2)
33
- actionpack (7.2.1)
34
- actionview (= 7.2.1)
35
- activesupport (= 7.2.1)
33
+ actionpack (7.2.3.2)
34
+ actionview (= 7.2.3.2)
35
+ activesupport (= 7.2.3.2)
36
+ cgi
36
37
  nokogiri (>= 1.8.5)
37
38
  racc
38
- rack (>= 2.2.4, < 3.2)
39
+ rack (>= 2.2.4, < 3.3)
39
40
  rack-session (>= 1.0.1)
40
41
  rack-test (>= 0.6.3)
41
42
  rails-dom-testing (~> 2.2)
42
43
  rails-html-sanitizer (~> 1.6)
43
44
  useragent (~> 0.16)
44
- actiontext (7.2.1)
45
- actionpack (= 7.2.1)
46
- activerecord (= 7.2.1)
47
- activestorage (= 7.2.1)
48
- activesupport (= 7.2.1)
45
+ actiontext (7.2.3.2)
46
+ actionpack (= 7.2.3.2)
47
+ activerecord (= 7.2.3.2)
48
+ activestorage (= 7.2.3.2)
49
+ activesupport (= 7.2.3.2)
49
50
  globalid (>= 0.6.0)
50
51
  nokogiri (>= 1.8.5)
51
- actionview (7.2.1)
52
- activesupport (= 7.2.1)
52
+ actionview (7.2.3.2)
53
+ activesupport (= 7.2.3.2)
53
54
  builder (~> 3.1)
55
+ cgi
54
56
  erubi (~> 1.11)
55
57
  rails-dom-testing (~> 2.2)
56
58
  rails-html-sanitizer (~> 1.6)
57
- activejob (7.2.1)
58
- activesupport (= 7.2.1)
59
+ activejob (7.2.3.2)
60
+ activesupport (= 7.2.3.2)
59
61
  globalid (>= 0.3.6)
60
- activemodel (7.2.1)
61
- activesupport (= 7.2.1)
62
- activerecord (7.2.1)
63
- activemodel (= 7.2.1)
64
- activesupport (= 7.2.1)
62
+ activemodel (7.2.3.2)
63
+ activesupport (= 7.2.3.2)
64
+ activerecord (7.2.3.2)
65
+ activemodel (= 7.2.3.2)
66
+ activesupport (= 7.2.3.2)
65
67
  timeout (>= 0.4.0)
66
- activestorage (7.2.1)
67
- actionpack (= 7.2.1)
68
- activejob (= 7.2.1)
69
- activerecord (= 7.2.1)
70
- activesupport (= 7.2.1)
68
+ activestorage (7.2.3.2)
69
+ actionpack (= 7.2.3.2)
70
+ activejob (= 7.2.3.2)
71
+ activerecord (= 7.2.3.2)
72
+ activesupport (= 7.2.3.2)
71
73
  marcel (~> 1.0)
72
- activesupport (7.2.1)
74
+ activesupport (7.2.3.2)
73
75
  base64
76
+ benchmark (>= 0.3)
74
77
  bigdecimal
75
78
  concurrent-ruby (~> 1.0, >= 1.3.1)
76
79
  connection_pool (>= 2.2.5)
77
80
  drb
78
81
  i18n (>= 1.6, < 2)
79
82
  logger (>= 1.4.2)
80
- minitest (>= 5.1)
83
+ minitest (>= 5.1, < 6)
81
84
  securerandom (>= 0.3)
82
85
  tzinfo (~> 2.0, >= 2.0.5)
83
- addressable (2.8.7)
84
- public_suffix (>= 2.0.2, < 7.0)
85
- base64 (0.2.0)
86
- bigdecimal (3.1.8)
86
+ addressable (2.8.8)
87
+ public_suffix (>= 2.0.2, < 8.0)
88
+ base64 (0.3.0)
89
+ benchmark (0.5.0)
90
+ bigdecimal (4.1.2)
87
91
  builder (3.3.0)
88
- concurrent-ruby (1.3.4)
89
- connection_pool (2.4.1)
90
- crass (1.0.6)
91
- date (3.3.4)
92
- debug (1.9.2)
92
+ cgi (0.5.2)
93
+ concurrent-ruby (1.3.8)
94
+ connection_pool (3.0.2)
95
+ crass (1.0.7)
96
+ date (3.5.1)
97
+ debug (1.11.1)
93
98
  irb (~> 1.10)
94
99
  reline (>= 0.3.8)
95
- diff-lcs (1.5.1)
96
- drb (2.2.1)
97
- erubi (1.13.0)
98
- faraday (2.11.0)
99
- faraday-net_http (>= 2.0, < 3.4)
100
+ diff-lcs (1.6.2)
101
+ drb (2.2.3)
102
+ erb (6.0.7)
103
+ erubi (1.13.1)
104
+ faraday (2.14.3)
105
+ faraday-net_http (>= 2.0, < 3.5)
106
+ json
100
107
  logger
101
- faraday-net_http (3.3.0)
102
- net-http
103
- globalid (1.2.1)
108
+ faraday-net_http (3.4.4)
109
+ net-http (~> 0.5)
110
+ globalid (1.4.0)
104
111
  activesupport (>= 6.1)
105
- i18n (1.14.5)
112
+ i18n (1.15.2)
106
113
  concurrent-ruby (~> 1.0)
107
- io-console (0.7.2)
108
- irb (1.14.0)
114
+ io-console (0.9.1)
115
+ irb (1.18.0)
116
+ pp (>= 0.6.0)
117
+ prism (>= 1.3.0)
109
118
  rdoc (>= 4.0.0)
110
119
  reline (>= 0.4.2)
120
+ json (2.20.0)
111
121
  jsonpath (1.1.5)
112
122
  multi_json
113
- logger (1.6.1)
114
- loofah (2.22.0)
123
+ logger (1.7.0)
124
+ loofah (2.25.2)
115
125
  crass (~> 1.0.2)
116
126
  nokogiri (>= 1.12.0)
117
- mail (2.8.1)
127
+ mail (2.9.1)
128
+ logger
118
129
  mini_mime (>= 0.1.1)
119
130
  net-imap
120
131
  net-pop
121
132
  net-smtp
122
- marcel (1.0.4)
133
+ marcel (1.2.1)
123
134
  mini_mime (1.1.5)
124
- minitest (5.25.1)
135
+ minitest (5.27.0)
125
136
  multi_json (1.15.0)
126
- net-http (0.4.1)
127
- uri
128
- net-imap (0.4.16)
137
+ net-http (0.9.1)
138
+ uri (>= 0.11.1)
139
+ net-imap (0.6.6)
129
140
  date
130
141
  net-protocol
131
142
  net-pop (0.1.2)
132
143
  net-protocol
133
144
  net-protocol (0.2.2)
134
145
  timeout
135
- net-smtp (0.5.0)
146
+ net-smtp (0.5.1)
136
147
  net-protocol
137
- nio4r (2.7.3)
138
- nokogiri (1.16.7-x86_64-darwin)
148
+ nio4r (2.7.5)
149
+ nokogiri (1.19.4-x86_64-darwin)
139
150
  racc (~> 1.4)
140
- nokogiri (1.16.7-x86_64-linux)
151
+ nokogiri (1.19.4-x86_64-linux-gnu)
141
152
  racc (~> 1.4)
142
- psych (5.1.2)
143
- stringio
144
- public_suffix (6.0.1)
145
- puma (6.4.2)
153
+ pp (0.6.4)
154
+ prettyprint
155
+ prettyprint (0.2.0)
156
+ prism (1.9.0)
157
+ public_suffix (7.0.2)
158
+ puma (8.0.2)
146
159
  nio4r (~> 2.0)
147
160
  racc (1.8.1)
148
- rack (3.1.7)
149
- rack-session (2.0.0)
161
+ rack (3.2.6)
162
+ rack-session (2.1.2)
163
+ base64 (>= 0.1.0)
150
164
  rack (>= 3.0.0)
151
- rack-test (2.1.0)
165
+ rack-test (2.2.0)
152
166
  rack (>= 1.3)
153
- rackup (2.1.0)
167
+ rackup (2.3.1)
154
168
  rack (>= 3)
155
- webrick (~> 1.8)
156
- rails (7.2.1)
157
- actioncable (= 7.2.1)
158
- actionmailbox (= 7.2.1)
159
- actionmailer (= 7.2.1)
160
- actionpack (= 7.2.1)
161
- actiontext (= 7.2.1)
162
- actionview (= 7.2.1)
163
- activejob (= 7.2.1)
164
- activemodel (= 7.2.1)
165
- activerecord (= 7.2.1)
166
- activestorage (= 7.2.1)
167
- activesupport (= 7.2.1)
169
+ rails (7.2.3.2)
170
+ actioncable (= 7.2.3.2)
171
+ actionmailbox (= 7.2.3.2)
172
+ actionmailer (= 7.2.3.2)
173
+ actionpack (= 7.2.3.2)
174
+ actiontext (= 7.2.3.2)
175
+ actionview (= 7.2.3.2)
176
+ activejob (= 7.2.3.2)
177
+ activemodel (= 7.2.3.2)
178
+ activerecord (= 7.2.3.2)
179
+ activestorage (= 7.2.3.2)
180
+ activesupport (= 7.2.3.2)
168
181
  bundler (>= 1.15.0)
169
- railties (= 7.2.1)
170
- rails-dom-testing (2.2.0)
182
+ railties (= 7.2.3.2)
183
+ rails-dom-testing (2.3.0)
171
184
  activesupport (>= 5.0.0)
172
185
  minitest
173
186
  nokogiri (>= 1.6)
174
- rails-html-sanitizer (1.6.0)
175
- loofah (~> 2.21)
176
- nokogiri (~> 1.14)
177
- railties (7.2.1)
178
- actionpack (= 7.2.1)
179
- activesupport (= 7.2.1)
187
+ rails-html-sanitizer (1.7.1)
188
+ loofah (~> 2.25, >= 2.25.2)
189
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
190
+ railties (7.2.3.2)
191
+ actionpack (= 7.2.3.2)
192
+ activesupport (= 7.2.3.2)
193
+ cgi
180
194
  irb (~> 1.13)
181
195
  rackup (>= 1.0.0)
182
196
  rake (>= 12.2)
183
197
  thor (~> 1.0, >= 1.2.2)
198
+ tsort (>= 0.2)
184
199
  zeitwerk (~> 2.6)
185
- rake (13.2.1)
186
- rdoc (6.7.0)
187
- psych (>= 4.0.0)
188
- reline (0.5.10)
200
+ rake (13.4.2)
201
+ rbs (4.1.2)
202
+ logger
203
+ prism (>= 1.6.0)
204
+ tsort
205
+ rdoc (8.0.0)
206
+ erb
207
+ prism (>= 1.6.0)
208
+ rbs (>= 4.0.0)
209
+ tsort
210
+ reline (0.7.0)
189
211
  io-console (~> 0.5)
190
- rspec-core (3.13.1)
212
+ rspec-core (3.13.6)
191
213
  rspec-support (~> 3.13.0)
192
- rspec-expectations (3.13.2)
214
+ rspec-expectations (3.13.5)
193
215
  diff-lcs (>= 1.2.0, < 2.0)
194
216
  rspec-support (~> 3.13.0)
195
- rspec-mocks (3.13.1)
217
+ rspec-mocks (3.13.8)
196
218
  diff-lcs (>= 1.2.0, < 2.0)
197
219
  rspec-support (~> 3.13.0)
198
- rspec-rails (7.0.1)
199
- actionpack (>= 7.0)
200
- activesupport (>= 7.0)
201
- railties (>= 7.0)
202
- rspec-core (~> 3.13)
203
- rspec-expectations (~> 3.13)
204
- rspec-mocks (~> 3.13)
205
- rspec-support (~> 3.13)
206
- rspec-support (3.13.1)
207
- sawyer (0.9.2)
220
+ rspec-rails (8.0.4)
221
+ actionpack (>= 7.2)
222
+ activesupport (>= 7.2)
223
+ railties (>= 7.2)
224
+ rspec-core (>= 3.13.0, < 5.0.0)
225
+ rspec-expectations (>= 3.13.0, < 5.0.0)
226
+ rspec-mocks (>= 3.13.0, < 5.0.0)
227
+ rspec-support (>= 3.13.0, < 5.0.0)
228
+ rspec-support (3.13.7)
229
+ sawyer (0.9.3)
208
230
  addressable (>= 2.3.5)
209
231
  faraday (>= 0.17.3, < 3)
210
- securerandom (0.3.1)
211
- sqlite3 (2.0.4-x86_64-darwin)
212
- sqlite3 (2.0.4-x86_64-linux-gnu)
213
- stringio (3.1.1)
214
- thor (1.3.2)
215
- timeout (0.4.1)
232
+ securerandom (0.4.1)
233
+ sqlite3 (2.9.5-x86_64-darwin)
234
+ sqlite3 (2.9.5-x86_64-linux-gnu)
235
+ thor (1.5.0)
236
+ timeout (0.6.1)
237
+ tsort (0.2.0)
216
238
  tzinfo (2.0.6)
217
239
  concurrent-ruby (~> 1.0)
218
- uri (0.13.1)
219
- useragent (0.16.10)
220
- webrick (1.8.1)
221
- websocket-driver (0.7.6)
240
+ uri (1.1.1)
241
+ useragent (0.16.11)
242
+ websocket-driver (0.8.2)
243
+ base64
222
244
  websocket-extensions (>= 0.1.0)
223
245
  websocket-extensions (0.1.5)
224
- zeitwerk (2.6.18)
246
+ zeitwerk (2.8.3)
225
247
 
226
248
  PLATFORMS
227
249
  x86_64-darwin-23
228
250
  x86_64-linux
229
251
 
230
252
  DEPENDENCIES
253
+ benchmark
254
+ cgi
231
255
  debug
232
256
  my_api_client!
233
257
  puma (>= 5.0)
234
- rails (~> 7.2.1)
258
+ rails (~> 7.2.3)
235
259
  rspec-rails
236
260
  sqlite3 (>= 1.4)
237
261
  tzinfo-data
@@ -2,13 +2,13 @@
2
2
 
3
3
  # Ignore git directory.
4
4
  /.git/
5
+ /.gitignore
5
6
 
6
7
  # Ignore bundler config.
7
8
  /.bundle
8
9
 
9
- # Ignore all environment files (except templates).
10
+ # Ignore all environment files.
10
11
  /.env*
11
- !/.env*.erb
12
12
 
13
13
  # Ignore all default key files.
14
14
  /config/master.key
@@ -29,3 +29,17 @@
29
29
  !/storage/.keep
30
30
  /tmp/storage/*
31
31
  !/tmp/storage/.keep
32
+
33
+ # Ignore CI service files.
34
+ /.github
35
+
36
+ # Ignore Kamal files.
37
+ /config/deploy*.yml
38
+ /.kamal
39
+
40
+ # Ignore development files
41
+ /.devcontainer
42
+
43
+ # Ignore Docker-related files
44
+ /.dockerignore
45
+ /Dockerfile*
@@ -3,6 +3,7 @@
3
3
  # Mark the database schema as having been generated.
4
4
  db/schema.rb linguist-generated
5
5
 
6
-
7
6
  # Mark any vendored files as having been vendored.
8
7
  vendor/* linguist-vendored
8
+ config/credentials/*.yml.enc diff=rails_credentials
9
+ config/credentials.yml.enc diff=rails_credentials
@@ -0,0 +1,39 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [ main ]
7
+
8
+ jobs:
9
+ scan_ruby:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout code
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Set up Ruby
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: .ruby-version
20
+ bundler-cache: true
21
+
22
+ - name: Scan for common Rails security vulnerabilities using static analysis
23
+ run: bin/brakeman --no-pager
24
+
25
+ lint:
26
+ runs-on: ubuntu-latest
27
+ steps:
28
+ - name: Checkout code
29
+ uses: actions/checkout@v4
30
+
31
+ - name: Set up Ruby
32
+ uses: ruby/setup-ruby@v1
33
+ with:
34
+ ruby-version: .ruby-version
35
+ bundler-cache: true
36
+
37
+ - name: Lint code for consistent style
38
+ run: bin/rubocop -f github
39
+
@@ -1,15 +1,14 @@
1
1
  # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
2
  #
3
- # If you find yourself ignoring temporary files generated by your text editor
4
- # or operating system, you probably want to add a global ignore instead:
5
- # git config --global core.excludesfile '~/.gitignore_global'
3
+ # Temporary files generated by your text editor or operating system
4
+ # belong in git's global ignore instead:
5
+ # `$XDG_CONFIG_HOME/git/ignore` or `~/.config/git/ignore`
6
6
 
7
7
  # Ignore bundler config.
8
8
  /.bundle
9
9
 
10
- # Ignore the default SQLite database.
11
- /db/*.sqlite3
12
- /db/*.sqlite3-*
10
+ # Ignore all environment files.
11
+ /.env*
13
12
 
14
13
  # Ignore all logfiles and tempfiles.
15
14
  /log/*
@@ -22,7 +21,12 @@
22
21
  !/tmp/pids/
23
22
  !/tmp/pids/.keep
24
23
 
25
- .byebug_history
24
+ # Ignore storage (uploaded files in development and any SQLite databases).
25
+ /storage/*
26
+ !/storage/.keep
27
+ /tmp/storage/*
28
+ !/tmp/storage/
29
+ !/tmp/storage/.keep
26
30
 
27
31
  # Ignore master key for decrypting credentials and more.
28
32
  /config/master.key
@@ -0,0 +1,8 @@
1
+ # Omakase Ruby styling for Rails
2
+ inherit_gem: { rubocop-rails-omakase: rubocop.yml }
3
+
4
+ # Overwrite or add rules to create your own house style
5
+ #
6
+ # # Use `[a, [b, c]]` not `[ a, [ b, c ] ]`
7
+ # Layout/SpaceInsideArrayLiteralBrackets:
8
+ # Enabled: false
@@ -0,0 +1 @@
1
+ 3.3.12
@@ -1,25 +1,37 @@
1
- # syntax = docker/dockerfile:1
1
+ # syntax=docker/dockerfile:1
2
+ # check=error=true
2
3
 
3
- # Make sure RUBY_VERSION matches the Ruby version in .ruby-version and Gemfile
4
- ARG RUBY_VERSION=3.1.6
5
- FROM registry.docker.com/library/ruby:$RUBY_VERSION-slim as base
4
+ # This Dockerfile is designed for production, not development. Use with Kamal or build'n'run by hand:
5
+ # docker build -t rails80 .
6
+ # docker run -d -p 80:80 -e RAILS_MASTER_KEY=<value from config/master.key> --name rails80 rails80
7
+
8
+ # For a containerized dev environment, see Dev Containers: https://guides.rubyonrails.org/getting_started_with_devcontainer.html
9
+
10
+ # Make sure RUBY_VERSION matches the Ruby version in .ruby-version
11
+ ARG RUBY_VERSION=3.3.12
12
+ FROM docker.io/library/ruby:$RUBY_VERSION-slim AS base
6
13
 
7
14
  # Rails app lives here
8
15
  WORKDIR /rails
9
16
 
17
+ # Install base packages
18
+ RUN apt-get update -qq && \
19
+ apt-get install --no-install-recommends -y curl libjemalloc2 libvips sqlite3 && \
20
+ rm -rf /var/lib/apt/lists /var/cache/apt/archives
21
+
10
22
  # Set production environment
11
23
  ENV RAILS_ENV="production" \
12
24
  BUNDLE_DEPLOYMENT="1" \
13
25
  BUNDLE_PATH="/usr/local/bundle" \
14
26
  BUNDLE_WITHOUT="development"
15
27
 
16
-
17
28
  # Throw-away build stage to reduce size of final image
18
- FROM base as build
29
+ FROM base AS build
19
30
 
20
31
  # Install packages needed to build gems
21
32
  RUN apt-get update -qq && \
22
- apt-get install --no-install-recommends -y build-essential git pkg-config
33
+ apt-get install --no-install-recommends -y build-essential git libyaml-dev pkg-config && \
34
+ rm -rf /var/lib/apt/lists /var/cache/apt/archives
23
35
 
24
36
  # Install application gems
25
37
  COPY Gemfile Gemfile.lock ./
@@ -30,26 +42,24 @@ RUN bundle install && \
30
42
  COPY . .
31
43
 
32
44
 
45
+
46
+
33
47
  # Final stage for app image
34
48
  FROM base
35
49
 
36
- # Install packages needed for deployment
37
- RUN apt-get update -qq && \
38
- apt-get install --no-install-recommends -y curl libsqlite3-0 && \
39
- rm -rf /var/lib/apt/lists /var/cache/apt/archives
40
-
41
50
  # Copy built artifacts: gems, application
42
- COPY --from=build /usr/local/bundle /usr/local/bundle
51
+ COPY --from=build "${BUNDLE_PATH}" "${BUNDLE_PATH}"
43
52
  COPY --from=build /rails /rails
44
53
 
45
54
  # Run and own only the runtime files as a non-root user for security
46
- RUN useradd rails --create-home --shell /bin/bash && \
55
+ RUN groupadd --system --gid 1000 rails && \
56
+ useradd rails --uid 1000 --gid 1000 --create-home --shell /bin/bash && \
47
57
  chown -R rails:rails db log storage tmp
48
- USER rails:rails
58
+ USER 1000:1000
49
59
 
50
60
  # Entrypoint prepares the database.
51
61
  ENTRYPOINT ["/rails/bin/docker-entrypoint"]
52
62
 
53
- # Start the server by default, this can be overwritten at runtime
54
- EXPOSE 3000
55
- CMD ["./bin/rails", "server"]
63
+ # Start server via Thruster by default, this can be overwritten at runtime
64
+ EXPOSE 80
65
+ CMD ["./bin/thrust", "./bin/rails", "server"]
@@ -0,0 +1,15 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 8.0.5'
4
+ gem 'sqlite3', '>= 2.1'
5
+ gem 'puma', '>= 5.0'
6
+ gem 'tzinfo-data', platforms: %i[windows jruby]
7
+
8
+ gem 'my_api_client', path: '../..'
9
+ gem 'benchmark'
10
+ gem 'cgi'
11
+
12
+ group :development, :test do
13
+ gem 'debug', platforms: %i[mri windows], require: 'debug/prelude'
14
+ gem 'rspec-rails'
15
+ end