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

Merge request reports

Loading