Backend work for configurable project defaults for squashing merges
What does this MR do?
This adds a backend component to #17613 (closed) - @sming-gitlab will follow up with the frontend work here!
In particular this:
- Adds an enum to the projects model with squash defaults
- Adds logic to reject merges when they don't meet the criteria
- Adds specs for the above
- Adds some endpoints for the frontend work
Screenshots
Does this MR meet the acceptance criteria?
Conformity
- Changelog entry
- Documentation (if required)
- Code review guidelines
- Merge request performance guidelines
- Style guides
- Database guides
- Separation of EE specific content
Availability and Testing
- Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process.
- Tested in all supported browsers
- Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Edited by 🤖 GitLab Bot 🤖