Class: Legion::Extensions::Github::OAuth::Actor::TokenRefresh

Inherits:
Actors::Every
  • Object
show all
Defined in:
lib/legion/extensions/github/oauth/actor/token_refresh.rb

Overview

rubocop:disable Legion/Extension/SelfContainedActorRunnerClass,Legion/Extension/EveryActorRequiresTime

Instance Method Summary collapse

Instance Method Details

#check_subtask?Boolean

Returns:

  • (Boolean)


10
# File 'lib/legion/extensions/github/oauth/actor/token_refresh.rb', line 10

def check_subtask? = false

#enabled?Boolean

rubocop:disable Legion/Extension/ActorEnabledSideEffects

Returns:

  • (Boolean)


18
19
20
21
22
# File 'lib/legion/extensions/github/oauth/actor/token_refresh.rb', line 18

def enabled?
  oauth_settings[:client_id] && oauth_settings[:client_secret]
rescue StandardError => _e
  false
end

#generate_task?Boolean

Returns:

  • (Boolean)


11
# File 'lib/legion/extensions/github/oauth/actor/token_refresh.rb', line 11

def generate_task? = false

#manualObject

rubocop:enable Legion/Extension/ActorEnabledSideEffects



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/legion/extensions/github/oauth/actor/token_refresh.rb', line 25

def manual
  settings = oauth_settings
  return unless settings[:client_id] && settings[:client_secret]

  token_entry = fetch_delegated_token
  return unless token_entry&.dig(:refresh_token)

  auth = Object.new.extend(Legion::Extensions::Github::OAuth::Runners::Auth)
  result = auth.refresh_token(
    client_id:     settings[:client_id],
    client_secret: settings[:client_secret],
    refresh_token: token_entry[:refresh_token]
  )
  return unless result.dig(:result, 'access_token')

  store_delegated_token(result[:result])
  log.info('OAuth::Actor::TokenRefresh: delegated token refreshed')
rescue StandardError => e
  log.error("OAuth::Actor::TokenRefresh: #{e.message}")
end

#timeObject



13
14
15
# File 'lib/legion/extensions/github/oauth/actor/token_refresh.rb', line 13

def time
  3 * 60 * 60
end

#use_runner?Boolean

Returns:

  • (Boolean)


9
# File 'lib/legion/extensions/github/oauth/actor/token_refresh.rb', line 9

def use_runner?    = false