Define: Dormant Members
Background
In [Gitlab.com] Automatic removal of dormant members (&7533) we intend to add a feature to identify and remove dormant users from Namespaces for GitLab.com
This is similar to the existing SM feature (&5519), but rather than deactivating users, we will remove members.
Dormant Members
In order to determine our approach and deliver the feature, we need to define what constitutes a dormant member, i.e. what actions make a member "active"?
User#last_activity_on
We already have this timestamp at a User
level, which is updated based on a variety of actions:
- Git HTTP/SSH activities (such as clone, push)
- User logging in to GitLab
- User visiting pages related to dashboards, projects, issues, and merge requests
- User using the API
- User using the GraphQL API
For Members of a Group, some of these actions won't be relevant (e.g. logging in to GitLab.com) but we might want to adopt some of the others.
What actions make a member "active"?
To prevent being dormant (and thus "active"), the actions should be aligned as closely to the above as possible, i.e.
- Git HTTP/SSH activities (such as clone, push)
- Member visiting pages related to dashboards, projects, issues, merge requests, settings, etc.
- Member using the API
- Member using the GraphQL API
A member should be considered dormant if:
- they have not performed any of these actions in the last N days
- OR, they were added > 7 days ago but have never performed any of these actions
See #460840 (comment 1898351099) for discussion
What roles are never considered "inactive"?
- Group Owners