shipit-engine 0.31.0 → 0.35.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (411) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -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 +2 -3
  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/unique.rb +1 -0
  54. data/app/jobs/shipit/background_job.rb +4 -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/bundler_discovery.rb +1 -0
  97. data/app/models/shipit/deploy_spec/capistrano_discovery.rb +1 -0
  98. data/app/models/shipit/deploy_spec/file_system.rb +20 -7
  99. data/app/models/shipit/deploy_spec/kubernetes_discovery.rb +1 -0
  100. data/app/models/shipit/deploy_spec/lerna_discovery.rb +13 -4
  101. data/app/models/shipit/deploy_spec/npm_discovery.rb +5 -4
  102. data/app/models/shipit/deploy_spec/pypi_discovery.rb +1 -0
  103. data/app/models/shipit/deploy_spec/rubygems_discovery.rb +1 -0
  104. data/app/models/shipit/deploy_spec.rb +38 -7
  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/base.rb +30 -0
  115. data/app/models/shipit/provisioning_handler/unregistered_provisioning_handler.rb +35 -0
  116. data/app/models/shipit/provisioning_handler.rb +32 -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 +6 -0
  125. data/app/models/shipit/stack.rb +127 -45
  126. data/app/models/shipit/status/common.rb +7 -6
  127. data/app/models/shipit/status/group.rb +2 -1
  128. data/app/models/shipit/status/missing.rb +2 -1
  129. data/app/models/shipit/status/unknown.rb +2 -1
  130. data/app/models/shipit/status.rb +3 -2
  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/handlers/check_suite_handler.rb +1 -0
  141. data/app/models/shipit/webhooks/handlers/handler.rb +1 -0
  142. data/app/models/shipit/webhooks/handlers/membership_handler.rb +1 -0
  143. data/app/models/shipit/webhooks/handlers/pull_request/assigned_handler.rb +74 -0
  144. data/app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb +68 -0
  145. data/app/models/shipit/webhooks/handlers/pull_request/edited_handler.rb +74 -0
  146. data/app/models/shipit/webhooks/handlers/pull_request/label_capturing_handler.rb +127 -0
  147. data/app/models/shipit/webhooks/handlers/pull_request/labeled_handler.rb +106 -0
  148. data/app/models/shipit/webhooks/handlers/pull_request/opened_handler.rb +83 -0
  149. data/app/models/shipit/webhooks/handlers/pull_request/reopened_handler.rb +88 -0
  150. data/app/models/shipit/webhooks/handlers/pull_request/review_stack_adapter.rb +103 -0
  151. data/app/models/shipit/webhooks/handlers/pull_request/unlabeled_handler.rb +107 -0
  152. data/app/models/shipit/webhooks/handlers/push_handler.rb +5 -1
  153. data/app/models/shipit/webhooks/handlers/status_handler.rb +1 -0
  154. data/app/models/shipit/webhooks.rb +11 -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 +8 -2
  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 +3 -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/db/migrate/20210823075617_change_check_runs_github_updated_at_default.rb +5 -0
  220. data/lib/shipit/cast_value.rb +1 -0
  221. data/lib/shipit/command.rb +19 -17
  222. data/lib/shipit/commands.rb +23 -9
  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 +2 -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 +39 -9
  240. data/lib/shipit/stat.rb +1 -0
  241. data/lib/shipit/task_commands.rb +9 -0
  242. data/lib/shipit/version.rb +2 -1
  243. data/lib/shipit.rb +61 -17
  244. data/lib/snippets/publish-lerna-independent-packages +35 -34
  245. data/lib/snippets/publish-lerna-independent-packages-legacy +39 -0
  246. data/lib/snippets/release-gem +5 -1
  247. data/lib/tasks/cron.rake +13 -2
  248. data/lib/tasks/dev.rake +3 -2
  249. data/lib/tasks/shipit.rake +15 -14
  250. data/lib/tasks/teams.rake +1 -0
  251. data/test/controllers/api/base_controller_test.rb +3 -2
  252. data/test/controllers/api/ccmenu_controller_test.rb +9 -8
  253. data/test/controllers/api/commits_controller_test.rb +3 -2
  254. data/test/controllers/api/deploys_controller_test.rb +32 -14
  255. data/test/controllers/api/hooks_controller_test.rb +8 -7
  256. data/test/controllers/api/locks_controller_test.rb +7 -6
  257. data/test/controllers/api/{pull_requests_controller_test.rb → merge_requests_controller_test.rb} +17 -16
  258. data/test/controllers/api/outputs_controller_test.rb +3 -1
  259. data/test/controllers/api/release_statuses_controller_test.rb +2 -1
  260. data/test/controllers/api/rollback_controller_test.rb +113 -0
  261. data/test/controllers/api/stacks_controller_test.rb +71 -16
  262. data/test/controllers/api/tasks_controller_test.rb +13 -12
  263. data/test/controllers/api_clients_controller_test.rb +5 -4
  264. data/test/controllers/ccmenu_controller_test.rb +4 -3
  265. data/test/controllers/commit_checks_controller_test.rb +4 -3
  266. data/test/controllers/commits_controller_test.rb +3 -2
  267. data/test/controllers/deploys_controller_test.rb +32 -21
  268. data/test/controllers/github_authentication_controller_test.rb +1 -0
  269. data/test/controllers/merge_requests_controller_test.rb +32 -0
  270. data/test/controllers/merge_status_controller_test.rb +7 -6
  271. data/test/controllers/release_statuses_controller_test.rb +3 -2
  272. data/test/controllers/repositories_controller_test.rb +71 -0
  273. data/test/controllers/rollbacks_controller_test.rb +9 -8
  274. data/test/controllers/stacks_controller_test.rb +41 -19
  275. data/test/controllers/status_controller_test.rb +1 -0
  276. data/test/controllers/tasks_controller_test.rb +32 -19
  277. data/test/controllers/webhooks_controller_test.rb +33 -17
  278. data/test/dummy/app/assets/config/manifest.js +3 -0
  279. data/test/dummy/config/application.rb +7 -2
  280. data/test/dummy/config/database.yml +9 -0
  281. data/test/dummy/config/environments/development.rb +3 -4
  282. data/test/dummy/config/environments/test.rb +2 -5
  283. data/test/dummy/config/secrets_double_github_app.yml +79 -0
  284. data/test/dummy/db/schema.rb +59 -17
  285. data/test/dummy/db/seeds.rb +2 -1
  286. data/test/fixtures/payloads/check_suite_master.json +4 -32
  287. data/test/fixtures/payloads/invalid_pull_request.json +117 -0
  288. data/test/fixtures/payloads/provision_disabled_pull_request.json +454 -0
  289. data/test/fixtures/payloads/pull_request_assigned.json +480 -0
  290. data/test/fixtures/payloads/pull_request_closed.json +454 -0
  291. data/test/fixtures/payloads/pull_request_labeled.json +461 -0
  292. data/test/fixtures/payloads/pull_request_opened.json +454 -0
  293. data/test/fixtures/payloads/pull_request_reopened.json +454 -0
  294. data/test/fixtures/payloads/pull_request_unlabeled.json +454 -0
  295. data/test/fixtures/payloads/pull_request_with_no_repo.json +454 -0
  296. data/test/fixtures/payloads/push_master.json +1 -1
  297. data/test/fixtures/payloads/push_not_master.json +1 -1
  298. data/test/fixtures/shipit/commits.yml +31 -3
  299. data/test/fixtures/shipit/hooks.yml +1 -0
  300. data/test/fixtures/shipit/merge_requests.yml +141 -0
  301. data/test/fixtures/shipit/pull_request_assignments.yml +3 -0
  302. data/test/fixtures/shipit/pull_requests.yml +10 -131
  303. data/test/fixtures/shipit/repositories.yml +5 -0
  304. data/test/fixtures/shipit/stacks.yml +235 -14
  305. data/test/fixtures/shipit/statuses.yml +9 -0
  306. data/test/fixtures/shipit/tasks.yml +4 -1
  307. data/test/fixtures/shipit/users.yml +7 -0
  308. data/test/fixtures/timeout +2 -1
  309. data/test/helpers/api_helper.rb +1 -0
  310. data/test/helpers/fixture_aliases_helper.rb +1 -0
  311. data/test/helpers/hooks_helper.rb +2 -1
  312. data/test/helpers/json_helper.rb +20 -12
  313. data/test/helpers/links_helper.rb +4 -3
  314. data/test/helpers/payloads_helper.rb +5 -0
  315. data/test/helpers/queries_helper.rb +3 -2
  316. data/test/jobs/cache_deploy_spec_job_test.rb +2 -1
  317. data/test/jobs/chunk_rollup_job_test.rb +16 -1
  318. data/test/jobs/deliver_hook_job_test.rb +1 -0
  319. data/test/jobs/destroy_repository_job_test.rb +27 -0
  320. data/test/jobs/destroy_stack_job_test.rb +1 -0
  321. data/test/jobs/emit_event_job_test.rb +2 -1
  322. data/test/jobs/fetch_commit_stats_job_test.rb +1 -0
  323. data/test/jobs/fetch_deployed_revision_job_test.rb +1 -0
  324. data/test/jobs/github_sync_job_test.rb +3 -1
  325. data/test/jobs/mark_deploy_healthy_job_test.rb +1 -0
  326. data/test/jobs/perform_task_job_test.rb +12 -11
  327. data/test/jobs/{merge_pull_requests_job_test.rb → process_merge_requests_job_test.rb} +19 -18
  328. data/test/jobs/purge_old_deliveries_job_test.rb +1 -0
  329. data/test/jobs/reap_dead_tasks_job_test.rb +68 -0
  330. data/test/jobs/refresh_github_user_job_test.rb +1 -0
  331. data/test/jobs/refresh_status_job_test.rb +1 -0
  332. data/test/jobs/unique_job_test.rb +1 -0
  333. data/test/jobs/update_github_last_deployed_ref_job_test.rb +1 -0
  334. data/test/lib/shipit/deploy_commands_test.rb +16 -0
  335. data/test/lib/shipit/task_commands_test.rb +17 -0
  336. data/test/middleware/same_site_cookie_middleware_test.rb +52 -0
  337. data/test/models/api_client_test.rb +1 -0
  338. data/test/models/commit_checks_test.rb +1 -0
  339. data/test/models/commit_deployment_status_test.rb +4 -3
  340. data/test/models/commit_deployment_test.rb +2 -1
  341. data/test/models/commits_test.rb +96 -19
  342. data/test/models/delivery_test.rb +2 -1
  343. data/test/models/deploy_spec_test.rb +110 -65
  344. data/test/models/deploy_stats_test.rb +1 -0
  345. data/test/models/deploys_test.rb +219 -36
  346. data/test/models/duration_test.rb +1 -0
  347. data/test/models/github_hook_test.rb +1 -0
  348. data/test/models/hook_test.rb +47 -10
  349. data/test/models/membership_test.rb +1 -0
  350. data/test/models/{pull_request_test.rb → merge_request_test.rb} +53 -37
  351. data/test/models/pull_request_assignment_test.rb +16 -0
  352. data/test/models/release_statuses_test.rb +1 -0
  353. data/test/models/rollbacks_test.rb +1 -0
  354. data/test/models/shipit/check_run_test.rb +125 -5
  355. data/test/models/shipit/provisioning_handler/base_test.rb +33 -0
  356. data/test/models/shipit/provisioning_handler/unregistered_provisioning_handler_test.rb +49 -0
  357. data/test/models/shipit/provisioning_handler_test.rb +64 -0
  358. data/test/models/shipit/pull_request_test.rb +52 -0
  359. data/test/models/shipit/repository_test.rb +6 -1
  360. data/test/models/shipit/review_stack_provision_status_test.rb +77 -0
  361. data/test/models/shipit/review_stack_provisioning_queue_test.rb +63 -0
  362. data/test/models/shipit/review_stack_test.rb +91 -0
  363. data/test/models/{stacks_test.rb → shipit/stacks_test.rb} +82 -16
  364. data/test/models/shipit/webhooks/handlers/pull_request/assigned_handler_test.rb +45 -0
  365. data/test/models/shipit/webhooks/handlers/pull_request/closed_handler_test.rb +192 -0
  366. data/test/models/shipit/webhooks/handlers/pull_request/edited_handler_test.rb +47 -0
  367. data/test/models/shipit/webhooks/handlers/pull_request/label_capturing_handler_test.rb +209 -0
  368. data/test/models/shipit/webhooks/handlers/pull_request/labeled_handler_test.rb +332 -0
  369. data/test/models/shipit/webhooks/handlers/pull_request/opened_handler_test.rb +238 -0
  370. data/test/models/shipit/webhooks/handlers/pull_request/reopened_handler_test.rb +282 -0
  371. data/test/models/shipit/webhooks/handlers/pull_request/review_stack_adapter_test.rb +107 -0
  372. data/test/models/shipit/webhooks/handlers/pull_request/unlabeled_handler_test.rb +324 -0
  373. data/test/models/shipit/{wehbooks → webhooks}/handlers_test.rb +1 -0
  374. data/test/models/status/group_test.rb +1 -0
  375. data/test/models/status/missing_test.rb +1 -0
  376. data/test/models/status_test.rb +1 -0
  377. data/test/models/task_definitions_test.rb +9 -8
  378. data/test/models/tasks_test.rb +81 -1
  379. data/test/models/team_test.rb +4 -2
  380. data/test/models/undeployed_commits_test.rb +1 -0
  381. data/test/models/users_test.rb +13 -5
  382. data/test/serializers/shipit/pull_request_serializer_test.rb +29 -0
  383. data/test/test_command_integration.rb +3 -2
  384. data/test/test_helper.rb +49 -31
  385. data/test/unit/anonymous_user_serializer_test.rb +14 -0
  386. data/test/unit/command_test.rb +16 -10
  387. data/test/unit/commands_test.rb +1 -0
  388. data/test/unit/commit_serializer_test.rb +16 -0
  389. data/test/unit/csv_serializer_test.rb +3 -2
  390. data/test/unit/deploy_commands_test.rb +77 -20
  391. data/test/unit/deploy_serializer_test.rb +17 -0
  392. data/test/unit/environment_variables_test.rb +5 -4
  393. data/test/unit/github_app_test.rb +3 -3
  394. data/test/unit/github_apps_test.rb +416 -0
  395. data/test/unit/github_url_helper_test.rb +6 -0
  396. data/test/unit/rollback_commands_test.rb +2 -1
  397. data/test/unit/shipit_deployment_checks_test.rb +77 -0
  398. data/test/unit/shipit_helper_test.rb +17 -0
  399. data/test/unit/shipit_task_execution_strategy_test.rb +47 -0
  400. data/test/unit/shipit_test.rb +15 -0
  401. data/test/unit/user_serializer_test.rb +14 -0
  402. data/test/unit/variable_definition_test.rb +1 -0
  403. metadata +325 -182
  404. data/app/controllers/shipit/api/pull_requests_controller.rb +0 -36
  405. data/app/controllers/shipit/pull_requests_controller.rb +0 -30
  406. data/app/jobs/shipit/merge_pull_requests_job.rb +0 -31
  407. data/app/jobs/shipit/refresh_pull_request_job.rb +0 -10
  408. data/app/views/shipit/pull_requests/_pull_request.html.erb +0 -29
  409. data/test/controllers/pull_requests_controller_test.rb +0 -31
  410. data/test/fixtures/shipit/output_chunks.yml +0 -47
  411. 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.31.0
4
+ version: 0.35.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-13 00:00:00.000000000 Z
11
+ date: 2021-09-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,42 +142,42 @@ 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
@@ -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,20 @@ 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
771
+ - db/migrate/20210823075617_change_check_runs_github_updated_at_default.rb
721
772
  - lib/shipit-engine.rb
722
773
  - lib/shipit.rb
723
774
  - lib/shipit/cast_value.rb
@@ -736,7 +787,9 @@ files:
736
787
  - lib/shipit/octokit_check_runs.rb
737
788
  - lib/shipit/octokit_iterator.rb
738
789
  - lib/shipit/paginator.rb
790
+ - lib/shipit/review_stack_commands.rb
739
791
  - lib/shipit/rollback_commands.rb
792
+ - lib/shipit/same_site_cookie_middleware.rb
740
793
  - lib/shipit/simple_message_verifier.rb
741
794
  - lib/shipit/stack_commands.rb
742
795
  - lib/shipit/stat.rb
@@ -755,6 +808,7 @@ files:
755
808
  - lib/snippets/git-askpass
756
809
  - lib/snippets/misconfigured-npm-publish-config
757
810
  - lib/snippets/publish-lerna-independent-packages
811
+ - lib/snippets/publish-lerna-independent-packages-legacy
758
812
  - lib/snippets/push-to-heroku
759
813
  - lib/snippets/release-gem
760
814
  - lib/tasks/cron.rake
@@ -767,9 +821,10 @@ files:
767
821
  - test/controllers/api/deploys_controller_test.rb
768
822
  - test/controllers/api/hooks_controller_test.rb
769
823
  - test/controllers/api/locks_controller_test.rb
824
+ - test/controllers/api/merge_requests_controller_test.rb
770
825
  - test/controllers/api/outputs_controller_test.rb
771
- - test/controllers/api/pull_requests_controller_test.rb
772
826
  - test/controllers/api/release_statuses_controller_test.rb
827
+ - test/controllers/api/rollback_controller_test.rb
773
828
  - test/controllers/api/stacks_controller_test.rb
774
829
  - test/controllers/api/tasks_controller_test.rb
775
830
  - test/controllers/api_clients_controller_test.rb
@@ -778,15 +833,17 @@ files:
778
833
  - test/controllers/commits_controller_test.rb
779
834
  - test/controllers/deploys_controller_test.rb
780
835
  - test/controllers/github_authentication_controller_test.rb
836
+ - test/controllers/merge_requests_controller_test.rb
781
837
  - test/controllers/merge_status_controller_test.rb
782
- - test/controllers/pull_requests_controller_test.rb
783
838
  - test/controllers/release_statuses_controller_test.rb
839
+ - test/controllers/repositories_controller_test.rb
784
840
  - test/controllers/rollbacks_controller_test.rb
785
841
  - test/controllers/stacks_controller_test.rb
786
842
  - test/controllers/status_controller_test.rb
787
843
  - test/controllers/tasks_controller_test.rb
788
844
  - test/controllers/webhooks_controller_test.rb
789
845
  - test/dummy/Rakefile
846
+ - test/dummy/app/assets/config/manifest.js
790
847
  - test/dummy/app/assets/javascripts/application.js
791
848
  - test/dummy/app/assets/stylesheets/application.css
792
849
  - test/dummy/app/controllers/application_controller.rb
@@ -818,6 +875,7 @@ files:
818
875
  - test/dummy/config/locales/en.yml
819
876
  - test/dummy/config/routes.rb
820
877
  - test/dummy/config/secrets.yml
878
+ - test/dummy/config/secrets_double_github_app.yml
821
879
  - test/dummy/db/schema.rb
822
880
  - test/dummy/db/seeds.rb
823
881
  - test/dummy/public/404.html
@@ -825,6 +883,15 @@ files:
825
883
  - test/dummy/public/500.html
826
884
  - test/dummy/public/favicon.ico
827
885
  - test/fixtures/payloads/check_suite_master.json
886
+ - test/fixtures/payloads/invalid_pull_request.json
887
+ - test/fixtures/payloads/provision_disabled_pull_request.json
888
+ - test/fixtures/payloads/pull_request_assigned.json
889
+ - test/fixtures/payloads/pull_request_closed.json
890
+ - test/fixtures/payloads/pull_request_labeled.json
891
+ - test/fixtures/payloads/pull_request_opened.json
892
+ - test/fixtures/payloads/pull_request_reopened.json
893
+ - test/fixtures/payloads/pull_request_unlabeled.json
894
+ - test/fixtures/payloads/pull_request_with_no_repo.json
828
895
  - test/fixtures/payloads/push_master.json
829
896
  - test/fixtures/payloads/push_not_master.json
830
897
  - test/fixtures/payloads/status_master.json
@@ -837,7 +904,8 @@ files:
837
904
  - test/fixtures/shipit/github_hooks.yml
838
905
  - test/fixtures/shipit/hooks.yml
839
906
  - test/fixtures/shipit/memberships.yml
840
- - test/fixtures/shipit/output_chunks.yml
907
+ - test/fixtures/shipit/merge_requests.yml
908
+ - test/fixtures/shipit/pull_request_assignments.yml
841
909
  - test/fixtures/shipit/pull_requests.yml
842
910
  - test/fixtures/shipit/release_statuses.yml
843
911
  - test/fixtures/shipit/repositories.yml
@@ -857,19 +925,24 @@ files:
857
925
  - test/jobs/cache_deploy_spec_job_test.rb
858
926
  - test/jobs/chunk_rollup_job_test.rb
859
927
  - test/jobs/deliver_hook_job_test.rb
928
+ - test/jobs/destroy_repository_job_test.rb
860
929
  - test/jobs/destroy_stack_job_test.rb
861
930
  - test/jobs/emit_event_job_test.rb
862
931
  - test/jobs/fetch_commit_stats_job_test.rb
863
932
  - test/jobs/fetch_deployed_revision_job_test.rb
864
933
  - test/jobs/github_sync_job_test.rb
865
934
  - test/jobs/mark_deploy_healthy_job_test.rb
866
- - test/jobs/merge_pull_requests_job_test.rb
867
935
  - test/jobs/perform_task_job_test.rb
936
+ - test/jobs/process_merge_requests_job_test.rb
868
937
  - test/jobs/purge_old_deliveries_job_test.rb
938
+ - test/jobs/reap_dead_tasks_job_test.rb
869
939
  - test/jobs/refresh_github_user_job_test.rb
870
940
  - test/jobs/refresh_status_job_test.rb
871
941
  - test/jobs/unique_job_test.rb
872
942
  - test/jobs/update_github_last_deployed_ref_job_test.rb
943
+ - test/lib/shipit/deploy_commands_test.rb
944
+ - test/lib/shipit/task_commands_test.rb
945
+ - test/middleware/same_site_cookie_middleware_test.rb
873
946
  - test/models/api_client_test.rb
874
947
  - test/models/commit_checks_test.rb
875
948
  - test/models/commit_deployment_status_test.rb
@@ -883,14 +956,30 @@ files:
883
956
  - test/models/github_hook_test.rb
884
957
  - test/models/hook_test.rb
885
958
  - test/models/membership_test.rb
886
- - test/models/output_chunk_test.rb
887
- - test/models/pull_request_test.rb
959
+ - test/models/merge_request_test.rb
960
+ - test/models/pull_request_assignment_test.rb
888
961
  - test/models/release_statuses_test.rb
889
962
  - test/models/rollbacks_test.rb
890
963
  - test/models/shipit/check_run_test.rb
964
+ - test/models/shipit/provisioning_handler/base_test.rb
965
+ - test/models/shipit/provisioning_handler/unregistered_provisioning_handler_test.rb
966
+ - test/models/shipit/provisioning_handler_test.rb
967
+ - test/models/shipit/pull_request_test.rb
891
968
  - test/models/shipit/repository_test.rb
892
- - test/models/shipit/wehbooks/handlers_test.rb
893
- - test/models/stacks_test.rb
969
+ - test/models/shipit/review_stack_provision_status_test.rb
970
+ - test/models/shipit/review_stack_provisioning_queue_test.rb
971
+ - test/models/shipit/review_stack_test.rb
972
+ - test/models/shipit/stacks_test.rb
973
+ - test/models/shipit/webhooks/handlers/pull_request/assigned_handler_test.rb
974
+ - test/models/shipit/webhooks/handlers/pull_request/closed_handler_test.rb
975
+ - test/models/shipit/webhooks/handlers/pull_request/edited_handler_test.rb
976
+ - test/models/shipit/webhooks/handlers/pull_request/label_capturing_handler_test.rb
977
+ - test/models/shipit/webhooks/handlers/pull_request/labeled_handler_test.rb
978
+ - test/models/shipit/webhooks/handlers/pull_request/opened_handler_test.rb
979
+ - test/models/shipit/webhooks/handlers/pull_request/reopened_handler_test.rb
980
+ - test/models/shipit/webhooks/handlers/pull_request/review_stack_adapter_test.rb
981
+ - test/models/shipit/webhooks/handlers/pull_request/unlabeled_handler_test.rb
982
+ - test/models/shipit/webhooks/handlers_test.rb
894
983
  - test/models/status/group_test.rb
895
984
  - test/models/status/missing_test.rb
896
985
  - test/models/status_test.rb
@@ -899,18 +988,27 @@ files:
899
988
  - test/models/team_test.rb
900
989
  - test/models/undeployed_commits_test.rb
901
990
  - test/models/users_test.rb
991
+ - test/serializers/shipit/pull_request_serializer_test.rb
902
992
  - test/test_command_integration.rb
903
993
  - test/test_helper.rb
994
+ - test/unit/anonymous_user_serializer_test.rb
904
995
  - test/unit/command_test.rb
905
996
  - test/unit/commands_test.rb
997
+ - test/unit/commit_serializer_test.rb
906
998
  - test/unit/csv_serializer_test.rb
907
999
  - test/unit/deploy_commands_test.rb
1000
+ - test/unit/deploy_serializer_test.rb
908
1001
  - test/unit/environment_variables_test.rb
909
1002
  - test/unit/github_app_test.rb
1003
+ - test/unit/github_apps_test.rb
910
1004
  - test/unit/github_url_helper_test.rb
911
1005
  - test/unit/line_buffer_test.rb
912
1006
  - test/unit/rollback_commands_test.rb
1007
+ - test/unit/shipit_deployment_checks_test.rb
1008
+ - test/unit/shipit_helper_test.rb
1009
+ - test/unit/shipit_task_execution_strategy_test.rb
913
1010
  - test/unit/shipit_test.rb
1011
+ - test/unit/user_serializer_test.rb
914
1012
  - test/unit/variable_definition_test.rb
915
1013
  - vendor/assets/javascripts/clusterize.js
916
1014
  - vendor/assets/javascripts/jquery-notify.js
@@ -921,7 +1019,8 @@ files:
921
1019
  homepage: https://github.com/shopify/shipit-engine
922
1020
  licenses:
923
1021
  - MIT
924
- metadata: {}
1022
+ metadata:
1023
+ allowed_push_host: https://rubygems.org
925
1024
  post_install_message:
926
1025
  rdoc_options: []
927
1026
  require_paths:
@@ -937,159 +1036,203 @@ required_rubygems_version: !ruby/object:Gem::Requirement
937
1036
  - !ruby/object:Gem::Version
938
1037
  version: '0'
939
1038
  requirements: []
940
- rubygems_version: 3.0.3
1039
+ rubygems_version: 3.2.20
941
1040
  signing_key:
942
1041
  specification_version: 4
943
1042
  summary: Application deployment software
944
1043
  test_files:
945
- - test/controllers/release_statuses_controller_test.rb
946
- - test/controllers/status_controller_test.rb
947
- - test/controllers/github_authentication_controller_test.rb
948
- - test/controllers/pull_requests_controller_test.rb
949
- - test/controllers/tasks_controller_test.rb
950
- - test/controllers/commits_controller_test.rb
951
- - test/controllers/merge_status_controller_test.rb
952
- - test/controllers/webhooks_controller_test.rb
953
- - test/controllers/deploys_controller_test.rb
954
- - test/controllers/api_clients_controller_test.rb
1044
+ - test/test_helper.rb
1045
+ - test/models/undeployed_commits_test.rb
1046
+ - test/models/pull_request_assignment_test.rb
1047
+ - test/models/commits_test.rb
1048
+ - test/models/membership_test.rb
1049
+ - test/models/status/group_test.rb
1050
+ - test/models/status/missing_test.rb
1051
+ - test/models/api_client_test.rb
1052
+ - test/models/deploys_test.rb
1053
+ - test/models/shipit/stacks_test.rb
1054
+ - test/models/shipit/review_stack_provision_status_test.rb
1055
+ - test/models/shipit/review_stack_provisioning_queue_test.rb
1056
+ - test/models/shipit/provisioning_handler_test.rb
1057
+ - test/models/shipit/provisioning_handler/base_test.rb
1058
+ - test/models/shipit/provisioning_handler/unregistered_provisioning_handler_test.rb
1059
+ - test/models/shipit/review_stack_test.rb
1060
+ - test/models/shipit/webhooks/handlers_test.rb
1061
+ - test/models/shipit/webhooks/handlers/pull_request/assigned_handler_test.rb
1062
+ - test/models/shipit/webhooks/handlers/pull_request/edited_handler_test.rb
1063
+ - test/models/shipit/webhooks/handlers/pull_request/reopened_handler_test.rb
1064
+ - test/models/shipit/webhooks/handlers/pull_request/opened_handler_test.rb
1065
+ - test/models/shipit/webhooks/handlers/pull_request/unlabeled_handler_test.rb
1066
+ - test/models/shipit/webhooks/handlers/pull_request/closed_handler_test.rb
1067
+ - test/models/shipit/webhooks/handlers/pull_request/label_capturing_handler_test.rb
1068
+ - test/models/shipit/webhooks/handlers/pull_request/review_stack_adapter_test.rb
1069
+ - test/models/shipit/webhooks/handlers/pull_request/labeled_handler_test.rb
1070
+ - test/models/shipit/check_run_test.rb
1071
+ - test/models/shipit/pull_request_test.rb
1072
+ - test/models/shipit/repository_test.rb
1073
+ - test/models/delivery_test.rb
1074
+ - test/models/deploy_stats_test.rb
1075
+ - test/models/release_statuses_test.rb
1076
+ - test/models/team_test.rb
1077
+ - test/models/rollbacks_test.rb
1078
+ - test/models/users_test.rb
1079
+ - test/models/deploy_spec_test.rb
1080
+ - test/models/commit_checks_test.rb
1081
+ - test/models/status_test.rb
1082
+ - test/models/github_hook_test.rb
1083
+ - test/models/duration_test.rb
1084
+ - test/models/task_definitions_test.rb
1085
+ - test/models/commit_deployment_status_test.rb
1086
+ - test/models/hook_test.rb
1087
+ - test/models/merge_request_test.rb
1088
+ - test/models/commit_deployment_test.rb
1089
+ - test/models/tasks_test.rb
955
1090
  - test/controllers/ccmenu_controller_test.rb
956
- - test/controllers/api/release_statuses_controller_test.rb
957
- - test/controllers/api/locks_controller_test.rb
958
- - test/controllers/api/base_controller_test.rb
959
- - test/controllers/api/outputs_controller_test.rb
960
- - test/controllers/api/pull_requests_controller_test.rb
961
- - test/controllers/api/tasks_controller_test.rb
1091
+ - test/controllers/api/ccmenu_controller_test.rb
962
1092
  - test/controllers/api/hooks_controller_test.rb
1093
+ - test/controllers/api/tasks_controller_test.rb
1094
+ - test/controllers/api/merge_requests_controller_test.rb
1095
+ - test/controllers/api/outputs_controller_test.rb
1096
+ - test/controllers/api/base_controller_test.rb
963
1097
  - test/controllers/api/commits_controller_test.rb
1098
+ - test/controllers/api/release_statuses_controller_test.rb
1099
+ - test/controllers/api/rollback_controller_test.rb
964
1100
  - test/controllers/api/deploys_controller_test.rb
965
- - test/controllers/api/ccmenu_controller_test.rb
1101
+ - test/controllers/api/locks_controller_test.rb
966
1102
  - test/controllers/api/stacks_controller_test.rb
1103
+ - test/controllers/tasks_controller_test.rb
1104
+ - test/controllers/merge_requests_controller_test.rb
967
1105
  - test/controllers/rollbacks_controller_test.rb
1106
+ - test/controllers/commits_controller_test.rb
1107
+ - test/controllers/release_statuses_controller_test.rb
1108
+ - test/controllers/webhooks_controller_test.rb
1109
+ - test/controllers/github_authentication_controller_test.rb
1110
+ - test/controllers/status_controller_test.rb
1111
+ - test/controllers/api_clients_controller_test.rb
968
1112
  - test/controllers/commit_checks_controller_test.rb
1113
+ - test/controllers/repositories_controller_test.rb
1114
+ - test/controllers/deploys_controller_test.rb
969
1115
  - test/controllers/stacks_controller_test.rb
970
- - test/unit/csv_serializer_test.rb
971
- - test/unit/variable_definition_test.rb
1116
+ - test/controllers/merge_status_controller_test.rb
1117
+ - test/fixtures/timeout
1118
+ - test/fixtures/shipit/check_runs.yml
1119
+ - test/fixtures/shipit/teams.yml
1120
+ - test/fixtures/shipit/repositories.yml
1121
+ - test/fixtures/shipit/commits.yml
1122
+ - test/fixtures/shipit/deliveries.yml
1123
+ - test/fixtures/shipit/memberships.yml
1124
+ - test/fixtures/shipit/merge_requests.yml
1125
+ - test/fixtures/shipit/tasks.yml
1126
+ - test/fixtures/shipit/pull_requests.yml
1127
+ - test/fixtures/shipit/statuses.yml
1128
+ - test/fixtures/shipit/release_statuses.yml
1129
+ - test/fixtures/shipit/users.yml
1130
+ - test/fixtures/shipit/api_clients.yml
1131
+ - test/fixtures/shipit/pull_request_assignments.yml
1132
+ - test/fixtures/shipit/commit_deployments.yml
1133
+ - test/fixtures/shipit/commit_deployment_statuses.yml
1134
+ - test/fixtures/shipit/github_hooks.yml
1135
+ - test/fixtures/shipit/hooks.yml
1136
+ - test/fixtures/shipit/stacks.yml
1137
+ - test/fixtures/payloads/check_suite_master.json
1138
+ - test/fixtures/payloads/pull_request_labeled.json
1139
+ - test/fixtures/payloads/pull_request_unlabeled.json
1140
+ - test/fixtures/payloads/pull_request_opened.json
1141
+ - test/fixtures/payloads/invalid_pull_request.json
1142
+ - test/fixtures/payloads/pull_request_closed.json
1143
+ - test/fixtures/payloads/pull_request_assigned.json
1144
+ - test/fixtures/payloads/status_master.json
1145
+ - test/fixtures/payloads/push_master.json
1146
+ - test/fixtures/payloads/provision_disabled_pull_request.json
1147
+ - test/fixtures/payloads/pull_request_with_no_repo.json
1148
+ - test/fixtures/payloads/pull_request_reopened.json
1149
+ - test/fixtures/payloads/push_not_master.json
1150
+ - test/middleware/same_site_cookie_middleware_test.rb
1151
+ - test/unit/shipit_task_execution_strategy_test.rb
972
1152
  - test/unit/commands_test.rb
973
- - test/unit/shipit_test.rb
974
- - test/unit/command_test.rb
975
- - test/unit/environment_variables_test.rb
1153
+ - test/unit/rollback_commands_test.rb
976
1154
  - test/unit/github_url_helper_test.rb
1155
+ - test/unit/variable_definition_test.rb
1156
+ - test/unit/environment_variables_test.rb
1157
+ - test/unit/shipit_deployment_checks_test.rb
1158
+ - test/unit/line_buffer_test.rb
1159
+ - test/unit/anonymous_user_serializer_test.rb
977
1160
  - test/unit/github_app_test.rb
1161
+ - test/unit/user_serializer_test.rb
1162
+ - test/unit/deploy_serializer_test.rb
1163
+ - test/unit/commit_serializer_test.rb
1164
+ - test/unit/github_apps_test.rb
1165
+ - test/unit/shipit_test.rb
1166
+ - test/unit/shipit_helper_test.rb
1167
+ - test/unit/command_test.rb
1168
+ - test/unit/csv_serializer_test.rb
978
1169
  - test/unit/deploy_commands_test.rb
979
- - test/unit/rollback_commands_test.rb
980
- - test/unit/line_buffer_test.rb
981
- - test/test_helper.rb
982
- - test/jobs/refresh_status_job_test.rb
983
- - test/jobs/chunk_rollup_job_test.rb
984
- - test/jobs/deliver_hook_job_test.rb
985
- - test/jobs/emit_event_job_test.rb
986
- - test/jobs/perform_task_job_test.rb
987
- - test/jobs/mark_deploy_healthy_job_test.rb
988
- - test/jobs/destroy_stack_job_test.rb
989
- - test/jobs/purge_old_deliveries_job_test.rb
990
- - test/jobs/update_github_last_deployed_ref_job_test.rb
991
- - test/jobs/github_sync_job_test.rb
992
- - test/jobs/unique_job_test.rb
993
- - test/jobs/refresh_github_user_job_test.rb
994
- - test/jobs/merge_pull_requests_job_test.rb
995
- - test/jobs/fetch_deployed_revision_job_test.rb
996
- - test/jobs/fetch_commit_stats_job_test.rb
997
- - test/jobs/cache_deploy_spec_job_test.rb
998
- - test/models/status/missing_test.rb
999
- - test/models/status/group_test.rb
1000
- - test/models/tasks_test.rb
1001
- - test/models/github_hook_test.rb
1002
- - test/models/duration_test.rb
1003
- - test/models/output_chunk_test.rb
1004
- - test/models/task_definitions_test.rb
1005
- - test/models/team_test.rb
1006
- - test/models/release_statuses_test.rb
1007
- - test/models/commits_test.rb
1008
- - test/models/commit_deployment_test.rb
1009
- - test/models/deploy_spec_test.rb
1010
- - test/models/commit_deployment_status_test.rb
1011
- - test/models/api_client_test.rb
1012
- - test/models/membership_test.rb
1013
- - test/models/undeployed_commits_test.rb
1014
- - test/models/commit_checks_test.rb
1015
- - test/models/delivery_test.rb
1016
- - test/models/status_test.rb
1017
- - test/models/stacks_test.rb
1018
- - test/models/deploy_stats_test.rb
1019
- - test/models/deploys_test.rb
1020
- - test/models/hook_test.rb
1021
- - test/models/shipit/repository_test.rb
1022
- - test/models/shipit/wehbooks/handlers_test.rb
1023
- - test/models/shipit/check_run_test.rb
1024
- - test/models/pull_request_test.rb
1025
- - test/models/users_test.rb
1026
- - test/models/rollbacks_test.rb
1027
- - test/helpers/fixture_aliases_helper.rb
1028
- - test/helpers/queries_helper.rb
1029
- - test/helpers/api_helper.rb
1030
- - test/helpers/payloads_helper.rb
1031
1170
  - test/helpers/links_helper.rb
1171
+ - test/helpers/api_helper.rb
1032
1172
  - test/helpers/hooks_helper.rb
1173
+ - test/helpers/payloads_helper.rb
1174
+ - test/helpers/queries_helper.rb
1175
+ - test/helpers/fixture_aliases_helper.rb
1033
1176
  - test/helpers/json_helper.rb
1034
- - test/dummy/app/controllers/application_controller.rb
1035
- - test/dummy/app/helpers/application_helper.rb
1036
- - test/dummy/app/views/layouts/application.html.erb
1037
- - test/dummy/app/assets/stylesheets/application.css
1038
- - test/dummy/app/assets/javascripts/application.js
1039
- - test/dummy/bin/bundle
1040
- - test/dummy/bin/rake
1041
- - test/dummy/bin/rails
1042
- - test/dummy/bin/setup
1043
- - test/dummy/config/initializers/filter_parameter_logging.rb
1044
- - test/dummy/config/initializers/wrap_parameters.rb
1177
+ - test/test_command_integration.rb
1178
+ - test/dummy/Rakefile
1179
+ - test/dummy/config/database.postgresql.yml
1180
+ - test/dummy/config/locales/en.yml
1181
+ - test/dummy/config/routes.rb
1182
+ - test/dummy/config/application.rb
1183
+ - test/dummy/config/environments/development.rb
1184
+ - test/dummy/config/environments/test.rb
1185
+ - test/dummy/config/environments/production.rb
1186
+ - test/dummy/config/boot.rb
1187
+ - test/dummy/config/secrets_double_github_app.yml
1188
+ - test/dummy/config/database.yml
1189
+ - test/dummy/config/secrets.yml
1045
1190
  - test/dummy/config/initializers/0_load_development_secrets.rb
1046
- - test/dummy/config/initializers/backtrace_silencers.rb
1191
+ - test/dummy/config/initializers/wrap_parameters.rb
1047
1192
  - test/dummy/config/initializers/cookies_serializer.rb
1193
+ - test/dummy/config/initializers/inflections.rb
1194
+ - test/dummy/config/initializers/filter_parameter_logging.rb
1048
1195
  - test/dummy/config/initializers/session_store.rb
1049
- - test/dummy/config/initializers/assets.rb
1050
1196
  - test/dummy/config/initializers/mime_types.rb
1051
- - test/dummy/config/initializers/inflections.rb
1052
- - test/dummy/config/secrets.yml
1197
+ - test/dummy/config/initializers/assets.rb
1198
+ - test/dummy/config/initializers/backtrace_silencers.rb
1053
1199
  - test/dummy/config/database.mysql.yml
1054
- - test/dummy/config/application.rb
1055
- - test/dummy/config/database.postgresql.yml
1056
- - test/dummy/config/database.yml
1057
1200
  - test/dummy/config/environment.rb
1058
- - test/dummy/config/boot.rb
1059
- - test/dummy/config/locales/en.yml
1060
- - test/dummy/config/environments/development.rb
1061
- - test/dummy/config/environments/test.rb
1062
- - test/dummy/config/environments/production.rb
1063
- - test/dummy/config/routes.rb
1064
- - test/dummy/public/500.html
1065
1201
  - test/dummy/public/favicon.ico
1066
- - test/dummy/public/422.html
1067
1202
  - test/dummy/public/404.html
1068
- - test/dummy/db/schema.rb
1069
- - test/dummy/db/seeds.rb
1070
- - test/dummy/Rakefile
1203
+ - test/dummy/public/422.html
1204
+ - test/dummy/public/500.html
1205
+ - test/dummy/bin/rails
1206
+ - test/dummy/bin/rake
1207
+ - test/dummy/bin/setup
1208
+ - test/dummy/bin/bundle
1209
+ - test/dummy/app/controllers/application_controller.rb
1210
+ - test/dummy/app/helpers/application_helper.rb
1211
+ - test/dummy/app/assets/config/manifest.js
1212
+ - test/dummy/app/assets/javascripts/application.js
1213
+ - test/dummy/app/assets/stylesheets/application.css
1214
+ - test/dummy/app/views/layouts/application.html.erb
1071
1215
  - test/dummy/config.ru
1072
- - test/test_command_integration.rb
1073
- - test/fixtures/payloads/push_not_master.json
1074
- - test/fixtures/payloads/check_suite_master.json
1075
- - test/fixtures/payloads/push_master.json
1076
- - test/fixtures/payloads/status_master.json
1077
- - test/fixtures/timeout
1078
- - test/fixtures/shipit/memberships.yml
1079
- - test/fixtures/shipit/check_runs.yml
1080
- - test/fixtures/shipit/repositories.yml
1081
- - test/fixtures/shipit/tasks.yml
1082
- - test/fixtures/shipit/users.yml
1083
- - test/fixtures/shipit/statuses.yml
1084
- - test/fixtures/shipit/deliveries.yml
1085
- - test/fixtures/shipit/stacks.yml
1086
- - test/fixtures/shipit/pull_requests.yml
1087
- - test/fixtures/shipit/teams.yml
1088
- - test/fixtures/shipit/github_hooks.yml
1089
- - test/fixtures/shipit/hooks.yml
1090
- - test/fixtures/shipit/release_statuses.yml
1091
- - test/fixtures/shipit/commit_deployment_statuses.yml
1092
- - test/fixtures/shipit/commits.yml
1093
- - test/fixtures/shipit/commit_deployments.yml
1094
- - test/fixtures/shipit/api_clients.yml
1095
- - test/fixtures/shipit/output_chunks.yml
1216
+ - test/dummy/db/seeds.rb
1217
+ - test/dummy/db/schema.rb
1218
+ - test/jobs/mark_deploy_healthy_job_test.rb
1219
+ - test/jobs/refresh_status_job_test.rb
1220
+ - test/jobs/update_github_last_deployed_ref_job_test.rb
1221
+ - test/jobs/refresh_github_user_job_test.rb
1222
+ - test/jobs/perform_task_job_test.rb
1223
+ - test/jobs/cache_deploy_spec_job_test.rb
1224
+ - test/jobs/fetch_deployed_revision_job_test.rb
1225
+ - test/jobs/destroy_stack_job_test.rb
1226
+ - test/jobs/deliver_hook_job_test.rb
1227
+ - test/jobs/emit_event_job_test.rb
1228
+ - test/jobs/destroy_repository_job_test.rb
1229
+ - test/jobs/reap_dead_tasks_job_test.rb
1230
+ - test/jobs/github_sync_job_test.rb
1231
+ - test/jobs/chunk_rollup_job_test.rb
1232
+ - test/jobs/unique_job_test.rb
1233
+ - test/jobs/fetch_commit_stats_job_test.rb
1234
+ - test/jobs/purge_old_deliveries_job_test.rb
1235
+ - test/jobs/process_merge_requests_job_test.rb
1236
+ - test/serializers/shipit/pull_request_serializer_test.rb
1237
+ - test/lib/shipit/task_commands_test.rb
1238
+ - test/lib/shipit/deploy_commands_test.rb