UNPKG

@ycmd/creds

Version:

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

18 lines (13 loc) 2.17 kB
'use strict'; var chunk6BQHMOYI_js = require('./chunk-6BQHMOYI.js'); var chunkCSGQ5YH5_js = require('./chunk-CSGQ5YH5.js'); var err = require('@lsk4/err'); var log = require('@lsk4/log'); var n = require('axios'); var fishbird = require('fishbird'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var n__default = /*#__PURE__*/_interopDefault(n); var s=class extends chunk6BQHMOYI_js.a{static{chunkCSGQ5YH5_js.a(this,"GitlabService");}log=log.createLogger(this.constructor.name);checkConfig(){if(super.checkConfig(),!this.projectId)throw new err.Err("!projectId");if(!this.server)throw new err.Err("!server");if(!this.token)throw new err.Err("!token")}createClient(t){return n__default.default.create({baseURL:`https://${this.server}/api/v4/projects/${this.getProjectId()}`,headers:{"PRIVATE-TOKEN":this.token},...t})}getServiceLink(){return this.server}getProjectUrl(){return `https://${this.getServiceLink()}/${this.getProjectPath()}`}getProjectCICDSettingURL(){return `${this.getProjectUrl()}/-/settings/ci_cd`}async uploadSecret(t,e){let{data:o}=await this.client({method:"get",url:`/variables/${t}`}).catch(c=>{if(!this.force)throw c;return {data:{value:"@lskjs/creds"}}});if(o.value&&o.value.indexOf("@lskjs/creds")===-1&&!this.force){this.log.warn(`[IGNORE] Project ${this.projectId} ${t}`);return}await this.client({method:"delete",url:`/variables/${t}`}).catch(()=>{}),await this.client({method:"post",url:"/variables",data:{key:t,variable_type:"file",value:e,protected:!0}});}async uploadVariable(){throw this.log.warn("GitLab uploading variable doesn't supported"),new err.Err("NOT_IMPLEMENTED")}async uploadEnv(){throw this.log.warn("GitLab uploading env doesn't supported"),new err.Err("NOT_IMPLEMENTED")}async removeOldHooks(){let{data:t}=await this.client({method:"get",url:"/hooks"}).catch(e=>{if(!this.force)throw e;return {data:{value:"@lskjs/creds"}}});await fishbird.map(t,async({id:e})=>{await this.client({method:"delete",url:`/hooks/${e}`});});}async uploadHook(t){await this.client({method:"post",url:"/hooks",data:t});}}; exports.a = s; //# sourceMappingURL=out.js.map //# sourceMappingURL=chunk-3EJAMWK5.js.map