Model changes for code owner approval rules
What does this MR do?
This is a first step in https://gitlab.com/gitlab-org/gitlab-ee/issues/4418 not all code is used in this MR, but it will be in https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9293.
This adds a partial unique index for approval_merge_request_rules
, the name must be unique scoped to a merge request when code_owners = 't'
.
This is also enforced by validations. A helper method for creating/finding code owner rules avoiding race conditions.
This index is safe to add, as we already only create one code_owner
row in that table. Now the database will enforce this.
Does this MR meet the acceptance criteria?
- [-] Changelog entry added, if necessary
- [-] Documentation created/updated via this MR
- [-] Documentation reviewed by technical writer or follow-up review issue created
-
Tests added for this feature/bug - [-] Tested in all supported browsers
-
Conforms to the code review guidelines -
Conforms to the merge request performance guidelines -
Conforms to the style guides -
Conforms to the database guides -
Link to e2e tests MR added if this MR has Requires e2e tests label. See the Test Planning Process. -
EE specific content should be in the top level /ee
folder -
For a paid feature, have we considered GitLab.com plans, how it works for groups, and is there a design for promoting it to users who aren't on the correct plan? -
Security reports checked/validated by reviewer
Edited by Alexandru Croitor