ask-auth 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/ask/auth/version.rb +1 -1
- data/lib/ask/auth.rb +24 -14
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 899769786d686dad5733fb428f4947d077af5e4913573558890ac309dc246d7e
|
|
4
|
+
data.tar.gz: 8dad782619a917d310858ec90136b86638fdffe64e71060c72ba8af42f91a41f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 69064653971ef660f7c2aa2f297f5a1119888a18b5521ebee9c4bbf1058f474ffb70275d9cf60dec044ee94565520d9e0fc9defc782ee4b74505e17b01d4a6c4
|
|
7
|
+
data.tar.gz: e819dd4a9a9bac4a5d9cca0064d750610b16c8d1baf3de33cd4bb792ec3292279091a271e0c34ccfa85738ff228cd798384e503ef4cd909aae96b4e66b118fca
|
data/lib/ask/auth/version.rb
CHANGED
data/lib/ask/auth.rb
CHANGED
|
@@ -18,10 +18,12 @@ module Ask
|
|
|
18
18
|
#
|
|
19
19
|
module Auth
|
|
20
20
|
class MissingCredential < KeyError
|
|
21
|
-
def initialize(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
def initialize(names)
|
|
22
|
+
names = Array(names).flatten
|
|
23
|
+
inspected = names.map(&:inspect).join(", ")
|
|
24
|
+
super("No credential found for #{inspected}. " \
|
|
25
|
+
"Set one of #{names.map { |n| n.to_s.upcase }.uniq.join(", ")} in your environment, " \
|
|
26
|
+
"add it to ~/.ask/credentials.yml, or configure a provider.")
|
|
25
27
|
end
|
|
26
28
|
end
|
|
27
29
|
|
|
@@ -49,21 +51,29 @@ module Ask
|
|
|
49
51
|
end
|
|
50
52
|
|
|
51
53
|
# Walk providers in order and return the first non-nil credential.
|
|
52
|
-
#
|
|
54
|
+
# Accepts one or more credential names — tries each in order,
|
|
55
|
+
# returning the first match across all providers.
|
|
56
|
+
#
|
|
57
|
+
# Ask::Auth.resolve(:openai_api_key)
|
|
58
|
+
# Ask::Auth.resolve(:opencode_go_api_key, :opencode_api_key, user: current_user)
|
|
59
|
+
#
|
|
60
|
+
# +names+:: One or more Symbols or Strings identifying the credential
|
|
53
61
|
# +user+:: Optional user record for per-user providers (Database, OAuth)
|
|
54
|
-
def resolve(
|
|
55
|
-
|
|
56
|
-
return nil if
|
|
62
|
+
def resolve(*names, user: nil)
|
|
63
|
+
names = names.flatten.map { |n| n.to_s.strip }.reject(&:empty?)
|
|
64
|
+
return nil if names.empty?
|
|
57
65
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
66
|
+
names.each do |name|
|
|
67
|
+
configuration.providers.each do |provider|
|
|
68
|
+
value = provider.call(name, user: user)
|
|
69
|
+
next if value.nil?
|
|
61
70
|
|
|
62
|
-
|
|
63
|
-
|
|
71
|
+
normalized = normalize(value)
|
|
72
|
+
return normalized unless normalized.nil?
|
|
73
|
+
end
|
|
64
74
|
end
|
|
65
75
|
|
|
66
|
-
raise MissingCredential,
|
|
76
|
+
raise MissingCredential, names
|
|
67
77
|
end
|
|
68
78
|
|
|
69
79
|
private
|