ActionView::Template::Error: undefined method `project_vulnerability_url' for #<ActionView::Base:0x00000010908570>

https://sentry.gitlab.net/gitlab/gitlabcom/issues/3092147/?referrer=gitlab_plugin

NoMethodError: undefined method `project_vulnerability_url' for #<ActionView::Base:0x00000010908570>
Did you mean?  project_vulnerability_path
  app/helpers/events_helper.rb:190:in `event_note_target_url'
    polymorphic_url([event.project, event.note_target],
  app/helpers/events_helper.rb:221:in `block in event_note_title_html'
    concat link_to(event.note_target_reference, event_note_target_url(event), title: event.target_title, class: 'has-tooltip event-target-link gl-mr-2')
  app/helpers/events_helper.rb:219:in `event_note_title_html'
    capture do
  app/views/events/event/_note.html.haml:9:
    = event_note_title_html(event)
  app/views/events/_event.html.haml:17:
    = render "events/event/note", event: event
...
(223 additional frame(s) were not displayed)

ActionView::Template::Error: undefined method `project_vulnerability_url' for #<ActionView::Base:0x00000010908570>
Did you mean?  project_vulnerability_path

Example

https://gitlab.com/gitlab-org/security-products/analyzers/bundler-audit/activity

Implementation plan

  1. Add a vulnerability? method to ee/app/models/ee/event.rb to check if an event is associated with a vulnerability.
  2. Update #event_note_target_url in ee/app/helpers/ee/events_helper.rb so that it will return a project_security_vulnerability_url if the event is associated with a vulnerability.
Edited by Brian Williams (Ex-GitLab)