diff options
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.js | 27 |
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; + }); +}; |