UNPKG

@ycmd/creds

Version:

LSK.js CLI Creds is the easiest way to manage GitHub / Gitlab secrets and credentials

153 lines (151 loc) 4.27 kB
import { __name } from './chunk-POLJ2ZZ2.js'; import { Err } from '@lsk4/err'; import { createLogger } from '@lsk4/log'; import axios from 'axios'; import { map } from 'fishbird'; var Service = class { static { __name(this, "Service"); } projectId; projectName; projectPath; projectCredsUrl; token; server; force; client; log = createLogger(this.constructor.name); constructor(options) { Object.assign(this, options); this.checkConfig(); const clientOptions = { baseURL: this.getBaseUrl(), headers: this.getHeaders() }; this.client = this.createClient(clientOptions); this.client = axios.create(clientOptions); } createClient(clientOptions) { return axios.create(clientOptions); } checkConfig() { if (!this.projectId) throw new Err("!projectId"); if (!this.projectName) throw new Err("!projectName"); if (!this.projectPath) throw new Err("!projectPath"); if (!this.projectCredsUrl) throw new Err("!projectCredsUrl"); if (!this.server) throw new Err("!server"); if (!this.token) throw new Err("!token"); } getBaseUrl() { throw new Err("NOT_IMPLEMENTED"); } getHeaders() { return {}; } getServiceLink() { throw new Err("NOT_IMPLEMENTED"); } getProjectName() { return this.projectName; } getProjectId() { return this.projectId; } getProjectPath() { return this.projectPath; } getProjectUrl() { throw new Err("NOT_IMPLEMENTED"); } getProjectCredsUrl() { return this.projectCredsUrl; } getProjectCICDSettingURL() { throw new Err("NOT_IMPLEMENTED"); } // eslint-disable-next-line @typescript-eslint/no-unused-vars async uploadSecret(key, content) { throw new Err("NOT_IMPLEMENTED"); } // eslint-disable-next-line @typescript-eslint/no-unused-vars async uploadVariable(key, content) { throw new Err("NOT_IMPLEMENTED"); } async removeOldHooks() { } // eslint-disable-next-line @typescript-eslint/no-unused-vars async uploadHook(dataHook) { } async uploadHooks(env) { if (!env) throw new Err("!env"); const { hooks = [] } = env; try { await this.removeOldHooks(); } catch (err) { this.log.error(`[ERR] Old hooks removing failed:`, Err.getMessage(err)); } await map(hooks, async (dataHook, index) => { try { await this.uploadHook(dataHook); this.log.info(`[OK] Hook ${index} uploaded`); } catch (err) { this.log.error(`[ERR] Hook ${index} not uploaded:`, Err.getMessage(err)); } }); } async uploadAll(env) { if (!env) throw new Err("!env"); const { secrets = {}, variables = {}, files = [] } = env; await this.uploadHooks(env); await map(Object.entries(secrets), async ([key, value]) => { try { await this.uploadSecret(key, value); this.log.info(`[OK] Secret ${key} uploaded`); } catch (err) { this.log.error(`[ERR] Secret ${key} not uploaded, because`, Err.getMessage(err)); this.log.error(err); } }); await map(Object.entries(variables), async ([key, value]) => { try { await this.uploadVariable(key, value); this.log.info(`[OK] Variable ${key} uploaded`); } catch (err) { this.log.error(`[ERR] Variable ${key} not uploaded, because`, Err.getMessage(err)); } }); await map(files, async ({ name, credType, content }) => { const key = name; const value = content; try { if (credType === "variable") { await this.uploadVariable(key, value); } else if (credType === "secret") { await this.uploadSecret(key, value); } else if (credType === "skip") { this.log.debug(`[SKIP] File ${key} uploaded as ${credType}`); return; } else { throw new Err("unknown credType", { credType }); } this.log.info(`[OK] File ${key} uploaded as ${credType}`); } catch (err) { this.log.error(`[ERR] File ${key} not uploaded as ${credType}, because`, Err.getMessage(err)); } }); } }; export { Service }; //# sourceMappingURL=out.js.map //# sourceMappingURL=chunk-BJIVKI7C.js.map