Loading
Move organization_transfer_support to dedicated registry
What does this MR do?
Extracts the organization_transfer_support field from 158 db/docs/*.yml files into a single config/organizations/transfer_support.yml registry.
Problem
Updating transfer support status for org-sharded tables required editing db/docs/<table>.yml files, which:
- Triggered mandatory database team reviews via CODEOWNERS and Danger rules, even though the change is purely application-level metadata
- Caused frequent merge conflicts in the spec file, which maintained large hardcoded allowlists that every concurrent MR touched
Solution
New registry file: config/organizations/transfer_support.yml
A flat, alphabetically-sorted key-value map:
award_emoji: supported
labels: no_work_needed
pool_repositories: todo- One line per table — two MRs adding different tables touch different lines, git auto-merges cleanly
- No arrays — avoids the append-to-list conflicts that plagued the spec
- Owned by Organizations team via CODEOWNERS, no database review required
Simplified spec
The spec now validates registry consistency (valid statuses, alphabetical sorting, all org-sharded tables present, tables exist in dictionary) without any hardcoded table lists. Zero spec changes needed when adding or updating a table.
Changes
- Add
config/organizations/transfer_support.ymlas the single source of truth - Add
Gitlab::Organizations::TransferSupportRegistrymodule to read the YAML - Update
Dictionary::Entry#organization_transfer_supportto delegate to the registry - Simplify
organization_transfer_support_spec.rb— remove all hardcoded allowlists - Remove
organization_transfer_supportfrom alldb/docs/*.ymlfiles - Remove field from
spec/db/docs_spec.rballowed fields list - Update CODEOWNERS: assign registry and spec to Organizations backend team
- Update documentation to reference the new registry location
How to add transfer support for a new table
Add one alphabetically-sorted line to config/organizations/transfer_support.yml:
your_new_table: supportedNo spec changes. No database review.