Class: Browserctl::SecretResolvers::OnePassword
- Defined in:
- lib/browserctl/secret_resolvers/one_password.rb
Constant Summary collapse
- SAFE_REFERENCE =
%r{\A[a-zA-Z0-9._\-/]+\z}
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.scheme ⇒ Object
8 |
# File 'lib/browserctl/secret_resolvers/one_password.rb', line 8 def self.scheme = "op" |
Instance Method Details
#available? ⇒ Boolean
10 11 12 |
# File 'lib/browserctl/secret_resolvers/one_password.rb', line 10 def available? system("which", "op", out: File::NULL, err: File::NULL) end |
#resolve(reference) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/browserctl/secret_resolvers/one_password.rb', line 16 def resolve(reference) unless SAFE_REFERENCE.match?(reference) raise SecretResolverError, "invalid 1Password reference format: #{reference.inspect}" end result, status = Open3.capture2("op", "read", "op://#{reference}") raise SecretResolverError, "1Password item not found: op://#{reference}" unless status.success? result.chomp end |