Fix flakiness in GDK password reset process
What does this MR do and why?
Fix flakiness in GDK password reset process
Add retry logic to the password reset process to guard against flaky failures. This better handles ExpiredPasswordError to ensure that we only fail when genuine issues occur as opposed to occasional flakes such as https://gitlab.com/gitlab-org/quality/e2e-test-issues/-/issues/797
Fixes: https://gitlab.com/gitlab-org/quality/e2e-test-issues/-/issues/797
References
How to set up and validate locally
# reset test user password to force the password reset flow
$ bundle exec rails console
> User.find_by_username("root").update!(password_expires_at: 1.day.ago)
# run some E2E tests that run via the UI, note on first run should perform password reset flow
$ bundle exec rspec qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb
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 John McDonnell