argus-alm 0.15.2__tar.gz → 0.15.3__tar.gz

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 (489) hide show
  1. {argus_alm-0.15.2 → argus_alm-0.15.3}/.github/workflows/release.yml +4 -2
  2. argus_alm-0.15.3/MANIFEST.in +2 -0
  3. {argus_alm-0.15.2 → argus_alm-0.15.3}/PKG-INFO +1 -1
  4. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/_version.py +2 -2
  5. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/client/generic_result.py +6 -1
  6. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus_alm.egg-info/PKG-INFO +1 -1
  7. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus_alm.egg-info/SOURCES.txt +1 -104
  8. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/SCTParameterWizard.svelte +2 -2
  9. argus_alm-0.15.2/argus/backend/cli.py +0 -57
  10. argus_alm-0.15.2/argus/backend/controller/admin.py +0 -20
  11. argus_alm-0.15.2/argus/backend/controller/admin_api.py +0 -355
  12. argus_alm-0.15.2/argus/backend/controller/api.py +0 -589
  13. argus_alm-0.15.2/argus/backend/controller/auth.py +0 -67
  14. argus_alm-0.15.2/argus/backend/controller/client_api.py +0 -109
  15. argus_alm-0.15.2/argus/backend/controller/main.py +0 -316
  16. argus_alm-0.15.2/argus/backend/controller/notification_api.py +0 -72
  17. argus_alm-0.15.2/argus/backend/controller/notifications.py +0 -13
  18. argus_alm-0.15.2/argus/backend/controller/planner_api.py +0 -194
  19. argus_alm-0.15.2/argus/backend/controller/team.py +0 -129
  20. argus_alm-0.15.2/argus/backend/controller/team_ui.py +0 -19
  21. argus_alm-0.15.2/argus/backend/controller/testrun_api.py +0 -513
  22. argus_alm-0.15.2/argus/backend/controller/view_api.py +0 -188
  23. argus_alm-0.15.2/argus/backend/controller/views_widgets/__init__.py +0 -0
  24. argus_alm-0.15.2/argus/backend/controller/views_widgets/graphed_stats.py +0 -54
  25. argus_alm-0.15.2/argus/backend/controller/views_widgets/graphs.py +0 -68
  26. argus_alm-0.15.2/argus/backend/controller/views_widgets/highlights.py +0 -135
  27. argus_alm-0.15.2/argus/backend/controller/views_widgets/nemesis_stats.py +0 -26
  28. argus_alm-0.15.2/argus/backend/controller/views_widgets/summary.py +0 -43
  29. argus_alm-0.15.2/argus/backend/db.py +0 -98
  30. argus_alm-0.15.2/argus/backend/error_handlers.py +0 -41
  31. argus_alm-0.15.2/argus/backend/events/event_processors.py +0 -34
  32. argus_alm-0.15.2/argus/backend/models/__init__.py +0 -0
  33. argus_alm-0.15.2/argus/backend/models/argus_ai.py +0 -24
  34. argus_alm-0.15.2/argus/backend/models/github_issue.py +0 -60
  35. argus_alm-0.15.2/argus/backend/models/plan.py +0 -24
  36. argus_alm-0.15.2/argus/backend/models/result.py +0 -187
  37. argus_alm-0.15.2/argus/backend/models/runtime_store.py +0 -58
  38. argus_alm-0.15.2/argus/backend/models/view_widgets.py +0 -25
  39. argus_alm-0.15.2/argus/backend/models/web.py +0 -403
  40. argus_alm-0.15.2/argus/backend/plugins/__init__.py +0 -0
  41. argus_alm-0.15.2/argus/backend/plugins/core.py +0 -248
  42. argus_alm-0.15.2/argus/backend/plugins/driver_matrix_tests/controller.py +0 -66
  43. argus_alm-0.15.2/argus/backend/plugins/driver_matrix_tests/model.py +0 -429
  44. argus_alm-0.15.2/argus/backend/plugins/driver_matrix_tests/plugin.py +0 -21
  45. argus_alm-0.15.2/argus/backend/plugins/driver_matrix_tests/raw_types.py +0 -62
  46. argus_alm-0.15.2/argus/backend/plugins/driver_matrix_tests/service.py +0 -61
  47. argus_alm-0.15.2/argus/backend/plugins/driver_matrix_tests/udt.py +0 -42
  48. argus_alm-0.15.2/argus/backend/plugins/generic/model.py +0 -86
  49. argus_alm-0.15.2/argus/backend/plugins/generic/plugin.py +0 -15
  50. argus_alm-0.15.2/argus/backend/plugins/generic/types.py +0 -14
  51. argus_alm-0.15.2/argus/backend/plugins/loader.py +0 -39
  52. argus_alm-0.15.2/argus/backend/plugins/sct/controller.py +0 -224
  53. argus_alm-0.15.2/argus/backend/plugins/sct/plugin.py +0 -37
  54. argus_alm-0.15.2/argus/backend/plugins/sct/resource_setup.py +0 -177
  55. argus_alm-0.15.2/argus/backend/plugins/sct/service.py +0 -682
  56. argus_alm-0.15.2/argus/backend/plugins/sct/testrun.py +0 -288
  57. argus_alm-0.15.2/argus/backend/plugins/sct/udt.py +0 -100
  58. argus_alm-0.15.2/argus/backend/plugins/sirenada/model.py +0 -118
  59. argus_alm-0.15.2/argus/backend/plugins/sirenada/plugin.py +0 -16
  60. argus_alm-0.15.2/argus/backend/service/admin.py +0 -26
  61. argus_alm-0.15.2/argus/backend/service/argus_service.py +0 -696
  62. argus_alm-0.15.2/argus/backend/service/build_system_monitor.py +0 -185
  63. argus_alm-0.15.2/argus/backend/service/client_service.py +0 -127
  64. argus_alm-0.15.2/argus/backend/service/event_service.py +0 -18
  65. argus_alm-0.15.2/argus/backend/service/github_service.py +0 -233
  66. argus_alm-0.15.2/argus/backend/service/jenkins_service.py +0 -269
  67. argus_alm-0.15.2/argus/backend/service/notification_manager.py +0 -159
  68. argus_alm-0.15.2/argus/backend/service/planner_service.py +0 -608
  69. argus_alm-0.15.2/argus/backend/service/release_manager.py +0 -229
  70. argus_alm-0.15.2/argus/backend/service/results_service.py +0 -690
  71. argus_alm-0.15.2/argus/backend/service/stats.py +0 -610
  72. argus_alm-0.15.2/argus/backend/service/team_manager_service.py +0 -82
  73. argus_alm-0.15.2/argus/backend/service/test_lookup.py +0 -172
  74. argus_alm-0.15.2/argus/backend/service/testrun.py +0 -489
  75. argus_alm-0.15.2/argus/backend/service/user.py +0 -308
  76. argus_alm-0.15.2/argus/backend/service/views.py +0 -219
  77. argus_alm-0.15.2/argus/backend/service/views_widgets/__init__.py +0 -0
  78. argus_alm-0.15.2/argus/backend/service/views_widgets/graphed_stats.py +0 -180
  79. argus_alm-0.15.2/argus/backend/service/views_widgets/highlights.py +0 -374
  80. argus_alm-0.15.2/argus/backend/service/views_widgets/nemesis_stats.py +0 -34
  81. argus_alm-0.15.2/argus/backend/template_filters.py +0 -27
  82. argus_alm-0.15.2/argus/backend/tests/__init__.py +0 -0
  83. argus_alm-0.15.2/argus/backend/tests/client_service/__init__.py +0 -0
  84. argus_alm-0.15.2/argus/backend/tests/client_service/test_submit_results.py +0 -79
  85. argus_alm-0.15.2/argus/backend/tests/conftest.py +0 -180
  86. argus_alm-0.15.2/argus/backend/tests/results_service/__init__.py +0 -0
  87. argus_alm-0.15.2/argus/backend/tests/results_service/test_best_results.py +0 -178
  88. argus_alm-0.15.2/argus/backend/tests/results_service/test_cell.py +0 -65
  89. argus_alm-0.15.2/argus/backend/tests/results_service/test_chartjs_additional_functions.py +0 -259
  90. argus_alm-0.15.2/argus/backend/tests/results_service/test_create_chartjs.py +0 -220
  91. argus_alm-0.15.2/argus/backend/tests/results_service/test_result_metadata.py +0 -100
  92. argus_alm-0.15.2/argus/backend/tests/results_service/test_results_service.py +0 -203
  93. argus_alm-0.15.2/argus/backend/tests/results_service/test_validation_rules.py +0 -213
  94. argus_alm-0.15.2/argus/backend/tests/view_widgets/__init__.py +0 -0
  95. argus_alm-0.15.2/argus/backend/tests/view_widgets/test_highlights_api.py +0 -532
  96. argus_alm-0.15.2/argus/backend/util/common.py +0 -65
  97. argus_alm-0.15.2/argus/backend/util/config.py +0 -38
  98. argus_alm-0.15.2/argus/backend/util/encoders.py +0 -56
  99. argus_alm-0.15.2/argus/backend/util/logsetup.py +0 -80
  100. argus_alm-0.15.2/argus/backend/util/module_loaders.py +0 -30
  101. argus_alm-0.15.2/argus/backend/util/send_email.py +0 -91
  102. argus_alm-0.15.2/argus/client/tests/__init__.py +0 -0
  103. argus_alm-0.15.2/argus/client/tests/conftest.py +0 -19
  104. argus_alm-0.15.2/argus/client/tests/test_package.py +0 -45
  105. argus_alm-0.15.2/argus/client/tests/test_results.py +0 -224
  106. argus_alm-0.15.2/argus/common/__init__.py +0 -0
  107. argus_alm-0.15.2/argusAI/utils/__init__.py +0 -0
  108. argus_alm-0.15.2/profile/.gitkeep +0 -0
  109. argus_alm-0.15.2/pytest-argus-reporter/tests/conftest.py +0 -75
  110. argus_alm-0.15.2/pytest-argus-reporter/tests/test_argus_reporter.py +0 -511
  111. argus_alm-0.15.2/pytest-argus-reporter/tests/test_slices.py +0 -61
  112. argus_alm-0.15.2/pytest-argus-reporter/tests/test_xdist.py +0 -42
  113. {argus_alm-0.15.2 → argus_alm-0.15.3}/.dockerignore +0 -0
  114. {argus_alm-0.15.2 → argus_alm-0.15.3}/.envrc +0 -0
  115. {argus_alm-0.15.2 → argus_alm-0.15.3}/.eslintrc.js +0 -0
  116. {argus_alm-0.15.2 → argus_alm-0.15.3}/.github/workflows/.gitkeep +0 -0
  117. {argus_alm-0.15.2 → argus_alm-0.15.3}/.github/workflows/lint.yml +0 -0
  118. {argus_alm-0.15.2 → argus_alm-0.15.3}/.github/workflows/test.yml +0 -0
  119. {argus_alm-0.15.2 → argus_alm-0.15.3}/.gitignore +0 -0
  120. {argus_alm-0.15.2 → argus_alm-0.15.3}/.pre-commit-config.yaml +0 -0
  121. {argus_alm-0.15.2 → argus_alm-0.15.3}/.prettierrc.js +0 -0
  122. {argus_alm-0.15.2 → argus_alm-0.15.3}/Dockerfile +0 -0
  123. {argus_alm-0.15.2 → argus_alm-0.15.3}/LICENSE +0 -0
  124. {argus_alm-0.15.2 → argus_alm-0.15.3}/README.md +0 -0
  125. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/__init__.py +0 -0
  126. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/client/__init__.py +0 -0
  127. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/client/base.py +0 -0
  128. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/client/driver_matrix_tests/cli.py +0 -0
  129. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/client/driver_matrix_tests/client.py +0 -0
  130. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/client/generic/cli.py +0 -0
  131. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/client/generic/client.py +0 -0
  132. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/client/sct/client.py +0 -0
  133. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/client/sct/types.py +0 -0
  134. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/client/sirenada/client.py +0 -0
  135. {argus_alm-0.15.2/argus/backend → argus_alm-0.15.3/argus/common}/__init__.py +0 -0
  136. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/common/enums.py +0 -0
  137. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/common/sct_types.py +0 -0
  138. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus/common/sirenada_types.py +0 -0
  139. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus.yaml +0 -0
  140. {argus_alm-0.15.2 → argus_alm-0.15.3}/argusAI/README.md +0 -0
  141. {argus_alm-0.15.2 → argus_alm-0.15.3}/argusAI/deployment/argusai_event_similarity_processor.service +0 -0
  142. {argus_alm-0.15.2 → argus_alm-0.15.3}/argusAI/event_similarity_processor.py +0 -0
  143. {argus_alm-0.15.2 → argus_alm-0.15.3}/argusAI/logs/.gitignore +0 -0
  144. {argus_alm-0.15.2 → argus_alm-0.15.3}/argusAI/pyproject.toml +0 -0
  145. {argus_alm-0.15.2/argus/backend/controller → argus_alm-0.15.3/argusAI/utils}/__init__.py +0 -0
  146. {argus_alm-0.15.2 → argus_alm-0.15.3}/argusAI/utils/event_message_sanitizer.py +0 -0
  147. {argus_alm-0.15.2 → argus_alm-0.15.3}/argusAI/utils/scylla_connection.py +0 -0
  148. {argus_alm-0.15.2 → argus_alm-0.15.3}/argusAI/uv.lock +0 -0
  149. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus_alm.egg-info/dependency_links.txt +0 -0
  150. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus_alm.egg-info/entry_points.txt +0 -0
  151. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus_alm.egg-info/requires.txt +0 -0
  152. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus_alm.egg-info/top_level.txt +0 -0
  153. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus_backend.py +0 -0
  154. {argus_alm-0.15.2 → argus_alm-0.15.3}/argus_web.example.yaml +0 -0
  155. {argus_alm-0.15.2 → argus_alm-0.15.3}/commitlint.config.js +0 -0
  156. {argus_alm-0.15.2 → argus_alm-0.15.3}/dev-db/.gitignore +0 -0
  157. {argus_alm-0.15.2 → argus_alm-0.15.3}/dev-db/alpha-config/cassandra-rackdc.properties +0 -0
  158. {argus_alm-0.15.2 → argus_alm-0.15.3}/dev-db/alpha-config/machine_image_configured +0 -0
  159. {argus_alm-0.15.2 → argus_alm-0.15.3}/dev-db/alpha-config/scylla.yaml +0 -0
  160. {argus_alm-0.15.2 → argus_alm-0.15.3}/dev-db/alpha-data/.gitignore +0 -0
  161. {argus_alm-0.15.2 → argus_alm-0.15.3}/dev-db/docker-compose.yaml +0 -0
  162. {argus_alm-0.15.2 → argus_alm-0.15.3}/dev-db/export_data.py +0 -0
  163. {argus_alm-0.15.2 → argus_alm-0.15.3}/dev-db/import_data.py +0 -0
  164. {argus_alm-0.15.2 → argus_alm-0.15.3}/docker/config/nginx-docker.conf +0 -0
  165. {argus_alm-0.15.2 → argus_alm-0.15.3}/docker/config/supervisord.conf +0 -0
  166. {argus_alm-0.15.2 → argus_alm-0.15.3}/docker-entrypoint.sh +0 -0
  167. {argus_alm-0.15.2 → argus_alm-0.15.3}/docs/api_usage.md +0 -0
  168. {argus_alm-0.15.2 → argus_alm-0.15.3}/docs/argus_status_page.md +0 -0
  169. {argus_alm-0.15.2 → argus_alm-0.15.3}/docs/argus_status_page_diagram.jpg +0 -0
  170. {argus_alm-0.15.2 → argus_alm-0.15.3}/docs/config/argus.nginx.conf +0 -0
  171. {argus_alm-0.15.2 → argus_alm-0.15.3}/docs/config/argus.service +0 -0
  172. {argus_alm-0.15.2 → argus_alm-0.15.3}/docs/dev-setup.md +0 -0
  173. {argus_alm-0.15.2 → argus_alm-0.15.3}/docs/generic_results.md +0 -0
  174. {argus_alm-0.15.2 → argus_alm-0.15.3}/docs/pypi-guide.md +0 -0
  175. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/AdminPanel.svelte +0 -0
  176. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/AdminPanelWelcome.svelte +0 -0
  177. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/BatchTestMover.svelte +0 -0
  178. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/GroupCreator.svelte +0 -0
  179. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/ReleaseCreator.svelte +0 -0
  180. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/ReleaseDeletionConfirmationPopup.svelte +0 -0
  181. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/ReleaseEditor.svelte +0 -0
  182. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/ReleaseManager.svelte +0 -0
  183. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/ReleaseManagerGroup.svelte +0 -0
  184. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/ReleaseManagerTest.svelte +0 -0
  185. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/TestCreator.svelte +0 -0
  186. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/UserManager.svelte +0 -0
  187. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/ViewListItem.svelte +0 -0
  188. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/ViewSelectItem.svelte +0 -0
  189. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/ViewWidget.svelte +0 -0
  190. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/AdminPanel/ViewsManager.svelte +0 -0
  191. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Alert.js +0 -0
  192. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Alerts/AlertMessage.svelte +0 -0
  193. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Alerts/AlertWidget.svelte +0 -0
  194. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/ApiUtils.js +0 -0
  195. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/ArgusNotification.ts +0 -0
  196. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/AssigneeSelector.svelte +0 -0
  197. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/AssigneeUtils.js +0 -0
  198. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/DateUtils.js +0 -0
  199. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/DriverMatrixTypes.ts +0 -0
  200. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/IssueDestinations.js +0 -0
  201. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/JenkinsSettingsHelp.js +0 -0
  202. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/ModalWindow.svelte +0 -0
  203. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/PluginDispatch.js +0 -0
  204. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/PluginNames.js +0 -0
  205. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/RunUtils.js +0 -0
  206. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/SelectUtils.js +0 -0
  207. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/StateManagement.js +0 -0
  208. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/TestStatus.js +0 -0
  209. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/TextUtils.js +0 -0
  210. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/UserTypes.ts +0 -0
  211. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/UserUtils.js +0 -0
  212. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Common/ViewTypes.js +0 -0
  213. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Debug/FlashDebugComponent.svelte +0 -0
  214. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Discussion/Comment.svelte +0 -0
  215. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Discussion/CommentEditor.svelte +0 -0
  216. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Discussion/MarkedMentionExtension.js +0 -0
  217. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Discussion/MentionSelector.svelte +0 -0
  218. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Discussion/UserProfile.svelte +0 -0
  219. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Github/GithubIssue.svelte +0 -0
  220. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Github/GithubIssues.svelte +0 -0
  221. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Github/GithubIssuesCopyModal.svelte +0 -0
  222. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/JobsList.svelte +0 -0
  223. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/Login.svelte +0 -0
  224. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/Notification.svelte +0 -0
  225. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/NotificationCommentWrapper.svelte +0 -0
  226. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/NotificationCounter.svelte +0 -0
  227. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/NotificationSender.svelte +0 -0
  228. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/NotificationTestRunWrapper.svelte +0 -0
  229. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/NotificationsReader.svelte +0 -0
  230. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/ProfileJob.svelte +0 -0
  231. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/ProfileJobs.svelte +0 -0
  232. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/ProfileJobsTab.svelte +0 -0
  233. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/ProfileSchedules.svelte +0 -0
  234. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/User.svelte +0 -0
  235. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/UserSelection.svelte +0 -0
  236. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Profile/ViewUserResolver.svelte +0 -0
  237. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleaseDashboard/AssigneeFilter.svelte +0 -0
  238. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleaseDashboard/FlatViewHelper.svelte +0 -0
  239. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleaseDashboard/GroupedViewHelper.svelte +0 -0
  240. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleaseDashboard/ReleaseActivity.svelte +0 -0
  241. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleaseDashboard/ReleaseDashboard.svelte +0 -0
  242. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleaseDashboard/ReleaseGithubIssues.svelte +0 -0
  243. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleaseDashboard/TestDashboard.svelte +0 -0
  244. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleaseDashboard/TestDashboardFlatView.svelte +0 -0
  245. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleaseDashboard/TestDashboardGroup.svelte +0 -0
  246. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleaseDashboard/TestDashboardTest.svelte +0 -0
  247. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleaseDashboard/TestPopoutSelector.svelte +0 -0
  248. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleaseDashboard/TestWithIssuesCard.svelte +0 -0
  249. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/CommentTableRow.svelte +0 -0
  250. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/DutyPlanner.svelte +0 -0
  251. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/EntityReplacer.svelte +0 -0
  252. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/ReleasePlan.svelte +0 -0
  253. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/ReleasePlanCopyForm.svelte +0 -0
  254. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/ReleasePlanCreator.svelte +0 -0
  255. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/ReleasePlanEditor.svelte +0 -0
  256. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/ReleasePlanTable.svelte +0 -0
  257. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/ReleasePlanner.svelte +0 -0
  258. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/ReleasePlannerGridView.svelte +0 -0
  259. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/ReleaseScheduler.svelte +0 -0
  260. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/Schedule.svelte +0 -0
  261. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/ScheduleTable.svelte +0 -0
  262. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/ReleasePlanner/SearchBar.svelte +0 -0
  263. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Stats/ChartStats.svelte +0 -0
  264. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Stats/NumberStats.svelte +0 -0
  265. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Stats/ProgressBarStats.svelte +0 -0
  266. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Stats/ReleaseStats.svelte +0 -0
  267. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Stats/StatsFetcher.svelte +0 -0
  268. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Stores/AlertStore.js +0 -0
  269. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Stores/AssigneeSubscriber.js +0 -0
  270. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Stores/SingleTestRunSubscriber.js +0 -0
  271. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Stores/TestRunsSubscriber.js +0 -0
  272. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Stores/UserlistSubscriber.js +0 -0
  273. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Stores/WorkspaceStore.js +0 -0
  274. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Teams/TeamCreateForm.svelte +0 -0
  275. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Teams/TeamDetail.svelte +0 -0
  276. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Teams/TeamList.svelte +0 -0
  277. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Teams/TeamManager.svelte +0 -0
  278. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Teams/TeamMember.svelte +0 -0
  279. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Teams/TeamShort.svelte +0 -0
  280. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Teams/TeamUtils.ts +0 -0
  281. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/ActivityTab.svelte +0 -0
  282. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/ArtifactRow.svelte +0 -0
  283. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/ArtifactTab.svelte +0 -0
  284. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Components/Cell.svelte +0 -0
  285. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Components/Filters.svelte +0 -0
  286. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Components/GraphFilters.svelte +0 -0
  287. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Components/ResultTable.svelte +0 -0
  288. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Components/ScreenshotModal.svelte +0 -0
  289. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/DriverMatrixBreakdown.svelte +0 -0
  290. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/DriverMatrixRunInfo.svelte +0 -0
  291. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/DriverMatrixTestCollection.svelte +0 -0
  292. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/DriverMatrixTestRun.svelte +0 -0
  293. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/DriverMatrixTestSuites.svelte +0 -0
  294. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/EventsTab.svelte +0 -0
  295. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Generic/GenericTestRun.svelte +0 -0
  296. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Generic/GenericTestRunInfo.svelte +0 -0
  297. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/HeartbeatIndicator.svelte +0 -0
  298. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/IssueTab.svelte +0 -0
  299. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/IssueTemplate.svelte +0 -0
  300. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/Build.js +0 -0
  301. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/BuildConfirmationDialog.svelte +0 -0
  302. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/BuildStartPlaceholder.svelte +0 -0
  303. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/BuildSuccessPlaceholder.svelte +0 -0
  304. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/CheckParam.svelte +0 -0
  305. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/CloneCreatePlaceholder.svelte +0 -0
  306. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/CloneSuccess.svelte +0 -0
  307. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/CloneTargetSelector.svelte +0 -0
  308. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/DummyCheckParam.svelte +0 -0
  309. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/DummySelectParam.svelte +0 -0
  310. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/JenkinsBuildModal.svelte +0 -0
  311. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/JenkinsCloneModal.svelte +0 -0
  312. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/LoadTargetsPlaceholder.svelte +0 -0
  313. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/ModalError.svelte +0 -0
  314. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/ParamFetchPlaceholder.svelte +0 -0
  315. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/ParameterEditor.svelte +0 -0
  316. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/SelectParam.svelte +0 -0
  317. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/StringParam.svelte +0 -0
  318. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/TextParam.svelte +0 -0
  319. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Jenkins/WizardUnavailable.svelte +0 -0
  320. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/NemesisData.svelte +0 -0
  321. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/NemesisReason.svelte +0 -0
  322. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/NemesisTable.svelte +0 -0
  323. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/PackagesInfo.svelte +0 -0
  324. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/RawEvent.svelte +0 -0
  325. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/ResourcesInfo.svelte +0 -0
  326. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/ResultsGraph.svelte +0 -0
  327. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/ResultsGraphs.svelte +0 -0
  328. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/ResultsTab.svelte +0 -0
  329. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/RunAssigneeSelector.svelte +0 -0
  330. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/RunInvestigationStatusButton.svelte +0 -0
  331. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/RunStatusButton.svelte +0 -0
  332. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/SCTSubTests/Gemini/GeminiTabBodyComponent.svelte +0 -0
  333. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/SCTSubTests/Gemini/GeminiTabComponent.svelte +0 -0
  334. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/SCTSubTests/Performance/PerformanceTabBodyComponent.svelte +0 -0
  335. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/SCTSubTests/Performance/PerformanceTabComponent.svelte +0 -0
  336. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/SCTSubTests/Subtest.js +0 -0
  337. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Screenshots.svelte +0 -0
  338. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Sirenada/SirenadaIssueTemplate.svelte +0 -0
  339. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Sirenada/SirenadaRunInfo.svelte +0 -0
  340. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Sirenada/SirenadaTestBreakdown.svelte +0 -0
  341. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/Sirenada/SirenadaTestRun.svelte +0 -0
  342. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/StructuredEvent.svelte +0 -0
  343. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/TestRun.svelte +0 -0
  344. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/TestRunComments.svelte +0 -0
  345. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/TestRunInfo.svelte +0 -0
  346. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/jUnitChart.svelte +0 -0
  347. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/TestRun/jUnitResults.svelte +0 -0
  348. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/ViewDashboard.svelte +0 -0
  349. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/ViewSelect.svelte +0 -0
  350. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/WidgetSettingTypes/CheckValue.svelte +0 -0
  351. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/WidgetSettingTypes/IntegerValue.svelte +0 -0
  352. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/WidgetSettingTypes/MultiSelectValue.svelte +0 -0
  353. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/WidgetSettingTypes/MultiStringValue.svelte +0 -0
  354. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/WidgetSettingTypes/StringValue.svelte +0 -0
  355. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/GraphsWidget/GraphsWidget.svelte +0 -0
  356. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/SummaryWidget/RunIssues.svelte +0 -0
  357. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/SummaryWidget/SummaryWidget.svelte +0 -0
  358. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGithubIssues.svelte +0 -0
  359. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGraphedStats/AssigneeCell.svelte +0 -0
  360. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGraphedStats/Filters.svelte +0 -0
  361. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGraphedStats/Interfaces.ts +0 -0
  362. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGraphedStats/InvestigationStatusCell.svelte +0 -0
  363. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGraphedStats/IssuesCell.svelte +0 -0
  364. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGraphedStats/NemesisTable.svelte +0 -0
  365. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGraphedStats/PaginatedTable.svelte +0 -0
  366. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGraphedStats/StackTracePreview.svelte +0 -0
  367. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGraphedStats/StatusBadge.svelte +0 -0
  368. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGraphedStats/StatusCell.svelte +0 -0
  369. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGraphedStats/TestRunTable.svelte +0 -0
  370. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewGraphedStats.svelte +0 -0
  371. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewHighlights/ActionItem.svelte +0 -0
  372. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewHighlights/Comment.svelte +0 -0
  373. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewHighlights/HighlightItem.svelte +0 -0
  374. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewHighlights/ViewHighlights.svelte +0 -0
  375. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewNemesisStats.svelte +0 -0
  376. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewReleaseStats.svelte +0 -0
  377. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewTestDashboard.svelte +0 -0
  378. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/Views/Widgets/ViewUnsupportedPlaceholder.svelte +0 -0
  379. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/WorkArea/AssigneeList.svelte +0 -0
  380. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/WorkArea/JobConfigureModal.svelte +0 -0
  381. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/WorkArea/RunGroup.svelte +0 -0
  382. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/WorkArea/RunRelease.svelte +0 -0
  383. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/WorkArea/Test.svelte +0 -0
  384. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/WorkArea/TestRunDispatcher.svelte +0 -0
  385. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/WorkArea/TestRuns.svelte +0 -0
  386. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/WorkArea/TestRunsMessage.svelte +0 -0
  387. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/WorkArea/TestRunsPanel.svelte +0 -0
  388. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/WorkArea/TestRunsSelector.svelte +0 -0
  389. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/WorkArea/UnknownTest.svelte +0 -0
  390. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/WorkArea/WorkArea.svelte +0 -0
  391. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/admin-panel.js +0 -0
  392. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/argus.css +0 -0
  393. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/argus.js +0 -0
  394. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/duty-planner.js +0 -0
  395. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/flashDebug.js +0 -0
  396. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/font-awesome.css +0 -0
  397. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/font-awesome.js +0 -0
  398. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/fonts/NotoSans-Bold.ttf +0 -0
  399. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/fonts/NotoSans-BoldItalic.ttf +0 -0
  400. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/fonts/NotoSans-Italic.ttf +0 -0
  401. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/fonts/NotoSans-Regular.ttf +0 -0
  402. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/fonts/OFL.txt +0 -0
  403. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/fonts/noto.css +0 -0
  404. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/login.js +0 -0
  405. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/markdownOptions.js +0 -0
  406. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/notification-counter.js +0 -0
  407. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/plan.js +0 -0
  408. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/profile-jobs.js +0 -0
  409. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/profile-notifications.js +0 -0
  410. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/profile-schedules.js +0 -0
  411. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/release-dashboard.js +0 -0
  412. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/release-page.js +0 -0
  413. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/release-planner.js +0 -0
  414. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/release-scheduler.js +0 -0
  415. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/run-by-plugin.js +0 -0
  416. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/teams.js +0 -0
  417. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/test-run-details.js +0 -0
  418. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/test-runs-breakout.js +0 -0
  419. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/test-runs-standalone.js +0 -0
  420. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/view-dashboard.js +0 -0
  421. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/view-user-resolver.js +0 -0
  422. {argus_alm-0.15.2 → argus_alm-0.15.3}/frontend/work-area.js +0 -0
  423. {argus_alm-0.15.2 → argus_alm-0.15.3}/package.json +0 -0
  424. {argus_alm-0.15.2/argus/backend → argus_alm-0.15.3/profile}/.gitkeep +0 -0
  425. {argus_alm-0.15.2 → argus_alm-0.15.3}/public/argus.png +0 -0
  426. {argus_alm-0.15.2 → argus_alm-0.15.3}/public/no-user-picture.png +0 -0
  427. {argus_alm-0.15.2 → argus_alm-0.15.3}/pyproject.toml +0 -0
  428. {argus_alm-0.15.2 → argus_alm-0.15.3}/pytest-argus-reporter/.envrc +0 -0
  429. {argus_alm-0.15.2 → argus_alm-0.15.3}/pytest-argus-reporter/LICENSE +0 -0
  430. {argus_alm-0.15.2 → argus_alm-0.15.3}/pytest-argus-reporter/MANIFEST.in +0 -0
  431. {argus_alm-0.15.2 → argus_alm-0.15.3}/pytest-argus-reporter/README.md +0 -0
  432. {argus_alm-0.15.2 → argus_alm-0.15.3}/pytest-argus-reporter/noxfile.py +0 -0
  433. {argus_alm-0.15.2 → argus_alm-0.15.3}/pytest-argus-reporter/pyproject.toml +0 -0
  434. {argus_alm-0.15.2 → argus_alm-0.15.3}/pytest-argus-reporter/pytest_argus_reporter.py +0 -0
  435. {argus_alm-0.15.2 → argus_alm-0.15.3}/run_with_profiler.py +0 -0
  436. {argus_alm-0.15.2 → argus_alm-0.15.3}/scripts/argus-status-page/index.html +0 -0
  437. {argus_alm-0.15.2 → argus_alm-0.15.3}/scripts/argus-status-page/js/status.js +0 -0
  438. {argus_alm-0.15.2 → argus_alm-0.15.3}/scripts/argus-status-page/static/app.css +0 -0
  439. {argus_alm-0.15.2 → argus_alm-0.15.3}/scripts/argus-status-page/static/argus.png +0 -0
  440. {argus_alm-0.15.2 → argus_alm-0.15.3}/scripts/argus-status-page/static/scylla.png +0 -0
  441. {argus_alm-0.15.2 → argus_alm-0.15.3}/scripts/argus-status-page/status.json +0 -0
  442. {argus_alm-0.15.2 → argus_alm-0.15.3}/scripts/migration/migration_2023-04-07.py +0 -0
  443. {argus_alm-0.15.2 → argus_alm-0.15.3}/scripts/migration/migration_2024-04-14.py +0 -0
  444. {argus_alm-0.15.2 → argus_alm-0.15.3}/setup.cfg +0 -0
  445. {argus_alm-0.15.2 → argus_alm-0.15.3}/start_argus.sh +0 -0
  446. {argus_alm-0.15.2 → argus_alm-0.15.3}/storage/profile_pictures/.gitignore +0 -0
  447. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/admin/base.html.j2 +0 -0
  448. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/admin/index.html.j2 +0 -0
  449. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/auth/login.html.j2 +0 -0
  450. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/auth/register.html.j2 +0 -0
  451. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/base.html.j2 +0 -0
  452. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/dashboard.html.j2 +0 -0
  453. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/duty_planner.html.j2 +0 -0
  454. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/error.html.j2 +0 -0
  455. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/flash_debug.html.j2 +0 -0
  456. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/groups.html.j2 +0 -0
  457. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/home.html.j2 +0 -0
  458. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/notifications/assigned.html.j2 +0 -0
  459. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/notifications/assigned_email.html.j2 +0 -0
  460. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/notifications/email_mention.html.j2 +0 -0
  461. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/notifications/mention.html.j2 +0 -0
  462. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/notifications/view_action_item_assigned.html.j2 +0 -0
  463. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/notifications/view_action_item_assigned_email.html.j2 +0 -0
  464. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/notifications/view_highlight_mention.html.j2 +0 -0
  465. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/notifications/view_highlight_mention_email.html.j2 +0 -0
  466. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/partials/nav_bar.html.j2 +0 -0
  467. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/plan_dashboard.html.j2 +0 -0
  468. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/profile.html.j2 +0 -0
  469. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/profile_jobs.html.j2 +0 -0
  470. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/profile_notifications.html.j2 +0 -0
  471. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/profile_schedules.html.j2 +0 -0
  472. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/release_dashboard.html.j2 +0 -0
  473. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/release_planner.html.j2 +0 -0
  474. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/release_schedule.html.j2 +0 -0
  475. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/releases.html.j2 +0 -0
  476. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/run_view_by_plugin.html.j2 +0 -0
  477. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/runs.html.j2 +0 -0
  478. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/standalone_test_with_runs.html.j2 +0 -0
  479. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/teams.html.j2 +0 -0
  480. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/test_run.html.j2 +0 -0
  481. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/test_runs.html.j2 +0 -0
  482. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/tests.html.j2 +0 -0
  483. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/view_dashboard.html.j2 +0 -0
  484. {argus_alm-0.15.2 → argus_alm-0.15.3}/templates/views.html.j2 +0 -0
  485. {argus_alm-0.15.2 → argus_alm-0.15.3}/tsconfig.json +0 -0
  486. {argus_alm-0.15.2 → argus_alm-0.15.3}/uv.lock +0 -0
  487. {argus_alm-0.15.2 → argus_alm-0.15.3}/uwsgi.ini +0 -0
  488. {argus_alm-0.15.2 → argus_alm-0.15.3}/webpack.config.js +0 -0
  489. {argus_alm-0.15.2 → argus_alm-0.15.3}/yarn.lock +0 -0
@@ -35,7 +35,7 @@ jobs:
35
35
  publish-to-pypi:
36
36
  name: >-
37
37
  Publish Python 🐍 distribution 📦 to PyPI
38
- # if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
38
+ if: github.ref_type == 'tag'
39
39
  needs:
40
40
  - build
41
41
  runs-on: ubuntu-latest
@@ -44,6 +44,7 @@ jobs:
44
44
  url: https://pypi.org/p/argus-alm # Replace <package-name> with your PyPI project name
45
45
  permissions:
46
46
  id-token: write # IMPORTANT: mandatory for trusted publishing
47
+ contents: write
47
48
 
48
49
  steps:
49
50
  - name: Download all the dists
@@ -56,6 +57,7 @@ jobs:
56
57
  uses: pypa/gh-action-pypi-publish@release/v1
57
58
 
58
59
  - name: Create GitHub release
59
- uses: softprops/action-gh-release@v1
60
+ uses: softprops/action-gh-release@v2
60
61
  with:
61
62
  generate_release_notes: true
63
+ files: dist/*
@@ -0,0 +1,2 @@
1
+ prune **/tests
2
+ prune **/backend
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: argus-alm
3
- Version: 0.15.2
3
+ Version: 0.15.3
4
4
  Summary: Argus
5
5
  Author-email: Alexey Kartashov <alexey.kartashov@scylladb.com>, Łukasz Sójka <lukasz.sojka@scylladb.com>
6
6
  License-Expression: Apache-2.0
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.15.2'
21
- __version_tuple__ = version_tuple = (0, 15, 2)
20
+ __version__ = version = '0.15.3'
21
+ __version_tuple__ = version_tuple = (0, 15, 3)
@@ -155,7 +155,7 @@ class StaticGenericResultTable(GenericResultTable):
155
155
  """Results class for static results metainformation, defined in Meta class."""
156
156
 
157
157
  def __init__(
158
- self, name=None, description=None, columns=None, sut_package_name=None, validation_rules=None
158
+ self, name=None, description=None, columns=None, sut_package_name=None, validation_rules=None, results=None, sut_timestamp=0
159
159
  ):
160
160
  meta = getattr(self.__class__, "Meta")
161
161
  super().__init__(
@@ -165,4 +165,9 @@ class StaticGenericResultTable(GenericResultTable):
165
165
  sut_package_name=sut_package_name or getattr(meta, "sut_package_name", ""),
166
166
  validation_rules=validation_rules or getattr(
167
167
  meta, "ValidationRules", getattr(meta, "validation_rules", {})),
168
+ results=results or [],
169
+ sut_timestamp=sut_timestamp
168
170
  )
171
+
172
+ class Meta:
173
+ pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: argus-alm
3
- Version: 0.15.2
3
+ Version: 0.15.3
4
4
  Summary: Argus
5
5
  Author-email: Alexey Kartashov <alexey.kartashov@scylladb.com>, Łukasz Sójka <lukasz.sojka@scylladb.com>
6
6
  License-Expression: Apache-2.0
@@ -6,6 +6,7 @@
6
6
  .prettierrc.js
7
7
  Dockerfile
8
8
  LICENSE
9
+ MANIFEST.in
9
10
  README.md
10
11
  argus.yaml
11
12
  argus_backend.py
@@ -27,102 +28,6 @@ yarn.lock
27
28
  .github/workflows/test.yml
28
29
  argus/__init__.py
29
30
  argus/_version.py
30
- argus/backend/.gitkeep
31
- argus/backend/__init__.py
32
- argus/backend/cli.py
33
- argus/backend/db.py
34
- argus/backend/error_handlers.py
35
- argus/backend/template_filters.py
36
- argus/backend/controller/__init__.py
37
- argus/backend/controller/admin.py
38
- argus/backend/controller/admin_api.py
39
- argus/backend/controller/api.py
40
- argus/backend/controller/auth.py
41
- argus/backend/controller/client_api.py
42
- argus/backend/controller/main.py
43
- argus/backend/controller/notification_api.py
44
- argus/backend/controller/notifications.py
45
- argus/backend/controller/planner_api.py
46
- argus/backend/controller/team.py
47
- argus/backend/controller/team_ui.py
48
- argus/backend/controller/testrun_api.py
49
- argus/backend/controller/view_api.py
50
- argus/backend/controller/views_widgets/__init__.py
51
- argus/backend/controller/views_widgets/graphed_stats.py
52
- argus/backend/controller/views_widgets/graphs.py
53
- argus/backend/controller/views_widgets/highlights.py
54
- argus/backend/controller/views_widgets/nemesis_stats.py
55
- argus/backend/controller/views_widgets/summary.py
56
- argus/backend/events/event_processors.py
57
- argus/backend/models/__init__.py
58
- argus/backend/models/argus_ai.py
59
- argus/backend/models/github_issue.py
60
- argus/backend/models/plan.py
61
- argus/backend/models/result.py
62
- argus/backend/models/runtime_store.py
63
- argus/backend/models/view_widgets.py
64
- argus/backend/models/web.py
65
- argus/backend/plugins/__init__.py
66
- argus/backend/plugins/core.py
67
- argus/backend/plugins/loader.py
68
- argus/backend/plugins/driver_matrix_tests/controller.py
69
- argus/backend/plugins/driver_matrix_tests/model.py
70
- argus/backend/plugins/driver_matrix_tests/plugin.py
71
- argus/backend/plugins/driver_matrix_tests/raw_types.py
72
- argus/backend/plugins/driver_matrix_tests/service.py
73
- argus/backend/plugins/driver_matrix_tests/udt.py
74
- argus/backend/plugins/generic/model.py
75
- argus/backend/plugins/generic/plugin.py
76
- argus/backend/plugins/generic/types.py
77
- argus/backend/plugins/sct/controller.py
78
- argus/backend/plugins/sct/plugin.py
79
- argus/backend/plugins/sct/resource_setup.py
80
- argus/backend/plugins/sct/service.py
81
- argus/backend/plugins/sct/testrun.py
82
- argus/backend/plugins/sct/udt.py
83
- argus/backend/plugins/sirenada/model.py
84
- argus/backend/plugins/sirenada/plugin.py
85
- argus/backend/service/admin.py
86
- argus/backend/service/argus_service.py
87
- argus/backend/service/build_system_monitor.py
88
- argus/backend/service/client_service.py
89
- argus/backend/service/event_service.py
90
- argus/backend/service/github_service.py
91
- argus/backend/service/jenkins_service.py
92
- argus/backend/service/notification_manager.py
93
- argus/backend/service/planner_service.py
94
- argus/backend/service/release_manager.py
95
- argus/backend/service/results_service.py
96
- argus/backend/service/stats.py
97
- argus/backend/service/team_manager_service.py
98
- argus/backend/service/test_lookup.py
99
- argus/backend/service/testrun.py
100
- argus/backend/service/user.py
101
- argus/backend/service/views.py
102
- argus/backend/service/views_widgets/__init__.py
103
- argus/backend/service/views_widgets/graphed_stats.py
104
- argus/backend/service/views_widgets/highlights.py
105
- argus/backend/service/views_widgets/nemesis_stats.py
106
- argus/backend/tests/__init__.py
107
- argus/backend/tests/conftest.py
108
- argus/backend/tests/client_service/__init__.py
109
- argus/backend/tests/client_service/test_submit_results.py
110
- argus/backend/tests/results_service/__init__.py
111
- argus/backend/tests/results_service/test_best_results.py
112
- argus/backend/tests/results_service/test_cell.py
113
- argus/backend/tests/results_service/test_chartjs_additional_functions.py
114
- argus/backend/tests/results_service/test_create_chartjs.py
115
- argus/backend/tests/results_service/test_result_metadata.py
116
- argus/backend/tests/results_service/test_results_service.py
117
- argus/backend/tests/results_service/test_validation_rules.py
118
- argus/backend/tests/view_widgets/__init__.py
119
- argus/backend/tests/view_widgets/test_highlights_api.py
120
- argus/backend/util/common.py
121
- argus/backend/util/config.py
122
- argus/backend/util/encoders.py
123
- argus/backend/util/logsetup.py
124
- argus/backend/util/module_loaders.py
125
- argus/backend/util/send_email.py
126
31
  argus/client/__init__.py
127
32
  argus/client/base.py
128
33
  argus/client/generic_result.py
@@ -133,10 +38,6 @@ argus/client/generic/client.py
133
38
  argus/client/sct/client.py
134
39
  argus/client/sct/types.py
135
40
  argus/client/sirenada/client.py
136
- argus/client/tests/__init__.py
137
- argus/client/tests/conftest.py
138
- argus/client/tests/test_package.py
139
- argus/client/tests/test_results.py
140
41
  argus/common/__init__.py
141
42
  argus/common/enums.py
142
43
  argus/common/sct_types.py
@@ -433,10 +334,6 @@ pytest-argus-reporter/README.md
433
334
  pytest-argus-reporter/noxfile.py
434
335
  pytest-argus-reporter/pyproject.toml
435
336
  pytest-argus-reporter/pytest_argus_reporter.py
436
- pytest-argus-reporter/tests/conftest.py
437
- pytest-argus-reporter/tests/test_argus_reporter.py
438
- pytest-argus-reporter/tests/test_slices.py
439
- pytest-argus-reporter/tests/test_xdist.py
440
337
  scripts/argus-status-page/index.html
441
338
  scripts/argus-status-page/status.json
442
339
  scripts/argus-status-page/js/status.js
@@ -306,7 +306,7 @@
306
306
  },
307
307
  scyllaRepoBYO: {
308
308
  name: "Scylla BYO Repository",
309
- description: "Scylla BYO GitHub repository",
309
+ description: "ScyllaDB GitHub repository in SSH format (git@github.com:personal-username/scylla.git)",
310
310
  type: StringParam,
311
311
  internalName: "byo_scylla_repo",
312
312
  requiresValidation: true,
@@ -326,7 +326,7 @@
326
326
  }
327
327
  },
328
328
  scyllaBranchBYO: {
329
- name: "Scylla BYO Branch",
329
+ name: "ScyllaDB GitHub branch name",
330
330
  description: "Scylla BYO GitHub branch",
331
331
  type: StringParam,
332
332
  internalName: "byo_scylla_branch",
@@ -1,57 +0,0 @@
1
- import logging
2
- import click
3
- from flask import Blueprint
4
- from flask.cli import with_appcontext
5
- from cassandra.cqlengine.management import sync_table, sync_type
6
- from argus.backend.db import ScyllaCluster
7
- from argus.backend.plugins.loader import all_plugin_models, all_plugin_types
8
- from argus.backend.service.build_system_monitor import JenkinsMonitor
9
- from argus.backend.service.github_service import GithubService
10
-
11
- cli_bp = Blueprint("cli", __name__)
12
- LOGGER = logging.getLogger(__name__)
13
-
14
-
15
- @cli_bp.cli.add_command
16
- @click.command('sync-models')
17
- @with_appcontext
18
- def sync_models_command():
19
- sync_models()
20
-
21
-
22
- def sync_models():
23
- cluster = ScyllaCluster.get()
24
- cluster.sync_core_tables()
25
- LOGGER.info("Synchronizing plugin types...")
26
- for user_type in all_plugin_types():
27
- LOGGER.info("Synchronizing plugin type %s...", user_type.__name__)
28
- sync_type(ks_name=cluster.config["SCYLLA_KEYSPACE_NAME"], type_model=user_type)
29
- LOGGER.info("Synchronizing plugin models...")
30
- for model in all_plugin_models(True):
31
- LOGGER.info("Synchronizing plugin model %s...", model.__name__)
32
- sync_table(model=model, keyspaces=[cluster.config["SCYLLA_KEYSPACE_NAME"]])
33
-
34
- LOGGER.info("Plugins ready.")
35
- click.echo("All models synchronized.")
36
-
37
-
38
- def refresh_issues():
39
- ScyllaCluster.get()
40
- gh = GithubService()
41
- gh.refresh_stale_issues()
42
-
43
-
44
- @cli_bp.cli.add_command
45
- @click.command('refresh-issues')
46
- @with_appcontext
47
- def refresh_issues_command():
48
- refresh_issues()
49
-
50
-
51
- @cli_bp.cli.add_command
52
- @click.command('scan-jenkins')
53
- @with_appcontext
54
- def scan_jenkins_command():
55
- monitor = JenkinsMonitor()
56
- monitor.collect()
57
- click.echo("Done.")
@@ -1,20 +0,0 @@
1
- import logging
2
- from flask import (
3
- Blueprint,
4
- render_template,
5
- )
6
- from argus.backend.controller.admin_api import bp as admin_api_bp
7
- from argus.backend.service.user import login_required, check_roles
8
- from argus.backend.models.web import UserRoles
9
-
10
- bp = Blueprint('admin', __name__, url_prefix='/admin')
11
- bp.register_blueprint(admin_api_bp)
12
- LOGGER = logging.getLogger(__name__)
13
-
14
-
15
- @bp.route("/")
16
- @bp.route("/<string:path>")
17
- @check_roles(UserRoles.Admin)
18
- @login_required
19
- def index(path: str = "index"):
20
- return render_template("admin/index.html.j2", current_route=path)
@@ -1,355 +0,0 @@
1
- import logging
2
- from uuid import UUID
3
- from flask import (
4
- Blueprint,
5
- request,
6
- Request,
7
- )
8
- from argus.backend.error_handlers import handle_api_exception
9
- from argus.backend.service.release_manager import ReleaseEditPayload, ReleaseManagerService
10
- from argus.backend.service.user import UserService, api_login_required, check_roles
11
- from argus.backend.models.web import User, UserRoles
12
-
13
- bp = Blueprint('admin_api', __name__, url_prefix='/api/v1')
14
- LOGGER = logging.getLogger(__name__)
15
- bp.register_error_handler(Exception, handle_api_exception)
16
-
17
-
18
- def get_payload(client_request: Request):
19
- if not client_request.is_json:
20
- raise Exception(
21
- "Content-Type mismatch, expected application/json, got:", client_request.content_type)
22
- request_payload = client_request.get_json()
23
-
24
- return request_payload
25
-
26
-
27
- @bp.route("/", methods=["GET"])
28
- @check_roles(UserRoles.Admin)
29
- @api_login_required
30
- def index():
31
- return {
32
- "version": "v1"
33
- }
34
-
35
-
36
- @bp.route("/release/create", methods=["POST"])
37
- @check_roles(UserRoles.Admin)
38
- @api_login_required
39
- def create_release():
40
- payload = get_payload(request)
41
- release = ReleaseManagerService().create_release(**payload)
42
-
43
- return {
44
- "status": "ok",
45
- "response": {
46
- "new_release": release
47
- }
48
- }
49
-
50
-
51
- @bp.route("/release/set_perpetual", methods=["POST"])
52
- @check_roles(UserRoles.Admin)
53
- @api_login_required
54
- def set_release_perpetual():
55
- payload = get_payload(request)
56
- result = ReleaseManagerService().set_release_perpetuality(**payload)
57
- return {
58
- "status": "ok",
59
- "response": {
60
- "updated": result
61
- }
62
- }
63
-
64
-
65
- @bp.route("/release/set_state", methods=["POST"])
66
- @check_roles(UserRoles.Admin)
67
- @api_login_required
68
- def set_release_state():
69
- payload = get_payload(request)
70
- result = ReleaseManagerService().set_release_state(**payload)
71
-
72
- return {
73
- "status": "ok",
74
- "response": {
75
- "updated": result
76
- }
77
- }
78
-
79
-
80
- @bp.route("/release/set_dormant", methods=["POST"])
81
- @check_roles(UserRoles.Admin)
82
- @api_login_required
83
- def set_release_dormancy():
84
- payload = get_payload(request)
85
- result = ReleaseManagerService().set_release_dormancy(**payload)
86
-
87
- return {
88
- "status": "ok",
89
- "response": {
90
- "updated": result
91
- }
92
- }
93
-
94
-
95
- @bp.route("/release/edit", methods=["POST"])
96
- @check_roles(UserRoles.Admin)
97
- @api_login_required
98
- def edit_release():
99
- payload: ReleaseEditPayload = get_payload(request)
100
- result = ReleaseManagerService().edit_release(payload)
101
-
102
- return {
103
- "status": "ok",
104
- "response": {
105
- "updated": result
106
- }
107
- }
108
-
109
-
110
- @bp.route("/release/delete", methods=["POST"])
111
- @check_roles(UserRoles.Admin)
112
- @api_login_required
113
- def delete_release():
114
- payload = get_payload(request)
115
- result = ReleaseManagerService().delete_release(release_id=payload["releaseId"])
116
-
117
- return {
118
- "status": "ok",
119
- "response": {
120
- "deleted": result
121
- }
122
- }
123
-
124
-
125
- @bp.route("/group/create", methods=["POST"])
126
- @check_roles(UserRoles.Admin)
127
- @api_login_required
128
- def create_group():
129
- payload = get_payload(request)
130
- group = ReleaseManagerService().create_group(**payload)
131
-
132
- return {
133
- "status": "ok",
134
- "response": {
135
- "new_group": group
136
- }
137
- }
138
-
139
-
140
- @bp.route("/group/update", methods=["POST"])
141
- @check_roles(UserRoles.Admin)
142
- @api_login_required
143
- def update_group():
144
- payload = get_payload(request)
145
- result = ReleaseManagerService().update_group(**payload)
146
- return {
147
- "status": "ok",
148
- "response": {
149
- "updated": result
150
- }
151
- }
152
-
153
-
154
- @bp.route("/group/delete", methods=["POST"])
155
- @check_roles(UserRoles.Admin)
156
- @api_login_required
157
- def delete_group():
158
- payload = get_payload(request)
159
- result = ReleaseManagerService().delete_group(**payload)
160
-
161
- return {
162
- "status": "ok",
163
- "response": {
164
- "deleted": result
165
- }
166
- }
167
-
168
-
169
- @bp.route("/test/create", methods=["POST"])
170
- @check_roles(UserRoles.Admin)
171
- @api_login_required
172
- def create_test():
173
- payload = get_payload(request)
174
- test = ReleaseManagerService().create_test(**payload)
175
- return {
176
- "status": "ok",
177
- "response": {
178
- "new_test": test
179
- }
180
- }
181
-
182
-
183
- @bp.route("/test/update", methods=["POST"])
184
- @check_roles(UserRoles.Admin)
185
- @api_login_required
186
- def update_test():
187
- payload = get_payload(request)
188
- result = ReleaseManagerService().update_test(**payload)
189
- return {
190
- "status": "ok",
191
- "response": {
192
- "updated": result
193
- }
194
- }
195
-
196
-
197
- @bp.route("/test/batch_move", methods=["POST"])
198
- @check_roles(UserRoles.Admin)
199
- @api_login_required
200
- def batch_move_tests():
201
- payload = get_payload(request)
202
- result = ReleaseManagerService().batch_move_tests(**payload)
203
- return {
204
- "status": "ok",
205
- "response": {
206
- "moved": result
207
- }
208
- }
209
-
210
-
211
- @bp.route("/test/delete", methods=["POST"])
212
- @check_roles(UserRoles.Admin)
213
- @api_login_required
214
- def delete_test():
215
- payload = get_payload(request)
216
- result = ReleaseManagerService().delete_test(**payload)
217
-
218
- return {
219
- "status": "ok",
220
- "response": {
221
- "deleted": result
222
- }
223
- }
224
-
225
-
226
- @bp.route("/releases/get", methods=["GET"])
227
- @check_roles(UserRoles.Admin)
228
- @api_login_required
229
- def get_releases():
230
- releases = ReleaseManagerService().get_releases()
231
- return {
232
- "status": "ok",
233
- "response": releases
234
- }
235
-
236
-
237
- @bp.route("/groups/get", methods=["GET"])
238
- @check_roles(UserRoles.Admin)
239
- @api_login_required
240
- def get_groups_for_release():
241
- release_id = request.args.get("releaseId")
242
- if not release_id:
243
- raise Exception("ReleaseId not provided in the request")
244
- groups = ReleaseManagerService().get_groups(release_id=UUID(release_id))
245
-
246
- return {
247
- "status": "ok",
248
- "response": groups
249
- }
250
-
251
-
252
- @bp.route("/tests/get", methods=["GET"])
253
- @check_roles(UserRoles.Admin)
254
- @api_login_required
255
- def get_tests_for_group():
256
- group_id = request.args.get("groupId")
257
- if not group_id:
258
- raise Exception("GroupId not provided in the request")
259
- tests = ReleaseManagerService().get_tests(group_id=UUID(group_id))
260
- return {
261
- "status": "ok",
262
- "response": tests
263
- }
264
-
265
-
266
- @bp.route("/release/test/state/toggle", methods=["POST"])
267
- @check_roles(UserRoles.Admin)
268
- @api_login_required
269
- def quick_toggle_test_enabled():
270
-
271
- payload = get_payload(request)
272
- res = ReleaseManagerService().toggle_test_enabled(test_id=payload["entityId"], new_state=payload["state"])
273
- return {
274
- "status": "ok",
275
- "response": res
276
- }
277
-
278
-
279
- @bp.route("/release/group/state/toggle", methods=["POST"])
280
- @check_roles(UserRoles.Admin)
281
- @api_login_required
282
- def quick_toggle_group_enabled():
283
-
284
- payload = get_payload(request)
285
- res = ReleaseManagerService().toggle_group_enabled(group_id=payload["entityId"], new_state=payload["state"])
286
- return {
287
- "status": "ok",
288
- "response": res
289
- }
290
-
291
-
292
- @bp.route("/users", methods=["GET"])
293
- @check_roles(UserRoles.Admin)
294
- @api_login_required
295
- def user_info():
296
- result = UserService().get_users_privileged()
297
-
298
- return {
299
- "status": "ok",
300
- "response": result
301
- }
302
-
303
-
304
- @bp.route("/user/<string:user_id>/email/set", methods=["POST"])
305
- @check_roles(UserRoles.Admin)
306
- @api_login_required
307
- def user_change_email(user_id: str):
308
- payload = get_payload(request)
309
-
310
- user = User.get(id=user_id)
311
- result = UserService().update_email(user=user, new_email=payload["newEmail"])
312
-
313
- return {
314
- "status": "ok",
315
- "response": result
316
- }
317
-
318
-
319
- @bp.route("/user/<string:user_id>/delete", methods=["POST"])
320
- @check_roles(UserRoles.Admin)
321
- @api_login_required
322
- def user_delete(user_id: str):
323
- result = UserService().delete_user(user_id=user_id)
324
-
325
- return {
326
- "status": "ok",
327
- "response": result
328
- }
329
-
330
-
331
- @bp.route("/user/<string:user_id>/password/set", methods=["POST"])
332
- @check_roles(UserRoles.Admin)
333
- @api_login_required
334
- def user_change_password(user_id: str):
335
- payload = get_payload(request)
336
-
337
- user = User.get(id=user_id)
338
- result = UserService().update_password(user=user, old_password="", new_password=payload["newPassword"], force=True)
339
-
340
- return {
341
- "status": "ok",
342
- "response": result
343
- }
344
-
345
-
346
- @bp.route("/user/<string:user_id>/admin/toggle", methods=["POST"])
347
- @check_roles(UserRoles.Admin)
348
- @api_login_required
349
- def user_toggle_admin(user_id: str):
350
- result = UserService().toggle_admin(user_id=user_id)
351
-
352
- return {
353
- "status": "ok",
354
- "response": result
355
- }