shipit-engine 0.30.0 → 0.34.0

Sign up to get free protection for your applications and to get access to all the features.
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