Support Duo for Personal Namespaces on Self-Managed

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

There is current a gap in documentation and user experience when customers with Duo seats attempt to use Duo features in personal namespaces. GitLab Duo features are currently blocked in personal namespaces across all deployment types, but this creates a poor customer experience on self-managed instances where customers pay for instance-wide Premium/Ultimate licenses and reasonably expect Duo to work in personal projects.

Background

Current Behavior

  • Most Duo features are blocked in personal namespaces via return false if personal_namespace?(root_ancestor) regardless of deployment type
    • On GitLab.com, Duo subscription are applied to the top level namespace and cannot be applied to a personal namespace.
    • Personal namespaces are always considered "free tier" in terms of licensing
    • This blocking applies to both GitLab.com and self-managed instances
  • Personal namespaces don't currently have settings in place to turn Duo on for the namespace
  • Some basic Duo Chat functionality works inconsistently, creating confusion;
    • Seated Duo users with personal namespaces can therefore ask general questions within that namespace (access inherited externally) but may not have access to context (GitLab resources) specific to that personal namespace; users cannot use Duo with project-specific issues, epics, MRs, or codebase
  • Instance administrators sometimes have access while regular users don't

Technical Details

  • return false if personal_namespace?(root_ancestor) blocks most advanced features
  • But basic Chat functionality appears to bypass some of these checks
  • This creates the inconsistent experience where some features work while others don't

User Experience Reality

Users often find this confusing because:

  • They can start a Duo Chat conversation in a personal project
  • They can ask general programming questions and get responses
  • But when they try to ask about specific files, issues, or use features like /assign_reviewer @GitLabDuo, those don't work
  • There's no clear indication of which features should work and which won't

Customer Impact

Self-managed customers experience:

  • Confusion about why Duo features don't work in personal projects despite having Premium/Ultimate licenses
  • Inconsistent behavior where some Duo features work while others don't
  • Multiple support escalations indicating this is a recurring pain point
  • Expectation mismatch: "If they pay for 1000 Premium licenses they expect they have 1000 Premium users"

Definition of Done

  • Enable Duo features in personal namespaces for self-managed and GitLab Dedicated instances while maintaining current restrictions on GitLab.com (personal namespaces remain limited on GitLab.com)
  • Users with Duo Seat on Self-Managed and Dedicated can use all appropriate Duo features in personal namespaces
  • Users can ask context-aware questions about personal project resources
  • Feature availability is consistent with group projects on the same instance (i.e. Code Suggestions works in personal project repositories)
  • Documentation is updated to reflect new behavior, with a clear explanation of personal namespace support by deployment type and an updated feature availability matrix
  • Fix has been backported into the last 1-2 versions of Gitlab (per request here)
Edited by 🤖 GitLab Bot 🤖