GitLab Alerts notification email ignores parent group membership, they receive no mail

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Summary

From https://docs.gitlab.com/ee/operations/incident_management/paging.html#email-notifications-for-alerts, there is a setting in Settings -> Monitor -> Alerts to send email for new alerts.

Screenshot_20230427_141456

However, this appears to ignore parent group members fully at any level, meaning no email is sent to inherited members.

Steps to reproduce

  • Create a project in hierarchy like rootgroup/supergroup/group/project.
  • Add a member with notification mail set to each of the tiers in the hierarchy.
    • rootgroupmember (doesn't get mail) (100% sure)
    • supergroupmember (doesn't get mail) (slight doubt on this one)
    • groupmember (works) (tested)
    • projectmember (works) (tested)
  • Enable email notification for new Alerts for project.
  • Send out test alert.

Workaround is to manually add members to the lower-level project directly, such that the project members page lists it as a direct member instead of inheritance from the group structure. After doing that it instantly works, removing the user direct member (still in group, so still maintainer!) it stops working.

Very ugly and quick paint illustrating it somewhat:

image

What is the current bug behavior?

Members with maintainer and owner from supergroup (inherited members) do not get mail.

Note that I manually monitored postfix email server logs and truly observed no mail was sent for these members.

What is the expected correct behavior?

All members with maintainer and owner role get email notification, regardless of inherited member or direct member.

Results of GitLab environment info

Self-hosted GitLab Premium on 15.10-1-ee. Based upon changelog, I don't believe it's fixed for 15.11.0-ee.

Possible fixes

Presumably the code specific for GitLab alerts doesn't handle inherited members from high up, so it would be fixed there.

Edited by 🤖 GitLab Bot 🤖