UNPKG

@ycmd/creds

Version:

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

19 lines (14 loc) 2.29 kB
'use strict'; var chunkB4XXL2LI_js = require('./chunk-B4XXL2LI.js'); var chunkCSGQ5YH5_js = require('./chunk-CSGQ5YH5.js'); var err = require('@lsk4/err'); var log = require('@lsk4/log'); var w = require('axios'); var h = require('libsodium-wrappers'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var w__default = /*#__PURE__*/_interopDefault(w); var h__default = /*#__PURE__*/_interopDefault(h); var p=class extends chunkB4XXL2LI_js.a{static{chunkCSGQ5YH5_js.a(this,"GithubService");}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){let a=`https://${this.server||"api.github.com"}/repos/${this.getProjectPath()}`;return w__default.default.create({baseURL:a,headers:{Accept:"application/vnd.github+json",Authorization:`Bearer ${this.token}`,"X-GitHub-Api-Version":"2022-11-28"},...t})}getServiceLink(){return "github.com"}getProjectUrl(){return `https://${this.getServiceLink()}/${this.projectName}`}getProjectCICDSettingURL(){return `${this.getProjectUrl()}/settings/secrets/actions`}async uploadSecret(t,o){let{data:a}=await this.client({method:"get",url:"/actions/secrets/public-key"}).catch(i=>{throw new err.Err(i.message,{data:i?.response?.data})});if(!a?.key)throw new err.Err("!publicKey");if(!a?.key_id)throw new err.Err("!publicKeyId");await h__default.default.ready;let e=h__default.default,s=e.from_base64(a.key,e.base64_variants.ORIGINAL),u=e.from_string(o),l=e.crypto_box_seal(u,s),d=e.to_base64(l,e.base64_variants.ORIGINAL);await this.client({method:"put",url:`/actions/secrets/${t}`,data:{encrypted_value:d,key_id:a.key_id}});}async uploadVariable(t,o){let{data:a,status:e}=await this.client({method:"get",url:`/actions/variables/${t}`}).catch(s=>s?.response);e===404&&await this.client({method:"post",url:"/actions/variables",data:{name:t,value:o}}),e===200&&a.name.toLowerCase()===t.toLowerCase()&&await this.client({method:"patch",url:`/actions/variables/${t}`,data:{name:t,value:o}});}uploadHook(){throw new err.Err("Github hooks not supported yet")}}; exports.a = p; //# sourceMappingURL=out.js.map //# sourceMappingURL=chunk-GTIYM2EM.js.map