shipit-engine 0.30.0 → 0.34.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 (410) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -4
  3. data/Rakefile +4 -2
  4. data/app/assets/images/magic-solid.svg +1 -0
  5. data/app/assets/javascripts/shipit/repositories_search.js.coffee +60 -0
  6. data/app/assets/javascripts/shipit/{search.js.coffee → stack_search.js.coffee} +0 -0
  7. data/app/assets/stylesheets/_pages/_deploy.scss +0 -2
  8. data/app/assets/stylesheets/_pages/_repositories.scss +148 -0
  9. data/app/assets/stylesheets/_pages/_stacks.scss +19 -3
  10. data/app/assets/stylesheets/merge_status.scss +0 -3
  11. data/app/assets/stylesheets/shipit.scss +1 -0
  12. data/app/controllers/concerns/shipit/active_model_serializers_patch.rb +1 -0
  13. data/app/controllers/concerns/shipit/api/cacheable.rb +1 -0
  14. data/app/controllers/concerns/shipit/api/paginable.rb +3 -2
  15. data/app/controllers/concerns/shipit/api/rendering.rb +5 -4
  16. data/app/controllers/concerns/shipit/authentication.rb +3 -2
  17. data/app/controllers/concerns/shipit/pagination.rb +2 -1
  18. data/app/controllers/shipit/api/base_controller.rb +11 -6
  19. data/app/controllers/shipit/api/ccmenu_controller.rb +2 -1
  20. data/app/controllers/shipit/api/commits_controller.rb +2 -1
  21. data/app/controllers/shipit/api/deploys_controller.rb +6 -3
  22. data/app/controllers/shipit/api/hooks_controller.rb +6 -5
  23. data/app/controllers/shipit/api/locks_controller.rb +5 -4
  24. data/app/controllers/shipit/api/merge_requests_controller.rb +37 -0
  25. data/app/controllers/shipit/api/outputs_controller.rb +2 -1
  26. data/app/controllers/shipit/api/release_statuses_controller.rb +3 -2
  27. data/app/controllers/shipit/api/rollbacks_controller.rb +34 -0
  28. data/app/controllers/shipit/api/stacks_controller.rb +32 -5
  29. data/app/controllers/shipit/api/tasks_controller.rb +6 -5
  30. data/app/controllers/shipit/api_clients_controller.rb +4 -3
  31. data/app/controllers/shipit/ccmenu_url_controller.rb +4 -3
  32. data/app/controllers/shipit/commit_checks_controller.rb +2 -1
  33. data/app/controllers/shipit/commits_controller.rb +2 -1
  34. data/app/controllers/shipit/deploys_controller.rb +4 -3
  35. data/app/controllers/shipit/github_authentication_controller.rb +4 -3
  36. data/app/controllers/shipit/merge_requests_controller.rb +31 -0
  37. data/app/controllers/shipit/merge_status_controller.rb +31 -30
  38. data/app/controllers/shipit/release_statuses_controller.rb +3 -2
  39. data/app/controllers/shipit/repositories_controller.rb +74 -0
  40. data/app/controllers/shipit/rollbacks_controller.rb +3 -2
  41. data/app/controllers/shipit/shipit_controller.rb +2 -1
  42. data/app/controllers/shipit/stacks_controller.rb +24 -9
  43. data/app/controllers/shipit/status_controller.rb +2 -1
  44. data/app/controllers/shipit/tasks_controller.rb +7 -6
  45. data/app/controllers/shipit/webhooks_controller.rb +26 -6
  46. data/app/helpers/shipit/chunks_helper.rb +3 -2
  47. data/app/helpers/shipit/deploys_helper.rb +4 -3
  48. data/app/helpers/shipit/github_url_helper.rb +9 -0
  49. data/app/helpers/shipit/merge_status_helper.rb +1 -0
  50. data/app/helpers/shipit/shipit_helper.rb +1 -1
  51. data/app/helpers/shipit/stacks_helper.rb +5 -0
  52. data/app/helpers/shipit/tasks_helper.rb +1 -0
  53. data/app/jobs/shipit/background_job.rb +4 -0
  54. data/app/jobs/shipit/background_job/unique.rb +1 -0
  55. data/app/jobs/shipit/cache_deploy_spec_job.rb +1 -0
  56. data/app/jobs/shipit/chunk_rollup_job.rb +4 -0
  57. data/app/jobs/shipit/clear_git_cache_job.rb +1 -0
  58. data/app/jobs/shipit/continuous_delivery_job.rb +2 -1
  59. data/app/jobs/shipit/create_on_github_job.rb +7 -1
  60. data/app/jobs/shipit/create_release_statuses_job.rb +1 -0
  61. data/app/jobs/shipit/deferred_touch_job.rb +4 -0
  62. data/app/jobs/shipit/deliver_hook_job.rb +2 -1
  63. data/app/jobs/shipit/destroy_job.rb +1 -0
  64. data/app/jobs/shipit/destroy_repository_job.rb +24 -0
  65. data/app/jobs/shipit/destroy_stack_job.rb +3 -2
  66. data/app/jobs/shipit/emit_event_job.rb +2 -1
  67. data/app/jobs/shipit/fetch_commit_stats_job.rb +1 -0
  68. data/app/jobs/shipit/fetch_deployed_revision_job.rb +1 -0
  69. data/app/jobs/shipit/github_sync_job.rb +15 -10
  70. data/app/jobs/shipit/mark_deploy_healthy_job.rb +1 -0
  71. data/app/jobs/shipit/perform_commit_checks_job.rb +1 -0
  72. data/app/jobs/shipit/perform_task_job.rb +5 -92
  73. data/app/jobs/shipit/process_merge_requests_job.rb +32 -0
  74. data/app/jobs/shipit/purge_old_deliveries_job.rb +1 -0
  75. data/app/jobs/shipit/reap_dead_tasks_job.rb +21 -0
  76. data/app/jobs/shipit/refresh_check_runs_job.rb +1 -0
  77. data/app/jobs/shipit/refresh_github_user_job.rb +1 -0
  78. data/app/jobs/shipit/refresh_merge_request_job.rb +11 -0
  79. data/app/jobs/shipit/refresh_statuses_job.rb +1 -0
  80. data/app/jobs/shipit/setup_github_hook_job.rb +1 -0
  81. data/app/jobs/shipit/update_estimated_deploy_duration_job.rb +1 -0
  82. data/app/jobs/shipit/update_github_last_deployed_ref_job.rb +5 -4
  83. data/app/models/concerns/shipit/deferred_touch.rb +4 -3
  84. data/app/models/shipit/anonymous_user.rb +15 -2
  85. data/app/models/shipit/api_client.rb +3 -2
  86. data/app/models/shipit/application_record.rb +2 -1
  87. data/app/models/shipit/check_run.rb +41 -4
  88. data/app/models/shipit/command_line_user.rb +5 -0
  89. data/app/models/shipit/commit.rb +42 -24
  90. data/app/models/shipit/commit_checks.rb +15 -13
  91. data/app/models/shipit/commit_deployment.rb +6 -5
  92. data/app/models/shipit/commit_deployment_status.rb +5 -4
  93. data/app/models/shipit/commit_message.rb +1 -0
  94. data/app/models/shipit/delivery.rb +4 -3
  95. data/app/models/shipit/deploy.rb +23 -28
  96. data/app/models/shipit/deploy_spec.rb +38 -7
  97. data/app/models/shipit/deploy_spec/bundler_discovery.rb +1 -0
  98. data/app/models/shipit/deploy_spec/capistrano_discovery.rb +1 -0
  99. data/app/models/shipit/deploy_spec/file_system.rb +20 -7
  100. data/app/models/shipit/deploy_spec/kubernetes_discovery.rb +1 -0
  101. data/app/models/shipit/deploy_spec/lerna_discovery.rb +13 -4
  102. data/app/models/shipit/deploy_spec/npm_discovery.rb +5 -4
  103. data/app/models/shipit/deploy_spec/pypi_discovery.rb +1 -0
  104. data/app/models/shipit/deploy_spec/rubygems_discovery.rb +1 -0
  105. data/app/models/shipit/deploy_stats.rb +2 -1
  106. data/app/models/shipit/duration.rb +5 -2
  107. data/app/models/shipit/ephemeral_commit_checks.rb +1 -0
  108. data/app/models/shipit/github_hook.rb +2 -1
  109. data/app/models/shipit/github_status.rb +2 -1
  110. data/app/models/shipit/hook.rb +34 -7
  111. data/app/models/shipit/membership.rb +3 -2
  112. data/app/models/shipit/merge_request.rb +304 -0
  113. data/app/models/shipit/output_chunk.rb +7 -2
  114. data/app/models/shipit/provisioning_handler.rb +32 -0
  115. data/app/models/shipit/provisioning_handler/base.rb +30 -0
  116. data/app/models/shipit/provisioning_handler/unregistered_provisioning_handler.rb +35 -0
  117. data/app/models/shipit/pull_request.rb +28 -266
  118. data/app/models/shipit/pull_request_assignment.rb +10 -0
  119. data/app/models/shipit/record.rb +18 -0
  120. data/app/models/shipit/release_status.rb +4 -3
  121. data/app/models/shipit/repository.rb +71 -6
  122. data/app/models/shipit/review_stack.rb +130 -0
  123. data/app/models/shipit/review_stack_provisioning_queue.rb +39 -0
  124. data/app/models/shipit/rollback.rb +1 -0
  125. data/app/models/shipit/stack.rb +144 -44
  126. data/app/models/shipit/status.rb +3 -2
  127. data/app/models/shipit/status/common.rb +7 -6
  128. data/app/models/shipit/status/group.rb +2 -1
  129. data/app/models/shipit/status/missing.rb +2 -1
  130. data/app/models/shipit/status/unknown.rb +2 -1
  131. data/app/models/shipit/task.rb +98 -12
  132. data/app/models/shipit/task_definition.rb +1 -0
  133. data/app/models/shipit/task_execution_strategy/base.rb +20 -0
  134. data/app/models/shipit/task_execution_strategy/default.rb +109 -0
  135. data/app/models/shipit/team.rb +6 -3
  136. data/app/models/shipit/undeployed_commit.rb +1 -0
  137. data/app/models/shipit/unlimited_api_client.rb +1 -0
  138. data/app/models/shipit/user.rb +19 -8
  139. data/app/models/shipit/variable_definition.rb +1 -0
  140. data/app/models/shipit/webhooks.rb +11 -0
  141. data/app/models/shipit/webhooks/handlers/check_suite_handler.rb +1 -0
  142. data/app/models/shipit/webhooks/handlers/handler.rb +1 -0
  143. data/app/models/shipit/webhooks/handlers/membership_handler.rb +1 -0
  144. data/app/models/shipit/webhooks/handlers/pull_request/assigned_handler.rb +74 -0
  145. data/app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb +68 -0
  146. data/app/models/shipit/webhooks/handlers/pull_request/edited_handler.rb +74 -0
  147. data/app/models/shipit/webhooks/handlers/pull_request/label_capturing_handler.rb +127 -0
  148. data/app/models/shipit/webhooks/handlers/pull_request/labeled_handler.rb +106 -0
  149. data/app/models/shipit/webhooks/handlers/pull_request/opened_handler.rb +83 -0
  150. data/app/models/shipit/webhooks/handlers/pull_request/reopened_handler.rb +88 -0
  151. data/app/models/shipit/webhooks/handlers/pull_request/review_stack_adapter.rb +103 -0
  152. data/app/models/shipit/webhooks/handlers/pull_request/unlabeled_handler.rb +107 -0
  153. data/app/models/shipit/webhooks/handlers/push_handler.rb +5 -1
  154. data/app/models/shipit/webhooks/handlers/status_handler.rb +1 -0
  155. data/app/serializers/concerns/shipit/conditional_attributes.rb +1 -0
  156. data/app/serializers/shipit/anonymous_user_serializer.rb +1 -0
  157. data/app/serializers/shipit/command_line_user_serializer.rb +1 -0
  158. data/app/serializers/shipit/commit_serializer.rb +1 -0
  159. data/app/serializers/shipit/deploy_serializer.rb +8 -1
  160. data/app/serializers/shipit/hook_serializer.rb +1 -0
  161. data/app/serializers/shipit/merge_request_serializer.rb +21 -0
  162. data/app/serializers/shipit/pull_request_serializer.rb +6 -8
  163. data/app/serializers/shipit/review_stack_serializer.rb +7 -0
  164. data/app/serializers/shipit/rollback_serializer.rb +1 -0
  165. data/app/serializers/shipit/short_commit_serializer.rb +1 -0
  166. data/app/serializers/shipit/stack_serializer.rb +8 -6
  167. data/app/serializers/shipit/tail_task_serializer.rb +11 -2
  168. data/app/serializers/shipit/task_serializer.rb +2 -17
  169. data/app/serializers/shipit/user_serializer.rb +6 -1
  170. data/app/validators/ascii_only_validator.rb +1 -0
  171. data/app/validators/subset_validator.rb +2 -1
  172. data/app/views/layouts/merge_status.html.erb +1 -1
  173. data/app/views/layouts/shipit.html.erb +1 -1
  174. data/app/views/shipit/_variables.html.erb +1 -1
  175. data/app/views/shipit/ccmenu/project.xml.builder +2 -1
  176. data/app/views/shipit/deploys/show.html.erb +2 -2
  177. data/app/views/shipit/merge_requests/_merge_request.html.erb +29 -0
  178. data/app/views/shipit/{pull_requests → merge_requests}/index.html.erb +2 -2
  179. data/app/views/shipit/merge_requests/merge_requests/_pull_request.html.erb +29 -0
  180. data/app/views/shipit/merge_requests/merge_requests/index.html.erb +20 -0
  181. data/app/views/shipit/merge_status/_merge_queue_button.html.erb +3 -3
  182. data/app/views/shipit/merge_status/backlogged.html.erb +1 -1
  183. data/app/views/shipit/merge_status/failure.html.erb +1 -1
  184. data/app/views/shipit/merge_status/locked.html.erb +1 -1
  185. data/app/views/shipit/merge_status/success.html.erb +2 -2
  186. data/app/views/shipit/repositories/_header.html.erb +19 -0
  187. data/app/views/shipit/repositories/index.html.erb +31 -0
  188. data/app/views/shipit/repositories/new.html.erb +23 -0
  189. data/app/views/shipit/repositories/settings.html.erb +53 -0
  190. data/app/views/shipit/repositories/show.html.erb +30 -0
  191. data/app/views/shipit/stacks/_banners.html.erb +15 -1
  192. data/app/views/shipit/stacks/_header.html.erb +20 -7
  193. data/app/views/shipit/stacks/_stack.html.erb +8 -0
  194. data/app/views/shipit/stacks/all_tasks.html.erb +28 -0
  195. data/app/views/shipit/stacks/index.html.erb +3 -2
  196. data/app/views/shipit/stacks/new.html.erb +1 -1
  197. data/app/views/shipit/stacks/settings.html.erb +5 -5
  198. data/app/views/shipit/stacks/show.html.erb +1 -1
  199. data/app/views/shipit/tasks/_task_output.html.erb +1 -1
  200. data/app/views/shipit/tasks/show.html.erb +1 -1
  201. data/config/initializers/inflections.rb +2 -1
  202. data/config/locales/en.yml +4 -3
  203. data/config/routes.rb +25 -7
  204. data/config/secrets.development.example.yml +24 -0
  205. data/config/secrets.development.shopify.yml +20 -9
  206. data/db/migrate/20200226211925_add_index_to_tasks_status.rb +5 -0
  207. data/db/migrate/20200427135152_add_pull_request_head_sha_to_commit.rb +5 -0
  208. data/db/migrate/20200615181558_add_rollback_once_aborted_to.rb +5 -0
  209. data/db/migrate/20200706145406_add_review_stacks.rb +12 -0
  210. data/db/migrate/20200804144639_rename_pull_request_to_merge_request.rb +7 -0
  211. data/db/migrate/20200804161512_rename_commits_pull_request_id_to_merge_request_id.rb +5 -0
  212. data/db/migrate/20200813134712_recreate_shipit_pull_requests.rb +22 -0
  213. data/db/migrate/20200813194056_create_pull_request_assignments.rb +8 -0
  214. data/db/migrate/20201001125502_add_provision_pr_stacks_flag_to_repositories.rb +7 -0
  215. data/db/migrate/20201008145809_add_retry_attempt_to_tasks.rb +5 -0
  216. data/db/migrate/20201008152744_add_max_retries_to_tasks.rb +5 -0
  217. data/db/migrate/20210325194053_remove_stacks_branch_default.rb +5 -0
  218. data/db/migrate/20210504200438_add_github_updated_at_to_check_runs.rb +5 -0
  219. data/lib/shipit.rb +61 -17
  220. data/lib/shipit/cast_value.rb +1 -0
  221. data/lib/shipit/command.rb +20 -21
  222. data/lib/shipit/commands.rb +14 -6
  223. data/lib/shipit/csv_serializer.rb +1 -0
  224. data/lib/shipit/deploy_commands.rb +1 -0
  225. data/lib/shipit/engine.rb +9 -2
  226. data/lib/shipit/environment_variables.rb +11 -1
  227. data/lib/shipit/first_parent_commits_iterator.rb +1 -0
  228. data/lib/shipit/flock.rb +9 -1
  229. data/lib/shipit/github_app.rb +15 -12
  230. data/lib/shipit/github_http_cache_middleware.rb +1 -0
  231. data/lib/shipit/null_serializer.rb +1 -0
  232. data/lib/shipit/octokit_check_runs.rb +3 -2
  233. data/lib/shipit/octokit_iterator.rb +4 -3
  234. data/lib/shipit/paginator.rb +3 -2
  235. data/lib/shipit/review_stack_commands.rb +8 -0
  236. data/lib/shipit/rollback_commands.rb +1 -0
  237. data/lib/shipit/same_site_cookie_middleware.rb +29 -0
  238. data/lib/shipit/simple_message_verifier.rb +3 -2
  239. data/lib/shipit/stack_commands.rb +37 -7
  240. data/lib/shipit/stat.rb +1 -0
  241. data/lib/shipit/task_commands.rb +23 -16
  242. data/lib/shipit/version.rb +2 -1
  243. data/lib/snippets/publish-lerna-independent-packages +35 -34
  244. data/lib/snippets/publish-lerna-independent-packages-legacy +39 -0
  245. data/lib/snippets/release-gem +5 -1
  246. data/lib/tasks/cron.rake +13 -2
  247. data/lib/tasks/dev.rake +3 -2
  248. data/lib/tasks/shipit.rake +15 -14
  249. data/lib/tasks/teams.rake +1 -0
  250. data/test/controllers/api/base_controller_test.rb +3 -2
  251. data/test/controllers/api/ccmenu_controller_test.rb +9 -8
  252. data/test/controllers/api/commits_controller_test.rb +3 -2
  253. data/test/controllers/api/deploys_controller_test.rb +32 -14
  254. data/test/controllers/api/hooks_controller_test.rb +8 -7
  255. data/test/controllers/api/locks_controller_test.rb +7 -6
  256. data/test/controllers/api/{pull_requests_controller_test.rb → merge_requests_controller_test.rb} +17 -16
  257. data/test/controllers/api/outputs_controller_test.rb +3 -1
  258. data/test/controllers/api/release_statuses_controller_test.rb +2 -1
  259. data/test/controllers/api/rollback_controller_test.rb +113 -0
  260. data/test/controllers/api/stacks_controller_test.rb +71 -16
  261. data/test/controllers/api/tasks_controller_test.rb +13 -12
  262. data/test/controllers/api_clients_controller_test.rb +5 -4
  263. data/test/controllers/ccmenu_controller_test.rb +4 -3
  264. data/test/controllers/commit_checks_controller_test.rb +4 -3
  265. data/test/controllers/commits_controller_test.rb +3 -2
  266. data/test/controllers/deploys_controller_test.rb +32 -21
  267. data/test/controllers/github_authentication_controller_test.rb +1 -0
  268. data/test/controllers/merge_requests_controller_test.rb +32 -0
  269. data/test/controllers/merge_status_controller_test.rb +7 -6
  270. data/test/controllers/release_statuses_controller_test.rb +3 -2
  271. data/test/controllers/repositories_controller_test.rb +71 -0
  272. data/test/controllers/rollbacks_controller_test.rb +9 -8
  273. data/test/controllers/stacks_controller_test.rb +41 -19
  274. data/test/controllers/status_controller_test.rb +1 -0
  275. data/test/controllers/tasks_controller_test.rb +32 -19
  276. data/test/controllers/webhooks_controller_test.rb +33 -17
  277. data/test/dummy/app/assets/config/manifest.js +3 -0
  278. data/test/dummy/config/application.rb +7 -2
  279. data/test/dummy/config/database.yml +9 -0
  280. data/test/dummy/config/environments/development.rb +3 -4
  281. data/test/dummy/config/environments/test.rb +2 -5
  282. data/test/dummy/config/secrets_double_github_app.yml +79 -0
  283. data/test/dummy/db/schema.rb +59 -17
  284. data/test/dummy/db/seeds.rb +2 -1
  285. data/test/fixtures/payloads/check_suite_master.json +4 -32
  286. data/test/fixtures/payloads/invalid_pull_request.json +117 -0
  287. data/test/fixtures/payloads/provision_disabled_pull_request.json +454 -0
  288. data/test/fixtures/payloads/pull_request_assigned.json +480 -0
  289. data/test/fixtures/payloads/pull_request_closed.json +454 -0
  290. data/test/fixtures/payloads/pull_request_labeled.json +461 -0
  291. data/test/fixtures/payloads/pull_request_opened.json +454 -0
  292. data/test/fixtures/payloads/pull_request_reopened.json +454 -0
  293. data/test/fixtures/payloads/pull_request_unlabeled.json +454 -0
  294. data/test/fixtures/payloads/pull_request_with_no_repo.json +454 -0
  295. data/test/fixtures/payloads/push_master.json +1 -1
  296. data/test/fixtures/payloads/push_not_master.json +1 -1
  297. data/test/fixtures/shipit/commits.yml +31 -3
  298. data/test/fixtures/shipit/hooks.yml +1 -0
  299. data/test/fixtures/shipit/merge_requests.yml +141 -0
  300. data/test/fixtures/shipit/pull_request_assignments.yml +3 -0
  301. data/test/fixtures/shipit/pull_requests.yml +10 -131
  302. data/test/fixtures/shipit/repositories.yml +5 -0
  303. data/test/fixtures/shipit/stacks.yml +235 -14
  304. data/test/fixtures/shipit/statuses.yml +9 -0
  305. data/test/fixtures/shipit/tasks.yml +4 -1
  306. data/test/fixtures/shipit/users.yml +7 -0
  307. data/test/fixtures/timeout +2 -1
  308. data/test/helpers/api_helper.rb +1 -0
  309. data/test/helpers/fixture_aliases_helper.rb +1 -0
  310. data/test/helpers/hooks_helper.rb +2 -1
  311. data/test/helpers/json_helper.rb +20 -12
  312. data/test/helpers/links_helper.rb +4 -3
  313. data/test/helpers/payloads_helper.rb +5 -0
  314. data/test/helpers/queries_helper.rb +3 -2
  315. data/test/jobs/cache_deploy_spec_job_test.rb +2 -1
  316. data/test/jobs/chunk_rollup_job_test.rb +16 -1
  317. data/test/jobs/deliver_hook_job_test.rb +1 -0
  318. data/test/jobs/destroy_repository_job_test.rb +27 -0
  319. data/test/jobs/destroy_stack_job_test.rb +1 -0
  320. data/test/jobs/emit_event_job_test.rb +2 -1
  321. data/test/jobs/fetch_commit_stats_job_test.rb +1 -0
  322. data/test/jobs/fetch_deployed_revision_job_test.rb +1 -0
  323. data/test/jobs/github_sync_job_test.rb +3 -1
  324. data/test/jobs/mark_deploy_healthy_job_test.rb +1 -0
  325. data/test/jobs/perform_task_job_test.rb +12 -11
  326. data/test/jobs/{merge_pull_requests_job_test.rb → process_merge_requests_job_test.rb} +19 -18
  327. data/test/jobs/purge_old_deliveries_job_test.rb +1 -0
  328. data/test/jobs/reap_dead_tasks_job_test.rb +68 -0
  329. data/test/jobs/refresh_github_user_job_test.rb +1 -0
  330. data/test/jobs/refresh_status_job_test.rb +1 -0
  331. data/test/jobs/unique_job_test.rb +1 -0
  332. data/test/jobs/update_github_last_deployed_ref_job_test.rb +1 -0
  333. data/test/lib/shipit/deploy_commands_test.rb +16 -0
  334. data/test/lib/shipit/task_commands_test.rb +17 -0
  335. data/test/middleware/same_site_cookie_middleware_test.rb +52 -0
  336. data/test/models/api_client_test.rb +1 -0
  337. data/test/models/commit_checks_test.rb +1 -0
  338. data/test/models/commit_deployment_status_test.rb +4 -3
  339. data/test/models/commit_deployment_test.rb +2 -1
  340. data/test/models/commits_test.rb +96 -19
  341. data/test/models/delivery_test.rb +2 -1
  342. data/test/models/deploy_spec_test.rb +110 -65
  343. data/test/models/deploy_stats_test.rb +1 -0
  344. data/test/models/deploys_test.rb +197 -36
  345. data/test/models/duration_test.rb +1 -0
  346. data/test/models/github_hook_test.rb +1 -0
  347. data/test/models/hook_test.rb +47 -10
  348. data/test/models/membership_test.rb +1 -0
  349. data/test/models/{pull_request_test.rb → merge_request_test.rb} +53 -37
  350. data/test/models/pull_request_assignment_test.rb +16 -0
  351. data/test/models/release_statuses_test.rb +1 -0
  352. data/test/models/rollbacks_test.rb +1 -0
  353. data/test/models/shipit/check_run_test.rb +125 -5
  354. data/test/models/shipit/provisioning_handler/base_test.rb +33 -0
  355. data/test/models/shipit/provisioning_handler/unregistered_provisioning_handler_test.rb +49 -0
  356. data/test/models/shipit/provisioning_handler_test.rb +64 -0
  357. data/test/models/shipit/pull_request_test.rb +52 -0
  358. data/test/models/shipit/repository_test.rb +6 -1
  359. data/test/models/shipit/review_stack_provision_status_test.rb +77 -0
  360. data/test/models/shipit/review_stack_provisioning_queue_test.rb +63 -0
  361. data/test/models/shipit/review_stack_test.rb +91 -0
  362. data/test/models/{stacks_test.rb → shipit/stacks_test.rb} +121 -16
  363. data/test/models/shipit/webhooks/handlers/pull_request/assigned_handler_test.rb +45 -0
  364. data/test/models/shipit/webhooks/handlers/pull_request/closed_handler_test.rb +192 -0
  365. data/test/models/shipit/webhooks/handlers/pull_request/edited_handler_test.rb +47 -0
  366. data/test/models/shipit/webhooks/handlers/pull_request/label_capturing_handler_test.rb +209 -0
  367. data/test/models/shipit/webhooks/handlers/pull_request/labeled_handler_test.rb +332 -0
  368. data/test/models/shipit/webhooks/handlers/pull_request/opened_handler_test.rb +238 -0
  369. data/test/models/shipit/webhooks/handlers/pull_request/reopened_handler_test.rb +282 -0
  370. data/test/models/shipit/webhooks/handlers/pull_request/review_stack_adapter_test.rb +107 -0
  371. data/test/models/shipit/webhooks/handlers/pull_request/unlabeled_handler_test.rb +324 -0
  372. data/test/models/shipit/{wehbooks → webhooks}/handlers_test.rb +1 -0
  373. data/test/models/status/group_test.rb +1 -0
  374. data/test/models/status/missing_test.rb +1 -0
  375. data/test/models/status_test.rb +1 -0
  376. data/test/models/task_definitions_test.rb +9 -8
  377. data/test/models/tasks_test.rb +81 -1
  378. data/test/models/team_test.rb +4 -2
  379. data/test/models/undeployed_commits_test.rb +1 -0
  380. data/test/models/users_test.rb +13 -5
  381. data/test/serializers/shipit/pull_request_serializer_test.rb +29 -0
  382. data/test/test_command_integration.rb +3 -2
  383. data/test/test_helper.rb +49 -31
  384. data/test/unit/anonymous_user_serializer_test.rb +14 -0
  385. data/test/unit/command_test.rb +16 -10
  386. data/test/unit/commands_test.rb +1 -0
  387. data/test/unit/commit_serializer_test.rb +16 -0
  388. data/test/unit/csv_serializer_test.rb +3 -2
  389. data/test/unit/deploy_commands_test.rb +75 -18
  390. data/test/unit/deploy_serializer_test.rb +17 -0
  391. data/test/unit/environment_variables_test.rb +5 -4
  392. data/test/unit/github_app_test.rb +3 -3
  393. data/test/unit/github_apps_test.rb +416 -0
  394. data/test/unit/github_url_helper_test.rb +6 -0
  395. data/test/unit/rollback_commands_test.rb +2 -1
  396. data/test/unit/shipit_deployment_checks_test.rb +77 -0
  397. data/test/unit/shipit_helper_test.rb +17 -0
  398. data/test/unit/shipit_task_execution_strategy_test.rb +47 -0
  399. data/test/unit/shipit_test.rb +15 -0
  400. data/test/unit/user_serializer_test.rb +14 -0
  401. data/test/unit/variable_definition_test.rb +1 -0
  402. metadata +320 -178
  403. data/app/controllers/shipit/api/pull_requests_controller.rb +0 -36
  404. data/app/controllers/shipit/pull_requests_controller.rb +0 -30
  405. data/app/jobs/shipit/merge_pull_requests_job.rb +0 -31
  406. data/app/jobs/shipit/refresh_pull_request_job.rb +0 -10
  407. data/app/views/shipit/pull_requests/_pull_request.html.erb +0 -29
  408. data/test/controllers/pull_requests_controller_test.rb +0 -31
  409. data/test/fixtures/shipit/output_chunks.yml +0 -47
  410. data/test/models/output_chunk_test.rb +0 -20
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  module Shipit
@@ -16,5 +17,10 @@ module Shipit
16
17
  expected = 'https://github.com/shopify/shipit-engine/commit/6d9278037b872fd9a6690523e411ecb3aa181355'
17
18
  assert_equal expected, github_commit_url(shipit_commits(:first))
18
19
  end
20
+
21
+ test "#github_pull_request_url returns a PR url" do
22
+ expected = 'https://github.com/shopify/shipit-engine/pull/62'
23
+ assert_equal expected, github_pull_request_url(shipit_merge_requests(:shipit_pending))
24
+ end
19
25
  end
20
26
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  module Shipit
@@ -10,7 +11,7 @@ module Shipit
10
11
  dependencies_steps!: ['bundle install --some-args'],
11
12
  deploy_steps!: ['bundle exec cap $ENVIRONMENT deploy'],
12
13
  rollback_steps!: ['bundle exec cap $ENVIRONMENT deploy:rollback'],
13
- machine_env: {'GLOBAL' => '1'},
14
+ machine_env: { 'GLOBAL' => '1' },
14
15
  directory: nil,
15
16
  clear_working_directory?: true,
16
17
  )
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ module Shipit
6
+ class ShipitDeploymentChecksTest < ActiveSupport::TestCase
7
+ setup do
8
+ class FakeDeploymentChecks
9
+ def self.call(_stack)
10
+ true
11
+ end
12
+ end
13
+ end
14
+
15
+ teardown do
16
+ Shipit.deployment_checks = nil
17
+
18
+ Object.send(:remove_const, :FakeDeploymentChecks) if Object.const_defined?(:FakeDeploymentChecks)
19
+ end
20
+
21
+ test "allows registration of deployment checks" do
22
+ deployment_checks = FakeDeploymentChecks
23
+
24
+ Shipit.deployment_checks = deployment_checks
25
+
26
+ assert_equal(
27
+ deployment_checks,
28
+ Shipit.deployment_checks
29
+ )
30
+ end
31
+
32
+ test "allows deployments and continuous delivery when checks are not present" do
33
+ stack = shipit_stacks(:review_stack)
34
+ stack.update(continuous_deployment: true)
35
+
36
+ Shipit.deployment_checks = nil
37
+
38
+ assert stack.deployable?
39
+
40
+ stack.trigger_continuous_delivery
41
+
42
+ refute stack.continuous_delivery_delayed?
43
+ end
44
+
45
+ test "allows deployments and continuous delivery when checks pass" do
46
+ stack = shipit_stacks(:review_stack)
47
+ stack.update(continuous_deployment: true)
48
+
49
+ Shipit.deployment_checks = FakeDeploymentChecks
50
+
51
+ assert stack.deployable?
52
+
53
+ stack.trigger_continuous_delivery
54
+
55
+ refute stack.continuous_delivery_delayed?
56
+ end
57
+
58
+ test "prevents deployments and delays continuous delivery when checks fail" do
59
+ class FakeDeploymentChecks
60
+ def self.call(_stack)
61
+ false
62
+ end
63
+ end
64
+
65
+ stack = shipit_stacks(:review_stack)
66
+ stack.update(continuous_deployment: true)
67
+
68
+ Shipit.deployment_checks = FakeDeploymentChecks
69
+
70
+ refute stack.deployable?
71
+
72
+ stack.trigger_continuous_delivery
73
+
74
+ assert stack.continuous_delivery_delayed?
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+ require 'test_helper'
3
+
4
+ module Shipit
5
+ class ShipitHelperTest < ActionView::TestCase
6
+ include Shipit::ShipitHelper
7
+ include ERB::Util
8
+
9
+ test "#emojify embeds known emojis" do
10
+ assert_includes emojify(':smile:'), '<img'
11
+ end
12
+
13
+ test "#emojify returns unknown emojis" do
14
+ assert_equal ':unknown:', emojify(':unknown:')
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ module Shipit
6
+ class ShipitTaskExecutionStrategyTest < ActiveSupport::TestCase
7
+ setup do
8
+ class FakeExecutionStrategy < Shipit::TaskExecutionStrategy::Base
9
+ def execute; end
10
+ end
11
+ end
12
+
13
+ teardown do
14
+ Shipit.task_execution_strategy = nil
15
+
16
+ Object.send(:remove_const, :FakeExecutionStrategy) if Object.const_defined?(:FakeExecutionStrategy)
17
+ end
18
+
19
+ test "uses the default strategy" do
20
+ Shipit.task_execution_strategy = nil
21
+
22
+ assert_equal Shipit::TaskExecutionStrategy::Default, Shipit.task_execution_strategy
23
+ end
24
+
25
+ test "allows registration of an execution strategy" do
26
+ strategy = FakeExecutionStrategy
27
+
28
+ Shipit.task_execution_strategy = strategy
29
+
30
+ assert_equal(
31
+ strategy,
32
+ Shipit.task_execution_strategy
33
+ )
34
+ end
35
+
36
+ test "the registered execution strategy is invoked during execution of a task" do
37
+ task_type = Shipit::Deploy
38
+ task = task_type.new
39
+ strategy = FakeExecutionStrategy
40
+ strategy.any_instance.expects(:execute)
41
+
42
+ Shipit.task_execution_strategy = strategy
43
+
44
+ Shipit::PerformTaskJob.new.perform(task)
45
+ end
46
+ end
47
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  module Shipit
@@ -6,6 +7,20 @@ module Shipit
6
7
  Shipit.instance_variables.each(&Shipit.method(:remove_instance_variable))
7
8
  end
8
9
 
10
+ test ".github uses indifferent access to search through the Github applications" do
11
+ secrets = ActiveSupport::OrderedOptions.new
12
+ secrets.merge!(Rails::Secrets.parse(['test/dummy/config/secrets.yml'], env: Rails.env))
13
+ secrets.merge!(YAML.load_file('test/dummy/config/secrets_double_github_app.yml'))
14
+ secrets.deep_symbolize_keys!
15
+ Shipit.stubs(:secrets).returns(secrets)
16
+ assert_instance_of(Shipit::GitHubApp, Shipit.github(organization: 'OrgOne'))
17
+ assert_instance_of(Shipit::GitHubApp, Shipit.github(organization: :OrgOne))
18
+ assert_instance_of(Shipit::GitHubApp, Shipit.github(organization: 'orgone'))
19
+ assert_instance_of(Shipit::GitHubApp, Shipit.github(organization: :orgone))
20
+ assert_instance_of(Shipit::GitHubApp, Shipit.github(organization: :OrgTwo))
21
+ Shipit.unstub(:secrets)
22
+ end
23
+
9
24
  test ".github_teams returns an empty array if there's no team" do
10
25
  assert_equal([], Shipit.github_teams)
11
26
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+ require 'test_helper'
3
+
4
+ module Shipit
5
+ class UserSerializerTest < ActiveSupport::TestCase
6
+ test 'includes anonymous key' do
7
+ user = User.new
8
+ serializer = ActiveModel::Serializer.serializer_for(user)
9
+ assert_equal UserSerializer, serializer
10
+ serialized = serializer.new(user).to_json
11
+ assert_json_document(serialized, "anonymous", false)
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'test_helper'
2
3
 
3
4
  module Shipit
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shipit-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.0
4
+ version: 0.34.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean Boussier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-06 00:00:00.000000000 Z
11
+ date: 2021-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_model_serializers
@@ -100,28 +100,28 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0.15'
103
+ version: '1.3'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0.15'
110
+ version: '1.3'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: faraday-http-cache
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 1.2.2
117
+ version: '2.2'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 1.2.2
124
+ version: '2.2'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: gemoji
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -142,56 +142,56 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 4.1.0
145
+ version: '4.4'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 4.1.0
152
+ version: '4.4'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: lodash-rails
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 4.6.1
159
+ version: '4.17'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 4.6.1
166
+ version: '4.17'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: octokit
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: '4.15'
173
+ version: '4.20'
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '4.15'
180
+ version: '4.20'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: omniauth-github
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: 1.3.0
187
+ version: '1.4'
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: 1.3.0
194
+ version: '1.4'
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: pubsubstub
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -212,14 +212,14 @@ dependencies:
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: 6.0.0
215
+ version: 6.1.0
216
216
  type: :runtime
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: 6.0.0
222
+ version: 6.1.0
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: rails-timeago
225
225
  requirement: !ruby/object:Gem::Requirement
@@ -252,44 +252,30 @@ dependencies:
252
252
  name: rake
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
- - - "~>"
256
- - !ruby/object:Gem::Version
257
- version: '10.0'
258
- type: :runtime
259
- prerelease: false
260
- version_requirements: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - "~>"
263
- - !ruby/object:Gem::Version
264
- version: '10.0'
265
- - !ruby/object:Gem::Dependency
266
- name: redis-namespace
267
- requirement: !ruby/object:Gem::Requirement
268
- requirements:
269
- - - "~>"
255
+ - - ">="
270
256
  - !ruby/object:Gem::Version
271
- version: 1.6.0
257
+ version: '0'
272
258
  type: :runtime
273
259
  prerelease: false
274
260
  version_requirements: !ruby/object:Gem::Requirement
275
261
  requirements:
276
- - - "~>"
262
+ - - ">="
277
263
  - !ruby/object:Gem::Version
278
- version: 1.6.0
264
+ version: '0'
279
265
  - !ruby/object:Gem::Dependency
280
266
  name: redis-objects
281
267
  requirement: !ruby/object:Gem::Requirement
282
268
  requirements:
283
269
  - - "~>"
284
270
  - !ruby/object:Gem::Version
285
- version: 1.4.3
271
+ version: '1.5'
286
272
  type: :runtime
287
273
  prerelease: false
288
274
  version_requirements: !ruby/object:Gem::Requirement
289
275
  requirements:
290
276
  - - "~>"
291
277
  - !ruby/object:Gem::Version
292
- version: 1.4.3
278
+ version: '1.5'
293
279
  - !ruby/object:Gem::Dependency
294
280
  name: responders
295
281
  requirement: !ruby/object:Gem::Requirement
@@ -322,14 +308,14 @@ dependencies:
322
308
  name: sass-rails
323
309
  requirement: !ruby/object:Gem::Requirement
324
310
  requirements:
325
- - - "~>"
311
+ - - ">="
326
312
  - !ruby/object:Gem::Version
327
313
  version: '5.0'
328
314
  type: :runtime
329
315
  prerelease: false
330
316
  version_requirements: !ruby/object:Gem::Requirement
331
317
  requirements:
332
- - - "~>"
318
+ - - ">="
333
319
  - !ruby/object:Gem::Version
334
320
  version: '5.0'
335
321
  - !ruby/object:Gem::Dependency
@@ -360,20 +346,34 @@ dependencies:
360
346
  - - ">="
361
347
  - !ruby/object:Gem::Version
362
348
  version: 2.3.2
349
+ - !ruby/object:Gem::Dependency
350
+ name: sprockets
351
+ requirement: !ruby/object:Gem::Requirement
352
+ requirements:
353
+ - - "<"
354
+ - !ruby/object:Gem::Version
355
+ version: '4'
356
+ type: :runtime
357
+ prerelease: false
358
+ version_requirements: !ruby/object:Gem::Requirement
359
+ requirements:
360
+ - - "<"
361
+ - !ruby/object:Gem::Version
362
+ version: '4'
363
363
  - !ruby/object:Gem::Dependency
364
364
  name: state_machines-activerecord
365
365
  requirement: !ruby/object:Gem::Requirement
366
366
  requirements:
367
367
  - - "~>"
368
368
  - !ruby/object:Gem::Version
369
- version: 0.6.0
369
+ version: 0.8.0
370
370
  type: :runtime
371
371
  prerelease: false
372
372
  version_requirements: !ruby/object:Gem::Requirement
373
373
  requirements:
374
374
  - - "~>"
375
375
  - !ruby/object:Gem::Version
376
- version: 0.6.0
376
+ version: 0.8.0
377
377
  - !ruby/object:Gem::Dependency
378
378
  name: validate_url
379
379
  requirement: !ruby/object:Gem::Requirement
@@ -418,6 +418,7 @@ files:
418
418
  - app/assets/images/flapping.svg
419
419
  - app/assets/images/lock.svg
420
420
  - app/assets/images/logo.svg
421
+ - app/assets/images/magic-solid.svg
421
422
  - app/assets/images/pending-small.svg
422
423
  - app/assets/images/pending.gif
423
424
  - app/assets/images/search-active.svg
@@ -437,7 +438,8 @@ files:
437
438
  - app/assets/javascripts/shipit/deploy.js.coffee
438
439
  - app/assets/javascripts/shipit/flash.js.coffee
439
440
  - app/assets/javascripts/shipit/page_updater.js.coffee
440
- - app/assets/javascripts/shipit/search.js.coffee
441
+ - app/assets/javascripts/shipit/repositories_search.js.coffee
442
+ - app/assets/javascripts/shipit/stack_search.js.coffee
441
443
  - app/assets/javascripts/shipit/stacks.js.coffee
442
444
  - app/assets/javascripts/task.js.coffee
443
445
  - app/assets/javascripts/task/ansi_colors.js.coffee
@@ -459,6 +461,7 @@ files:
459
461
  - app/assets/stylesheets/_base/_utility.scss
460
462
  - app/assets/stylesheets/_pages/_commits.scss
461
463
  - app/assets/stylesheets/_pages/_deploy.scss
464
+ - app/assets/stylesheets/_pages/_repositories.scss
462
465
  - app/assets/stylesheets/_pages/_settings.scss
463
466
  - app/assets/stylesheets/_pages/_stacks.scss
464
467
  - app/assets/stylesheets/_structure/_layout.scss
@@ -482,9 +485,10 @@ files:
482
485
  - app/controllers/shipit/api/deploys_controller.rb
483
486
  - app/controllers/shipit/api/hooks_controller.rb
484
487
  - app/controllers/shipit/api/locks_controller.rb
488
+ - app/controllers/shipit/api/merge_requests_controller.rb
485
489
  - app/controllers/shipit/api/outputs_controller.rb
486
- - app/controllers/shipit/api/pull_requests_controller.rb
487
490
  - app/controllers/shipit/api/release_statuses_controller.rb
491
+ - app/controllers/shipit/api/rollbacks_controller.rb
488
492
  - app/controllers/shipit/api/stacks_controller.rb
489
493
  - app/controllers/shipit/api/tasks_controller.rb
490
494
  - app/controllers/shipit/api_clients_controller.rb
@@ -493,9 +497,10 @@ files:
493
497
  - app/controllers/shipit/commits_controller.rb
494
498
  - app/controllers/shipit/deploys_controller.rb
495
499
  - app/controllers/shipit/github_authentication_controller.rb
500
+ - app/controllers/shipit/merge_requests_controller.rb
496
501
  - app/controllers/shipit/merge_status_controller.rb
497
- - app/controllers/shipit/pull_requests_controller.rb
498
502
  - app/controllers/shipit/release_statuses_controller.rb
503
+ - app/controllers/shipit/repositories_controller.rb
499
504
  - app/controllers/shipit/rollbacks_controller.rb
500
505
  - app/controllers/shipit/shipit_controller.rb
501
506
  - app/controllers/shipit/stacks_controller.rb
@@ -520,19 +525,21 @@ files:
520
525
  - app/jobs/shipit/deferred_touch_job.rb
521
526
  - app/jobs/shipit/deliver_hook_job.rb
522
527
  - app/jobs/shipit/destroy_job.rb
528
+ - app/jobs/shipit/destroy_repository_job.rb
523
529
  - app/jobs/shipit/destroy_stack_job.rb
524
530
  - app/jobs/shipit/emit_event_job.rb
525
531
  - app/jobs/shipit/fetch_commit_stats_job.rb
526
532
  - app/jobs/shipit/fetch_deployed_revision_job.rb
527
533
  - app/jobs/shipit/github_sync_job.rb
528
534
  - app/jobs/shipit/mark_deploy_healthy_job.rb
529
- - app/jobs/shipit/merge_pull_requests_job.rb
530
535
  - app/jobs/shipit/perform_commit_checks_job.rb
531
536
  - app/jobs/shipit/perform_task_job.rb
537
+ - app/jobs/shipit/process_merge_requests_job.rb
532
538
  - app/jobs/shipit/purge_old_deliveries_job.rb
539
+ - app/jobs/shipit/reap_dead_tasks_job.rb
533
540
  - app/jobs/shipit/refresh_check_runs_job.rb
534
541
  - app/jobs/shipit/refresh_github_user_job.rb
535
- - app/jobs/shipit/refresh_pull_request_job.rb
542
+ - app/jobs/shipit/refresh_merge_request_job.rb
536
543
  - app/jobs/shipit/refresh_statuses_job.rb
537
544
  - app/jobs/shipit/setup_github_hook_job.rb
538
545
  - app/jobs/shipit/update_estimated_deploy_duration_job.rb
@@ -566,10 +573,18 @@ files:
566
573
  - app/models/shipit/github_status.rb
567
574
  - app/models/shipit/hook.rb
568
575
  - app/models/shipit/membership.rb
576
+ - app/models/shipit/merge_request.rb
569
577
  - app/models/shipit/output_chunk.rb
578
+ - app/models/shipit/provisioning_handler.rb
579
+ - app/models/shipit/provisioning_handler/base.rb
580
+ - app/models/shipit/provisioning_handler/unregistered_provisioning_handler.rb
570
581
  - app/models/shipit/pull_request.rb
582
+ - app/models/shipit/pull_request_assignment.rb
583
+ - app/models/shipit/record.rb
571
584
  - app/models/shipit/release_status.rb
572
585
  - app/models/shipit/repository.rb
586
+ - app/models/shipit/review_stack.rb
587
+ - app/models/shipit/review_stack_provisioning_queue.rb
573
588
  - app/models/shipit/rollback.rb
574
589
  - app/models/shipit/stack.rb
575
590
  - app/models/shipit/status.rb
@@ -579,6 +594,8 @@ files:
579
594
  - app/models/shipit/status/unknown.rb
580
595
  - app/models/shipit/task.rb
581
596
  - app/models/shipit/task_definition.rb
597
+ - app/models/shipit/task_execution_strategy/base.rb
598
+ - app/models/shipit/task_execution_strategy/default.rb
582
599
  - app/models/shipit/team.rb
583
600
  - app/models/shipit/undeployed_commit.rb
584
601
  - app/models/shipit/unlimited_api_client.rb
@@ -588,6 +605,15 @@ files:
588
605
  - app/models/shipit/webhooks/handlers/check_suite_handler.rb
589
606
  - app/models/shipit/webhooks/handlers/handler.rb
590
607
  - app/models/shipit/webhooks/handlers/membership_handler.rb
608
+ - app/models/shipit/webhooks/handlers/pull_request/assigned_handler.rb
609
+ - app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb
610
+ - app/models/shipit/webhooks/handlers/pull_request/edited_handler.rb
611
+ - app/models/shipit/webhooks/handlers/pull_request/label_capturing_handler.rb
612
+ - app/models/shipit/webhooks/handlers/pull_request/labeled_handler.rb
613
+ - app/models/shipit/webhooks/handlers/pull_request/opened_handler.rb
614
+ - app/models/shipit/webhooks/handlers/pull_request/reopened_handler.rb
615
+ - app/models/shipit/webhooks/handlers/pull_request/review_stack_adapter.rb
616
+ - app/models/shipit/webhooks/handlers/pull_request/unlabeled_handler.rb
591
617
  - app/models/shipit/webhooks/handlers/push_handler.rb
592
618
  - app/models/shipit/webhooks/handlers/status_handler.rb
593
619
  - app/serializers/concerns/shipit/conditional_attributes.rb
@@ -596,7 +622,9 @@ files:
596
622
  - app/serializers/shipit/commit_serializer.rb
597
623
  - app/serializers/shipit/deploy_serializer.rb
598
624
  - app/serializers/shipit/hook_serializer.rb
625
+ - app/serializers/shipit/merge_request_serializer.rb
599
626
  - app/serializers/shipit/pull_request_serializer.rb
627
+ - app/serializers/shipit/review_stack_serializer.rb
600
628
  - app/serializers/shipit/rollback_serializer.rb
601
629
  - app/serializers/shipit/short_commit_serializer.rb
602
630
  - app/serializers/shipit/stack_serializer.rb
@@ -625,6 +653,10 @@ files:
625
653
  - app/views/shipit/deploys/rollback.html.erb
626
654
  - app/views/shipit/deploys/show.html.erb
627
655
  - app/views/shipit/github_authentication/failed.html.erb
656
+ - app/views/shipit/merge_requests/_merge_request.html.erb
657
+ - app/views/shipit/merge_requests/index.html.erb
658
+ - app/views/shipit/merge_requests/merge_requests/_pull_request.html.erb
659
+ - app/views/shipit/merge_requests/merge_requests/index.html.erb
628
660
  - app/views/shipit/merge_status/_anchor.html.erb
629
661
  - app/views/shipit/merge_status/_commit_count_warning.html.erb
630
662
  - app/views/shipit/merge_status/_merge_queue_button.html.erb
@@ -635,12 +667,17 @@ files:
635
667
  - app/views/shipit/merge_status/logged_out.erb
636
668
  - app/views/shipit/merge_status/success.html.erb
637
669
  - app/views/shipit/missing_settings.html.erb
638
- - app/views/shipit/pull_requests/_pull_request.html.erb
639
- - app/views/shipit/pull_requests/index.html.erb
670
+ - app/views/shipit/repositories/_header.html.erb
671
+ - app/views/shipit/repositories/index.html.erb
672
+ - app/views/shipit/repositories/new.html.erb
673
+ - app/views/shipit/repositories/settings.html.erb
674
+ - app/views/shipit/repositories/show.html.erb
640
675
  - app/views/shipit/shared/_author.html.erb
641
676
  - app/views/shipit/stacks/_banners.html.erb
642
677
  - app/views/shipit/stacks/_header.html.erb
643
678
  - app/views/shipit/stacks/_links.html.erb
679
+ - app/views/shipit/stacks/_stack.html.erb
680
+ - app/views/shipit/stacks/all_tasks.html.erb
644
681
  - app/views/shipit/stacks/index.html.erb
645
682
  - app/views/shipit/stacks/new.html.erb
646
683
  - app/views/shipit/stacks/settings.html.erb
@@ -718,6 +755,19 @@ files:
718
755
  - db/migrate/20191219205202_add_archived_since_to_stacks.rb
719
756
  - db/migrate/20200102175621_optional_task_commits.rb
720
757
  - db/migrate/20200109132519_add_sha_to_commit_deployments.rb
758
+ - db/migrate/20200226211925_add_index_to_tasks_status.rb
759
+ - db/migrate/20200427135152_add_pull_request_head_sha_to_commit.rb
760
+ - db/migrate/20200615181558_add_rollback_once_aborted_to.rb
761
+ - db/migrate/20200706145406_add_review_stacks.rb
762
+ - db/migrate/20200804144639_rename_pull_request_to_merge_request.rb
763
+ - db/migrate/20200804161512_rename_commits_pull_request_id_to_merge_request_id.rb
764
+ - db/migrate/20200813134712_recreate_shipit_pull_requests.rb
765
+ - db/migrate/20200813194056_create_pull_request_assignments.rb
766
+ - db/migrate/20201001125502_add_provision_pr_stacks_flag_to_repositories.rb
767
+ - db/migrate/20201008145809_add_retry_attempt_to_tasks.rb
768
+ - db/migrate/20201008152744_add_max_retries_to_tasks.rb
769
+ - db/migrate/20210325194053_remove_stacks_branch_default.rb
770
+ - db/migrate/20210504200438_add_github_updated_at_to_check_runs.rb
721
771
  - lib/shipit-engine.rb
722
772
  - lib/shipit.rb
723
773
  - lib/shipit/cast_value.rb
@@ -736,7 +786,9 @@ files:
736
786
  - lib/shipit/octokit_check_runs.rb
737
787
  - lib/shipit/octokit_iterator.rb
738
788
  - lib/shipit/paginator.rb
789
+ - lib/shipit/review_stack_commands.rb
739
790
  - lib/shipit/rollback_commands.rb
791
+ - lib/shipit/same_site_cookie_middleware.rb
740
792
  - lib/shipit/simple_message_verifier.rb
741
793
  - lib/shipit/stack_commands.rb
742
794
  - lib/shipit/stat.rb
@@ -755,6 +807,7 @@ files:
755
807
  - lib/snippets/git-askpass
756
808
  - lib/snippets/misconfigured-npm-publish-config
757
809
  - lib/snippets/publish-lerna-independent-packages
810
+ - lib/snippets/publish-lerna-independent-packages-legacy
758
811
  - lib/snippets/push-to-heroku
759
812
  - lib/snippets/release-gem
760
813
  - lib/tasks/cron.rake
@@ -767,9 +820,10 @@ files:
767
820
  - test/controllers/api/deploys_controller_test.rb
768
821
  - test/controllers/api/hooks_controller_test.rb
769
822
  - test/controllers/api/locks_controller_test.rb
823
+ - test/controllers/api/merge_requests_controller_test.rb
770
824
  - test/controllers/api/outputs_controller_test.rb
771
- - test/controllers/api/pull_requests_controller_test.rb
772
825
  - test/controllers/api/release_statuses_controller_test.rb
826
+ - test/controllers/api/rollback_controller_test.rb
773
827
  - test/controllers/api/stacks_controller_test.rb
774
828
  - test/controllers/api/tasks_controller_test.rb
775
829
  - test/controllers/api_clients_controller_test.rb
@@ -778,15 +832,17 @@ files:
778
832
  - test/controllers/commits_controller_test.rb
779
833
  - test/controllers/deploys_controller_test.rb
780
834
  - test/controllers/github_authentication_controller_test.rb
835
+ - test/controllers/merge_requests_controller_test.rb
781
836
  - test/controllers/merge_status_controller_test.rb
782
- - test/controllers/pull_requests_controller_test.rb
783
837
  - test/controllers/release_statuses_controller_test.rb
838
+ - test/controllers/repositories_controller_test.rb
784
839
  - test/controllers/rollbacks_controller_test.rb
785
840
  - test/controllers/stacks_controller_test.rb
786
841
  - test/controllers/status_controller_test.rb
787
842
  - test/controllers/tasks_controller_test.rb
788
843
  - test/controllers/webhooks_controller_test.rb
789
844
  - test/dummy/Rakefile
845
+ - test/dummy/app/assets/config/manifest.js
790
846
  - test/dummy/app/assets/javascripts/application.js
791
847
  - test/dummy/app/assets/stylesheets/application.css
792
848
  - test/dummy/app/controllers/application_controller.rb
@@ -818,6 +874,7 @@ files:
818
874
  - test/dummy/config/locales/en.yml
819
875
  - test/dummy/config/routes.rb
820
876
  - test/dummy/config/secrets.yml
877
+ - test/dummy/config/secrets_double_github_app.yml
821
878
  - test/dummy/db/schema.rb
822
879
  - test/dummy/db/seeds.rb
823
880
  - test/dummy/public/404.html
@@ -825,6 +882,15 @@ files:
825
882
  - test/dummy/public/500.html
826
883
  - test/dummy/public/favicon.ico
827
884
  - test/fixtures/payloads/check_suite_master.json
885
+ - test/fixtures/payloads/invalid_pull_request.json
886
+ - test/fixtures/payloads/provision_disabled_pull_request.json
887
+ - test/fixtures/payloads/pull_request_assigned.json
888
+ - test/fixtures/payloads/pull_request_closed.json
889
+ - test/fixtures/payloads/pull_request_labeled.json
890
+ - test/fixtures/payloads/pull_request_opened.json
891
+ - test/fixtures/payloads/pull_request_reopened.json
892
+ - test/fixtures/payloads/pull_request_unlabeled.json
893
+ - test/fixtures/payloads/pull_request_with_no_repo.json
828
894
  - test/fixtures/payloads/push_master.json
829
895
  - test/fixtures/payloads/push_not_master.json
830
896
  - test/fixtures/payloads/status_master.json
@@ -837,7 +903,8 @@ files:
837
903
  - test/fixtures/shipit/github_hooks.yml
838
904
  - test/fixtures/shipit/hooks.yml
839
905
  - test/fixtures/shipit/memberships.yml
840
- - test/fixtures/shipit/output_chunks.yml
906
+ - test/fixtures/shipit/merge_requests.yml
907
+ - test/fixtures/shipit/pull_request_assignments.yml
841
908
  - test/fixtures/shipit/pull_requests.yml
842
909
  - test/fixtures/shipit/release_statuses.yml
843
910
  - test/fixtures/shipit/repositories.yml
@@ -857,19 +924,24 @@ files:
857
924
  - test/jobs/cache_deploy_spec_job_test.rb
858
925
  - test/jobs/chunk_rollup_job_test.rb
859
926
  - test/jobs/deliver_hook_job_test.rb
927
+ - test/jobs/destroy_repository_job_test.rb
860
928
  - test/jobs/destroy_stack_job_test.rb
861
929
  - test/jobs/emit_event_job_test.rb
862
930
  - test/jobs/fetch_commit_stats_job_test.rb
863
931
  - test/jobs/fetch_deployed_revision_job_test.rb
864
932
  - test/jobs/github_sync_job_test.rb
865
933
  - test/jobs/mark_deploy_healthy_job_test.rb
866
- - test/jobs/merge_pull_requests_job_test.rb
867
934
  - test/jobs/perform_task_job_test.rb
935
+ - test/jobs/process_merge_requests_job_test.rb
868
936
  - test/jobs/purge_old_deliveries_job_test.rb
937
+ - test/jobs/reap_dead_tasks_job_test.rb
869
938
  - test/jobs/refresh_github_user_job_test.rb
870
939
  - test/jobs/refresh_status_job_test.rb
871
940
  - test/jobs/unique_job_test.rb
872
941
  - test/jobs/update_github_last_deployed_ref_job_test.rb
942
+ - test/lib/shipit/deploy_commands_test.rb
943
+ - test/lib/shipit/task_commands_test.rb
944
+ - test/middleware/same_site_cookie_middleware_test.rb
873
945
  - test/models/api_client_test.rb
874
946
  - test/models/commit_checks_test.rb
875
947
  - test/models/commit_deployment_status_test.rb
@@ -883,14 +955,30 @@ files:
883
955
  - test/models/github_hook_test.rb
884
956
  - test/models/hook_test.rb
885
957
  - test/models/membership_test.rb
886
- - test/models/output_chunk_test.rb
887
- - test/models/pull_request_test.rb
958
+ - test/models/merge_request_test.rb
959
+ - test/models/pull_request_assignment_test.rb
888
960
  - test/models/release_statuses_test.rb
889
961
  - test/models/rollbacks_test.rb
890
962
  - test/models/shipit/check_run_test.rb
963
+ - test/models/shipit/provisioning_handler/base_test.rb
964
+ - test/models/shipit/provisioning_handler/unregistered_provisioning_handler_test.rb
965
+ - test/models/shipit/provisioning_handler_test.rb
966
+ - test/models/shipit/pull_request_test.rb
891
967
  - test/models/shipit/repository_test.rb
892
- - test/models/shipit/wehbooks/handlers_test.rb
893
- - test/models/stacks_test.rb
968
+ - test/models/shipit/review_stack_provision_status_test.rb
969
+ - test/models/shipit/review_stack_provisioning_queue_test.rb
970
+ - test/models/shipit/review_stack_test.rb
971
+ - test/models/shipit/stacks_test.rb
972
+ - test/models/shipit/webhooks/handlers/pull_request/assigned_handler_test.rb
973
+ - test/models/shipit/webhooks/handlers/pull_request/closed_handler_test.rb
974
+ - test/models/shipit/webhooks/handlers/pull_request/edited_handler_test.rb
975
+ - test/models/shipit/webhooks/handlers/pull_request/label_capturing_handler_test.rb
976
+ - test/models/shipit/webhooks/handlers/pull_request/labeled_handler_test.rb
977
+ - test/models/shipit/webhooks/handlers/pull_request/opened_handler_test.rb
978
+ - test/models/shipit/webhooks/handlers/pull_request/reopened_handler_test.rb
979
+ - test/models/shipit/webhooks/handlers/pull_request/review_stack_adapter_test.rb
980
+ - test/models/shipit/webhooks/handlers/pull_request/unlabeled_handler_test.rb
981
+ - test/models/shipit/webhooks/handlers_test.rb
894
982
  - test/models/status/group_test.rb
895
983
  - test/models/status/missing_test.rb
896
984
  - test/models/status_test.rb
@@ -899,18 +987,27 @@ files:
899
987
  - test/models/team_test.rb
900
988
  - test/models/undeployed_commits_test.rb
901
989
  - test/models/users_test.rb
990
+ - test/serializers/shipit/pull_request_serializer_test.rb
902
991
  - test/test_command_integration.rb
903
992
  - test/test_helper.rb
993
+ - test/unit/anonymous_user_serializer_test.rb
904
994
  - test/unit/command_test.rb
905
995
  - test/unit/commands_test.rb
996
+ - test/unit/commit_serializer_test.rb
906
997
  - test/unit/csv_serializer_test.rb
907
998
  - test/unit/deploy_commands_test.rb
999
+ - test/unit/deploy_serializer_test.rb
908
1000
  - test/unit/environment_variables_test.rb
909
1001
  - test/unit/github_app_test.rb
1002
+ - test/unit/github_apps_test.rb
910
1003
  - test/unit/github_url_helper_test.rb
911
1004
  - test/unit/line_buffer_test.rb
912
1005
  - test/unit/rollback_commands_test.rb
1006
+ - test/unit/shipit_deployment_checks_test.rb
1007
+ - test/unit/shipit_helper_test.rb
1008
+ - test/unit/shipit_task_execution_strategy_test.rb
913
1009
  - test/unit/shipit_test.rb
1010
+ - test/unit/user_serializer_test.rb
914
1011
  - test/unit/variable_definition_test.rb
915
1012
  - vendor/assets/javascripts/clusterize.js
916
1013
  - vendor/assets/javascripts/jquery-notify.js
@@ -921,7 +1018,8 @@ files:
921
1018
  homepage: https://github.com/shopify/shipit-engine
922
1019
  licenses:
923
1020
  - MIT
924
- metadata: {}
1021
+ metadata:
1022
+ allowed_push_host: https://rubygems.org
925
1023
  post_install_message:
926
1024
  rdoc_options: []
927
1025
  require_paths:
@@ -937,159 +1035,203 @@ required_rubygems_version: !ruby/object:Gem::Requirement
937
1035
  - !ruby/object:Gem::Version
938
1036
  version: '0'
939
1037
  requirements: []
940
- rubygems_version: 3.0.3
1038
+ rubygems_version: 3.2.20
941
1039
  signing_key:
942
1040
  specification_version: 4
943
1041
  summary: Application deployment software
944
1042
  test_files:
945
- - test/helpers/hooks_helper.rb
946
- - test/helpers/links_helper.rb
947
- - test/helpers/fixture_aliases_helper.rb
948
- - test/helpers/json_helper.rb
949
- - test/helpers/payloads_helper.rb
950
- - test/helpers/api_helper.rb
951
- - test/helpers/queries_helper.rb
952
- - test/models/membership_test.rb
953
- - test/models/rollbacks_test.rb
954
- - test/models/output_chunk_test.rb
955
- - test/models/pull_request_test.rb
956
- - test/models/team_test.rb
957
- - test/models/commit_deployment_status_test.rb
1043
+ - test/jobs/reap_dead_tasks_job_test.rb
1044
+ - test/jobs/fetch_commit_stats_job_test.rb
1045
+ - test/jobs/emit_event_job_test.rb
1046
+ - test/jobs/github_sync_job_test.rb
1047
+ - test/jobs/unique_job_test.rb
1048
+ - test/jobs/cache_deploy_spec_job_test.rb
1049
+ - test/jobs/destroy_stack_job_test.rb
1050
+ - test/jobs/perform_task_job_test.rb
1051
+ - test/jobs/refresh_github_user_job_test.rb
1052
+ - test/jobs/mark_deploy_healthy_job_test.rb
1053
+ - test/jobs/purge_old_deliveries_job_test.rb
1054
+ - test/jobs/process_merge_requests_job_test.rb
1055
+ - test/jobs/chunk_rollup_job_test.rb
1056
+ - test/jobs/destroy_repository_job_test.rb
1057
+ - test/jobs/refresh_status_job_test.rb
1058
+ - test/jobs/fetch_deployed_revision_job_test.rb
1059
+ - test/jobs/update_github_last_deployed_ref_job_test.rb
1060
+ - test/jobs/deliver_hook_job_test.rb
1061
+ - test/middleware/same_site_cookie_middleware_test.rb
1062
+ - test/unit/commands_test.rb
1063
+ - test/unit/github_url_helper_test.rb
1064
+ - test/unit/shipit_test.rb
1065
+ - test/unit/deploy_commands_test.rb
1066
+ - test/unit/shipit_deployment_checks_test.rb
1067
+ - test/unit/github_app_test.rb
1068
+ - test/unit/shipit_task_execution_strategy_test.rb
1069
+ - test/unit/csv_serializer_test.rb
1070
+ - test/unit/github_apps_test.rb
1071
+ - test/unit/command_test.rb
1072
+ - test/unit/anonymous_user_serializer_test.rb
1073
+ - test/unit/environment_variables_test.rb
1074
+ - test/unit/line_buffer_test.rb
1075
+ - test/unit/shipit_helper_test.rb
1076
+ - test/unit/deploy_serializer_test.rb
1077
+ - test/unit/variable_definition_test.rb
1078
+ - test/unit/user_serializer_test.rb
1079
+ - test/unit/rollback_commands_test.rb
1080
+ - test/unit/commit_serializer_test.rb
1081
+ - test/models/commits_test.rb
958
1082
  - test/models/deploy_spec_test.rb
959
- - test/models/task_definitions_test.rb
960
- - test/models/stacks_test.rb
961
- - test/models/undeployed_commits_test.rb
1083
+ - test/models/release_statuses_test.rb
1084
+ - test/models/commit_checks_test.rb
1085
+ - test/models/github_hook_test.rb
1086
+ - test/models/shipit/review_stack_test.rb
1087
+ - test/models/shipit/webhooks/handlers_test.rb
1088
+ - test/models/shipit/webhooks/handlers/pull_request/review_stack_adapter_test.rb
1089
+ - test/models/shipit/webhooks/handlers/pull_request/opened_handler_test.rb
1090
+ - test/models/shipit/webhooks/handlers/pull_request/assigned_handler_test.rb
1091
+ - test/models/shipit/webhooks/handlers/pull_request/label_capturing_handler_test.rb
1092
+ - test/models/shipit/webhooks/handlers/pull_request/unlabeled_handler_test.rb
1093
+ - test/models/shipit/webhooks/handlers/pull_request/reopened_handler_test.rb
1094
+ - test/models/shipit/webhooks/handlers/pull_request/labeled_handler_test.rb
1095
+ - test/models/shipit/webhooks/handlers/pull_request/closed_handler_test.rb
1096
+ - test/models/shipit/webhooks/handlers/pull_request/edited_handler_test.rb
1097
+ - test/models/shipit/provisioning_handler_test.rb
1098
+ - test/models/shipit/review_stack_provisioning_queue_test.rb
1099
+ - test/models/shipit/stacks_test.rb
1100
+ - test/models/shipit/provisioning_handler/unregistered_provisioning_handler_test.rb
1101
+ - test/models/shipit/provisioning_handler/base_test.rb
1102
+ - test/models/shipit/pull_request_test.rb
962
1103
  - test/models/shipit/check_run_test.rb
963
- - test/models/shipit/wehbooks/handlers_test.rb
964
1104
  - test/models/shipit/repository_test.rb
965
- - test/models/github_hook_test.rb
966
- - test/models/status/group_test.rb
967
- - test/models/status/missing_test.rb
968
- - test/models/api_client_test.rb
969
- - test/models/deploys_test.rb
970
- - test/models/deploy_stats_test.rb
971
- - test/models/hook_test.rb
972
- - test/models/commit_checks_test.rb
1105
+ - test/models/shipit/review_stack_provision_status_test.rb
1106
+ - test/models/delivery_test.rb
1107
+ - test/models/rollbacks_test.rb
1108
+ - test/models/merge_request_test.rb
973
1109
  - test/models/status_test.rb
974
- - test/models/users_test.rb
1110
+ - test/models/api_client_test.rb
1111
+ - test/models/commit_deployment_status_test.rb
975
1112
  - test/models/commit_deployment_test.rb
976
- - test/models/release_statuses_test.rb
1113
+ - test/models/hook_test.rb
977
1114
  - test/models/duration_test.rb
1115
+ - test/models/deploy_stats_test.rb
1116
+ - test/models/status/missing_test.rb
1117
+ - test/models/status/group_test.rb
1118
+ - test/models/membership_test.rb
1119
+ - test/models/deploys_test.rb
1120
+ - test/models/task_definitions_test.rb
1121
+ - test/models/team_test.rb
1122
+ - test/models/pull_request_assignment_test.rb
1123
+ - test/models/undeployed_commits_test.rb
1124
+ - test/models/users_test.rb
978
1125
  - test/models/tasks_test.rb
979
- - test/models/delivery_test.rb
980
- - test/models/commits_test.rb
981
- - test/fixtures/payloads/check_suite_master.json
982
- - test/fixtures/payloads/push_not_master.json
983
- - test/fixtures/payloads/status_master.json
984
- - test/fixtures/payloads/push_master.json
985
- - test/fixtures/timeout
986
- - test/fixtures/shipit/users.yml
987
- - test/fixtures/shipit/output_chunks.yml
988
- - test/fixtures/shipit/teams.yml
989
- - test/fixtures/shipit/github_hooks.yml
990
- - test/fixtures/shipit/hooks.yml
991
- - test/fixtures/shipit/commits.yml
992
- - test/fixtures/shipit/commit_deployments.yml
993
- - test/fixtures/shipit/statuses.yml
994
- - test/fixtures/shipit/stacks.yml
995
- - test/fixtures/shipit/pull_requests.yml
996
- - test/fixtures/shipit/api_clients.yml
997
- - test/fixtures/shipit/repositories.yml
998
- - test/fixtures/shipit/tasks.yml
999
- - test/fixtures/shipit/release_statuses.yml
1000
- - test/fixtures/shipit/memberships.yml
1001
- - test/fixtures/shipit/commit_deployment_statuses.yml
1002
- - test/fixtures/shipit/deliveries.yml
1003
- - test/fixtures/shipit/check_runs.yml
1004
- - test/dummy/config/secrets.yml
1005
- - test/dummy/config/boot.rb
1006
- - test/dummy/config/database.postgresql.yml
1007
- - test/dummy/config/database.mysql.yml
1008
- - test/dummy/config/locales/en.yml
1009
- - test/dummy/config/environments/production.rb
1010
- - test/dummy/config/environments/test.rb
1011
- - test/dummy/config/environments/development.rb
1012
- - test/dummy/config/application.rb
1013
- - test/dummy/config/routes.rb
1126
+ - test/test_helper.rb
1127
+ - test/dummy/public/422.html
1128
+ - test/dummy/public/404.html
1129
+ - test/dummy/public/favicon.ico
1130
+ - test/dummy/public/500.html
1131
+ - test/dummy/Rakefile
1132
+ - test/dummy/config/initializers/assets.rb
1014
1133
  - test/dummy/config/initializers/0_load_development_secrets.rb
1015
1134
  - test/dummy/config/initializers/wrap_parameters.rb
1016
- - test/dummy/config/initializers/session_store.rb
1135
+ - test/dummy/config/initializers/mime_types.rb
1017
1136
  - test/dummy/config/initializers/inflections.rb
1018
1137
  - test/dummy/config/initializers/cookies_serializer.rb
1019
- - test/dummy/config/initializers/assets.rb
1020
- - test/dummy/config/initializers/mime_types.rb
1021
1138
  - test/dummy/config/initializers/filter_parameter_logging.rb
1022
1139
  - test/dummy/config/initializers/backtrace_silencers.rb
1023
- - test/dummy/config/environment.rb
1140
+ - test/dummy/config/initializers/session_store.rb
1024
1141
  - test/dummy/config/database.yml
1025
- - test/dummy/Rakefile
1142
+ - test/dummy/config/environments/development.rb
1143
+ - test/dummy/config/environments/production.rb
1144
+ - test/dummy/config/environments/test.rb
1145
+ - test/dummy/config/application.rb
1146
+ - test/dummy/config/boot.rb
1147
+ - test/dummy/config/database.mysql.yml
1148
+ - test/dummy/config/locales/en.yml
1149
+ - test/dummy/config/secrets.yml
1150
+ - test/dummy/config/environment.rb
1151
+ - test/dummy/config/database.postgresql.yml
1152
+ - test/dummy/config/routes.rb
1153
+ - test/dummy/config/secrets_double_github_app.yml
1154
+ - test/dummy/config.ru
1155
+ - test/dummy/bin/rake
1026
1156
  - test/dummy/bin/bundle
1027
1157
  - test/dummy/bin/rails
1028
- - test/dummy/bin/rake
1029
1158
  - test/dummy/bin/setup
1030
- - test/dummy/public/422.html
1031
- - test/dummy/public/favicon.ico
1032
- - test/dummy/public/404.html
1033
- - test/dummy/public/500.html
1034
- - test/dummy/app/helpers/application_helper.rb
1035
- - test/dummy/app/assets/stylesheets/application.css
1036
- - test/dummy/app/assets/javascripts/application.js
1159
+ - test/dummy/db/schema.rb
1160
+ - test/dummy/db/seeds.rb
1037
1161
  - test/dummy/app/views/layouts/application.html.erb
1038
1162
  - test/dummy/app/controllers/application_controller.rb
1039
- - test/dummy/db/seeds.rb
1040
- - test/dummy/db/schema.rb
1041
- - test/dummy/config.ru
1042
- - test/controllers/deploys_controller_test.rb
1163
+ - test/dummy/app/helpers/application_helper.rb
1164
+ - test/dummy/app/assets/config/manifest.js
1165
+ - test/dummy/app/assets/javascripts/application.js
1166
+ - test/dummy/app/assets/stylesheets/application.css
1167
+ - test/serializers/shipit/pull_request_serializer_test.rb
1168
+ - test/test_command_integration.rb
1043
1169
  - test/controllers/stacks_controller_test.rb
1170
+ - test/controllers/github_authentication_controller_test.rb
1044
1171
  - test/controllers/status_controller_test.rb
1045
- - test/controllers/api/deploys_controller_test.rb
1046
- - test/controllers/api/locks_controller_test.rb
1172
+ - test/controllers/api/outputs_controller_test.rb
1047
1173
  - test/controllers/api/stacks_controller_test.rb
1048
1174
  - test/controllers/api/release_statuses_controller_test.rb
1049
1175
  - test/controllers/api/ccmenu_controller_test.rb
1176
+ - test/controllers/api/merge_requests_controller_test.rb
1050
1177
  - test/controllers/api/commits_controller_test.rb
1051
- - test/controllers/api/outputs_controller_test.rb
1052
- - test/controllers/api/hooks_controller_test.rb
1053
- - test/controllers/api/pull_requests_controller_test.rb
1054
- - test/controllers/api/tasks_controller_test.rb
1055
1178
  - test/controllers/api/base_controller_test.rb
1056
- - test/controllers/commit_checks_controller_test.rb
1179
+ - test/controllers/api/tasks_controller_test.rb
1180
+ - test/controllers/api/deploys_controller_test.rb
1181
+ - test/controllers/api/hooks_controller_test.rb
1182
+ - test/controllers/api/locks_controller_test.rb
1183
+ - test/controllers/api/rollback_controller_test.rb
1184
+ - test/controllers/rollbacks_controller_test.rb
1057
1185
  - test/controllers/release_statuses_controller_test.rb
1058
- - test/controllers/webhooks_controller_test.rb
1059
1186
  - test/controllers/ccmenu_controller_test.rb
1060
- - test/controllers/api_clients_controller_test.rb
1061
- - test/controllers/rollbacks_controller_test.rb
1187
+ - test/controllers/merge_requests_controller_test.rb
1188
+ - test/controllers/commit_checks_controller_test.rb
1062
1189
  - test/controllers/commits_controller_test.rb
1063
- - test/controllers/github_authentication_controller_test.rb
1064
- - test/controllers/pull_requests_controller_test.rb
1065
- - test/controllers/tasks_controller_test.rb
1066
1190
  - test/controllers/merge_status_controller_test.rb
1067
- - test/test_command_integration.rb
1068
- - test/test_helper.rb
1069
- - test/jobs/destroy_stack_job_test.rb
1070
- - test/jobs/fetch_deployed_revision_job_test.rb
1071
- - test/jobs/fetch_commit_stats_job_test.rb
1072
- - test/jobs/merge_pull_requests_job_test.rb
1073
- - test/jobs/update_github_last_deployed_ref_job_test.rb
1074
- - test/jobs/cache_deploy_spec_job_test.rb
1075
- - test/jobs/emit_event_job_test.rb
1076
- - test/jobs/refresh_github_user_job_test.rb
1077
- - test/jobs/chunk_rollup_job_test.rb
1078
- - test/jobs/mark_deploy_healthy_job_test.rb
1079
- - test/jobs/refresh_status_job_test.rb
1080
- - test/jobs/purge_old_deliveries_job_test.rb
1081
- - test/jobs/deliver_hook_job_test.rb
1082
- - test/jobs/github_sync_job_test.rb
1083
- - test/jobs/perform_task_job_test.rb
1084
- - test/jobs/unique_job_test.rb
1085
- - test/unit/environment_variables_test.rb
1086
- - test/unit/commands_test.rb
1087
- - test/unit/github_app_test.rb
1088
- - test/unit/rollback_commands_test.rb
1089
- - test/unit/command_test.rb
1090
- - test/unit/shipit_test.rb
1091
- - test/unit/line_buffer_test.rb
1092
- - test/unit/csv_serializer_test.rb
1093
- - test/unit/deploy_commands_test.rb
1094
- - test/unit/variable_definition_test.rb
1095
- - test/unit/github_url_helper_test.rb
1191
+ - test/controllers/tasks_controller_test.rb
1192
+ - test/controllers/api_clients_controller_test.rb
1193
+ - test/controllers/deploys_controller_test.rb
1194
+ - test/controllers/repositories_controller_test.rb
1195
+ - test/controllers/webhooks_controller_test.rb
1196
+ - test/helpers/hooks_helper.rb
1197
+ - test/helpers/api_helper.rb
1198
+ - test/helpers/links_helper.rb
1199
+ - test/helpers/json_helper.rb
1200
+ - test/helpers/payloads_helper.rb
1201
+ - test/helpers/queries_helper.rb
1202
+ - test/helpers/fixture_aliases_helper.rb
1203
+ - test/fixtures/shipit/deliveries.yml
1204
+ - test/fixtures/shipit/stacks.yml
1205
+ - test/fixtures/shipit/users.yml
1206
+ - test/fixtures/shipit/check_runs.yml
1207
+ - test/fixtures/shipit/teams.yml
1208
+ - test/fixtures/shipit/memberships.yml
1209
+ - test/fixtures/shipit/release_statuses.yml
1210
+ - test/fixtures/shipit/repositories.yml
1211
+ - test/fixtures/shipit/commits.yml
1212
+ - test/fixtures/shipit/pull_request_assignments.yml
1213
+ - test/fixtures/shipit/tasks.yml
1214
+ - test/fixtures/shipit/pull_requests.yml
1215
+ - test/fixtures/shipit/statuses.yml
1216
+ - test/fixtures/shipit/api_clients.yml
1217
+ - test/fixtures/shipit/merge_requests.yml
1218
+ - test/fixtures/shipit/commit_deployment_statuses.yml
1219
+ - test/fixtures/shipit/hooks.yml
1220
+ - test/fixtures/shipit/github_hooks.yml
1221
+ - test/fixtures/shipit/commit_deployments.yml
1222
+ - test/fixtures/payloads/pull_request_with_no_repo.json
1223
+ - test/fixtures/payloads/status_master.json
1224
+ - test/fixtures/payloads/pull_request_assigned.json
1225
+ - test/fixtures/payloads/provision_disabled_pull_request.json
1226
+ - test/fixtures/payloads/check_suite_master.json
1227
+ - test/fixtures/payloads/pull_request_unlabeled.json
1228
+ - test/fixtures/payloads/pull_request_closed.json
1229
+ - test/fixtures/payloads/pull_request_reopened.json
1230
+ - test/fixtures/payloads/pull_request_opened.json
1231
+ - test/fixtures/payloads/push_master.json
1232
+ - test/fixtures/payloads/pull_request_labeled.json
1233
+ - test/fixtures/payloads/push_not_master.json
1234
+ - test/fixtures/payloads/invalid_pull_request.json
1235
+ - test/fixtures/timeout
1236
+ - test/lib/shipit/deploy_commands_test.rb
1237
+ - test/lib/shipit/task_commands_test.rb