summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/reports/codequality_report/store/utils/codequality_parser.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/reports/codequality_report/store/utils/codequality_parser.js')
-rw-r--r--app/assets/javascripts/reports/codequality_report/store/utils/codequality_parser.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/app/assets/javascripts/reports/codequality_report/store/utils/codequality_parser.js b/app/assets/javascripts/reports/codequality_report/store/utils/codequality_parser.js
new file mode 100644
index 00000000000..a794f5f0577
--- /dev/null
+++ b/app/assets/javascripts/reports/codequality_report/store/utils/codequality_parser.js
@@ -0,0 +1,27 @@
+export const parseCodeclimateMetrics = (issues = [], path = '') => {
+ return issues.map((issue) => {
+ const parsedIssue = {
+ name: issue.description,
+ path: issue.file_path,
+ urlPath: `${path}/${issue.file_path}#L${issue.line}`,
+ ...issue,
+ };
+
+ if (issue?.location?.path) {
+ let parseCodeQualityUrl = `${path}/${issue.location.path}`;
+ parsedIssue.path = issue.location.path;
+
+ if (issue?.location?.lines?.begin) {
+ parsedIssue.line = issue.location.lines.begin;
+ parseCodeQualityUrl += `#L${issue.location.lines.begin}`;
+ } else if (issue?.location?.positions?.begin?.line) {
+ parsedIssue.line = issue.location.positions.begin.line;
+ parseCodeQualityUrl += `#L${issue.location.positions.begin.line}`;
+ }
+
+ parsedIssue.urlPath = parseCodeQualityUrl;
+ }
+
+ return parsedIssue;
+ });
+};