diff options
Diffstat (limited to 'app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue')
-rw-r--r-- | app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue b/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue index 43ce748b41d..46749fc5e87 100644 --- a/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue +++ b/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue @@ -4,6 +4,7 @@ import MRWidgetStore from 'ee_else_ce/vue_merge_request_widget/stores/mr_widget_ import MRWidgetService from 'ee_else_ce/vue_merge_request_widget/services/mr_widget_service'; import MrWidgetApprovals from 'ee_else_ce/vue_merge_request_widget/components/approvals/approvals.vue'; import stateMaps from 'ee_else_ce/vue_merge_request_widget/stores/state_maps'; +import { GlSafeHtmlDirective } from '@gitlab/ui'; import { sprintf, s__, __ } from '~/locale'; import Project from '~/pages/projects/project'; import SmartInterval from '~/smart_interval'; @@ -45,12 +46,16 @@ import GroupedTestReportsApp from '../reports/components/grouped_test_reports_ap import { setFaviconOverlay } from '../lib/utils/common_utils'; import GroupedAccessibilityReportsApp from '../reports/accessibility_report/grouped_accessibility_reports_app.vue'; import getStateQuery from './queries/get_state.query.graphql'; +import { isExperimentEnabled } from '~/lib/utils/experimentation'; export default { el: '#js-vue-mr-widget', // False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/25 // eslint-disable-next-line @gitlab/require-i18n-strings name: 'MRWidget', + directives: { + SafeHtml: GlSafeHtmlDirective, + }, components: { Loading, 'mr-widget-header': WidgetHeader, @@ -85,6 +90,7 @@ export default { TerraformPlan, GroupedAccessibilityReportsApp, MrWidgetApprovals, + SecurityReportsApp: () => import('~/vue_shared/security_reports/security_reports_app.vue'), }, apollo: { state: { @@ -148,7 +154,7 @@ export default { }, shouldSuggestPipelines() { return ( - gon.features?.suggestPipeline && + isExperimentEnabled('suggestPipeline') && !this.mr.hasCI && this.mr.mergeRequestAddCiConfigPath && !this.mr.isDismissedSuggestPipeline @@ -178,6 +184,9 @@ export default { this.mr.mergePipelinesEnabled && this.mr.sourceProjectId !== this.mr.targetProjectId, ); }, + shouldRenderSecurityReport() { + return Boolean(window.gon?.features?.coreSecurityMrWidget && this.mr.pipeline.id); + }, mergeError() { let { mergeError } = this.mr; @@ -455,6 +464,13 @@ export default { :codequality-help-path="mr.codequalityHelpPath" /> + <security-reports-app + v-if="shouldRenderSecurityReport" + :pipeline-id="mr.pipeline.id" + :project-id="mr.targetProjectId" + :security-reports-docs-path="mr.securityReportsDocsPath" + /> + <grouped-test-reports-app v-if="mr.testResultsPath" class="js-reports-container" @@ -498,7 +514,7 @@ export default { </mr-widget-alert-message> <mr-widget-alert-message v-if="mr.mergeError" type="danger"> - {{ mergeError }} + <span v-safe-html="mergeError"></span> </mr-widget-alert-message> <source-branch-removal-status v-if="shouldRenderSourceBranchRemovalStatus" /> |