Module: Legion::Extensions::Github::App::Runners::CredentialStore

Includes:
Helpers::Lex
Included in:
CLI::App, Client, Runners::Auth
Defined in:
lib/legion/extensions/github/app/runners/credential_store.rb

Instance Method Summary collapse

Instance Method Details

#load_oauth_token(user:) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/legion/extensions/github/app/runners/credential_store.rb', line 30

def load_oauth_token(user:, **)
  data = begin
    vault_get("github/oauth/#{user}/token")
  rescue StandardError => _e
    nil
  end
  { result: data }
end

#store_app_credentials(app_id:, private_key:, client_id:, client_secret:, webhook_secret:) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/legion/extensions/github/app/runners/credential_store.rb', line 11

def store_app_credentials(app_id:, private_key:, client_id:, client_secret:, webhook_secret:, **)
  vault_set('github/app/app_id', app_id)
  vault_set('github/app/private_key', private_key)
  vault_set('github/app/client_id', client_id)
  vault_set('github/app/client_secret', client_secret)
  vault_set('github/app/webhook_secret', webhook_secret)
  { result: true }
end

#store_oauth_token(user:, access_token:, refresh_token:, expires_in: nil, scope: nil) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/legion/extensions/github/app/runners/credential_store.rb', line 20

def store_oauth_token(user:, access_token:, refresh_token:, expires_in: nil, scope: nil, **)
  data = { 'access_token' => access_token, 'refresh_token' => refresh_token,
           'expires_in' => expires_in, 'scope' => scope,
           'stored_at' => Time.now.iso8601 }.compact
  vault_set("github/oauth/#{user}/token", data)
  # Also write to canonical delegated path so resolve_vault_delegated can discover the token
  vault_set('github/oauth/delegated/token', data)
  { result: true }
end