Support multiple Duo add-on tiers in Duo management page
What does this MR do and why?
Resolves https://gitlab.com/gitlab-org/gitlab/-/issues/468440+.
This MR uses the new GetAddOnPurchases to retrieve both Duo add-on tiers, if they are both added to the namespace, and sets the page to use the higher one. This is to account for cases where, for example, a namespace would have a Duo Pro add-on, but also a Duo Enterprise trial add-on.
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Screenshots or screen recordings
| Case | Screenshot |
|---|---|
| SaaS: Duo Pro only | ![]() |
| SaaS: Duo Enterprise only | ![]() |
| SaaS: Duo Pro and Enterprise | ![]() |
| SM/Dedicated: Duo Pro only | ![]() |
| SM/Dedicated: Duo Enterprise only | ![]() |
| SM/Dedicated: Duo Pro and Enterprise | ![]() |
How to set up and validate locally
First, enable the feature flags gitlab_duo_usage_menu_item and self_managed_code_suggestions. Then:
- Start GDK, CDot, and Zsim.
- Set up a user and namespace for testing:
- For SaaS, create a new user with a new group.
- For SM, use the root user.
- For each test case, create an order in Zuora with an Ultimate subscription and the appropriate Duo add-on tier. Assign it to the group for SaaS, or use the new license from that order for SM/Dedicated.
- Navigate to the appropriate page and confirm that the correct add-on tier is used on the page.
- For SaaS, there are two pages: http://gdk.test:3000/groups/:group/-/settings/gitlab_duo_usage and http://gdk.test:3000/groups/:group/-/settings/usage_quotas.
- For SM, the page is http://gdk.test:3000/admin/code_suggestions.
Edited by Mohamed Moustafa





