Class: GoogleCloud::Authentication

Inherits:
Object
  • Object
show all
Defined in:
lib/google_cloud/authentication.rb

Instance Method Summary collapse

Constructor Details

#initialize(scope:) ⇒ Authentication

Returns a new instance of Authentication.



5
6
7
# File 'lib/google_cloud/authentication.rb', line 5

def initialize(scope:)
  @scope = scope
end

Instance Method Details

#generate_access_token(client_email, private_key) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/google_cloud/authentication.rb', line 9

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