Convert auto_disabling_web_hooks ops flag to application setting
Why are we doing this work
The auto_disabling_web_hooks ops feature flag has been in use for an extended period and should be converted to an application setting. Feature flags are meant to be short-lived, and this long-lived ops flag should be replaced with a proper application setting to provide a more stable and maintainable configuration option.
This work addresses the comment in !218726 (merged) where it was identified that ops flags should have a clear path to removal, and converting to an application setting is the appropriate next step.
Relevant links
- Original discussion: !218726 (comment 3076579396)
- Feature flag definition: config/feature_flags/ops/auto_disabling_web_hooks.yml
Non-functional requirements
- Documentation: Update documentation to reflect the new application setting and deprecation of the feature flag
- Feature flag: n/a
- Performance: n/a
- Testing: Add tests for the new application setting and verify backward compatibility during transition
Implementation plan
- Create a new application setting for auto-disabling webhooks
- Update the code to check the application setting
- the default for gitlab.com is
enabled; for everything else it'sdisabled
- the default for gitlab.com is
- Plan migration for ops flag into application setting.
- Suggestion: if the setting doesn't exist, set it to the value of the feature flag (i.e. either the existing configuration or the default for the deployment type)
- Update documentation to reflect the new setting
- Remove the feature flag in a future release
Verification steps
- Verify that the application setting can be configured via the admin UI
- Verify that the application setting works as expected when enabled/disabled
- Verify backward compatibility with the existing feature flag during the transition period
- Verify that documentation accurately reflects the new configuration method
Edited by Thiago Figueiró