blob: 68dd0bdcccb47f9510ca137d6f8dbb04bf6310f2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 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
|