houston-core 0.5.0.beta1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +0 -2
  3. data/.gitignore +3 -0
  4. data/Gemfile +1 -0
  5. data/Gemfile.lock +63 -62
  6. data/README.md +13 -121
  7. data/app/adapters/houston/adapters/ci_server/errors.rb +4 -4
  8. data/app/adapters/houston/adapters/ci_server/jenkins_adapter/job.rb +50 -50
  9. data/app/adapters/houston/adapters/ci_server/jenkins_adapter.rb +4 -4
  10. data/app/adapters/houston/adapters/ci_server/none_adapter/job.rb +5 -5
  11. data/app/adapters/houston/adapters/ci_server/none_adapter.rb +4 -4
  12. data/app/adapters/houston/adapters/deployment/engineyard.rb +20 -20
  13. data/app/adapters/houston/adapters/error_tracker/errbit_adapter/app.rb +14 -14
  14. data/app/adapters/houston/adapters/error_tracker/errbit_adapter/connection.rb +41 -41
  15. data/app/adapters/houston/adapters/error_tracker/errbit_adapter/notice.rb +6 -6
  16. data/app/adapters/houston/adapters/error_tracker/errbit_adapter/problem.rb +25 -25
  17. data/app/adapters/houston/adapters/error_tracker/errbit_adapter.rb +20 -20
  18. data/app/adapters/houston/adapters/error_tracker/none_adapter.rb +8 -8
  19. data/app/adapters/houston/adapters/error_tracker/null_app.rb +13 -13
  20. data/app/adapters/houston/adapters/ticket_tracker/errors.rb +5 -5
  21. data/app/adapters/houston/adapters/ticket_tracker/github_adapter/connection.rb +41 -41
  22. data/app/adapters/houston/adapters/ticket_tracker/github_adapter/issue.rb +22 -22
  23. data/app/adapters/houston/adapters/ticket_tracker/github_adapter.rb +7 -7
  24. data/app/adapters/houston/adapters/ticket_tracker/houston_adapter/connection.rb +13 -13
  25. data/app/adapters/houston/adapters/ticket_tracker/houston_adapter/ticket.rb +15 -15
  26. data/app/adapters/houston/adapters/ticket_tracker/houston_adapter.rb +4 -4
  27. data/app/adapters/houston/adapters/ticket_tracker/none_adapter.rb +4 -4
  28. data/app/adapters/houston/adapters/ticket_tracker/null_connection.rb +13 -13
  29. data/app/adapters/houston/adapters/ticket_tracker/null_ticket.rb +19 -19
  30. data/app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter/connection.rb +54 -54
  31. data/app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter/milestone.rb +10 -10
  32. data/app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter/ticket.rb +59 -59
  33. data/app/adapters/houston/adapters/ticket_tracker/unfuddle_adapter.rb +9 -9
  34. data/app/adapters/houston/adapters/version_control/commit.rb +4 -4
  35. data/app/adapters/houston/adapters/version_control/errors.rb +9 -9
  36. data/app/adapters/houston/adapters/version_control/git_adapter/github_repo.rb +15 -15
  37. data/app/adapters/houston/adapters/version_control/git_adapter/remote_repo.rb +53 -30
  38. data/app/adapters/houston/adapters/version_control/git_adapter/repo.rb +60 -55
  39. data/app/adapters/houston/adapters/version_control/git_adapter.rb +22 -22
  40. data/app/adapters/houston/adapters/version_control/none_adapter.rb +4 -4
  41. data/app/adapters/houston/adapters/version_control/null_commit.rb +4 -4
  42. data/app/adapters/houston/adapters/version_control/null_repo.rb +18 -18
  43. data/app/adapters/houston/adapters.rb +10 -10
  44. data/app/assets/javascripts/app/boot.coffee +5 -5
  45. data/app/assets/javascripts/app/infinite_scroll.coffee +6 -6
  46. data/app/assets/javascripts/app/models/commit.coffee +1 -1
  47. data/app/assets/javascripts/app/models/release.coffee +1 -1
  48. data/app/assets/javascripts/app/models/task.coffee +1 -1
  49. data/app/assets/javascripts/app/models/tester.coffee +1 -1
  50. data/app/assets/javascripts/app/models/testing_note.coffee +2 -2
  51. data/app/assets/javascripts/app/models/ticket.coffee +24 -24
  52. data/app/assets/javascripts/app/models/user.coffee +1 -1
  53. data/app/assets/javascripts/app/releases.coffee +6 -6
  54. data/app/assets/javascripts/app/stacked_area_graph.coffee +22 -22
  55. data/app/assets/javascripts/app/stacked_bar_graph.coffee +20 -20
  56. data/app/assets/javascripts/app/table_row_expander.coffee +10 -10
  57. data/app/assets/javascripts/app/ticket_tracker_refresh.coffee +19 -19
  58. data/app/assets/javascripts/app/views/_show_sprint_view.coffee +14 -14
  59. data/app/assets/javascripts/app/views/_tickets_view.coffee +8 -8
  60. data/app/assets/javascripts/app/views/all_tickets_view.coffee +1 -2
  61. data/app/assets/javascripts/app/views/commit_view.coffee +2 -2
  62. data/app/assets/javascripts/app/views/edit_sprint_view.coffee +36 -36
  63. data/app/assets/javascripts/app/views/find_or_create_ticket_view.coffee +3 -3
  64. data/app/assets/javascripts/app/views/keyboard_shortcuts_modal.coffee +14 -14
  65. data/app/assets/javascripts/app/views/new_ticket_modal.coffee +4 -4
  66. data/app/assets/javascripts/app/views/new_ticket_view.coffee +34 -34
  67. data/app/assets/javascripts/app/views/problems_view.coffee +8 -8
  68. data/app/assets/javascripts/app/views/reports_view.coffee +5 -5
  69. data/app/assets/javascripts/app/views/testing_note_view.coffee +10 -10
  70. data/app/assets/javascripts/app/views/testing_report_view.coffee +7 -7
  71. data/app/assets/javascripts/app/views/testing_ticket_view.coffee +36 -36
  72. data/app/assets/javascripts/app/views/ticket_modal_view.coffee +5 -5
  73. data/app/assets/javascripts/core/app.coffee +22 -22
  74. data/app/assets/javascripts/core/burndown_chart.coffee +21 -21
  75. data/app/assets/javascripts/core/errors.coffee +2 -2
  76. data/app/assets/javascripts/core/handlebars_helpers.coffee +6 -6
  77. data/app/assets/javascripts/core/jquery_extensions.coffee +28 -28
  78. data/app/assets/javascripts/dashboard/refresher.coffee +4 -4
  79. data/app/assets/stylesheets/application/ansi.scss +2 -2
  80. data/app/assets/stylesheets/application/commit.scss +1 -1
  81. data/app/assets/stylesheets/application/exceptions.scss +3 -3
  82. data/app/assets/stylesheets/application/find_or_create_ticket.scss +2 -2
  83. data/app/assets/stylesheets/application/follow_up.scss +2 -2
  84. data/app/assets/stylesheets/application/forms.scss +2 -2
  85. data/app/assets/stylesheets/application/freight_train.css.scss +5 -5
  86. data/app/assets/stylesheets/application/full_screen.scss +2 -2
  87. data/app/assets/stylesheets/application/infinite_scroll.scss +1 -1
  88. data/app/assets/stylesheets/application/keyboard_shortcuts.scss +3 -3
  89. data/app/assets/stylesheets/application/markdown.scss +2 -2
  90. data/app/assets/stylesheets/application/navigation.scss +15 -15
  91. data/app/assets/stylesheets/application/new_ticket_view.scss +16 -16
  92. data/app/assets/stylesheets/application/omnibar.scss +6 -6
  93. data/app/assets/stylesheets/application/project_banner_buttons.scss +6 -6
  94. data/app/assets/stylesheets/application/project_tiles.scss +2 -2
  95. data/app/assets/stylesheets/application/projects.css.scss +3 -3
  96. data/app/assets/stylesheets/application/pull_requests.scss +6 -6
  97. data/app/assets/stylesheets/application/queue.scss +2 -2
  98. data/app/assets/stylesheets/application/release_form.scss +10 -10
  99. data/app/assets/stylesheets/application/releases.scss +32 -39
  100. data/app/assets/stylesheets/application/sortable_table.scss +6 -6
  101. data/app/assets/stylesheets/application/sprint.scss +6 -6
  102. data/app/assets/stylesheets/application/tables.scss +6 -6
  103. data/app/assets/stylesheets/application/test_run.scss +16 -16
  104. data/app/assets/stylesheets/application/ticket.scss +13 -13
  105. data/app/assets/stylesheets/application/ticket_modal.scss +19 -19
  106. data/app/assets/stylesheets/application/tickets.scss +2 -2
  107. data/app/assets/stylesheets/application/timeline.scss +30 -30
  108. data/app/assets/stylesheets/application/tips.scss +1 -1
  109. data/app/assets/stylesheets/application/typeahead.scss +4 -4
  110. data/app/assets/stylesheets/application/uploading.scss +13 -13
  111. data/app/assets/stylesheets/application/welcome.scss +3 -3
  112. data/app/assets/stylesheets/core/burndown_chart.scss +11 -11
  113. data/app/assets/stylesheets/core/misc.scss +8 -8
  114. data/app/assets/stylesheets/core/overrides.scss +2 -2
  115. data/app/assets/stylesheets/core/scores.scss +26 -26
  116. data/app/assets/stylesheets/dashboard/dashboard.scss +16 -16
  117. data/app/assets/stylesheets/print.css.scss +3 -3
  118. data/app/concerns/commit_synchronizer.rb +24 -24
  119. data/app/concerns/feature_state.rb +7 -7
  120. data/app/concerns/feature_support.rb +4 -4
  121. data/app/concerns/historical_weekly_stats.rb +4 -4
  122. data/app/concerns/milestone_synchronizer.rb +14 -14
  123. data/app/concerns/nosync.rb +4 -4
  124. data/app/concerns/project_adapter.rb +22 -22
  125. data/app/concerns/retirement.rb +7 -7
  126. data/app/concerns/ticket_synchronizer.rb +31 -31
  127. data/app/concerns/unique_add.rb +2 -2
  128. data/app/controllers/api/v1/sprint_tasks_controller.rb +19 -19
  129. data/app/controllers/api/v1/ticket_tasks_controller.rb +14 -14
  130. data/app/controllers/application_controller.rb +46 -40
  131. data/app/controllers/commits_controller.rb +10 -10
  132. data/app/controllers/deploys_controller.rb +11 -11
  133. data/app/controllers/home_controller.rb +4 -4
  134. data/app/controllers/jobs_controller.rb +3 -3
  135. data/app/controllers/oauth_consumers_controller.rb +1 -1
  136. data/app/controllers/omnibar_controller.rb +6 -6
  137. data/app/controllers/project_exceptions_controller.rb +11 -11
  138. data/app/controllers/project_hooks_controller.rb +7 -7
  139. data/app/controllers/project_options_controller.rb +8 -8
  140. data/app/controllers/project_pretickets_controller.rb +6 -6
  141. data/app/controllers/project_roles_controller.rb +7 -7
  142. data/app/controllers/project_tickets_controller.rb +28 -28
  143. data/app/controllers/project_tickets_sync_controller.rb +8 -8
  144. data/app/controllers/projects_controller.rb +29 -29
  145. data/app/controllers/releases_controller.rb +25 -25
  146. data/app/controllers/reports_controller.rb +36 -36
  147. data/app/controllers/sessions_controller.rb +2 -2
  148. data/app/controllers/settings_controller.rb +3 -3
  149. data/app/controllers/sprint_task_locks_controller.rb +11 -11
  150. data/app/controllers/sprints_controller.rb +25 -25
  151. data/app/controllers/tasks_controller.rb +10 -10
  152. data/app/controllers/test_runs_controller.rb +8 -8
  153. data/app/controllers/tester_bar_controller.rb +2 -2
  154. data/app/controllers/testing_notes_controller.rb +15 -15
  155. data/app/controllers/testing_report_controller.rb +14 -14
  156. data/app/controllers/tickets_controller.rb +9 -9
  157. data/app/controllers/uploads_controller.rb +9 -9
  158. data/app/controllers/user_credentials_controller.rb +4 -4
  159. data/app/controllers/user_options_controller.rb +6 -6
  160. data/app/controllers/users_controller.rb +34 -34
  161. data/app/controllers/welcome_controller.rb +6 -6
  162. data/app/helpers/ansi_helper.rb +4 -4
  163. data/app/helpers/application_helper.rb +26 -26
  164. data/app/helpers/avatar_helper.rb +12 -12
  165. data/app/helpers/backtrace_helper.rb +2 -2
  166. data/app/helpers/breadcrumbs_helper.rb +9 -9
  167. data/app/helpers/commit_helper.rb +16 -12
  168. data/app/helpers/demo_helper.rb +4 -4
  169. data/app/helpers/email_helper.rb +3 -3
  170. data/app/helpers/emoji_helper.rb +1 -1
  171. data/app/helpers/excel_helpers.rb +2 -2
  172. data/app/helpers/exposure_helper.rb +3 -3
  173. data/app/helpers/flash_message_helper.rb +6 -6
  174. data/app/helpers/maintenance_light_helper.rb +3 -3
  175. data/app/helpers/markdown_helper.rb +3 -3
  176. data/app/helpers/navigation_helper.rb +12 -12
  177. data/app/helpers/project_helper.rb +5 -5
  178. data/app/helpers/release_helper.rb +9 -9
  179. data/app/helpers/score_card_helper.rb +16 -16
  180. data/app/helpers/sprint_helper.rb +2 -2
  181. data/app/helpers/static_chart_helper.rb +2 -2
  182. data/app/helpers/test_run_helper.rb +6 -6
  183. data/app/helpers/ticket_helper.rb +14 -14
  184. data/app/helpers/timeline_helper.rb +5 -5
  185. data/app/helpers/url_helper.rb +26 -26
  186. data/app/helpers/user_helper.rb +6 -6
  187. data/app/helpers/version_helper.rb +4 -4
  188. data/app/interactors/test_run_comparer.rb +9 -9
  189. data/app/interactors/ticket_report.rb +7 -7
  190. data/app/jobs/sync_all_tickets_job.rb +13 -13
  191. data/app/jobs/sync_commits_job.rb +3 -3
  192. data/app/jobs/sync_project_tickets_job.rb +9 -9
  193. data/app/mailers/deploy_notification.rb +9 -9
  194. data/app/mailers/project_notification.rb +29 -29
  195. data/app/mailers/view_mailer.rb +20 -38
  196. data/app/models/ability.rb +21 -21
  197. data/app/models/activity_feed.rb +25 -25
  198. data/app/models/antecedent.rb +3 -3
  199. data/app/models/code_climate/coverage_report.rb +25 -25
  200. data/app/models/commit.rb +77 -82
  201. data/app/models/consumer_token.rb +2 -2
  202. data/app/models/deploy.rb +31 -27
  203. data/app/models/environment.rb +12 -12
  204. data/app/models/github/commit_status_report.rb +16 -16
  205. data/app/models/github/pull_request.rb +35 -12
  206. data/app/models/github/pull_request_event.rb +6 -5
  207. data/app/models/github_token.rb +2 -2
  208. data/app/models/historical_head.rb +2 -2
  209. data/app/models/key_dependency.rb +17 -17
  210. data/app/models/maintenance_light.rb +3 -3
  211. data/app/models/measurement.rb +22 -22
  212. data/app/models/menu_item.rb +5 -5
  213. data/app/models/menu_item_divider.rb +1 -1
  214. data/app/models/milestone.rb +27 -27
  215. data/app/models/output_stream.rb +4 -4
  216. data/app/models/post_receive_payload.rb +7 -7
  217. data/app/models/project.rb +93 -89
  218. data/app/models/project_dependencies.rb +9 -9
  219. data/app/models/project_dependency.rb +33 -33
  220. data/app/models/project_menu_item.rb +3 -3
  221. data/app/models/release.rb +60 -60
  222. data/app/models/release_change.rb +18 -18
  223. data/app/models/role.rb +15 -15
  224. data/app/models/rubygems/gem.rb +21 -21
  225. data/app/models/run_tests_on_post_receive.rb +36 -36
  226. data/app/models/setting.rb +3 -3
  227. data/app/models/settings.rb +8 -8
  228. data/app/models/source_file_coverage.rb +2 -2
  229. data/app/models/sprint.rb +19 -19
  230. data/app/models/sprint_report.rb +7 -7
  231. data/app/models/sprint_task.rb +8 -8
  232. data/app/models/static_chart/area.rb +19 -19
  233. data/app/models/static_chart.rb +35 -35
  234. data/app/models/task.rb +64 -64
  235. data/app/models/test_error.rb +2 -2
  236. data/app/models/test_result.rb +7 -0
  237. data/app/models/test_run.rb +75 -79
  238. data/app/models/test_run_statistics.rb +18 -19
  239. data/app/models/testing_note.rb +19 -19
  240. data/app/models/ticket.rb +104 -104
  241. data/app/models/ticket_antecedent.rb +11 -11
  242. data/app/models/ticket_comment.rb +6 -6
  243. data/app/models/ticket_committer.rb +3 -3
  244. data/app/models/ticket_tag.rb +6 -6
  245. data/app/models/user.rb +44 -44
  246. data/app/models/user_credentials.rb +11 -11
  247. data/app/models/value_statement.rb +3 -3
  248. data/app/presenters/commit_presenter.rb +6 -6
  249. data/app/presenters/one_or_many.rb +4 -4
  250. data/app/presenters/problem_presenter.rb +8 -8
  251. data/app/presenters/release_presenter.rb +4 -4
  252. data/app/presenters/sprint_task_presenter.rb +9 -9
  253. data/app/presenters/task_presenter.rb +8 -8
  254. data/app/presenters/tasks_excel_presenter.rb +6 -6
  255. data/app/presenters/tester_presenter.rb +3 -3
  256. data/app/presenters/testing_note_presenter.rb +4 -4
  257. data/app/presenters/testing_report_ticket_presenter.rb +9 -9
  258. data/app/presenters/ticket_presenter.rb +4 -4
  259. data/app/views/deploys/show.html.erb +8 -0
  260. data/app/views/jobs/show.html.erb +0 -34
  261. data/app/views/layouts/application.html.erb +1 -0
  262. data/app/views/layouts/minimal.html.erb +1 -0
  263. data/app/views/projects/_form.html.erb +0 -7
  264. data/app/views/releases/_form.html.erb +9 -3
  265. data/app/views/releases/index.html.erb +1 -1
  266. data/config/application.rb +1 -2
  267. data/config/database.yml +3 -3
  268. data/config/environments/production.rb +1 -1
  269. data/config/environments/test.rb +1 -1
  270. data/config/initializers/action_view_field_error_proc.rb +3 -3
  271. data/config/initializers/constants.rb +3 -3
  272. data/config/initializers/devise.rb +8 -8
  273. data/config/initializers/hard_coded_knowledge.rb +3 -3
  274. data/config/initializers/houston_async.rb +2 -2
  275. data/config/initializers/houston_report_exception.rb +3 -3
  276. data/config/initializers/houston_try.rb +3 -3
  277. data/config/initializers/sync_commits_on_post_receive.rb +0 -5
  278. data/config/routes.rb +108 -108
  279. data/db/migrate/20120417175450_devise_create_users.rb +2 -2
  280. data/db/migrate/20120501230243_add_unfuddle_id_to_tickets.rb +1 -1
  281. data/db/migrate/20120504143615_link_tickets_and_releases.rb +3 -3
  282. data/db/migrate/20120626150333_add_last_release_at_to_tickets.rb +2 -2
  283. data/db/migrate/20120626151320_link_tickets_and_commits.rb +2 -2
  284. data/db/migrate/20120626152020_add_committer_email_to_commits.rb +2 -2
  285. data/db/migrate/20120715230922_create_user_notifications.rb +3 -3
  286. data/db/migrate/20120716010743_add_user_to_releases.rb +3 -3
  287. data/db/migrate/20120726231754_link_projects_and_maintainers.rb +2 -2
  288. data/db/migrate/20120826022643_add_authentication_token_to_users.rb +2 -2
  289. data/db/migrate/20120920023251_add_administrator_to_users.rb +3 -3
  290. data/db/migrate/20121026014457_split_users_name_into_first_and_last.rb +2 -2
  291. data/db/migrate/20121027160548_create_deploys.rb +1 -1
  292. data/db/migrate/20121222170917_add_version_control_adapter_to_projects.rb +2 -2
  293. data/db/migrate/20121222223635_add_ticket_tracking_adapter_to_projects.rb +2 -2
  294. data/db/migrate/20121224212623_rename_environments.rb +3 -3
  295. data/db/migrate/20121225175106_replace_environment_id_with_environment_name.rb +8 -8
  296. data/db/migrate/20121230174234_create_test_runs.rb +3 -3
  297. data/db/migrate/20130119203853_remove_cached_queries_from_projects.rb +1 -1
  298. data/db/migrate/20130119204608_add_extended_attributes_to_tickets.rb +10 -10
  299. data/db/migrate/20130120182026_create_ticket_prerequisites.rb +2 -2
  300. data/db/migrate/20130312224911_create_errors.rb +1 -1
  301. data/db/migrate/20130407195450_create_roles.rb +2 -2
  302. data/db/migrate/20130407200624_populate_roles.rb +9 -9
  303. data/db/migrate/20130407220039_add_project_id_to_testing_notes.rb +6 -6
  304. data/db/migrate/20130407220937_add_project_id_to_commits.rb +6 -6
  305. data/db/migrate/20130416020627_add_environments_subscribed_to_to_users.rb +3 -3
  306. data/db/migrate/20130420174126_add_error_tracker_name_to_projects.rb +2 -2
  307. data/db/migrate/20130427223925_create_project_quotas.rb +2 -2
  308. data/db/migrate/20130504014802_add_extended_attributes_to_projects.rb +3 -3
  309. data/db/migrate/20130504135741_add_antecedents_to_tickets.rb +6 -6
  310. data/db/migrate/20130505144446_add_tags_to_tickets.rb +1 -1
  311. data/db/migrate/20130505162039_add_type_to_tickets.rb +1 -1
  312. data/db/migrate/20130505212838_add_closed_at_to_tickets.rb +1 -1
  313. data/db/migrate/20130519163615_create_user_credentials.rb +2 -2
  314. data/db/migrate/20130526024851_give_default_values_for_counts_from_test_runs.rb +2 -2
  315. data/db/migrate/20130710233849_add_authored_at_to_commits.rb +10 -10
  316. data/db/migrate/20130711013156_link_commits_and_users.rb +6 -6
  317. data/db/migrate/20130806143651_link_commits_and_releases.rb +2 -2
  318. data/db/migrate/20130921141449_create_milestones.rb +3 -3
  319. data/db/migrate/20131004185618_add_first_release_at_to_tickets.rb +2 -2
  320. data/db/migrate/20131012152403_create_sprints.rb +3 -3
  321. data/db/migrate/20131112010815_delete_duplicate_commits.rb +7 -7
  322. data/db/migrate/20140217160450_add_email_addresses_to_users.rb +3 -3
  323. data/db/migrate/20140327020121_drop_ticket_prerequisites.rb +1 -1
  324. data/db/migrate/20140406183224_remove_new_relic_id_from_projects.rb +1 -1
  325. data/db/migrate/20140406230121_delete_automatically_generated_messages_for_releases.rb +1 -1
  326. data/db/migrate/20140407010111_drop_sprints_project_id.rb +1 -1
  327. data/db/migrate/20140418133005_change_ticket_antecedents_to_text_array.rb +1 -1
  328. data/db/migrate/20140425141946_embed_changes_in_releases.rb +3 -3
  329. data/db/migrate/20140515174322_create_tasks.rb +3 -3
  330. data/db/migrate/20140516012049_create_tasks_for_existing_tickets.rb +1 -1
  331. data/db/migrate/20140517012626_prevent_hstore_fields_from_being_null.rb +2 -2
  332. data/db/migrate/20140521014652_allow_task_descriptions_to_be_null.rb +1 -1
  333. data/db/migrate/20140526155845_add_commit_id_to_deploys.rb +5 -5
  334. data/db/migrate/20140526162645_add_commit_before_id_and_commit_after_id_to_releases.rb +4 -4
  335. data/db/migrate/20140526180608_associate_remaining_deploys_and_releases.rb +12 -12
  336. data/db/migrate/20140724231918_create_sprints_tasks.rb +3 -3
  337. data/db/migrate/20140824194031_add_project_id_to_tasks.rb +1 -1
  338. data/db/migrate/20140824194526_add_completed_at_to_tasks.rb +3 -3
  339. data/db/migrate/20140824211249_require_sprints_to_be_unique.rb +1 -1
  340. data/db/migrate/20140907012329_drop_table_changes.rb +1 -1
  341. data/db/migrate/20140907013836_drop_table_errors.rb +1 -1
  342. data/db/migrate/20140921190022_add_checked_out_to_sprints_tasks.rb +2 -2
  343. data/db/migrate/20140921201441_drop_users_name.rb +1 -1
  344. data/db/migrate/20140925021043_rename_deploys_commit_to_sha.rb +1 -1
  345. data/db/migrate/20140929004347_create_historical_heads.rb +4 -4
  346. data/db/migrate/20141027194819_make_users_environments_subscribed_to_an_array.rb +2 -2
  347. data/db/migrate/20141226171730_create_measurements.rb +1 -1
  348. data/db/migrate/20150119154013_drop_unused_fields_from_milestones.rb +1 -1
  349. data/db/migrate/20150222205616_add_features_to_projects.rb +2 -2
  350. data/db/migrate/20150323004452_add_deploys_completed_at.rb +1 -1
  351. data/db/migrate/20150805180939_add_commit_id_to_test_runs.rb +1 -1
  352. data/db/migrate/20150808161805_create_test_results.rb +1 -1
  353. data/db/migrate/20150809132417_rename_test_results_regression_to_difference.rb +1 -1
  354. data/db/migrate/20150927014445_required_pull_requests_to_be_unique_by_project_and_number.rb +13 -0
  355. data/db/structure.sql +9 -0
  356. data/houston.gemspec +23 -26
  357. data/lib/configuration.rb +0 -5
  358. data/lib/core_ext/duration.rb +4 -4
  359. data/lib/core_ext/hash.rb +17 -17
  360. data/lib/houston/version.rb +1 -1
  361. data/lib/houston_server.rb +6 -6
  362. data/lib/parallel_enumerable.rb +16 -16
  363. data/lib/tasks/specific_tests.rake +37 -0
  364. metadata +91 -107
  365. data/app/interactors/push_gemfile_to_gemnasium.rb +0 -88
  366. data/app/models/gemnasium/alert.rb +0 -25
  367. data/app/views/welcome/_tdl.html.erb +0 -31
  368. data/config/initializers/houston_tdl.rb +0 -104
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7a9edb88c1dfdec80ec2121bf68abc2fad01281f
4
- data.tar.gz: 8697e901809002abec27b5af0735b84ccea631b8
3
+ metadata.gz: f27a41cf18a79ea1e6804607c6144712bb5cab1c
4
+ data.tar.gz: 6a6a00a46f6c47375f3835ace2d6101e184678ce
5
5
  SHA512:
6
- metadata.gz: 2eef6a5f7c47f18bbcf86ea06a87282f7a2175a0b80c229d4d904553baed9bc936b04a9dcfe7f5326004ac9f5df66b2b642412824eae62e7a122175fbfc9855c
7
- data.tar.gz: a57953c9b89e3260e67c46288c1be2ee15f9aa15c5af136a79200c7fb591db54ee74df703bd357609c9036fae5e830f4a3edd0c143e0704ac755c737c3a16a83
6
+ metadata.gz: d3efec7157215eb18771ea14d7f39cc8e04ee4c00d67d5b6491ff943d8dcf31e5405815cbb577bac1a4d8d92fe582f31fd7763fb03489073670fedc0c5736b42
7
+ data.tar.gz: ec0521adbd55e4bd34da8595145adfab8c250c843afdc67a927871d9559423013e889efef2df48fec0bd0858d0385d1ba04195efb2d25756cbd1e85d747f7ab7
data/.codeclimate.yml CHANGED
@@ -21,8 +21,6 @@ engines:
21
21
  enabled: true
22
22
  csslint:
23
23
  enabled: true
24
- bundler-audit:
25
- enabled: true
26
24
 
27
25
  # Engines can analyze files and report issues on them, but you can separately
28
26
  # decide which files will receive ratings based on those issues. This is
data/.gitignore CHANGED
@@ -11,6 +11,9 @@
11
11
  /log/*.log
12
12
  /tmp
13
13
 
14
+ # Ignore built gems
15
+ /pkg
16
+
14
17
  # Ignore misc.
15
18
  REVISION
16
19
  .sass-cache
data/Gemfile CHANGED
@@ -15,6 +15,7 @@ group :test do
15
15
  gem "rr"
16
16
  gem "webmock", require: "webmock/minitest"
17
17
  gem "factory_girl_rails"
18
+ gem "test_after_commit"
18
19
 
19
20
  # For Jenkins
20
21
  gem "therubyracer"
data/Gemfile.lock CHANGED
@@ -1,82 +1,81 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- houston-core (0.5.0.beta1)
5
- activerecord-insert_many
4
+ houston-core (0.5.0)
5
+ activerecord-import
6
6
  activerecord-pluck_in_batches
7
7
  addressable
8
8
  backbone-rails (~> 1.0.0)
9
9
  boblail-unfuddle
10
10
  bundler
11
- cancan
11
+ cancan (~> 1.6.10)
12
12
  codeclimate-test-reporter (= 0.4.1)
13
13
  coffee-rails (~> 4.0.0)
14
14
  default_value_for (= 3.0.0.1)
15
15
  devise (~> 3.0.0)
16
- devise_invitable
17
- engineyard
18
- faraday
19
- faraday-http-cache
20
- faraday-raise-errors
21
- gemnasium
22
- gemoji
23
- googlecharts
16
+ devise_invitable (~> 1.2.1)
17
+ engineyard (~> 3.2.1)
18
+ faraday (~> 0.8.10)
19
+ faraday-http-cache (~> 1.2.2)
20
+ faraday-raise-errors (~> 0.2.0)
21
+ gemoji (~> 2.1.0)
22
+ googlecharts (~> 1.6.12)
24
23
  handlebars_assets (~> 0.18.0)
25
24
  houston-devise_ldap_authenticatable
26
25
  houston-oauth-plugin
27
26
  houston-vestal_versions
28
- hpricot
27
+ hpricot (~> 0.8.6)
29
28
  neat-rails
30
29
  nested_editor_for
31
- nokogiri
32
- octokit
33
- oj
30
+ nokogiri (~> 1.6.6.2)
31
+ octokit (~> 4.1.0)
32
+ oj (~> 2.12.14)
34
33
  openxml-xlsx
35
34
  pg (~> 0.18.2)
36
- pg_search
37
- premailer
35
+ pg_search (~> 1.0.5)
36
+ premailer (~> 1.8.6)
38
37
  progressbar
39
- rack-utf8_sanitizer
40
- rails (~> 4.1.0)
41
- redcarpet
42
- rufus-scheduler
43
- rugged (~> 0.23.0)
38
+ rack-utf8_sanitizer (~> 1.3.1)
39
+ rails (~> 4.1.13)
40
+ redcarpet (~> 3.3.2)
41
+ rufus-scheduler (~> 3.1.4)
42
+ rugged (~> 0.23.2)
44
43
  sass-rails (~> 4.0.0)
45
- simplecov
46
- strongbox
44
+ simplecov (~> 0.9.1)
45
+ strongbox (~> 0.7.2)
47
46
  sugar-rails
48
- thread_safe
47
+ thread_safe (~> 0.3.5)
49
48
  uglifier (>= 1.3.0)
50
49
  whenever (= 0.9.2)
51
50
 
52
51
  GEM
53
52
  remote: https://rubygems.org/
54
53
  specs:
55
- actionmailer (4.1.12)
56
- actionpack (= 4.1.12)
57
- actionview (= 4.1.12)
54
+ actionmailer (4.1.13)
55
+ actionpack (= 4.1.13)
56
+ actionview (= 4.1.13)
58
57
  mail (~> 2.5, >= 2.5.4)
59
- actionpack (4.1.12)
60
- actionview (= 4.1.12)
61
- activesupport (= 4.1.12)
58
+ actionpack (4.1.13)
59
+ actionview (= 4.1.13)
60
+ activesupport (= 4.1.13)
62
61
  rack (~> 1.5.2)
63
62
  rack-test (~> 0.6.2)
64
- actionview (4.1.12)
65
- activesupport (= 4.1.12)
63
+ actionview (4.1.13)
64
+ activesupport (= 4.1.13)
66
65
  builder (~> 3.1)
67
66
  erubis (~> 2.7.0)
68
- activemodel (4.1.12)
69
- activesupport (= 4.1.12)
67
+ activemodel (4.1.13)
68
+ activesupport (= 4.1.13)
70
69
  builder (~> 3.1)
71
- activerecord (4.1.12)
72
- activemodel (= 4.1.12)
73
- activesupport (= 4.1.12)
70
+ activerecord (4.1.13)
71
+ activemodel (= 4.1.13)
72
+ activesupport (= 4.1.13)
74
73
  arel (~> 5.0.0)
75
- activerecord-insert_many (0.1.0)
76
- activerecord
74
+ activerecord-import (0.10.0)
75
+ activerecord (>= 3.0)
77
76
  activerecord-pluck_in_batches (0.1.0)
78
77
  activerecord
79
- activesupport (4.1.12)
78
+ activesupport (4.1.13)
80
79
  i18n (~> 0.6, >= 0.6.9)
81
80
  json (~> 1.7, >= 1.7.7)
82
81
  minitest (~> 5.1)
@@ -115,7 +114,7 @@ GEM
115
114
  coffee-script-source (1.9.1.1)
116
115
  crack (0.4.2)
117
116
  safe_yaml (~> 1.0.0)
118
- css_parser (1.3.6)
117
+ css_parser (1.3.7)
119
118
  addressable
120
119
  default_value_for (3.0.0.1)
121
120
  activerecord (>= 3.2.0, < 5.0)
@@ -128,7 +127,7 @@ GEM
128
127
  actionmailer (>= 3.2.6, < 5)
129
128
  devise (~> 3.0.0)
130
129
  docile (1.1.5)
131
- domain_name (0.5.24)
130
+ domain_name (0.5.25)
132
131
  unf (>= 0.0.5, < 1.0.0)
133
132
  engineyard (3.2.1)
134
133
  engineyard-cloud-client (~> 2.1)
@@ -151,13 +150,12 @@ GEM
151
150
  factory_girl_rails (4.5.0)
152
151
  factory_girl (~> 4.5.0)
153
152
  railties (>= 3.0.0)
154
- faraday (0.8.10)
153
+ faraday (0.8.11)
155
154
  multipart-post (~> 1.2.0)
156
155
  faraday-http-cache (1.2.2)
157
156
  faraday (~> 0.8)
158
157
  faraday-raise-errors (0.2.0)
159
158
  faraday
160
- gemnasium (3.2.1)
161
159
  gemoji (2.1.0)
162
160
  googlecharts (1.6.12)
163
161
  handlebars_assets (0.18)
@@ -191,9 +189,9 @@ GEM
191
189
  mail (2.6.3)
192
190
  mime-types (>= 1.16, < 3)
193
191
  method_source (0.8.2)
194
- mime-types (2.6.1)
192
+ mime-types (2.6.2)
195
193
  mini_portile (0.6.2)
196
- minitest (5.8.0)
194
+ minitest (5.8.1)
197
195
  minitest-reporters (1.0.7)
198
196
  ansi
199
197
  builder
@@ -218,7 +216,7 @@ GEM
218
216
  multi_json (~> 1.3)
219
217
  multi_xml (~> 0.5)
220
218
  rack (~> 1.2)
221
- octokit (4.1.0)
219
+ octokit (4.1.1)
222
220
  sawyer (~> 0.6.0, >= 0.5.3)
223
221
  oj (2.12.14)
224
222
  open_xml_package (0.1.0)
@@ -246,23 +244,23 @@ GEM
246
244
  rack (>= 1.0)
247
245
  rack-utf8_sanitizer (1.3.1)
248
246
  rack (~> 1.0)
249
- rails (4.1.12)
250
- actionmailer (= 4.1.12)
251
- actionpack (= 4.1.12)
252
- actionview (= 4.1.12)
253
- activemodel (= 4.1.12)
254
- activerecord (= 4.1.12)
255
- activesupport (= 4.1.12)
247
+ rails (4.1.13)
248
+ actionmailer (= 4.1.13)
249
+ actionpack (= 4.1.13)
250
+ actionview (= 4.1.13)
251
+ activemodel (= 4.1.13)
252
+ activerecord (= 4.1.13)
253
+ activesupport (= 4.1.13)
256
254
  bundler (>= 1.3.0, < 2.0)
257
- railties (= 4.1.12)
255
+ railties (= 4.1.13)
258
256
  sprockets-rails (~> 2.0)
259
- railties (4.1.12)
260
- actionpack (= 4.1.12)
261
- activesupport (= 4.1.12)
257
+ railties (4.1.13)
258
+ actionpack (= 4.1.13)
259
+ activesupport (= 4.1.13)
262
260
  rake (>= 0.8.7)
263
261
  thor (>= 0.18.1, < 2.0)
264
262
  rake (10.4.2)
265
- redcarpet (3.3.2)
263
+ redcarpet (3.3.3)
266
264
  ref (2.0.0)
267
265
  rest-client (1.8.0)
268
266
  http-cookie (>= 1.0.2, < 2.0)
@@ -271,8 +269,8 @@ GEM
271
269
  rr (1.1.2)
272
270
  ruby-progressbar (1.7.0)
273
271
  rubyzip (1.1.7)
274
- rufus-scheduler (3.1.4)
275
- rugged (0.23.2)
272
+ rufus-scheduler (3.1.6)
273
+ rugged (0.23.3)
276
274
  safe_yaml (1.0.4)
277
275
  sass (3.2.19)
278
276
  sass-rails (4.0.5)
@@ -306,6 +304,8 @@ GEM
306
304
  activerecord
307
305
  sugar-rails (1.4.1)
308
306
  railties (>= 3.0.0)
307
+ test_after_commit (0.4.1)
308
+ activerecord (>= 3.2)
309
309
  therubyracer (0.12.2)
310
310
  libv8 (~> 3.16.14.0)
311
311
  ref
@@ -346,6 +346,7 @@ DEPENDENCIES
346
346
  rr
347
347
  shoulda-context
348
348
  simplecov-json
349
+ test_after_commit
349
350
  therubyracer
350
351
  timecop
351
352
  webmock
data/README.md CHANGED
@@ -1,133 +1,25 @@
1
- # Houston [![Code Climate](https://codeclimate.com/github/houston/houston.png)](https://codeclimate.com/github/houston/houston)
1
+ # Houston Core [![Code Climate](https://codeclimate.com/github/houston/houston-core.png)](https://codeclimate.com/github/houston/houston-core)
2
2
 
3
- ### Mission Control for your projects and teams.
4
-
5
- Houston interfaces with your version-control, ticket-tracking, continuous integration, and other systems to stitch together a picture of your projects and teams.
6
-
7
- <table>
8
- <tr>
9
- <td align="center" vertical-align="top">
10
- <a href="http://houston.github.com/houston/images/screenshots/burndown-chart.png" target="_blank" title="Ticket Workflow">
11
- <img src="http://houston.github.com/houston/images/screenshots/burndown-chart.png" width="180" alt="Ticket Workflow" />
12
- </a>
13
- </td>
14
- <td align="center" vertical-align="top">
15
- <a href="http://houston.github.com/houston/images/screenshots/testing-conversation-2.png" target="_blank" title="Testing Workflow">
16
- <img src="http://houston.github.com/houston/images/screenshots/testing-conversation-2.png" width="180" alt="Testing Workflow" />
17
- </a>
18
- </td>
19
- <td align="center" vertical-align="top">
20
- <a href="http://houston.github.com/houston/images/screenshots/new-release-2.png" target="_blank" title="Automatic Release Notes">
21
- <img src="http://houston.github.com/houston/images/screenshots/new-release-2.png" width="180" alt="Automatic Release Notes" />
22
- </a>
23
- </td>
24
- <td align="center" vertical-align="top">
25
- <a href="http://houston.github.com/houston/images/screenshots/timeline.png" target="_blank" title="Reports">
26
- <img src="http://houston.github.com/houston/images/screenshots/timeline.png" width="180" alt="Reports" />
27
- </a>
28
- </td>
29
- </tr>
30
- <tr>
31
- <th>Ticket Workflow</th>
32
- <th>Testing Workflow</th>
33
- <th>Automatic Release Notes</th>
34
- <th>Reports</th>
35
- </tr>
36
- </table>
37
-
38
-
39
-
40
- ## Getting Started
41
-
42
- #### Requirements
43
-
44
- * Ruby 2.0+
45
- * Postgres 9.2+
46
-
47
-
48
- #### Getting Houston Running
49
-
50
- 1. Clone Houston:
51
-
52
- git clone git@github.com:houston/houston.git
53
-
54
- 2. Modify config/database.yml to connect to your database (See [the Rails Guide](http://guides.rubyonrails.org/configuring.html#configuring-a-database) for examples)
55
-
56
- 3. Set up your database
57
-
58
- cd houston
59
- script/bootstrap
60
- bundle exec rake db:seed
61
-
62
- 4. Start Houston
63
-
64
- bundle exec rails server
65
-
66
-
67
- #### Configuring Houston
68
-
69
- You can control Houston's feature, permissions, events, colors, and more in `config/config.rb`.
3
+ This is the Houston application. Deploy it by forking [houston/houston](https://github.com/houston/houston) and configuring for your team!
70
4
 
5
+ ### What is Houston?
71
6
 
72
- #### Writing your own modules
73
-
74
- To create a new module for Houston, run:
75
-
76
- gem install houston-cli
77
- houston_new_module warpcore
78
-
79
- This will generate a gem for a Rails Engine named `houston-warpcore`.
80
-
81
- Then add something like the following to `config/config.rb`:
82
-
83
- use :warpcore, github: "mscott/warpcore", branch: "master"
84
-
85
- (You can use the same options after `use :warpcore` that you'd use after `gem "houston-warpcore"` in a `Gemfile`.)
86
-
87
-
88
-
89
- ## Vision
90
-
91
- Houston does not intend to become a ticket-tracking system or continuous integration server. It's goal is to glue those systems together and synthesize information from them. Houston has three parts:
92
-
93
- 1. A model of your projects and teams
94
- 2. Adapters for various version-control, ticket-tracking, and other systems
95
- 3. Custom views that synthesize that information
96
-
97
- You should pick a ticket-tracking system or a continuous integration server based on your teams needs&mdash;or your company's needs&mdash;but then be able to extend it as you wish. Houston is a framework for just that!
98
-
99
-
100
-
101
- ## Features
102
-
103
- The following are examples of how Houston can be used:
104
-
105
- - **Kanban** allows you define stages for tickets and then depicts how all of your tickets, across projects, fall into those stages.
106
- - **Testing Report** collects tickets awaiting QA from multiple projects, and shows the progress and evolution of testing
107
- - **Release Notes** are generated automatically from your commit messages, and can be configured to automatically close tickets when released
108
- - **Scheduler** shows you tickets that need effort and value estimates and generates to-do lists from them based on your queuing discipline
109
- - **CI** can be configured to trigger CI jobs and publish the results upon version-control events
110
-
7
+ ###### Mission Control for your projects and team
111
8
 
9
+ Houston interfaces with your version-control, ticket-tracking, continuous integration, and other systems to stitch together a picture of your projects and teams.
112
10
 
113
- ## Architecture
11
+ It makes it easy to set up **triggers** and **notifications** like:
114
12
 
115
- ### Models
13
+ - Resolving an exception report when a commit that mentions it is deployed
14
+ - Slacking team members when a pull request is labeled or unlabeled
15
+ - Notifying a committer when their commit breaks a test
116
16
 
117
- Four models are central to Houston:
17
+ And it provides a foundation for custom views like **dashboards** and **reports**.
118
18
 
119
- - **Project** which ties together a slug, color, and different adapters with a project
120
- - **User** which has a role and is tied to different permissions and notifications
121
- - **Ticket** a generic concept of a ticket
122
- - **Commit** a generic concept of a commit
19
+ Houston is also extensible through **modules**.
123
20
 
124
- ### Adapters
125
21
 
126
- Houston uses adapters to support multiple systems. There are three right now:
127
- - **TicketTracking**: `Unfuddle` and `None` supported
128
- - **VersionControl**: `Git` and `None` supported
129
- - **CI**: `Jenkins` and `None` supported
130
22
 
131
- ### Configuration
23
+ ## Getting Started with Houston
132
24
 
133
- The specific details of Houston's operation are described in config/config.rb ([example](https://github.com/houston/houston/blob/master/config/config.sample.rb)).
25
+ Fork [houston/houston](https://github.com/houston/houston) and follow the instructions to get it set up for your team!
@@ -1,16 +1,16 @@
1
1
  module Houston
2
2
  module Adapters
3
3
  module CIServer
4
-
4
+
5
5
  class Error < StandardError
6
6
  end
7
-
7
+
8
8
  class NotConfiguredError < ::Houston::Adapters::CIServer::Error
9
9
  end
10
-
10
+
11
11
  class NotFoundError < ::Houston::Adapters::CIServer::Error
12
12
  end
13
-
13
+
14
14
  end
15
15
  end
16
16
  end