Class: Legion::Extensions::Github::App::Actor::TokenRefresh
- Inherits:
-
Actors::Every
- Object
- Actors::Every
- Legion::Extensions::Github::App::Actor::TokenRefresh
- Defined in:
- lib/legion/extensions/github/app/actor/token_refresh.rb
Overview
rubocop:disable Legion/Extension/SelfContainedActorRunnerClass,Legion/Extension/EveryActorRequiresTime
Instance Method Summary collapse
- #check_subtask? ⇒ Boolean
-
#enabled? ⇒ Boolean
rubocop:disable Legion/Extension/ActorEnabledSideEffects.
- #generate_task? ⇒ Boolean
-
#manual ⇒ Object
rubocop:enable Legion/Extension/ActorEnabledSideEffects.
- #time ⇒ Object
- #use_runner? ⇒ Boolean
Instance Method Details
#check_subtask? ⇒ Boolean
10 |
# File 'lib/legion/extensions/github/app/actor/token_refresh.rb', line 10 def check_subtask? = false |
#enabled? ⇒ Boolean
rubocop:disable Legion/Extension/ActorEnabledSideEffects
18 19 20 21 22 |
# File 'lib/legion/extensions/github/app/actor/token_refresh.rb', line 18 def enabled? defined?(Legion::Extensions::Github::Helpers::TokenCache) rescue StandardError => _e false end |
#generate_task? ⇒ Boolean
11 |
# File 'lib/legion/extensions/github/app/actor/token_refresh.rb', line 11 def generate_task? = false |
#manual ⇒ Object
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 45 46 47 48 |
# File 'lib/legion/extensions/github/app/actor/token_refresh.rb', line 25 def manual log.info('App::Actor::TokenRefresh: refreshing installation token') settings = github_app_settings return unless settings[:app_id] && settings[:private_key] && settings[:installation_id] auth = Object.new.extend(Legion::Extensions::Github::App::Runners::Auth) jwt_result = auth.generate_jwt(app_id: settings[:app_id], private_key: settings[:private_key]) return unless jwt_result[:result] token_result = auth.create_installation_token( jwt: jwt_result[:result], installation_id: settings[:installation_id] ) return unless token_result.dig(:result, 'token') token_cache.store_token( token: token_result[:result]['token'], auth_type: :app_installation, expires_at: Time.parse(token_result[:result]['expires_at']) ) log.info('App::Actor::TokenRefresh: installation token refreshed') rescue StandardError => e log.error("App::Actor::TokenRefresh: #{e.}") end |
#time ⇒ Object
13 14 15 |
# File 'lib/legion/extensions/github/app/actor/token_refresh.rb', line 13 def time 45 * 60 end |
#use_runner? ⇒ Boolean
9 |
# File 'lib/legion/extensions/github/app/actor/token_refresh.rb', line 9 def use_runner? = false |