@atomist/automation-client
Version:
Atomist API for software low-level client
26 lines (22 loc) • 812 B
text/typescript
import { SecretResolver } from "../../spi/env/SecretResolver";
import { logger } from "../../util/logger";
import { config } from "../util/config";
import { hideString } from "../util/string";
const AtomistPrefix = "atomist://";
/**
* Local secrets: Resolve using config (resolves to /config directory).
* Throw exception if not found.
*/
export class NodeConfigSecretResolver implements SecretResolver {
public resolve(key: string): string {
const resolved = key.startsWith(AtomistPrefix) ?
config(key.replace(AtomistPrefix, "")) :
config(key);
if (!resolved) {
throw new Error(`Failed to resolve '${key}'`);
} else {
logger.debug(`Resolved '${key}' to '${hideString(resolved)}'`);
return resolved;
}
}
}