@catladder/cli 1.16.3 → 1.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/apps/cli/commands/project/commandCloudSqlProxy.js +24 -19
- package/dist/apps/cli/commands/project/commandCloudSqlProxy.js.map +1 -1
- package/dist/apps/cli/commands/project/setup/setupAccessTokens.js +23 -14
- package/dist/apps/cli/commands/project/setup/setupAccessTokens.js.map +1 -1
- package/dist/config/getProjectConfig.d.ts +1 -0
- package/dist/config/getProjectConfig.js +21 -10
- package/dist/config/getProjectConfig.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/gitlab.d.ts +1 -0
- package/dist/utils/gitlab.js +17 -1
- package/dist/utils/gitlab.js.map +1 -1
- package/package.json +2 -2
- package/src/apps/cli/commands/project/commandCloudSqlProxy.ts +19 -6
- package/src/apps/cli/commands/project/setup/setupAccessTokens.ts +7 -5
- package/src/config/getProjectConfig.ts +23 -12
- package/src/utils/gitlab.ts +11 -0
- package/dist/utils/formatEnvVars.d.ts +0 -2
- package/dist/utils/formatEnvVars.js +0 -10
- package/dist/utils/formatEnvVars.js.map +0 -1
- package/src/utils/formatEnvVars.ts +0 -7
package/README.md
CHANGED
|
@@ -13,11 +13,12 @@ or npm users
|
|
|
13
13
|
_Note: if you have `@panter/catladder` installed upgrade it to >=4.0.0 before installing `@catladder/cli`_
|
|
14
14
|
|
|
15
15
|
## Getting started
|
|
16
|
+
|
|
16
17
|
You'll need
|
|
18
|
+
|
|
17
19
|
- Google Cloud SDK ([see installation instructions](https://cloud.google.com/sdk/docs/install))
|
|
18
20
|
- Kubectl ([see installation instructions](https://kubernetes.io/docs/tasks/tools/))
|
|
19
21
|
- Cloud SQL Auth proxy ([see installation instructions](https://cloud.google.com/sql/docs/postgres/sql-proxy#install))
|
|
20
|
-
- Bitwarden CLI ([see installation instructions](https://bitwarden.com/help/article/cli/))
|
|
21
22
|
|
|
22
23
|
Afterwards you need to connect to your cluster, e.g. `gcloud container clusters get-credentials clustername --zone google-zone --project google-project-id`
|
|
23
24
|
In most cases you'll find the details on the Google Cloud [cluster overview ](https://console.cloud.google.com/kubernetes/list?project=skynet-164509)
|
|
@@ -40,9 +40,7 @@ var pipeline_1 = require("@catladder/pipeline");
|
|
|
40
40
|
var child_process_promise_1 = require("child-process-promise");
|
|
41
41
|
var fs_extra_1 = require("fs-extra");
|
|
42
42
|
var tmp_promise_1 = require("tmp-promise");
|
|
43
|
-
var constants_1 = require("../../../../config/constants");
|
|
44
43
|
var getProjectConfig_1 = require("../../../../config/getProjectConfig");
|
|
45
|
-
var passwordstore_1 = require("../../../../utils/passwordstore");
|
|
46
44
|
var autocompletions_1 = require("./utils/autocompletions");
|
|
47
45
|
exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void 0, function () {
|
|
48
46
|
var _a, _b;
|
|
@@ -55,18 +53,18 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
55
53
|
return [4 /*yield*/, (0, autocompletions_1.envAndComponents)()];
|
|
56
54
|
case 1: return [2 /*return*/, _b.apply(_a, [_c.sent()])
|
|
57
55
|
.action(function (_a) {
|
|
58
|
-
var _b, _c, _d, _e
|
|
56
|
+
var _b, _c, _d, _e;
|
|
59
57
|
var envComponent = _a.envComponent;
|
|
60
58
|
return __awaiter(this, void 0, void 0, function () {
|
|
61
|
-
var
|
|
59
|
+
var _f, env, componentName, config, localPort, envVars, POSTGRESQL_PASSWORD, context, values, projectId, defaultInstanceId, instanceId, defaultRegion, region, instanceName, cloudsqlProxyCredentials;
|
|
62
60
|
var _this = this;
|
|
63
|
-
return __generator(this, function (
|
|
64
|
-
switch (
|
|
61
|
+
return __generator(this, function (_g) {
|
|
62
|
+
switch (_g.label) {
|
|
65
63
|
case 0:
|
|
66
|
-
|
|
64
|
+
_f = (0, getProjectConfig_1.parseChoice)(envComponent), env = _f.env, componentName = _f.componentName;
|
|
67
65
|
return [4 /*yield*/, (0, getProjectConfig_1.getProjectConfig)()];
|
|
68
66
|
case 1:
|
|
69
|
-
config =
|
|
67
|
+
config = _g.sent();
|
|
70
68
|
return [4 /*yield*/, this.prompt({
|
|
71
69
|
type: "number",
|
|
72
70
|
name: "localPort",
|
|
@@ -74,13 +72,14 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
74
72
|
message: "Local port: "
|
|
75
73
|
})];
|
|
76
74
|
case 2:
|
|
77
|
-
localPort = (
|
|
75
|
+
localPort = (_g.sent()).localPort;
|
|
78
76
|
return [4 /*yield*/, (0, getProjectConfig_1.getEnvVars)(this, env, componentName)];
|
|
79
77
|
case 3:
|
|
80
|
-
|
|
78
|
+
envVars = _g.sent();
|
|
79
|
+
POSTGRESQL_PASSWORD = envVars === null || envVars === void 0 ? void 0 : envVars.POSTGRESQL_PASSWORD;
|
|
81
80
|
return [4 /*yield*/, (0, getProjectConfig_1.getPipelineContextByChoice)(env, componentName)];
|
|
82
81
|
case 4:
|
|
83
|
-
context =
|
|
82
|
+
context = _g.sent();
|
|
84
83
|
if (!(0, pipeline_1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
|
|
85
84
|
throw new Error("currently only supported for kubernetes deployment");
|
|
86
85
|
}
|
|
@@ -90,22 +89,28 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
90
89
|
this.log("POSTGRESQL_URL=postgresql://postgres:".concat(POSTGRESQL_PASSWORD, "@localhost:").concat(localPort, "/").concat(context.environment.envVars.KUBE_APP_NAME, "?schema=public"));
|
|
91
90
|
this.log("");
|
|
92
91
|
values = context.componentConfig.deploy.values;
|
|
93
|
-
projectId = ((
|
|
94
|
-
((
|
|
92
|
+
projectId = ((_b = values === null || values === void 0 ? void 0 : values.cloudsql) === null || _b === void 0 ? void 0 : _b.projectId) ||
|
|
93
|
+
((_c = context.componentConfig.deploy.cluster) === null || _c === void 0 ? void 0 : _c.projectId);
|
|
95
94
|
defaultInstanceId = "".concat(config.customerName, "-").concat(config.appName, "-").concat(env);
|
|
96
|
-
instanceId = ((
|
|
95
|
+
instanceId = ((_d = values === null || values === void 0 ? void 0 : values.cloudsql) === null || _d === void 0 ? void 0 : _d.instanceId) || defaultInstanceId;
|
|
97
96
|
defaultRegion = "europe-west6";
|
|
98
|
-
region = ((
|
|
97
|
+
region = ((_e = values === null || values === void 0 ? void 0 : values.cloudsql) === null || _e === void 0 ? void 0 : _e.region) || defaultRegion;
|
|
99
98
|
instanceName = "".concat(projectId, ":").concat(region, ":").concat(instanceId, "=tcp:").concat(localPort);
|
|
100
|
-
return [4 /*yield*/, (0,
|
|
99
|
+
return [4 /*yield*/, (0, getProjectConfig_1.getGitlabVar)(this, env, componentName, "cloudsqlProxyCredentials")];
|
|
101
100
|
case 5:
|
|
102
|
-
|
|
101
|
+
cloudsqlProxyCredentials = _g.sent();
|
|
102
|
+
if (!cloudsqlProxyCredentials) {
|
|
103
|
+
// we store cloudsqlProxyCredentials on gitlab, but its currently get pushed via bitwarden due to legacy reasons
|
|
104
|
+
// this will be fixed with when https://git.panter.ch/catladder/catladder/-/merge_requests/32/ is merged
|
|
105
|
+
this.log("cloudsqlProxyCredentials env var missing in gitlab. Please contact gilde-ci-cd about that.");
|
|
106
|
+
throw new Error("cloudsqlProxyCredentials missing in secrets");
|
|
107
|
+
}
|
|
103
108
|
return [4 /*yield*/, (0, tmp_promise_1.withFile)(function (_a) {
|
|
104
109
|
var tmpFilePath = _a.path;
|
|
105
110
|
return __awaiter(_this, void 0, void 0, function () {
|
|
106
111
|
return __generator(this, function (_b) {
|
|
107
112
|
switch (_b.label) {
|
|
108
|
-
case 0: return [4 /*yield*/, (0, fs_extra_1.writeFile)(tmpFilePath,
|
|
113
|
+
case 0: return [4 /*yield*/, (0, fs_extra_1.writeFile)(tmpFilePath, cloudsqlProxyCredentials)];
|
|
109
114
|
case 1:
|
|
110
115
|
_b.sent();
|
|
111
116
|
return [4 /*yield*/, (0, child_process_promise_1.spawn)("cloud_sql_proxy", ["-instances", instanceName, "-credential_file", tmpFilePath], {
|
|
@@ -120,7 +125,7 @@ exports["default"] = (function (vorpal) { return __awaiter(void 0, void 0, void
|
|
|
120
125
|
});
|
|
121
126
|
})];
|
|
122
127
|
case 6:
|
|
123
|
-
|
|
128
|
+
_g.sent();
|
|
124
129
|
return [2 /*return*/];
|
|
125
130
|
}
|
|
126
131
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandCloudSqlProxy.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/project/commandCloudSqlProxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAqD;AACrD,+DAA8C;AAC9C,qCAAqC;AACrC,2CAAuC;AAEvC,
|
|
1
|
+
{"version":3,"file":"commandCloudSqlProxy.js","sourceRoot":"","sources":["../../../../../src/apps/cli/commands/project/commandCloudSqlProxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,16 +43,25 @@ exports.setupAccessTokens = void 0;
|
|
|
43
43
|
var open_1 = __importDefault(require("open"));
|
|
44
44
|
var gitlab_1 = require("../../../../../utils/gitlab");
|
|
45
45
|
var setupAccessTokens = function (instance) { return __awaiter(void 0, void 0, void 0, function () {
|
|
46
|
-
var _a, projectId, projectWebUrl,
|
|
46
|
+
var _a, projectId, projectWebUrl, e_1, understood, GL_TOKEN, deploy_tokens;
|
|
47
47
|
return __generator(this, function (_b) {
|
|
48
48
|
switch (_b.label) {
|
|
49
49
|
case 0: return [4 /*yield*/, (0, gitlab_1.getProjectInfo)(instance)];
|
|
50
50
|
case 1:
|
|
51
51
|
_a = _b.sent(), projectId = _a.id, projectWebUrl = _a.web_url;
|
|
52
|
-
|
|
52
|
+
_b.label = 2;
|
|
53
53
|
case 2:
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
_b.trys.push([2, 4, , 8]);
|
|
55
|
+
return [4 /*yield*/, (0, gitlab_1.doGitlabRequest)(instance, "projects/".concat(projectId, "/variables/GL_TOKEN"))];
|
|
56
|
+
case 3:
|
|
57
|
+
_b.sent();
|
|
58
|
+
return [3 /*break*/, 8];
|
|
59
|
+
case 4:
|
|
60
|
+
e_1 = _b.sent();
|
|
61
|
+
if (e_1.message !== "not found") {
|
|
62
|
+
throw e_1;
|
|
63
|
+
}
|
|
64
|
+
// not found
|
|
56
65
|
instance.log("I need add a GL_TOKEN to the project, so that semantic release will work\n");
|
|
57
66
|
instance.log("👉 Please please create a project access token in gitlab and copy its value into clipboard\n\n - name: something like 'semantic-release'\n - expires: leave empty\n - scopes: api, read_repository");
|
|
58
67
|
instance.log("\n");
|
|
@@ -62,7 +71,7 @@ var setupAccessTokens = function (instance) { return __awaiter(void 0, void 0, v
|
|
|
62
71
|
name: "understood",
|
|
63
72
|
type: "confirm"
|
|
64
73
|
})];
|
|
65
|
-
case
|
|
74
|
+
case 5:
|
|
66
75
|
understood = (_b.sent()).understood;
|
|
67
76
|
if (!understood) {
|
|
68
77
|
instance.log("continuing anyway...");
|
|
@@ -76,29 +85,29 @@ var setupAccessTokens = function (instance) { return __awaiter(void 0, void 0, v
|
|
|
76
85
|
name: "GL_TOKEN",
|
|
77
86
|
message: "Access Token: "
|
|
78
87
|
})];
|
|
79
|
-
case
|
|
88
|
+
case 6:
|
|
80
89
|
GL_TOKEN = (_b.sent()).GL_TOKEN;
|
|
81
90
|
return [4 /*yield*/, (0, gitlab_1.doGitlabRequest)(instance, "projects/".concat(projectId, "/variables"), {
|
|
82
91
|
key: "GL_TOKEN",
|
|
83
92
|
value: GL_TOKEN
|
|
84
93
|
})];
|
|
85
|
-
case 5:
|
|
86
|
-
_b.sent();
|
|
87
|
-
_b.label = 6;
|
|
88
|
-
case 6: return [4 /*yield*/, (0, gitlab_1.doGitlabRequest)(instance, "projects/".concat(projectId, "/deploy_tokens"))];
|
|
89
94
|
case 7:
|
|
95
|
+
_b.sent();
|
|
96
|
+
return [3 /*break*/, 8];
|
|
97
|
+
case 8: return [4 /*yield*/, (0, gitlab_1.doGitlabRequest)(instance, "projects/".concat(projectId, "/deploy_tokens"))];
|
|
98
|
+
case 9:
|
|
90
99
|
deploy_tokens = _b.sent();
|
|
91
|
-
if (!!deploy_tokens.find(function (v) { return v.name === "gitlab-deploy-token"; })) return [3 /*break*/,
|
|
100
|
+
if (!!deploy_tokens.find(function (v) { return v.name === "gitlab-deploy-token"; })) return [3 /*break*/, 11];
|
|
92
101
|
instance.log("I will setup the 'GitLab Deploy Token', so Kubernetes can pull images from this project.");
|
|
93
102
|
return [4 /*yield*/, (0, gitlab_1.doGitlabRequest)(instance, "projects/".concat(projectId, "/deploy_tokens"), {
|
|
94
103
|
id: projectId,
|
|
95
104
|
name: "gitlab-deploy-token",
|
|
96
105
|
scopes: ["read_registry"]
|
|
97
106
|
})];
|
|
98
|
-
case
|
|
107
|
+
case 10:
|
|
99
108
|
_b.sent();
|
|
100
|
-
_b.label =
|
|
101
|
-
case
|
|
109
|
+
_b.label = 11;
|
|
110
|
+
case 11: return [2 /*return*/];
|
|
102
111
|
}
|
|
103
112
|
});
|
|
104
113
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupAccessTokens.js","sourceRoot":"","sources":["../../../../../../src/apps/cli/commands/project/setup/setupAccessTokens.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwB;AAExB,sDAA8E;AAEvE,IAAM,iBAAiB,GAAG,UAAO,QAAyB;;;;oBACb,qBAAM,IAAA,uBAAc,EACpE,QAAQ,CACT,EAAA;;gBAFK,KAA4C,SAEjD,EAFW,SAAS,QAAA,EAAW,aAAa,aAAA
|
|
1
|
+
{"version":3,"file":"setupAccessTokens.js","sourceRoot":"","sources":["../../../../../../src/apps/cli/commands/project/setup/setupAccessTokens.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwB;AAExB,sDAA8E;AAEvE,IAAM,iBAAiB,GAAG,UAAO,QAAyB;;;;oBACb,qBAAM,IAAA,uBAAc,EACpE,QAAQ,CACT,EAAA;;gBAFK,KAA4C,SAEjD,EAFW,SAAS,QAAA,EAAW,aAAa,aAAA;;;;gBAI3C,qBAAM,IAAA,wBAAe,EAAC,QAAQ,EAAE,mBAAY,SAAS,wBAAqB,CAAC,EAAA;;gBAA3E,SAA2E,CAAC;;;;gBAE5E,IAAI,GAAC,CAAC,OAAO,KAAK,WAAW,EAAE;oBAC7B,MAAM,GAAC,CAAC;iBACT;gBACD,YAAY;gBAEZ,QAAQ,CAAC,GAAG,CACV,4EAA4E,CAC7E,CAAC;gBACF,QAAQ,CAAC,GAAG,CACV,oMAAoM,CACrM,CAAC;gBACF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEI,qBAAM,QAAQ,CAAC,MAAM,CAAC;wBAC3C,SAAO,EAAE,IAAI;wBACb,OAAO,EAAE,oCAAoC;wBAC7C,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,SAAS;qBAChB,CAAC,EAAA;;gBALM,UAAU,GAAK,CAAA,SAKrB,CAAA,WALgB;gBAMlB,IAAI,CAAC,UAAU,EAAE;oBACf,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;iBACtC;gBACD,IAAA,iBAAI,EAAC,UAAG,aAAa,8BAA2B,CAAC,CAAC;gBAElD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEnB,QAAQ,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;gBAE9C,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACE,qBAAM,QAAQ,CAAC,MAAM,CAAC;wBACzC,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,gBAAgB;qBAC1B,CAAC,EAAA;;gBAJM,QAAQ,GAAK,CAAA,SAInB,CAAA,SAJc;gBAKhB,qBAAM,IAAA,wBAAe,EAAC,QAAQ,EAAE,mBAAY,SAAS,eAAY,EAAE;wBACjE,GAAG,EAAE,UAAU;wBACf,KAAK,EAAE,QAAQ;qBAChB,CAAC,EAAA;;gBAHF,SAGE,CAAC;;oBAGiB,qBAAM,IAAA,wBAAe,EACzC,QAAQ,EACR,mBAAY,SAAS,mBAAgB,CACtC,EAAA;;gBAHK,aAAa,GAAG,SAGrB;qBAGC,CAAC,aAAa,CAAC,IAAI,CACjB,UAAC,CAAmB,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,qBAAqB,EAAhC,CAAgC,CAC1D,EAFD,yBAEC;gBAED,QAAQ,CAAC,GAAG,CACV,0FAA0F,CAC3F,CAAC;gBAEF,qBAAM,IAAA,wBAAe,EAAC,QAAQ,EAAE,mBAAY,SAAS,mBAAgB,EAAE;wBACrE,EAAE,EAAE,SAAS;wBACb,IAAI,EAAE,qBAAqB;wBAC3B,MAAM,EAAE,CAAC,eAAe,CAAC;qBAC1B,CAAC,EAAA;;gBAJF,SAIE,CAAC;;;;;KAEN,CAAC;AAnEW,QAAA,iBAAiB,qBAmE5B"}
|
|
@@ -19,6 +19,7 @@ export declare const getAllComponentsWithAllEnvsHierarchical: () => Promise<{
|
|
|
19
19
|
}>;
|
|
20
20
|
export declare const getAllPipelineContexts: () => Promise<import("@catladder/pipeline").Context[]>;
|
|
21
21
|
export declare const getEnvironment: (env: string, componentName: string) => Promise<import("@catladder/pipeline").Environment>;
|
|
22
|
+
export declare const getGitlabVar: (vorpal: CommandInstance, env: string, componentName: string, variableName: string) => Promise<string>;
|
|
22
23
|
export declare const getEnvVars: (vorpal: CommandInstance, env: string, componentName: string) => Promise<{
|
|
23
24
|
[k: string]: string;
|
|
24
25
|
}>;
|
|
@@ -39,7 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
40
|
};
|
|
41
41
|
exports.__esModule = true;
|
|
42
|
-
exports.getEnvVars = exports.getEnvironment = exports.getAllPipelineContexts = exports.getAllComponentsWithAllEnvsHierarchical = exports.getAllComponentsWithAllEnvsFlat = exports.getPipelineContextByChoice = exports.parseChoice = exports.getProjectComponents = exports.getGitlabCi = exports.getGitlabCiFilePath = exports.reloadConfig = exports.getProjectConfig = void 0;
|
|
42
|
+
exports.getEnvVars = exports.getGitlabVar = exports.getEnvironment = exports.getAllPipelineContexts = exports.getAllComponentsWithAllEnvsHierarchical = exports.getAllComponentsWithAllEnvsFlat = exports.getPipelineContextByChoice = exports.parseChoice = exports.getProjectComponents = exports.getGitlabCi = exports.getGitlabCiFilePath = exports.reloadConfig = exports.getProjectConfig = void 0;
|
|
43
43
|
var pipeline_1 = require("@catladder/pipeline");
|
|
44
44
|
var gitlab_1 = require("../utils/gitlab");
|
|
45
45
|
var memoizee_1 = __importDefault(require("memoizee"));
|
|
@@ -191,6 +191,18 @@ var getEnvironment = function (env, componentName) { return __awaiter(void 0, vo
|
|
|
191
191
|
});
|
|
192
192
|
}); };
|
|
193
193
|
exports.getEnvironment = getEnvironment;
|
|
194
|
+
var getGitlabVar = function (vorpal, env, componentName, variableName) { return __awaiter(void 0, void 0, void 0, function () {
|
|
195
|
+
var rawVariableName;
|
|
196
|
+
return __generator(this, function (_a) {
|
|
197
|
+
switch (_a.label) {
|
|
198
|
+
case 0:
|
|
199
|
+
rawVariableName = (0, pipeline_1.getSecretVarName)(env, componentName, variableName);
|
|
200
|
+
return [4 /*yield*/, (0, gitlab_1.getVariableValueByRawName)(vorpal, rawVariableName)];
|
|
201
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}); };
|
|
205
|
+
exports.getGitlabVar = getGitlabVar;
|
|
194
206
|
var resolveSecrets = function (vorpal, allEnvVars) { return __awaiter(void 0, void 0, void 0, function () {
|
|
195
207
|
var allVariablesInGitlab;
|
|
196
208
|
return __generator(this, function (_a) {
|
|
@@ -201,16 +213,13 @@ var resolveSecrets = function (vorpal, allEnvVars) { return __awaiter(void 0, vo
|
|
|
201
213
|
return [2 /*return*/, Object.fromEntries(Object.entries(allEnvVars).map(function (_a) {
|
|
202
214
|
var _b, _c;
|
|
203
215
|
var key = _a[0], value = _a[1];
|
|
204
|
-
var
|
|
205
|
-
if (
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
return [key, found.value];
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
return [key, ""];
|
|
216
|
+
var containsSecret = (_c = (_b = String(value)) === null || _b === void 0 ? void 0 : _b.includes) === null || _c === void 0 ? void 0 : _c.call(_b, "$CL_");
|
|
217
|
+
if (containsSecret) {
|
|
218
|
+
for (var _i = 0, allVariablesInGitlab_1 = allVariablesInGitlab; _i < allVariablesInGitlab_1.length; _i++) {
|
|
219
|
+
var variable = allVariablesInGitlab_1[_i];
|
|
220
|
+
value = value.replace(new RegExp("\\$" + variable.key, "g"), variable.value);
|
|
213
221
|
}
|
|
222
|
+
return [key, value];
|
|
214
223
|
}
|
|
215
224
|
return [key, value];
|
|
216
225
|
}))];
|
|
@@ -224,6 +233,8 @@ var getEnvVars = function (vorpal, env, componentName) { return __awaiter(void 0
|
|
|
224
233
|
case 0: return [4 /*yield*/, (0, exports.getEnvironment)(env, componentName)];
|
|
225
234
|
case 1:
|
|
226
235
|
envionment = _a.sent();
|
|
236
|
+
// in the pipeline the secrets alreadyy exists and bash will expand them
|
|
237
|
+
// but here we need to manually load them
|
|
227
238
|
return [2 /*return*/, resolveSecrets(vorpal, envionment.envVars)];
|
|
228
239
|
}
|
|
229
240
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getProjectConfig.js","sourceRoot":"","sources":["../../src/config/getProjectConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"getProjectConfig.js","sourceRoot":"","sources":["../../src/config/getProjectConfig.ts"],"names":[],"mappings":"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"}
|