Skip to content

Rename error messages referencing Code Suggestions to Duo Pro

What does this MR do and why?

This MR and Rename Code Suggestions to Duo Pro in the UI (!141124 - merged) resolve https://gitlab.com/gitlab-org/fulfillment/meta/-/issues/1604+.

As part of bundling Code Suggestions under the Duo Pro add-on, this MR renames all error message that reference the Code Suggestions add-on (not the feature!) to reference Duo Pro instead.

The areas renamed are listed in the Screenshots section below.

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

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Error Instance Page Before After Testing Patch
NO_SEATS_AVAILABLE_ERROR_CODE Self-Managed /admin/code_suggestions sm_no_seats_error_before sm_no_seats_error_after sm_no_seats_error.patch
CANNOT_ASSIGN_ADDON Self-Managed /admin/code_suggestions sm_cannot_assign_error_before sm_cannot_assign_error_after sm_cannot_assign_error.patch
CANNOT_UNASSIGN_ADDON Self-Managed /admin/code_suggestions sm_cannot_unassign_error_before sm_cannot_unassign_error_after sm_cannot_unassign_error.patch
ADD_ON_PURCHASE_FETCH_ERROR SaaS /groups/:group_id/-/usage_quotas#code-suggestions-usage-tab saas_purchase_fetch_error_before saas_purchase_fetch_error_after saas_purchase_fetch_error.patch
ADD_ON_ELIGIBLE_USERS_FETCH_ERROR SaaS /groups/:group_id/-/usage_quotas#code-suggestions-usage-tab saas_users_fetch_error_before saas_users_fetch_error_after saas_users_fetch_error.patch

How to set up and validate locally

General setup

Enable the following feature flags in the Rails console (bundle exec rails c):

Feature.enable(:code_suggestions)
Feature.enable(:code_suggestions_tokens_api)
Feature.enable(:purchase_code_suggestions)
Feature.enable(:self_managed_code_suggestions)
Feature.enable(:hamilton_seat_management)

Spoof a Self-Managed Duo Pro add-on subscription

  1. Purchase a "Self-Managed - Duo Pro" add-on from the Zuora API Sandbox for your account, or spoof one using the following commands in the Rails console:
# Feel free to delete these objects after testing
add_on_sm = GitlabSubscriptions::AddOn.find_or_create_by!(name: "code_suggestions") {|e| e.description = "Test SM"}
add_on_purchase_sm = GitlabSubscriptions::AddOnPurchase.create!(
  add_on: add_on_sm, expires_on: 1.month.from_now, quantity: 5, purchase_xid: 'A-S0001'
)
add_on_purchase_sm.update(expires_on: 1.month.from_now)

Spoof a SaaS Duo Pro add-on subscription

  1. Purchase a "SaaS - Duo Pro" add-on from the Zuora API Sandbox for your account, or spoof one using the following commands in the Rails console:
# Feel free to delete these objects after testing
add_on_saas = GitlabSubscriptions::AddOn.find_or_create_by!(name: "code_suggestions") {|e| e.description = "Test SaaS"}
add_on_purchase_saas = GitlabSubscriptions::AddOnPurchase.create!(
  namespace: Namespace.find(<GROUP_ID>), add_on: add_on_saas, expires_on: 1.month.from_now, quantity: 5, purchase_xid: 'A-S0002'
)
add_on_purchase_saas.update(expires_on: 1.month.from_now)

Self-Managed testing

  1. Start GDK in Self-Managed mode using GITLAB_SIMULATE_SAAS=0 gdk start (this is the default mode).
  2. Log into GDK using your root user.
  3. Ensure you have a valid paid license (Premium or Ultimate) through Admin Area > Subscriptions.
  4. Apply the patch relevant to the error to validate (see table above).
  5. Navigate to the appropriate page, ensuring the copy matches the "After" screenshots in the visual changes section above.

SaaS setup

  1. Start GDK in SaaS mode by following this guide.
  2. Setup and start CustomersDot (optional).
  3. Log into GDK with a user belonging to the <GROUP_ID> you entered earlier.
  4. Ensure you have a valid paid license (Premium or Ultimate) through Admin Area > Subscriptions.
  5. Apply the patch relevant to the error to validate (see table above).
  6. Navigate to the appropriate page, ensuring the copy matches the "After" screenshots in the visual changes section above.
Edited by Mohamed Moustafa

Merge request reports