shipit-engine 0.38.0 → 0.40.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 (323) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +48 -4
  3. data/Rakefile +2 -1
  4. data/app/assets/javascripts/shipit/continuous_delivery_schedule.js.coffee +15 -0
  5. data/app/controllers/concerns/shipit/active_model_serializers_patch.rb +1 -0
  6. data/app/controllers/concerns/shipit/api/cacheable.rb +1 -0
  7. data/app/controllers/concerns/shipit/api/paginable.rb +3 -2
  8. data/app/controllers/concerns/shipit/api/rendering.rb +1 -0
  9. data/app/controllers/concerns/shipit/authentication.rb +1 -0
  10. data/app/controllers/concerns/shipit/pagination.rb +3 -2
  11. data/app/controllers/shipit/api/base_controller.rb +12 -10
  12. data/app/controllers/shipit/api/ccmenu_controller.rb +2 -1
  13. data/app/controllers/shipit/api/commits_controller.rb +2 -3
  14. data/app/controllers/shipit/api/deploys_controller.rb +6 -1
  15. data/app/controllers/shipit/api/hooks_controller.rb +4 -3
  16. data/app/controllers/shipit/api/locks_controller.rb +1 -0
  17. data/app/controllers/shipit/api/merge_requests_controller.rb +6 -5
  18. data/app/controllers/shipit/api/outputs_controller.rb +1 -0
  19. data/app/controllers/shipit/api/release_statuses_controller.rb +2 -1
  20. data/app/controllers/shipit/api/rollbacks_controller.rb +1 -0
  21. data/app/controllers/shipit/api/stacks_controller.rb +15 -14
  22. data/app/controllers/shipit/api/tasks_controller.rb +6 -5
  23. data/app/controllers/shipit/api_clients_controller.rb +6 -7
  24. data/app/controllers/shipit/ccmenu_url_controller.rb +3 -2
  25. data/app/controllers/shipit/commit_checks_controller.rb +2 -1
  26. data/app/controllers/shipit/commits_controller.rb +1 -0
  27. data/app/controllers/shipit/continuous_delivery_schedules_controller.rb +42 -0
  28. data/app/controllers/shipit/deploys_controller.rb +6 -5
  29. data/app/controllers/shipit/github_authentication_controller.rb +6 -0
  30. data/app/controllers/shipit/merge_requests_controller.rb +1 -0
  31. data/app/controllers/shipit/merge_status_controller.rb +30 -26
  32. data/app/controllers/shipit/release_statuses_controller.rb +1 -0
  33. data/app/controllers/shipit/repositories_controller.rb +4 -7
  34. data/app/controllers/shipit/rollbacks_controller.rb +2 -1
  35. data/app/controllers/shipit/shipit_controller.rb +1 -0
  36. data/app/controllers/shipit/stacks_controller.rb +27 -31
  37. data/app/controllers/shipit/status_controller.rb +1 -0
  38. data/app/controllers/shipit/tasks_controller.rb +3 -1
  39. data/app/controllers/shipit/webhooks_controller.rb +2 -1
  40. data/app/helpers/shipit/api_clients_helper.rb +1 -0
  41. data/app/helpers/shipit/chunks_helper.rb +3 -1
  42. data/app/helpers/shipit/deploys_helper.rb +7 -3
  43. data/app/helpers/shipit/github_url_helper.rb +5 -4
  44. data/app/helpers/shipit/merge_status_helper.rb +1 -0
  45. data/app/helpers/shipit/shipit_helper.rb +11 -10
  46. data/app/helpers/shipit/stacks_helper.rb +10 -11
  47. data/app/helpers/shipit/tasks_helper.rb +2 -1
  48. data/app/jobs/shipit/background_job/unique.rb +3 -2
  49. data/app/jobs/shipit/background_job.rb +9 -1
  50. data/app/jobs/shipit/cache_deploy_spec_job.rb +2 -1
  51. data/app/jobs/shipit/chunk_rollup_job.rb +1 -0
  52. data/app/jobs/shipit/clear_git_cache_job.rb +1 -0
  53. data/app/jobs/shipit/continuous_delivery_job.rb +5 -0
  54. data/app/jobs/shipit/create_on_github_job.rb +1 -0
  55. data/app/jobs/shipit/create_release_statuses_job.rb +2 -0
  56. data/app/jobs/shipit/deferred_touch_job.rb +1 -0
  57. data/app/jobs/shipit/deliver_hook_job.rb +1 -0
  58. data/app/jobs/shipit/destroy_job.rb +1 -0
  59. data/app/jobs/shipit/destroy_repository_job.rb +1 -0
  60. data/app/jobs/shipit/destroy_stack_job.rb +36 -15
  61. data/app/jobs/shipit/emit_event_job.rb +1 -0
  62. data/app/jobs/shipit/fetch_commit_stats_job.rb +1 -0
  63. data/app/jobs/shipit/fetch_deployed_revision_job.rb +1 -0
  64. data/app/jobs/shipit/github_sync_job.rb +4 -2
  65. data/app/jobs/shipit/mark_deploy_healthy_job.rb +1 -0
  66. data/app/jobs/shipit/perform_commit_checks_job.rb +1 -0
  67. data/app/jobs/shipit/perform_task_job.rb +1 -0
  68. data/app/jobs/shipit/process_merge_requests_job.rb +2 -0
  69. data/app/jobs/shipit/purge_old_deliveries_job.rb +1 -0
  70. data/app/jobs/shipit/reap_dead_tasks_job.rb +1 -0
  71. data/app/jobs/shipit/refresh_check_runs_job.rb +1 -0
  72. data/app/jobs/shipit/refresh_github_user_job.rb +1 -0
  73. data/app/jobs/shipit/refresh_merge_request_job.rb +1 -0
  74. data/app/jobs/shipit/refresh_statuses_job.rb +1 -0
  75. data/app/jobs/shipit/setup_github_hook_job.rb +1 -0
  76. data/app/jobs/shipit/update_estimated_deploy_duration_job.rb +1 -0
  77. data/app/jobs/shipit/update_github_last_deployed_ref_job.rb +6 -7
  78. data/app/models/concerns/shipit/deferred_touch.rb +5 -2
  79. data/app/models/shipit/anonymous_user.rb +4 -5
  80. data/app/models/shipit/api_client.rb +5 -3
  81. data/app/models/shipit/application_record.rb +1 -0
  82. data/app/models/shipit/check_run.rb +7 -6
  83. data/app/models/shipit/command_line_user.rb +4 -5
  84. data/app/models/shipit/commit.rb +46 -32
  85. data/app/models/shipit/commit_checks.rb +4 -2
  86. data/app/models/shipit/commit_deployment.rb +7 -5
  87. data/app/models/shipit/commit_deployment_status.rb +5 -3
  88. data/app/models/shipit/commit_message.rb +2 -0
  89. data/app/models/shipit/continuous_delivery_schedule.rb +84 -0
  90. data/app/models/shipit/delivery.rb +5 -4
  91. data/app/models/shipit/deploy.rb +46 -26
  92. data/app/models/shipit/deploy_spec/bundler_discovery.rb +3 -1
  93. data/app/models/shipit/deploy_spec/capistrano_discovery.rb +1 -0
  94. data/app/models/shipit/deploy_spec/file_system.rb +48 -17
  95. data/app/models/shipit/deploy_spec/kubernetes_discovery.rb +4 -3
  96. data/app/models/shipit/deploy_spec/lerna_discovery.rb +32 -31
  97. data/app/models/shipit/deploy_spec/npm_discovery.rb +18 -13
  98. data/app/models/shipit/deploy_spec/pypi_discovery.rb +5 -4
  99. data/app/models/shipit/deploy_spec/rubygems_discovery.rb +1 -0
  100. data/app/models/shipit/deploy_spec.rb +25 -30
  101. data/app/models/shipit/deploy_stats.rb +6 -1
  102. data/app/models/shipit/duration.rb +5 -3
  103. data/app/models/shipit/ephemeral_commit_checks.rb +8 -7
  104. data/app/models/shipit/github_hook.rb +1 -0
  105. data/app/models/shipit/github_status.rb +1 -0
  106. data/app/models/shipit/hook.rb +9 -7
  107. data/app/models/shipit/membership.rb +1 -0
  108. data/app/models/shipit/merge_request.rb +26 -16
  109. data/app/models/shipit/output_chunk.rb +1 -0
  110. data/app/models/shipit/provisioning_handler.rb +1 -0
  111. data/app/models/shipit/pull_request.rb +2 -2
  112. data/app/models/shipit/record.rb +1 -0
  113. data/app/models/shipit/release_status.rb +4 -3
  114. data/app/models/shipit/repository.rb +12 -11
  115. data/app/models/shipit/review_stack.rb +3 -1
  116. data/app/models/shipit/review_stack_provisioning_queue.rb +2 -2
  117. data/app/models/shipit/rollback.rb +2 -0
  118. data/app/models/shipit/stack.rb +71 -60
  119. data/app/models/shipit/status/common.rb +1 -0
  120. data/app/models/shipit/status/group.rb +5 -3
  121. data/app/models/shipit/status/missing.rb +2 -1
  122. data/app/models/shipit/status/unknown.rb +1 -0
  123. data/app/models/shipit/status.rb +5 -4
  124. data/app/models/shipit/task.rb +40 -31
  125. data/app/models/shipit/task_definition.rb +10 -7
  126. data/app/models/shipit/task_execution_strategy/default.rb +13 -13
  127. data/app/models/shipit/team.rb +13 -12
  128. data/app/models/shipit/undeployed_commit.rb +8 -3
  129. data/app/models/shipit/unlimited_api_client.rb +2 -2
  130. data/app/models/shipit/user.rb +23 -16
  131. data/app/models/shipit/variable_definition.rb +2 -1
  132. data/app/models/shipit/webhooks/handlers/check_suite_handler.rb +1 -0
  133. data/app/models/shipit/webhooks/handlers/handler.rb +1 -0
  134. data/app/models/shipit/webhooks/handlers/membership_handler.rb +1 -0
  135. data/app/models/shipit/webhooks/handlers/pull_request/assigned_handler.rb +10 -10
  136. data/app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb +1 -1
  137. data/app/models/shipit/webhooks/handlers/pull_request/edited_handler.rb +10 -10
  138. data/app/models/shipit/webhooks/handlers/pull_request/label_capturing_handler.rb +2 -2
  139. data/app/models/shipit/webhooks/handlers/pull_request/labeled_handler.rb +2 -2
  140. data/app/models/shipit/webhooks/handlers/pull_request/reopened_handler.rb +1 -1
  141. data/app/models/shipit/webhooks/handlers/pull_request/review_stack_adapter.rb +3 -3
  142. data/app/models/shipit/webhooks/handlers/pull_request/unlabeled_handler.rb +1 -1
  143. data/app/models/shipit/webhooks/handlers/push_handler.rb +2 -1
  144. data/app/models/shipit/webhooks/handlers/status_handler.rb +1 -0
  145. data/app/models/shipit/webhooks.rb +3 -2
  146. data/app/serializers/concerns/shipit/conditional_attributes.rb +1 -0
  147. data/app/serializers/shipit/anonymous_user_serializer.rb +1 -0
  148. data/app/serializers/shipit/command_line_user_serializer.rb +1 -0
  149. data/app/serializers/shipit/commit_serializer.rb +2 -1
  150. data/app/serializers/shipit/deploy_serializer.rb +1 -0
  151. data/app/serializers/shipit/hook_serializer.rb +1 -0
  152. data/app/serializers/shipit/merge_request_serializer.rb +2 -1
  153. data/app/serializers/shipit/rollback_serializer.rb +1 -0
  154. data/app/serializers/shipit/short_commit_serializer.rb +1 -0
  155. data/app/serializers/shipit/stack_serializer.rb +4 -3
  156. data/app/serializers/shipit/tail_task_serializer.rb +4 -1
  157. data/app/serializers/shipit/task_serializer.rb +1 -0
  158. data/app/serializers/shipit/user_serializer.rb +1 -0
  159. data/app/validators/ascii_only_validator.rb +4 -3
  160. data/app/validators/subset_validator.rb +1 -0
  161. data/app/views/shipit/_variables.html.erb +1 -1
  162. data/app/views/shipit/ccmenu/project.xml.builder +2 -1
  163. data/app/views/shipit/continuous_delivery_schedules/show.html.erb +59 -0
  164. data/app/views/shipit/merge_status/failure.html.erb +1 -1
  165. data/app/views/shipit/missing_settings.html.erb +1 -1
  166. data/app/views/shipit/stacks/_settings_form.erb +1 -0
  167. data/config/initializers/inflections.rb +1 -0
  168. data/config/locales/en.yml +1 -0
  169. data/config/routes.rb +21 -18
  170. data/config/secrets.development.example.yml +1 -1
  171. data/config/secrets.development.shopify.yml +1 -1
  172. data/db/migrate/20240821003007_add_continuous_delivery_schedules.rb +13 -0
  173. data/db/migrate/20250207203053_embiggen_github_ids.rb +8 -0
  174. data/lib/shipit/cast_value.rb +1 -0
  175. data/lib/shipit/command.rb +29 -9
  176. data/lib/shipit/commands.rb +4 -2
  177. data/lib/shipit/csv_serializer.rb +3 -0
  178. data/lib/shipit/deploy_commands.rb +2 -1
  179. data/lib/shipit/engine.rb +6 -5
  180. data/lib/shipit/environment_variables.rb +2 -0
  181. data/lib/shipit/first_parent_commits_iterator.rb +2 -3
  182. data/lib/shipit/flock.rb +11 -9
  183. data/lib/shipit/github_app.rb +14 -16
  184. data/lib/shipit/github_http_cache_middleware.rb +1 -0
  185. data/lib/shipit/null_serializer.rb +1 -0
  186. data/lib/shipit/octokit_check_runs.rb +2 -3
  187. data/lib/shipit/octokit_iterator.rb +2 -0
  188. data/lib/shipit/paginator.rb +1 -0
  189. data/lib/shipit/rollback_commands.rb +2 -1
  190. data/lib/shipit/same_site_cookie_middleware.rb +1 -0
  191. data/lib/shipit/simple_message_verifier.rb +1 -0
  192. data/lib/shipit/stack_commands.rb +35 -27
  193. data/lib/shipit/stat.rb +1 -0
  194. data/lib/shipit/task_commands.rb +7 -6
  195. data/lib/shipit/version.rb +2 -1
  196. data/lib/shipit.rb +30 -17
  197. data/lib/tasks/cron.rake +2 -1
  198. data/lib/tasks/dev.rake +3 -2
  199. data/lib/tasks/shipit.rake +3 -2
  200. data/lib/tasks/teams.rake +3 -2
  201. data/test/controllers/api/base_controller_test.rb +1 -0
  202. data/test/controllers/api/ccmenu_controller_test.rb +4 -3
  203. data/test/controllers/api/commits_controller_test.rb +1 -0
  204. data/test/controllers/api/deploys_controller_test.rb +26 -1
  205. data/test/controllers/api/hooks_controller_test.rb +6 -5
  206. data/test/controllers/api/locks_controller_test.rb +1 -0
  207. data/test/controllers/api/merge_requests_controller_test.rb +1 -0
  208. data/test/controllers/api/outputs_controller_test.rb +1 -0
  209. data/test/controllers/api/release_statuses_controller_test.rb +4 -3
  210. data/test/controllers/api/rollback_controller_test.rb +3 -2
  211. data/test/controllers/api/stacks_controller_test.rb +13 -12
  212. data/test/controllers/api/tasks_controller_test.rb +7 -6
  213. data/test/controllers/api_clients_controller_test.rb +10 -10
  214. data/test/controllers/ccmenu_controller_test.rb +1 -0
  215. data/test/controllers/commit_checks_controller_test.rb +1 -0
  216. data/test/controllers/commits_controller_test.rb +9 -8
  217. data/test/controllers/continuous_delivery_schedules_controller_test.rb +66 -0
  218. data/test/controllers/deploys_controller_test.rb +4 -2
  219. data/test/controllers/github_authentication_controller_test.rb +6 -4
  220. data/test/controllers/merge_requests_controller_test.rb +1 -0
  221. data/test/controllers/merge_status_controller_test.rb +5 -4
  222. data/test/controllers/release_statuses_controller_test.rb +1 -0
  223. data/test/controllers/repositories_controller_test.rb +6 -5
  224. data/test/controllers/rollbacks_controller_test.rb +3 -2
  225. data/test/controllers/stacks_controller_test.rb +8 -6
  226. data/test/controllers/status_controller_test.rb +1 -0
  227. data/test/controllers/tasks_controller_test.rb +13 -5
  228. data/test/controllers/webhooks_controller_test.rb +10 -9
  229. data/test/dummy/config/application.rb +2 -1
  230. data/test/dummy/config/initializers/0_load_development_secrets.rb +2 -2
  231. data/test/dummy/config/secrets.development.json +3 -0
  232. data/test/dummy/config/secrets.test.json +21 -0
  233. data/test/dummy/db/schema.rb +33 -6
  234. data/test/fixtures/shipit/commits.yml +7 -7
  235. data/test/fixtures/shipit/stacks.yml +4 -10
  236. data/test/fixtures/shipit/tasks.yml +3 -3
  237. data/test/helpers/api_helper.rb +2 -3
  238. data/test/helpers/fixture_aliases_helper.rb +1 -0
  239. data/test/helpers/hooks_helper.rb +1 -0
  240. data/test/helpers/json_helper.rb +4 -3
  241. data/test/helpers/links_helper.rb +2 -1
  242. data/test/helpers/payloads_helper.rb +1 -0
  243. data/test/helpers/queries_helper.rb +4 -3
  244. data/test/jobs/cache_deploy_spec_job_test.rb +3 -2
  245. data/test/jobs/chunk_rollup_job_test.rb +3 -2
  246. data/test/jobs/deliver_hook_job_test.rb +1 -0
  247. data/test/jobs/destroy_repository_job_test.rb +1 -0
  248. data/test/jobs/destroy_stack_job_test.rb +12 -0
  249. data/test/jobs/emit_event_job_test.rb +1 -0
  250. data/test/jobs/fetch_commit_stats_job_test.rb +1 -0
  251. data/test/jobs/fetch_deployed_revision_job_test.rb +1 -0
  252. data/test/jobs/github_sync_job_test.rb +22 -21
  253. data/test/jobs/mark_deploy_healthy_job_test.rb +1 -0
  254. data/test/jobs/perform_task_job_test.rb +3 -3
  255. data/test/jobs/process_merge_requests_job_test.rb +7 -6
  256. data/test/jobs/purge_old_deliveries_job_test.rb +1 -0
  257. data/test/jobs/reap_dead_tasks_job_test.rb +1 -0
  258. data/test/jobs/refresh_github_user_job_test.rb +1 -0
  259. data/test/jobs/refresh_status_job_test.rb +1 -0
  260. data/test/jobs/shipit/background_job_test.rb +35 -0
  261. data/test/jobs/shipit/continuous_delivery_job_test.rb +31 -0
  262. data/test/jobs/unique_job_test.rb +3 -1
  263. data/test/jobs/update_github_last_deployed_ref_job_test.rb +1 -0
  264. data/test/middleware/same_site_cookie_middleware_test.rb +2 -2
  265. data/test/models/api_client_test.rb +1 -0
  266. data/test/models/commit_checks_test.rb +2 -1
  267. data/test/models/commit_deployment_status_test.rb +2 -2
  268. data/test/models/commit_deployment_test.rb +4 -3
  269. data/test/models/commits_test.rb +72 -70
  270. data/test/models/delivery_test.rb +3 -2
  271. data/test/models/deploy_spec_test.rb +113 -109
  272. data/test/models/deploy_stats_test.rb +1 -0
  273. data/test/models/deploys_test.rb +65 -56
  274. data/test/models/duration_test.rb +1 -1
  275. data/test/models/github_hook_test.rb +1 -0
  276. data/test/models/hook_test.rb +7 -4
  277. data/test/models/membership_test.rb +1 -0
  278. data/test/models/merge_request_test.rb +26 -20
  279. data/test/models/release_statuses_test.rb +2 -1
  280. data/test/models/rollbacks_test.rb +4 -3
  281. data/test/models/shipit/check_run_test.rb +16 -15
  282. data/test/models/shipit/continuous_delivery_schedule_test.rb +109 -0
  283. data/test/models/shipit/deploy_spec/file_system_test.rb +54 -10
  284. data/test/models/shipit/pull_request_test.rb +9 -9
  285. data/test/models/shipit/repository_test.rb +3 -2
  286. data/test/models/shipit/review_stack_provisioning_queue_test.rb +2 -2
  287. data/test/models/shipit/{stacks_test.rb → stack_test.rb} +48 -34
  288. data/test/models/shipit/webhooks/handlers/pull_request/closed_handler_test.rb +36 -34
  289. data/test/models/shipit/webhooks/handlers/pull_request/label_capturing_handler_test.rb +28 -28
  290. data/test/models/shipit/webhooks/handlers/pull_request/labeled_handler_test.rb +42 -42
  291. data/test/models/shipit/webhooks/handlers/pull_request/opened_handler_test.rb +33 -33
  292. data/test/models/shipit/webhooks/handlers/pull_request/reopened_handler_test.rb +37 -37
  293. data/test/models/shipit/webhooks/handlers/pull_request/review_stack_adapter_test.rb +1 -1
  294. data/test/models/shipit/webhooks/handlers/pull_request/unlabeled_handler_test.rb +44 -42
  295. data/test/models/shipit/webhooks/handlers_test.rb +1 -0
  296. data/test/models/status/group_test.rb +3 -2
  297. data/test/models/status/missing_test.rb +1 -0
  298. data/test/models/status_test.rb +2 -1
  299. data/test/models/task_definitions_test.rb +7 -6
  300. data/test/models/tasks_test.rb +5 -4
  301. data/test/models/team_test.rb +5 -4
  302. data/test/models/undeployed_commits_test.rb +10 -9
  303. data/test/models/users_test.rb +29 -20
  304. data/test/test_command_integration.rb +1 -1
  305. data/test/test_helper.rb +12 -10
  306. data/test/unit/anonymous_user_serializer_test.rb +1 -0
  307. data/test/unit/command_test.rb +10 -1
  308. data/test/unit/commands_test.rb +1 -0
  309. data/test/unit/commit_serializer_test.rb +1 -0
  310. data/test/unit/csv_serializer_test.rb +3 -2
  311. data/test/unit/deploy_commands_test.rb +33 -23
  312. data/test/unit/deploy_serializer_test.rb +1 -0
  313. data/test/unit/environment_variables_test.rb +2 -1
  314. data/test/unit/github_app_test.rb +11 -10
  315. data/test/unit/github_apps_test.rb +19 -18
  316. data/test/unit/github_url_helper_test.rb +1 -0
  317. data/test/unit/line_buffer_test.rb +1 -1
  318. data/test/unit/rollback_commands_test.rb +2 -1
  319. data/test/unit/shipit_helper_test.rb +1 -0
  320. data/test/unit/shipit_test.rb +47 -1
  321. data/test/unit/user_serializer_test.rb +1 -0
  322. data/test/unit/variable_definition_test.rb +4 -3
  323. metadata +61 -47
@@ -18,7 +18,9 @@ module Shipit
18
18
  end
19
19
 
20
20
  test "does not error for repos that are not tracked" do
21
- Shipit::Webhooks::Handlers::PullRequest::ClosedHandler.new(payload_parsed(:pull_request_with_no_repo).merge(action: "closed")).process
21
+ assert_nothing_raised do
22
+ Shipit::Webhooks::Handlers::PullRequest::ClosedHandler.new(payload_parsed(:pull_request_with_no_repo).merge(action: "closed")).process
23
+ end
22
24
  end
23
25
 
24
26
  test "archives stacks for repos that are tracked" do
@@ -40,7 +42,7 @@ module Shipit
40
42
  stack = create_stack
41
43
  repository = shipit_repositories(:shipit)
42
44
  configure_provisioning_behavior(
43
- repository: repository,
45
+ repository:,
44
46
  behavior: :allow_all
45
47
  )
46
48
 
@@ -53,7 +55,7 @@ module Shipit
53
55
  stack = create_stack
54
56
  repository = shipit_repositories(:shipit)
55
57
  configure_provisioning_behavior(
56
- repository: repository,
58
+ repository:,
57
59
  behavior: :allow_with_label,
58
60
  label: "pull-requests-label"
59
61
  )
@@ -69,7 +71,7 @@ module Shipit
69
71
  stack = create_stack
70
72
  repository = shipit_repositories(:shipit)
71
73
  configure_provisioning_behavior(
72
- repository: repository,
74
+ repository:,
73
75
  behavior: :allow_with_label,
74
76
  label: "pull-requests-label"
75
77
  )
@@ -85,7 +87,7 @@ module Shipit
85
87
  stack = create_stack
86
88
  repository = shipit_repositories(:shipit)
87
89
  configure_provisioning_behavior(
88
- repository: repository,
90
+ repository:,
89
91
  behavior: :prevent_with_label,
90
92
  label: "pull-requests-label"
91
93
  )
@@ -101,7 +103,7 @@ module Shipit
101
103
  stack = create_stack
102
104
  repository = shipit_repositories(:shipit)
103
105
  configure_provisioning_behavior(
104
- repository: repository,
106
+ repository:,
105
107
  behavior: :prevent_with_label,
106
108
  label: "pull-requests-label"
107
109
  )
@@ -148,8 +150,8 @@ module Shipit
148
150
 
149
151
  def complete_active_tasks(stack)
150
152
  active_tasks = stack
151
- .tasks
152
- .active
153
+ .tasks
154
+ .active
153
155
 
154
156
  active_tasks.map(&:run)
155
157
  active_tasks.reload
@@ -158,32 +160,32 @@ module Shipit
158
160
 
159
161
  setup do
160
162
  Shipit.github.api.stubs(:commit)
161
- .with("shopify/shipit-engine", "ec26c3e57ca3a959ca5aad62de7213c562f8c821")
162
- .returns(
163
- resource(
164
- {
165
- sha: "ec26c3e57ca3a959ca5aad62de7213c562f8c821",
166
- commit: {
167
- author: {
168
- name: "Codertocat",
169
- email: "21031067+Codertocat@users.noreply.github.com",
170
- date: "2019-05-15 15:20:30",
171
- },
172
- committer: {
173
- name: "Codertocat",
174
- email: "21031067+Codertocat@users.noreply.github.com",
175
- date: "2019-05-15 15:20:30",
176
- },
177
- message: "Update README.md",
178
- },
179
- stats: {
180
- total: 2,
181
- additions: 1,
182
- deletions: 1,
183
- },
184
- }
185
- )
186
- )
163
+ .with("shopify/shipit-engine", "ec26c3e57ca3a959ca5aad62de7213c562f8c821")
164
+ .returns(
165
+ resource(
166
+ {
167
+ sha: "ec26c3e57ca3a959ca5aad62de7213c562f8c821",
168
+ commit: {
169
+ author: {
170
+ name: "Codertocat",
171
+ email: "21031067+Codertocat@users.noreply.github.com",
172
+ date: "2019-05-15 15:20:30"
173
+ },
174
+ committer: {
175
+ name: "Codertocat",
176
+ email: "21031067+Codertocat@users.noreply.github.com",
177
+ date: "2019-05-15 15:20:30"
178
+ },
179
+ message: "Update README.md"
180
+ },
181
+ stats: {
182
+ total: 2,
183
+ additions: 1,
184
+ deletions: 1
185
+ }
186
+ }
187
+ )
188
+ )
187
189
  end
188
190
  end
189
191
  end
@@ -153,8 +153,8 @@ module Shipit
153
153
 
154
154
  def complete_active_tasks(stack)
155
155
  active_tasks = stack
156
- .tasks
157
- .active
156
+ .tasks
157
+ .active
158
158
 
159
159
  active_tasks.map(&:run)
160
160
  active_tasks.reload
@@ -175,32 +175,32 @@ module Shipit
175
175
 
176
176
  setup do
177
177
  Shipit.github.api.stubs(:commit)
178
- .with("shopify/shipit-engine", "ec26c3e57ca3a959ca5aad62de7213c562f8c821")
179
- .returns(
180
- resource(
181
- {
182
- sha: "ec26c3e57ca3a959ca5aad62de7213c562f8c821",
183
- commit: {
184
- author: {
185
- name: "Codertocat",
186
- email: "21031067+Codertocat@users.noreply.github.com",
187
- date: "2019-05-15 15:20:30",
188
- },
189
- committer: {
190
- name: "Codertocat",
191
- email: "21031067+Codertocat@users.noreply.github.com",
192
- date: "2019-05-15 15:20:30",
193
- },
194
- message: "Update README.md",
195
- },
196
- stats: {
197
- total: 2,
198
- additions: 1,
199
- deletions: 1,
200
- },
201
- }
202
- )
203
- )
178
+ .with("shopify/shipit-engine", "ec26c3e57ca3a959ca5aad62de7213c562f8c821")
179
+ .returns(
180
+ resource(
181
+ {
182
+ sha: "ec26c3e57ca3a959ca5aad62de7213c562f8c821",
183
+ commit: {
184
+ author: {
185
+ name: "Codertocat",
186
+ email: "21031067+Codertocat@users.noreply.github.com",
187
+ date: "2019-05-15 15:20:30"
188
+ },
189
+ committer: {
190
+ name: "Codertocat",
191
+ email: "21031067+Codertocat@users.noreply.github.com",
192
+ date: "2019-05-15 15:20:30"
193
+ },
194
+ message: "Update README.md"
195
+ },
196
+ stats: {
197
+ total: 2,
198
+ additions: 1,
199
+ deletions: 1
200
+ }
201
+ }
202
+ )
203
+ )
204
204
  end
205
205
  end
206
206
  end
@@ -26,7 +26,7 @@ module Shipit
26
26
  test "ignores Github PullRequest webhooks when the Repository has disabled the Review Stacks feature" do
27
27
  repository = shipit_repositories(:shipit)
28
28
  configure_provisioning_behavior(
29
- repository: repository,
29
+ repository:,
30
30
  provisioning_enabled: false,
31
31
  behavior: :allow_with_label,
32
32
  label: "pull-requests-label"
@@ -40,7 +40,7 @@ module Shipit
40
40
  test "ignores Github PullRequest webhooks when the repository allows_all PullRequests to create ReviewStacks" do
41
41
  repository = shipit_repositories(:shipit)
42
42
  configure_provisioning_behavior(
43
- repository: repository,
43
+ repository:,
44
44
  behavior: :allow_all
45
45
  )
46
46
 
@@ -53,7 +53,7 @@ module Shipit
53
53
  stack = create_archived_stack
54
54
  repository = shipit_repositories(:shipit)
55
55
  configure_provisioning_behavior(
56
- repository: repository,
56
+ repository:,
57
57
  behavior: :allow_with_label,
58
58
  label: "pull-requests-label"
59
59
  )
@@ -69,7 +69,7 @@ module Shipit
69
69
  test "creates and provisions a new review stack when the repository creates ReviewStacks with allow_with_label and the label is present" do
70
70
  repository = shipit_repositories(:shipit)
71
71
  configure_provisioning_behavior(
72
- repository: repository,
72
+ repository:,
73
73
  behavior: :allow_with_label,
74
74
  label: "pull-requests-label"
75
75
  )
@@ -91,7 +91,7 @@ module Shipit
91
91
  stack = create_stack
92
92
  repository = shipit_repositories(:shipit)
93
93
  configure_provisioning_behavior(
94
- repository: repository,
94
+ repository:,
95
95
  behavior: :allow_with_label,
96
96
  label: "pull-requests-label"
97
97
  )
@@ -107,7 +107,7 @@ module Shipit
107
107
  stack = create_stack
108
108
  repository = shipit_repositories(:shipit)
109
109
  configure_provisioning_behavior(
110
- repository: repository,
110
+ repository:,
111
111
  behavior: :allow_with_label,
112
112
  label: "pull-requests-label"
113
113
  )
@@ -122,7 +122,7 @@ module Shipit
122
122
  test "ignores Github PullRequest webhooks when the repository allow_with_label to create ReviewStacks and the label is absent" do
123
123
  repository = shipit_repositories(:shipit)
124
124
  configure_provisioning_behavior(
125
- repository: repository,
125
+ repository:,
126
126
  behavior: :allow_with_label,
127
127
  label: "pull-requests-label"
128
128
  )
@@ -138,7 +138,7 @@ module Shipit
138
138
  stack = create_stack
139
139
  repository = shipit_repositories(:shipit)
140
140
  configure_provisioning_behavior(
141
- repository: repository,
141
+ repository:,
142
142
  behavior: :prevent_with_label,
143
143
  label: "pull-requests-label"
144
144
  )
@@ -152,7 +152,7 @@ module Shipit
152
152
  stack = create_stack
153
153
  repository = shipit_repositories(:shipit)
154
154
  configure_provisioning_behavior(
155
- repository: repository,
155
+ repository:,
156
156
  behavior: :prevent_with_label,
157
157
  label: "pull-requests-label"
158
158
  )
@@ -165,7 +165,7 @@ module Shipit
165
165
  test "ignores Github PullRequest webhooks when the repository prevent_with_label to create ReviewStacks and the label is present" do
166
166
  repository = shipit_repositories(:shipit)
167
167
  configure_provisioning_behavior(
168
- repository: repository,
168
+ repository:,
169
169
  behavior: :prevent_with_label,
170
170
  label: "pull-requests-label"
171
171
  )
@@ -179,7 +179,7 @@ module Shipit
179
179
  stack = create_archived_stack
180
180
  repository = shipit_repositories(:shipit)
181
181
  configure_provisioning_behavior(
182
- repository: repository,
182
+ repository:,
183
183
  behavior: :prevent_with_label,
184
184
  label: "pull-requests-label"
185
185
  )
@@ -195,7 +195,7 @@ module Shipit
195
195
  test "creates and provisions a new review stack when the repository creates ReviewStacks with prevent_with_label and the label is absent" do
196
196
  repository = shipit_repositories(:shipit)
197
197
  configure_provisioning_behavior(
198
- repository: repository,
198
+ repository:,
199
199
  behavior: :prevent_with_label,
200
200
  label: "pull-requests-label"
201
201
  )
@@ -216,7 +216,7 @@ module Shipit
216
216
  test "assigns the PullRequest to newly created stacks" do
217
217
  repository = shipit_repositories(:shipit)
218
218
  configure_provisioning_behavior(
219
- repository: repository,
219
+ repository:,
220
220
  behavior: :prevent_with_label,
221
221
  label: "pull-requests-label"
222
222
  )
@@ -232,7 +232,7 @@ module Shipit
232
232
  create_archived_stack
233
233
  repository = shipit_repositories(:shipit)
234
234
  configure_provisioning_behavior(
235
- repository: repository,
235
+ repository:,
236
236
  behavior: :allow_with_label,
237
237
  label: "pull-requests-label"
238
238
  )
@@ -281,8 +281,8 @@ module Shipit
281
281
 
282
282
  def complete_active_tasks(stack)
283
283
  active_tasks = stack
284
- .tasks
285
- .active
284
+ .tasks
285
+ .active
286
286
 
287
287
  active_tasks.map(&:run)
288
288
  active_tasks.reload
@@ -298,32 +298,32 @@ module Shipit
298
298
 
299
299
  setup do
300
300
  Shipit.github.api.stubs(:commit)
301
- .with("shopify/shipit-engine", "ec26c3e57ca3a959ca5aad62de7213c562f8c821")
302
- .returns(
303
- resource(
304
- {
305
- sha: "ec26c3e57ca3a959ca5aad62de7213c562f8c821",
306
- commit: {
307
- author: {
308
- name: "Codertocat",
309
- email: "21031067+Codertocat@users.noreply.github.com",
310
- date: "2019-05-15 15:20:30",
311
- },
312
- committer: {
313
- name: "Codertocat",
314
- email: "21031067+Codertocat@users.noreply.github.com",
315
- date: "2019-05-15 15:20:30",
316
- },
317
- message: "Update README.md",
318
- },
319
- stats: {
320
- total: 2,
321
- additions: 1,
322
- deletions: 1,
323
- },
324
- }
325
- )
326
- )
301
+ .with("shopify/shipit-engine", "ec26c3e57ca3a959ca5aad62de7213c562f8c821")
302
+ .returns(
303
+ resource(
304
+ {
305
+ sha: "ec26c3e57ca3a959ca5aad62de7213c562f8c821",
306
+ commit: {
307
+ author: {
308
+ name: "Codertocat",
309
+ email: "21031067+Codertocat@users.noreply.github.com",
310
+ date: "2019-05-15 15:20:30"
311
+ },
312
+ committer: {
313
+ name: "Codertocat",
314
+ email: "21031067+Codertocat@users.noreply.github.com",
315
+ date: "2019-05-15 15:20:30"
316
+ },
317
+ message: "Update README.md"
318
+ },
319
+ stats: {
320
+ total: 2,
321
+ additions: 1,
322
+ deletions: 1
323
+ }
324
+ }
325
+ )
326
+ )
327
327
  end
328
328
  end
329
329
  end
@@ -51,7 +51,7 @@ module Shipit
51
51
  url: "https://api.github.com/user/some-new-user-login"
52
52
  )
53
53
  Shipit.github.api.expects(:user).with("some-new-user-login")
54
- .returns(github_user)
54
+ .returns(github_user)
55
55
  payload = payload_parsed(:pull_request_opened)
56
56
  payload["pull_request"]["user"]["login"] = github_user.login
57
57
 
@@ -96,7 +96,7 @@ module Shipit
96
96
  test "only provision stacks for repos with auto-provisioning enabled" do
97
97
  repository = shipit_repositories(:shipit)
98
98
  configure_provisioning_behavior(
99
- repository: repository,
99
+ repository:,
100
100
  provisioning_enabled: false,
101
101
  behavior: :allow_all
102
102
  )
@@ -116,7 +116,7 @@ module Shipit
116
116
  test "creates stacks for repos that allow_all" do
117
117
  repository = shipit_repositories(:shipit)
118
118
  configure_provisioning_behavior(
119
- repository: repository,
119
+ repository:,
120
120
  behavior: :allow_all,
121
121
  label: "pull-requests-label"
122
122
  )
@@ -129,7 +129,7 @@ module Shipit
129
129
  test "creates stacks for repos that allow_with_label when label is present" do
130
130
  repository = shipit_repositories(:shipit)
131
131
  configure_provisioning_behavior(
132
- repository: repository,
132
+ repository:,
133
133
  behavior: :allow_with_label,
134
134
  label: "pull-requests-label"
135
135
  )
@@ -144,7 +144,7 @@ module Shipit
144
144
  test "does not create stacks for repos that allow_with_label when label is absent" do
145
145
  repository = shipit_repositories(:shipit)
146
146
  configure_provisioning_behavior(
147
- repository: repository,
147
+ repository:,
148
148
  behavior: :allow_with_label,
149
149
  label: "pull-requests-label"
150
150
  )
@@ -159,7 +159,7 @@ module Shipit
159
159
  test "create stacks for repos what prevent_with_label when label is absent" do
160
160
  repository = shipit_repositories(:shipit)
161
161
  configure_provisioning_behavior(
162
- repository: repository,
162
+ repository:,
163
163
  behavior: :prevent_with_label,
164
164
  label: "pull-requests-label"
165
165
  )
@@ -174,7 +174,7 @@ module Shipit
174
174
  test "does not create stacks for repos what prevent_with_label when label is present" do
175
175
  repository = shipit_repositories(:shipit)
176
176
  configure_provisioning_behavior(
177
- repository: repository,
177
+ repository:,
178
178
  behavior: :prevent_with_label,
179
179
  label: "pull-requests-label"
180
180
  )
@@ -204,32 +204,32 @@ module Shipit
204
204
 
205
205
  setup do
206
206
  Shipit.github.api.stubs(:commit)
207
- .with("shopify/shipit-engine", "ec26c3e57ca3a959ca5aad62de7213c562f8c821")
208
- .returns(
209
- resource(
210
- {
211
- sha: "ec26c3e57ca3a959ca5aad62de7213c562f8c821",
212
- commit: {
213
- author: {
214
- name: "Codertocat",
215
- email: "21031067+Codertocat@users.noreply.github.com",
216
- date: "2019-05-15 15:20:30",
217
- },
218
- committer: {
219
- name: "Codertocat",
220
- email: "21031067+Codertocat@users.noreply.github.com",
221
- date: "2019-05-15 15:20:30",
222
- },
223
- message: "Update README.md",
224
- },
225
- stats: {
226
- total: 2,
227
- additions: 1,
228
- deletions: 1,
229
- },
230
- }
231
- )
232
- )
207
+ .with("shopify/shipit-engine", "ec26c3e57ca3a959ca5aad62de7213c562f8c821")
208
+ .returns(
209
+ resource(
210
+ {
211
+ sha: "ec26c3e57ca3a959ca5aad62de7213c562f8c821",
212
+ commit: {
213
+ author: {
214
+ name: "Codertocat",
215
+ email: "21031067+Codertocat@users.noreply.github.com",
216
+ date: "2019-05-15 15:20:30"
217
+ },
218
+ committer: {
219
+ name: "Codertocat",
220
+ email: "21031067+Codertocat@users.noreply.github.com",
221
+ date: "2019-05-15 15:20:30"
222
+ },
223
+ message: "Update README.md"
224
+ },
225
+ stats: {
226
+ total: 2,
227
+ additions: 1,
228
+ deletions: 1
229
+ }
230
+ }
231
+ )
232
+ )
233
233
  end
234
234
  end
235
235
  end
@@ -47,7 +47,7 @@ module Shipit
47
47
  stack = create_archived_stack
48
48
  repository = shipit_repositories(:shipit)
49
49
  configure_provisioning_behavior(
50
- repository: repository,
50
+ repository:,
51
51
  behavior: :allow_all
52
52
  )
53
53
 
@@ -60,7 +60,7 @@ module Shipit
60
60
  test "provisions missing stacks for repos that allow_all" do
61
61
  repository = shipit_repositories(:shipit)
62
62
  configure_provisioning_behavior(
63
- repository: repository,
63
+ repository:,
64
64
  behavior: :allow_all
65
65
  )
66
66
  payload = payload_parsed(:pull_request_reopened)
@@ -79,7 +79,7 @@ module Shipit
79
79
  test "auto-created stack should have pull request assigned" do
80
80
  repository = shipit_repositories(:shipit)
81
81
  configure_provisioning_behavior(
82
- repository: repository,
82
+ repository:,
83
83
  behavior: :allow_all
84
84
  )
85
85
  payload = payload_parsed(:pull_request_reopened)
@@ -93,7 +93,7 @@ module Shipit
93
93
  stack = create_archived_stack
94
94
  repository = shipit_repositories(:shipit)
95
95
  configure_provisioning_behavior(
96
- repository: repository,
96
+ repository:,
97
97
  behavior: :allow_with_label,
98
98
  label: "pull-requests-label"
99
99
  )
@@ -109,7 +109,7 @@ module Shipit
109
109
  test "provisions missing stacks for repos that allow_with_label when label is present" do
110
110
  repository = shipit_repositories(:shipit)
111
111
  configure_provisioning_behavior(
112
- repository: repository,
112
+ repository:,
113
113
  behavior: :allow_with_label,
114
114
  label: "pull-requests-label"
115
115
  )
@@ -131,7 +131,7 @@ module Shipit
131
131
  stack = create_archived_stack
132
132
  repository = shipit_repositories(:shipit)
133
133
  configure_provisioning_behavior(
134
- repository: repository,
134
+ repository:,
135
135
  behavior: :allow_with_label,
136
136
  label: "pull-requests-label"
137
137
  )
@@ -147,7 +147,7 @@ module Shipit
147
147
  stack = create_archived_stack
148
148
  repository = shipit_repositories(:shipit)
149
149
  configure_provisioning_behavior(
150
- repository: repository,
150
+ repository:,
151
151
  behavior: :prevent_with_label,
152
152
  label: "pull-requests-label"
153
153
  )
@@ -163,7 +163,7 @@ module Shipit
163
163
  test "provisions missing stacks for repos that prevent_with_label when label is absent" do
164
164
  repository = shipit_repositories(:shipit)
165
165
  configure_provisioning_behavior(
166
- repository: repository,
166
+ repository:,
167
167
  behavior: :prevent_with_label,
168
168
  label: "pull-requests-label"
169
169
  )
@@ -185,7 +185,7 @@ module Shipit
185
185
  stack = create_archived_stack
186
186
  repository = shipit_repositories(:shipit)
187
187
  configure_provisioning_behavior(
188
- repository: repository,
188
+ repository:,
189
189
  behavior: :prevent_with_label,
190
190
  label: "pull-requests-label"
191
191
  )
@@ -231,8 +231,8 @@ module Shipit
231
231
 
232
232
  def complete_active_tasks(stack)
233
233
  active_tasks = stack
234
- .tasks
235
- .active
234
+ .tasks
235
+ .active
236
236
 
237
237
  active_tasks.map(&:run)
238
238
  active_tasks.reload
@@ -248,32 +248,32 @@ module Shipit
248
248
 
249
249
  setup do
250
250
  Shipit.github.api.stubs(:commit)
251
- .with("shopify/shipit-engine", "ec26c3e57ca3a959ca5aad62de7213c562f8c821")
252
- .returns(
253
- resource(
254
- {
255
- sha: "ec26c3e57ca3a959ca5aad62de7213c562f8c821",
256
- commit: {
257
- author: {
258
- name: "Codertocat",
259
- email: "21031067+Codertocat@users.noreply.github.com",
260
- date: "2019-05-15 15:20:30",
261
- },
262
- committer: {
263
- name: "Codertocat",
264
- email: "21031067+Codertocat@users.noreply.github.com",
265
- date: "2019-05-15 15:20:30",
266
- },
267
- message: "Update README.md",
268
- },
269
- stats: {
270
- total: 2,
271
- additions: 1,
272
- deletions: 1,
273
- },
274
- }
275
- )
276
- )
251
+ .with("shopify/shipit-engine", "ec26c3e57ca3a959ca5aad62de7213c562f8c821")
252
+ .returns(
253
+ resource(
254
+ {
255
+ sha: "ec26c3e57ca3a959ca5aad62de7213c562f8c821",
256
+ commit: {
257
+ author: {
258
+ name: "Codertocat",
259
+ email: "21031067+Codertocat@users.noreply.github.com",
260
+ date: "2019-05-15 15:20:30"
261
+ },
262
+ committer: {
263
+ name: "Codertocat",
264
+ email: "21031067+Codertocat@users.noreply.github.com",
265
+ date: "2019-05-15 15:20:30"
266
+ },
267
+ message: "Update README.md"
268
+ },
269
+ stats: {
270
+ total: 2,
271
+ additions: 1,
272
+ deletions: 1
273
+ }
274
+ }
275
+ )
276
+ )
277
277
  end
278
278
  end
279
279
  end
@@ -71,7 +71,7 @@ module Shipit
71
71
  OpenStruct.new(
72
72
  number: pr_number,
73
73
  repository: {
74
- "full_name" => stack.github_repo_name,
74
+ "full_name" => stack.github_repo_name
75
75
  },
76
76
  sender: { login: shipit_users(:walrus).login }
77
77
  )