You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

metrics.ts 8.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. /*
  2. * SonarQube
  3. * Copyright (C) 2009-2024 SonarSource SA
  4. * mailto:info AT sonarsource DOT com
  5. *
  6. * This program is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 3 of the License, or (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public License
  17. * along with this program; if not, write to the Free Software Foundation,
  18. * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  19. */
  20. export enum MetricKey {
  21. alert_status = 'alert_status',
  22. blocker_violations = 'blocker_violations',
  23. branch_coverage = 'branch_coverage',
  24. bugs = 'bugs',
  25. burned_budget = 'burned_budget',
  26. business_value = 'business_value',
  27. class_complexity = 'class_complexity',
  28. classes = 'classes',
  29. code_smells = 'code_smells',
  30. cognitive_complexity = 'cognitive_complexity',
  31. comment_lines = 'comment_lines',
  32. comment_lines_data = 'comment_lines_data',
  33. comment_lines_density = 'comment_lines_density',
  34. complexity = 'complexity',
  35. complexity_in_classes = 'complexity_in_classes',
  36. complexity_in_functions = 'complexity_in_functions',
  37. conditions_to_cover = 'conditions_to_cover',
  38. confirmed_issues = 'confirmed_issues',
  39. coverage = 'coverage',
  40. critical_violations = 'critical_violations',
  41. development_cost = 'development_cost',
  42. directories = 'directories',
  43. duplicated_blocks = 'duplicated_blocks',
  44. duplicated_files = 'duplicated_files',
  45. duplicated_lines = 'duplicated_lines',
  46. duplicated_lines_density = 'duplicated_lines_density',
  47. duplications_data = 'duplications_data',
  48. effort_to_reach_maintainability_rating_a = 'effort_to_reach_maintainability_rating_a',
  49. executable_lines_data = 'executable_lines_data',
  50. false_positive_issues = 'false_positive_issues',
  51. file_complexity = 'file_complexity',
  52. file_complexity_distribution = 'file_complexity_distribution',
  53. filename_size = 'filename_size',
  54. filename_size_rating = 'filename_size_rating',
  55. files = 'files',
  56. function_complexity = 'function_complexity',
  57. function_complexity_distribution = 'function_complexity_distribution',
  58. functions = 'functions',
  59. generated_lines = 'generated_lines',
  60. generated_ncloc = 'generated_ncloc',
  61. info_violations = 'info_violations',
  62. last_change_on_maintainability_rating = 'last_change_on_maintainability_rating',
  63. last_change_on_releasability_rating = 'last_change_on_releasability_rating',
  64. last_change_on_reliability_rating = 'last_change_on_reliability_rating',
  65. last_change_on_security_rating = 'last_change_on_security_rating',
  66. last_change_on_security_review_rating = 'last_change_on_security_review_rating',
  67. last_commit_date = 'last_commit_date',
  68. leak_projects = 'leak_projects',
  69. line_coverage = 'line_coverage',
  70. lines = 'lines',
  71. lines_to_cover = 'lines_to_cover',
  72. maintainability_issues = 'maintainability_issues',
  73. maintainability_rating_distribution = 'maintainability_rating_distribution',
  74. maintainability_rating_effort = 'maintainability_rating_effort',
  75. major_violations = 'major_violations',
  76. minor_violations = 'minor_violations',
  77. ncloc = 'ncloc',
  78. ncloc_data = 'ncloc_data',
  79. ncloc_language_distribution = 'ncloc_language_distribution',
  80. new_accepted_issues = 'new_accepted_issues',
  81. new_blocker_violations = 'new_blocker_violations',
  82. new_branch_coverage = 'new_branch_coverage',
  83. new_bugs = 'new_bugs',
  84. new_code_smells = 'new_code_smells',
  85. new_conditions_to_cover = 'new_conditions_to_cover',
  86. new_coverage = 'new_coverage',
  87. new_critical_violations = 'new_critical_violations',
  88. new_development_cost = 'new_development_cost',
  89. new_duplicated_blocks = 'new_duplicated_blocks',
  90. new_duplicated_lines = 'new_duplicated_lines',
  91. new_duplicated_lines_density = 'new_duplicated_lines_density',
  92. new_info_violations = 'new_info_violations',
  93. new_line_coverage = 'new_line_coverage',
  94. new_lines = 'new_lines',
  95. new_lines_to_cover = 'new_lines_to_cover',
  96. new_maintainability_issues = 'new_maintainability_issues',
  97. new_maintainability_rating = 'new_maintainability_rating',
  98. new_maintainability_rating_distribution = 'new_maintainability_rating_distribution',
  99. new_major_violations = 'new_major_violations',
  100. new_minor_violations = 'new_minor_violations',
  101. new_reliability_issues = 'new_reliability_issues',
  102. new_reliability_rating = 'new_reliability_rating',
  103. new_reliability_remediation_effort = 'new_reliability_remediation_effort',
  104. new_reliability_rating_distribution = 'new_reliability_rating_distribution',
  105. new_security_hotspots = 'new_security_hotspots',
  106. new_security_hotspots_reviewed = 'new_security_hotspots_reviewed',
  107. new_security_issues = 'new_security_issues',
  108. new_security_rating = 'new_security_rating',
  109. new_security_rating_distribution = 'new_security_rating_distribution',
  110. new_security_remediation_effort = 'new_security_remediation_effort',
  111. new_security_review_rating = 'new_security_review_rating',
  112. new_security_review_rating_distribution = 'new_security_review_rating_distribution',
  113. new_sqale_debt_ratio = 'new_sqale_debt_ratio',
  114. new_technical_debt = 'new_technical_debt',
  115. new_uncovered_conditions = 'new_uncovered_conditions',
  116. new_uncovered_lines = 'new_uncovered_lines',
  117. new_violations = 'new_violations',
  118. new_vulnerabilities = 'new_vulnerabilities',
  119. open_issues = 'open_issues',
  120. projects = 'projects',
  121. public_api = 'public_api',
  122. public_documented_api_density = 'public_documented_api_density',
  123. public_undocumented_api = 'public_undocumented_api',
  124. pull_request_fixed_issues = 'pull_request_fixed_issues',
  125. quality_gate_details = 'quality_gate_details',
  126. quality_profiles = 'quality_profiles',
  127. releasability_effort = 'releasability_effort',
  128. releasability_rating = 'releasability_rating',
  129. releasability_rating_distribution = 'releasability_rating_distribution',
  130. reliability_issues = 'reliability_issues',
  131. reliability_rating = 'reliability_rating',
  132. reliability_rating_effort = 'reliability_rating_effort',
  133. reliability_rating_distribution = 'reliability_rating_distribution',
  134. reliability_remediation_effort = 'reliability_remediation_effort',
  135. reopened_issues = 'reopened_issues',
  136. security_hotspots = 'security_hotspots',
  137. security_hotspots_reviewed = 'security_hotspots_reviewed',
  138. security_issues = 'security_issues',
  139. security_rating = 'security_rating',
  140. security_rating_effort = 'security_rating_effort',
  141. security_rating_distribution = 'security_rating_distribution',
  142. security_remediation_effort = 'security_remediation_effort',
  143. security_review_rating = 'security_review_rating',
  144. security_review_rating_distribution = 'security_review_rating_distribution',
  145. security_review_rating_effort = 'security_review_rating_effort',
  146. skipped_tests = 'skipped_tests',
  147. sonarjava_feedback = 'sonarjava_feedback',
  148. sqale_debt_ratio = 'sqale_debt_ratio',
  149. sqale_index = 'sqale_index',
  150. sqale_rating = 'sqale_rating',
  151. statements = 'statements',
  152. team_at_sonarsource = 'team_at_sonarsource',
  153. team_size = 'team_size',
  154. test_errors = 'test_errors',
  155. test_execution_time = 'test_execution_time',
  156. test_failures = 'test_failures',
  157. test_success_density = 'test_success_density',
  158. tests = 'tests',
  159. uncovered_conditions = 'uncovered_conditions',
  160. uncovered_lines = 'uncovered_lines',
  161. violations = 'violations',
  162. vulnerabilities = 'vulnerabilities',
  163. accepted_issues = 'accepted_issues',
  164. high_impact_accepted_issues = 'high_impact_accepted_issues',
  165. wont_fix_issues = 'wont_fix_issues',
  166. }
  167. export enum MetricType {
  168. Rating = 'RATING',
  169. Percent = 'PERCENT',
  170. Integer = 'INT',
  171. Level = 'LEVEL',
  172. ShortInteger = 'SHORT_INT',
  173. ShortWorkDuration = 'SHORT_WORK_DUR',
  174. Data = 'DATA',
  175. Distribution = 'DISTRIB',
  176. }
  177. export function isMetricKey(key: string): key is MetricKey {
  178. return (Object.values(MetricKey) as string[]).includes(key);
  179. }