Make `vulnerability-details` receive a vulnerability as a prop
## Summary The [`vulnerability-details`][component] Vue component currently receives a `details` prop, which is a [processed form][modal] of the modal data set by the [security reports store][reports_mutations] and the [security dashboard store][dashboard_mutations], which is based almost entirely on a given vulnerability. That indirection is unnecessary, and it'd be simpler for the `vulnerability-details` component to receive the vulnerability directly and do whatever processing it needs. This indirection also makes it more likely for there to be inconsistencies (see https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/15682/diffs#d4be8977041303fda2557b41f39409d48f67a3c2_110_113 for an example). ~~This might also be a good opportunity to make it less dynamic and ["smart"](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/14608#2-make-the-vulnerability_details-component-less-smart) (unless https://gitlab.com/gitlab-org/gitlab-ee/issues/11940 makes this all redundant).~~ In the interests of iteration, this issue does *not* include the effort to make the `vulnerability-details` component less "smart". ## Improvements - Less indirection - Simpler (fewer?) store mutations - Less inconsistency ## Risks - We might rewrite all of this anyway when we move to [inline vulnerability management](https://gitlab.com/gitlab-org/gitlab-ee/issues/11940). - ~~This is heavily touched in a big upcoming MR: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/14608.~~ That MR has been abandoned in favour of this approach. - Some of the inconsistency may be irrelevant as we phase out the security reports store, by using the security dashboard instead. ## Involved components - [ee/app/assets/javascripts/vue_shared/security_reports/components/vulnerability_details.vue][component] - [ee/app/assets/javascripts/vue_shared/security_reports/store/mutations.js#L215-250][reports_mutations] - [ee/app/assets/javascripts/security_dashboard/store/modules/vulnerabilities/mutations.js#L66-146][dashboard_mutations] - [ee/app/assets/javascripts/vue_shared/security_reports/components/modal.vue#L118-133][modal] [component]: https://gitlab.com/gitlab-org/gitlab-ee/blob/v12.2.1-ee/ee/app/assets/javascripts/vue_shared/security_reports/components/vulnerability_details.vue [reports_mutations]: https://gitlab.com/gitlab-org/gitlab-ee/blob/v12.2.1-ee/ee/app/assets/javascripts/vue_shared/security_reports/store/mutations.js#L215-250 [dashboard_mutations]: https://gitlab.com/gitlab-org/gitlab-ee/blob/v12.2.1-ee/ee/app/assets/javascripts/security_dashboard/store/modules/vulnerabilities/mutations.js#L66-146 [modal]: https://gitlab.com/gitlab-org/gitlab-ee/blob/v12.2.1-ee/ee/app/assets/javascripts/vue_shared/security_reports/components/modal.vue#L118-133 cc @samdbeckham @pgascouvaillancourt
issue