Add workflow to [merge_request, issue, pipeline, note] join tables

What does this MR do and why?

This MR adds join tables for a many-to-many relationship between:

  1. workflows <-> MRs
  2. workflows <-> work_items
  3. workflows <-> notes
  4. workflows <-> pipelines.

Each join table stores a link_type (a small integer) that records how the workflow relates to the linked item — for example, whether the workflow created that merge request / note / pipeline / work item versus merely referenced or acted on it, or whether developer was initiated through the button. These types will be Enum that will be added in followups.

Initial followup is in !240455 (merged) for issue-to-mr.

References

#599435 (closed)

How to set up and validate locally

Up

for v in 20260604100000 20260604100100 20260604100200 20260604100300 20260604100400 20260604100401 20260604100402 20260604100403 20260604100410 20260604100411 20260604100412 20260604100413 20260604100420 20260604100421 20260604100422 20260604100430 20260604100431 20260604100432 20260604100433; do
  bundle exec rails db:migrate:up:main VERSION=$v
  bundle exec rails db:migrate:up:ci   VERSION=$v
  bundle exec rails db:migrate:up:sec  VERSION=$v
done

Down

for v in 20260604100433 20260604100432 20260604100431 20260604100430 20260604100422 20260604100421 20260604100420 20260604100413 20260604100412 20260604100411 20260604100410 20260604100403 20260604100402 20260604100401 20260604100400 20260604100300 20260604100200 20260604100100 20260604100000; do
  bundle exec rails db:migrate:down:main VERSION=$v
  bundle exec rails db:migrate:down:ci   VERSION=$v
  bundle exec rails db:migrate:down:sec  VERSION=$v
done

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Roman Eisner

Merge request reports

Loading
Loading