Skip to content

Add project group and ancestors to group list

This addresses an issue that arises when the owner of a path is the group under which the project lives (such as @gitlab-org for the Gitlab project..) Gitlab::CodeOwners::GroupsLoader did not add that group to the list of groups when attempting to determine ownership. This list of groups is expanded into a list of users that the user attempting the action (typically a merge) is compared to. Sinc the project's group is not added to the group list, its members are not expanded and are thus missing from the list of owners for a given path.

Additionally, this will look not simply at the immediate group of the project, but at the entire group tree ancestors to the root group. For example, if the "merge_service" project is at

gitlab-org/engineering/source_code/merge_service

..then any of these groups would be considerable available for listing as a code owner without having to be invited to the project:

  • @gitlab-org
  • @gitlab-org/engineering
  • @gitlab-org/engineering/source_code

This address both the proximate cause of #216345 but of the long-requested feature #32432 (closed)

Edited by 🤖 GitLab Bot 🤖

Merge request reports