From c225bb67b53d0ba3f540f4d92dc3b039a1dfa0fe Mon Sep 17 00:00:00 2001
From: Chen Charnolevsky <ccharnolevsky@gitlab.com>
Date: Tue, 8 Oct 2024 12:16:18 +0000
Subject: [PATCH] Add 'code flow' to mr widget

---
 app/controllers/projects/merge_requests_controller.rb       | 2 ++
 .../feature_flags/beta/vulnerability_code_flow.yml          | 0
 .../components/pipeline/vulnerability_finding_modal.vue     | 1 +
 .../components/code_flow/vulnerability_code_flow.vue        | 6 +++++-
 .../vulnerabilities/components/vulnerability.vue            | 2 ++
 .../vulnerabilities/vulnerability_code_flow_spec.js         | 2 +-
 ee/spec/frontend/vulnerabilities/vulnerability_spec.js      | 1 +
 7 files changed, 12 insertions(+), 2 deletions(-)
 rename {ee/config => config}/feature_flags/beta/vulnerability_code_flow.yml (100%)

diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index cbe5b10bad84a..bd17f1f2a70f0 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -45,6 +45,8 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
     push_frontend_feature_flag(:ci_graphql_pipeline_mini_graph, project)
     push_frontend_feature_flag(:notifications_todos_buttons, current_user)
     push_frontend_feature_flag(:reviewer_assign_drawer, current_user)
+    push_frontend_feature_flag(:vulnerability_code_flow, project)
+    push_frontend_feature_flag(:pipeline_vulnerability_code_flow, project)
     push_frontend_feature_flag(:issue_autocomplete_backend_filtering, project)
     push_frontend_feature_flag(:realtime_issuable_todo, current_user)
   end
diff --git a/ee/config/feature_flags/beta/vulnerability_code_flow.yml b/config/feature_flags/beta/vulnerability_code_flow.yml
similarity index 100%
rename from ee/config/feature_flags/beta/vulnerability_code_flow.yml
rename to config/feature_flags/beta/vulnerability_code_flow.yml
diff --git a/ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_finding_modal.vue b/ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_finding_modal.vue
index fd345973d57e7..c2caaf1fdfcba 100644
--- a/ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_finding_modal.vue
+++ b/ee/app/assets/javascripts/security_dashboard/components/pipeline/vulnerability_finding_modal.vue
@@ -593,6 +593,7 @@ export default {
           <vulnerability-code-flow
             :branch-ref="ref"
             :details="codeFlowData"
+            :project-full-path="projectFullPath"
             :description="finding.description"
             :description-html="finding.descriptionHtml"
           />
diff --git a/ee/app/assets/javascripts/vue_shared/components/code_flow/vulnerability_code_flow.vue b/ee/app/assets/javascripts/vue_shared/components/code_flow/vulnerability_code_flow.vue
index 036d8c1ba1a53..4978a84f76965 100644
--- a/ee/app/assets/javascripts/vue_shared/components/code_flow/vulnerability_code_flow.vue
+++ b/ee/app/assets/javascripts/vue_shared/components/code_flow/vulnerability_code_flow.vue
@@ -17,7 +17,6 @@ export default {
     CodeFlowFileViewer,
     CodeFlowStepsSection,
   },
-  inject: ['projectFullPath'],
   props: {
     branchRef: {
       type: String,
@@ -27,6 +26,11 @@ export default {
       type: Object,
       required: true,
     },
+    projectFullPath: {
+      type: String,
+      required: true,
+      default: '',
+    },
     description: {
       type: String,
       required: false,
diff --git a/ee/app/assets/javascripts/vulnerabilities/components/vulnerability.vue b/ee/app/assets/javascripts/vulnerabilities/components/vulnerability.vue
index a50e217ec6e26..757a7718daa12 100644
--- a/ee/app/assets/javascripts/vulnerabilities/components/vulnerability.vue
+++ b/ee/app/assets/javascripts/vulnerabilities/components/vulnerability.vue
@@ -37,6 +37,7 @@ export default {
     GlTab,
   },
   mixins: [glFeatureFlagMixin()],
+  inject: ['projectFullPath'],
   props: {
     initialVulnerability: {
       type: Object,
@@ -163,6 +164,7 @@ export default {
           <vulnerability-code-flow
             :branch-ref="ref"
             :details="vulnerability.details.codeFlows"
+            :project-full-path="projectFullPath"
             :description="vulnerability.description"
             :description-html="vulnerability.descriptionHtml"
           />
diff --git a/ee/spec/frontend/vulnerabilities/vulnerability_code_flow_spec.js b/ee/spec/frontend/vulnerabilities/vulnerability_code_flow_spec.js
index c308ab3bcb713..284d3fed69aa7 100644
--- a/ee/spec/frontend/vulnerabilities/vulnerability_code_flow_spec.js
+++ b/ee/spec/frontend/vulnerabilities/vulnerability_code_flow_spec.js
@@ -33,12 +33,12 @@ describe('Vulnerability Code Flow', () => {
       descriptionHtml: mockVulnerability.descriptionHtml,
       branchRef: codeFlowProps.branchRef,
       details: mockVulnerability.details,
+      projectFullPath: codeFlowProps.projectFullPath,
       ...vulnerabilityOverrides,
     };
 
     wrapper = shallowMountExtended(VulnerabilityCodeFlow, {
       apolloProvider: createMockApollo([[blobInfoQuery, mutationResponse]]),
-      provide: { projectFullPath: codeFlowProps.projectFullPath },
       propsData,
     });
   };
diff --git a/ee/spec/frontend/vulnerabilities/vulnerability_spec.js b/ee/spec/frontend/vulnerabilities/vulnerability_spec.js
index 266c3d29d0b2f..2eaf075fa2f2a 100644
--- a/ee/spec/frontend/vulnerabilities/vulnerability_spec.js
+++ b/ee/spec/frontend/vulnerabilities/vulnerability_spec.js
@@ -94,6 +94,7 @@ describe('Vulnerability', () => {
       },
       provide: {
         glFeatures: { vulnerabilityCodeFlow },
+        projectFullPath: 'project/full/path',
       },
       stubs: {
         VulnerabilityFooter: stubComponent(VulnerabilityFooter),
-- 
GitLab