From 10dafc058aff4b635dd816ec9d4660d7b02aeaa9 Mon Sep 17 00:00:00 2001 From: Donal McBreen Date: Fri, 17 Jan 2025 12:31:03 +0000 Subject: [PATCH] Extract secrets_get_flags --- lib/kamal/secrets/adapters/doppler.rb | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/kamal/secrets/adapters/doppler.rb b/lib/kamal/secrets/adapters/doppler.rb index 40eeeab5..90b2c63b 100644 --- a/lib/kamal/secrets/adapters/doppler.rb +++ b/lib/kamal/secrets/adapters/doppler.rb @@ -18,8 +18,19 @@ class Kamal::Secrets::Adapters::Doppler < Kamal::Secrets::Adapters::Base def fetch_secrets(secrets, from:, **) secrets = prefixed_secrets(secrets, from: from) - project_and_config_flags = "" + flags = secrets_get_flags(secrets) + secret_names = secrets.collect { |s| s.split("/").last } + + items = `doppler secrets get #{secret_names.map(&:shellescape).join(" ")} --json #{flags}` + raise RuntimeError, "Could not read #{secrets} from Doppler" unless $?.success? + + items = JSON.parse(items) + + items.transform_values { |value| value["computed"] } + end + + def secrets_get_flags(secrets) unless service_token_set? project, config, _ = secrets.first.split("/") @@ -29,15 +40,6 @@ class Kamal::Secrets::Adapters::Doppler < Kamal::Secrets::Adapters::Base project_and_config_flags = "-p #{project.shellescape} -c #{config.shellescape}" end - - secret_names = secrets.collect { |s| s.split("/").last } - - items = `doppler secrets get #{secret_names.map(&:shellescape).join(" ")} --json #{project_and_config_flags}` - raise RuntimeError, "Could not read #{secrets} from Doppler" unless $?.success? - - items = JSON.parse(items) - - items.transform_values { |value| value["computed"] } end def service_token_set?