From 307def3c21b5e02c52fcfe92b19a6e4fc8af7e31 Mon Sep 17 00:00:00 2001 From: mfluharty Date: Tue, 7 Sep 2021 15:38:31 -0600 Subject: [PATCH 1/4] Use GraphQL data in full code quality report When graphql_code_quality_full_report feature flag is enabled load pipeline code quality report data via GraphQL update specs to test for feature flag set to true/false update issue parser to handle all-caps issue severities Add a skeleton loader to the pipeline code quality report --- .../components/codequality_issue_body.vue | 9 +- .../store/utils/codequality_parser.js | 9 +- .../codequality_report/codequality_report.vue | 40 +++- .../get_code_quality_violations.query.graphql | 23 +++ .../codequality_report/store/actions.js | 58 +++++- .../codequality_report/store/constants.js | 2 + .../codequality_report/store/getters.js | 10 +- .../store/mutation_types.js | 1 + .../codequality_report/store/mutations.js | 19 +- .../codequality_report/store/state.js | 14 +- .../codequality_report/store/utils.js | 8 + .../pipelines/show/codequality_report.js | 14 +- .../ee/projects/pipelines_controller.rb | 1 + .../pipelines/_tabs_content.html.haml | 6 +- .../graphql_code_quality_full_report.yml | 8 + .../codequality_report_spec.js | 49 ++++- .../frontend/codequality_report/mock_data.js | 50 +++++ .../codequality_report/store/actions_spec.js | 175 ++++++++++++++++-- .../store/mutations_spec.js | 16 +- .../components/codequality_issue_body_spec.js | 6 + .../store/utils/codequality_parser_spec.js | 12 ++ 21 files changed, 476 insertions(+), 54 deletions(-) create mode 100644 ee/app/assets/javascripts/codequality_report/graphql/queries/get_code_quality_violations.query.graphql create mode 100644 ee/app/assets/javascripts/codequality_report/store/utils.js create mode 100644 ee/config/feature_flags/development/graphql_code_quality_full_report.yml diff --git a/app/assets/javascripts/reports/codequality_report/components/codequality_issue_body.vue b/app/assets/javascripts/reports/codequality_report/components/codequality_issue_body.vue index 736c8668a34ace..7f6c17e9296f10 100644 --- a/app/assets/javascripts/reports/codequality_report/components/codequality_issue_body.vue +++ b/app/assets/javascripts/reports/codequality_report/components/codequality_issue_body.vue @@ -37,13 +37,16 @@ export default { return this.status === STATUS_SUCCESS; }, severityClass() { - return SEVERITY_CLASSES[this.issue.severity] || SEVERITY_CLASSES.unknown; + return SEVERITY_CLASSES[this.issue.severity.toLowerCase()] || SEVERITY_CLASSES.unknown; }, severityIcon() { - return SEVERITY_ICONS[this.issue.severity] || SEVERITY_ICONS.unknown; + return SEVERITY_ICONS[this.issue.severity.toLowerCase()] || SEVERITY_ICONS.unknown; }, severityLabel() { - return this.$options.severityText[this.issue.severity] || this.$options.severityText.unknown; + return ( + this.$options.severityText[this.issue.severity.toLowerCase()] || + this.$options.severityText.unknown + ); }, }, severityText: { 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 index a794f5f0577bf7..188312d64cbfbc 100644 --- a/app/assets/javascripts/reports/codequality_report/store/utils/codequality_parser.js +++ b/app/assets/javascripts/reports/codequality_report/store/utils/codequality_parser.js @@ -1,14 +1,15 @@ -export const parseCodeclimateMetrics = (issues = [], path = '') => { +export const parseCodeclimateMetrics = (issues = [], blobPath = '') => { return issues.map((issue) => { + const issuePath = issue.file_path || issue.path; const parsedIssue = { name: issue.description, - path: issue.file_path, - urlPath: `${path}/${issue.file_path}#L${issue.line}`, + path: issuePath, + urlPath: `${blobPath}/${issuePath}#L${issue.line}`, ...issue, }; if (issue?.location?.path) { - let parseCodeQualityUrl = `${path}/${issue.location.path}`; + let parseCodeQualityUrl = `${blobPath}/${issue.location.path}`; parsedIssue.path = issue.location.path; if (issue?.location?.lines?.begin) { diff --git a/ee/app/assets/javascripts/codequality_report/codequality_report.vue b/ee/app/assets/javascripts/codequality_report/codequality_report.vue index 0453ae114bd749..18d6697cc6d2b0 100644 --- a/ee/app/assets/javascripts/codequality_report/codequality_report.vue +++ b/ee/app/assets/javascripts/codequality_report/codequality_report.vue @@ -1,37 +1,43 @@