summaryrefslogtreecommitdiff
path: root/qa/qa/resource/personal_access_token.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-07-20 09:55:51 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-07-20 09:55:51 +0000
commite8d2c2579383897a1dd7f9debd359abe8ae8373d (patch)
treec42be41678c2586d49a75cabce89322082698334 /qa/qa/resource/personal_access_token.rb
parentfc845b37ec3a90aaa719975f607740c22ba6a113 (diff)
downloadgitlab-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.rb24
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