Route Orbit billing checks through one billing subject

What does this MR do and why?

The Orbit turn-on, access, toggle and ended-trial code now ask one billing subject instead of calling the license and trial helpers directly. BillingSubject.for returns a GroupSubject for the top-level group. No behavior change.

This prepares the self-managed instance trial: the next MR adds an InstanceSubject, and BillingSubject.for then returns it on GitLab Self-Managed and GitLab Dedicated.

flowchart LR
  checks["Orbit checks:<br/>turn on, access,<br/>toggle, ended trial"] --> subject["BillingSubject.for"]
  subject -->|"this MR"| group["GroupSubject<br/>GitLab.com"]
  subject -.->|"next MR"| instance["InstanceSubject<br/>Self-Managed, Dedicated"]
  group --> cdot["CustomersDot:<br/>trial and add-on"]
  instance -.-> cdot
  instance -.->|"after that"| ui["Admin trial UI"]

References

Screenshots or screen recordings

No UI change.

How to set up and validate locally

No behavior change. On GitLab.com, turning Orbit on and off for a top-level group works as before, with and without a trial.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Jean-Gabriel Doyon

Merge request reports

Loading
Loading