Welcome to mirror list, hosted at ThFree Co, Russian Federation.

authentication.rb « google_cloud « lib - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
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