gitlab-ce/lib/google_cloud/authentication.rb

21 lines
579 B
Ruby

# frozen_string_literal: true
module GoogleCloud
class Authentication
def initialize(scope:)
@scope = scope
end
def generate_access_token(client_email, private_key)
credentials = Google::Auth::ServiceAccountCredentials.make_creds(
json_key_io: StringIO.new({ client_email: client_email, private_key: private_key }.to_json),
scope: @scope
)
credentials.fetch_access_token!["access_token"]
rescue StandardError => e
::Gitlab::ErrorTracking.track_exception(e, client_email: client_email)
nil
end
end
end