Loading
Remove dead ApplicationSetting push_rule association
What does this MR do and why?
Removes the dead belongs_to :push_rule association on ApplicationSetting, the #push_rule method override that forced it to return nil, and the EE spec block covering that override.
Instance-level push rules used to be stored in the push_rules table (a row with is_sample: true) linked through application_settings.push_rule_id. Since the rollout of the update_organization_push_rules feature flag (already cleaned up), they live in the dedicated organization_push_rules table and are looked up by organization instead.
The association is no longer used:
- The model already overrode
#push_ruleto always returnnil. - No runtime code reads or writes
ApplicationSetting#push_ruleorapplication_settings.push_rule_id(verified by greppingapp/,ee/app/,lib/, andee/lib/).
Next steps
Handled in separate follow-up MRs (intentionally excluded here):
- Remove the loose foreign key definition
application_settings→push_rules(push_rule_id,async_nullify) fromconfig/gitlab_loose_foreign_keys.yml, stop tracking record deletions onpush_rules, and addignore_column :push_rule_id. - Drop the
push_rule_idcolumn and theindex_application_settings_on_push_rule_idunique index, following the multi-release column removal process.
References
Edited by Emma Park