Credit caps bulk update - BE integration

What does this MR do and why?

Wires the bulk update cap overrides modal to the upsertUserBudgetCapOverrides GraphQL mutation so that parsed CSV overrides are persisted via the API rather than only displayed as JSON.

Implementation status

Part of https://gitlab.com/gitlab-org/gitlab/-/work_items/630981

Piece Work item MR Status
Feature flag credit_caps_bulk_update + scaffold button https://gitlab.com/gitlab-org/gitlab/-/work_items/630982 !257651 (merged) ✅ Merged
BE: username on BudgetCapUserOverrideInput https://gitlab.com/gitlab-org/gitlab/-/work_items/630983 !258407 (merged) ✅ Merged
FE: bulk update overrides modal https://gitlab.com/gitlab-org/gitlab/-/work_items/630982 !257948 (merged) ✅ Merged
FE: CSV parser https://gitlab.com/gitlab-org/gitlab/-/work_items/630984 !258244 (merged) ✅ Merged
FE: integrate modal with BE https://gitlab.com/gitlab-org/gitlab/-/work_items/630985 !258465 (merged) ⬅️ Current
FE: CSV parser improvements (follow-up) https://gitlab.com/gitlab-org/gitlab/-/work_items/631895 !259381 (merged)
Documentation update https://gitlab.com/gitlab-org/gitlab/-/work_items/632125 !259654 (merged)
Feature flag rollout https://gitlab.com/gitlab-org/gitlab/-/work_items/631018

References

Screenshots or screen recordings

Before After
N/A
N/A

How to set up and validate locally

  1. Enable the feature flag:
    Feature.enable(:credit_caps_bulk_update)
  2. Navigate to the GitLab Credits Dashboard admin page.
  3. Click Bulk update — the modal opens.
  4. Paste a valid CSV (one entry per line: username,cap,enabled):
    alice,100,true
    bob,50,false
  5. Click Save overrides — a success toast appears and the list refreshes.
  6. Try pasting non-existent names or blocking network to see errors handling

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 Kos Palchyk

Merge request reports

Loading
Loading