diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-07-20 09:55:51 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-07-20 09:55:51 +0000 |
commit | e8d2c2579383897a1dd7f9debd359abe8ae8373d (patch) | |
tree | c42be41678c2586d49a75cabce89322082698334 /qa/qa/resource/personal_access_token.rb | |
parent | fc845b37ec3a90aaa719975f607740c22ba6a113 (diff) | |
download | gitlab-ce-e8d2c2579383897a1dd7f9debd359abe8ae8373d.tar.gz |
Add latest changes from gitlab-org/gitlab@14-1-stable-eev14.1.0-rc42
Diffstat (limited to 'qa/qa/resource/personal_access_token.rb')
-rw-r--r-- | qa/qa/resource/personal_access_token.rb | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/qa/qa/resource/personal_access_token.rb b/qa/qa/resource/personal_access_token.rb index 59ae8f4de7a..924e4206166 100644 --- a/qa/qa/resource/personal_access_token.rb +++ b/qa/qa/resource/personal_access_token.rb @@ -11,21 +11,25 @@ module QA # This *could* be different than the api_client.user or the api_user provided by the QA::Resource::ApiFabricator module attr_writer :user - attribute :token do - Page::Profile::PersonalAccessTokens.perform(&:created_access_token) - end + attribute :token # Only Admins can create PAT via the API. # If Runtime::Env.admin_personal_access_token is provided, fabricate via the API, # else, fabricate via the browser. def fabricate_via_api! - if Runtime::Env.admin_personal_access_token && !@user.nil? - self.api_client = Runtime::API::Client.as_admin + @token = QA::Resource::PersonalAccessTokenCache.get_token_for_username(user.username) + return if @token - super - else - fabricate! - end + resource = if Runtime::Env.admin_personal_access_token && !@user.nil? + self.api_client = Runtime::API::Client.as_admin + + super + else + fabricate! + end + + QA::Resource::PersonalAccessTokenCache.set_token_for_username(user.username, self.token) + resource end # When a user is not provided, use default user @@ -66,6 +70,8 @@ module QA # Expire in 2 days just in case the token is created just before midnight token_page.fill_expiry_date(Time.now.utc.to_date + 2) token_page.click_create_token_button + + self.token = Page::Profile::PersonalAccessTokens.perform(&:created_access_token) end end end |