21 lines
579 B
Ruby
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
|