gitlab-org/gitlab
Group
A namespace that holds projects, sub-groups, members, and group-level features (epics, iterations, audit events).
Source
app/models/group.rb plus dozens of concerns. EE adds heavily — group-scoped epics, scoped boards, SAML group sync, custom roles, security policies.
What groups own
- Sub-groups (
children). - Projects.
- Members and access requests.
- Labels, milestones, iterations.
- Wikis (EE).
- Epics (EE).
- Boards.
- Compliance frameworks (EE).
- Group access tokens (bot users).
- Group hooks.
- Audit events.
- SAML provider settings (EE).
Hierarchy
Groups can nest arbitrarily. Recursive CTE queries are used to walk ancestors and descendants efficiently. lib/gitlab/sql/recursive_cte.rb and Postgres helper functions back this.
Settings
namespace_settings (shared with namespaces) plus group-specific columns:
- 2FA enforcement.
- IP allow-list (EE).
- Default branch protection.
- Allowed email domains (EE).
- Merge methods (squash, fast-forward).
Inheritance of features
Features applied at a group level (like 2FA enforcement) cascade to descendants. The cascade is computed lazily in policies, not by mass-update.
Removal
Group deletion uses a "delayed deletion" period (EE for paid plans). The destroy service walks the tree and queues per-project destroy jobs.
Related
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.