@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
JavaScript
;
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