We can't migrate issues to work items until we have parity in actions a user can take. As of today, there is no way to report spam or abuse.
Proposal
Add the ability to report spam from the actions menu in the work item header. - this flow is currently blocked by Akismet integration that would need to be resolved by backend
Add the ability to report abuse from the actions menu in the work item header. - completed in #461848 (closed)
Add the ability to report abuse for a single comment. - already complete!
UX
Submit as spam
Administrator users can select "Submit as spam" from the top most action menu, creating a new spam item
@cngo This is one of the issues that we chatted about. I looked into this last month but unfortunately don't remember anything other that what I wrote in #478047 (comment 2166728974). Can you see if this flow would be possible using the legacy issue iid?
@donaldcook I had a look at this and it's something we probably need backend work for.
On legacy issues, we are passing can_report_spam: issuable.submittable_as_spam_by?(current_user).to_s and submit_as_spam_path: mark_as_spam_project_issue_path(project, issuable) from the backend to the frontend. However, these values are derived from an issuable/work_item object, and for work items we have a flow where we can visit the work items list page then click on a work item to open it in a drawer. In this case, we won't be able to pass in these values to the work items list because there is no work item object associated with the list, so it's not possible to get these values to the work item drawer in this way.
Instead, it probably makes better sense to pass the canReportSpam and submitAsSpamPath values in the GraphQL work item response so we can get these values for every work item drawer. WDYT?
@cngo What does mark_as_spam_project_issue_path return? /issues/[iid]/mark_as_spam? I'm wondering if there's a way to generate that on the frontend for now, and then we can take some time to fully build out a work items route.
canReportSpam we can probably add it to the user object in the GraphQL API, similar to how we're doing that for summarize discussion.
What does mark_as_spam_project_issue_path return? /issues/[iid]/mark_as_spam?
@donaldcook Yes, it returns /issues/[iid]/mark_as_spam. Sure, we could temporarily construct this URL in the frontend for now for work items.
canReportSpam we can probably add it to the user object in the GraphQL API, similar to how we're doing that for summarize discussion.
Yes that's what I was thinking, to add it to the userPermissions object in the GraphQL response. My backend skills aren't at the level where I can do this though