@ycmd/creds
Version:
LSK.js CLI Creds is the easiest way to manage GitHub / Gitlab secrets and credentials
18 lines (13 loc) • 2.76 kB
JavaScript
;
var chunkGQEZOQG6_js = require('./chunk-GQEZOQG6.js');
var chunkCSGQ5YH5_js = require('./chunk-CSGQ5YH5.js');
var err = require('@lsk4/err');
var log = require('@lsk4/log');
var w = require('axios');
var fishbird = require('fishbird');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var w__default = /*#__PURE__*/_interopDefault(w);
var s=!0,n=class extends chunkGQEZOQG6_js.a{static{chunkCSGQ5YH5_js.a(this,"GitlabService");}projectId;projectName;projectPath;projectCredsUrl;projectCredsOwner;token;server;force=!0;log=log.createLogger(this.constructor.name);constructor(t){super(t),this.assign(t),this.checkConfig(),this.client=this.createClient(t.clientOptions);}checkConfig(){if(!this.projectId)throw new err.Err("!projectId");if(!this.server)throw new err.Err("!server");if(!this.projectName)throw new err.Err("!projectName");if(!this.projectPath)throw new err.Err("!projectPath");if(!this.projectCredsUrl)throw new err.Err("!projectCredsUrl");if(!this.projectCredsOwner)throw new err.Err("!projectCredsOwner");if(!this.token)throw new err.Err("!token")}createClient(t={}){return w__default.default.create({baseURL:`https://${this.server}/api/v4/projects/${this.projectId}`,headers:{"PRIVATE-TOKEN":this.token},...t})}getServiceHostname(){return this.server}getProjectUrl(){return `https://${this.getServiceHostname()}/${this.projectPath}`}getProjectCICDSettingURL(){return `${this.getProjectUrl()}/-/settings/ci_cd`}async uploadVariableOrSecret(t,e,o={}){let h=typeof e=="string"?e:e.value,l=e?.type||o?.type||"file",p=!!(e?.protected??o?.protected??!1),{data:a}=await this.client({method:"get",url:`/variables/${t}`}).catch(d=>{return {data:{value:"@lskjs/creds"}}});if(a.value&&a.value.indexOf("@lskjs/creds")===-1&&!s){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,value:h,variable_type:l,protected:p,...o}});}async uploadSecret(t,e,o={}){return this.uploadVariableOrSecret(t,e,{type:"file",protected:!!(o.protected??!0)})}async uploadVariable(t,e,o={}){return this.uploadVariableOrSecret(t,e,{type:"env_var",protected:!!(o.protected??!1)})}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=>{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 = n;
//# sourceMappingURL=out.js.map
//# sourceMappingURL=chunk-XBL2VHP3.js.map