@catladder/cli 0.0.0-main-d0a1e9f1 → 0.0.0-main-67fbbdf8

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.
Files changed (46) hide show
  1. package/dist/apps/cli/cli.js +8 -4
  2. package/dist/apps/cli/cli.js.map +1 -1
  3. package/dist/apps/cli/commands/project/commandConfigSecrets.js +20 -1
  4. package/dist/apps/cli/commands/project/commandConfigSecrets.js.map +1 -1
  5. package/dist/apps/cli/config/writeConfig.d.ts +5 -0
  6. package/dist/apps/cli/config/writeConfig.js +95 -0
  7. package/dist/apps/cli/config/writeConfig.js.map +1 -0
  8. package/dist/apps/cli/verify/index.d.ts +2 -0
  9. package/dist/apps/cli/verify/index.js +71 -0
  10. package/dist/apps/cli/verify/index.js.map +1 -0
  11. package/dist/apps/cli/verify/migration/fromv2.d.ts +3 -0
  12. package/dist/apps/cli/verify/migration/fromv2.js +240 -0
  13. package/dist/apps/cli/verify/migration/fromv2.js.map +1 -0
  14. package/dist/apps/cli/verify/migration/migrateSecrets.d.ts +4 -0
  15. package/dist/apps/cli/verify/migration/migrateSecrets.js +75 -0
  16. package/dist/apps/cli/verify/migration/migrateSecrets.js.map +1 -0
  17. package/dist/apps/cli/verify/migration/oldGitlabCi.d.ts +16 -0
  18. package/dist/apps/cli/verify/migration/oldGitlabCi.js +24 -0
  19. package/dist/apps/cli/verify/migration/oldGitlabCi.js.map +1 -0
  20. package/dist/config/getProjectConfig.d.ts +2 -0
  21. package/dist/config/getProjectConfig.js +36 -3
  22. package/dist/config/getProjectConfig.js.map +1 -1
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/dist/utils/files.js +6 -1
  25. package/dist/utils/files.js.map +1 -1
  26. package/dist/utils/gitlab.d.ts +1 -1
  27. package/dist/utils/gitlab.js +30 -6
  28. package/dist/utils/gitlab.js.map +1 -1
  29. package/dist/utils/passwordstore/index.d.ts +1 -1
  30. package/dist/utils/passwordstore/index.js +17 -20
  31. package/dist/utils/passwordstore/index.js.map +1 -1
  32. package/dist/utils/projects/index.d.ts +1 -1
  33. package/package.json +2 -2
  34. package/src/apps/cli/cli.ts +5 -3
  35. package/src/apps/cli/commands/project/commandConfigSecrets.ts +22 -2
  36. package/src/apps/cli/config/writeConfig.ts +61 -0
  37. package/src/apps/cli/verify/index.ts +24 -0
  38. package/src/apps/cli/verify/migration/fromv2.ts +157 -0
  39. package/src/apps/cli/verify/migration/migrateSecrets.ts +32 -0
  40. package/src/apps/cli/verify/migration/oldGitlabCi.ts +40 -0
  41. package/src/config/getProjectConfig.ts +17 -1
  42. package/src/utils/editAsFile.ts +1 -1
  43. package/src/utils/files.ts +5 -1
  44. package/src/utils/gitlab.ts +18 -5
  45. package/src/utils/passwordstore/index.ts +19 -21
  46. package/src/utils/projects/index.ts +1 -1
@@ -64,13 +64,18 @@ var readFileOrError = function (filePath) { return __awaiter(void 0, void 0, voi
64
64
  }); };
65
65
  exports.readFileOrError = readFileOrError;
66
66
  var readYaml = function (filename) { return __awaiter(void 0, void 0, void 0, function () {
67
- var _a, _b;
67
+ var _a, _b, e_2;
68
68
  return __generator(this, function (_c) {
69
69
  switch (_c.label) {
70
70
  case 0:
71
+ _c.trys.push([0, 2, , 3]);
71
72
  _b = (_a = js_yaml_1["default"]).load;
72
73
  return [4 /*yield*/, readFile(filename)];
73
74
  case 1: return [2 /*return*/, _b.apply(_a, [_c.sent()])];
75
+ case 2:
76
+ e_2 = _c.sent();
77
+ return [2 /*return*/, null];
78
+ case 3: return [2 /*return*/];
74
79
  }
75
80
  });
76
81
  }); };
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/utils/files.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA0B;AAC1B,oDAA2B;AAE3B,IAAM,QAAQ,GAAG,UAAO,IAAY;IAClC,sBAAA,qBAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAA;SAAA,CAAC;AAEpC,IAAM,eAAe,GAAG,UAAO,QAAgB;;;;;;gBAErC,qBAAM,QAAQ,CAAC,QAAQ,CAAC,EAAA;;gBAA/B,IAAI,GAAG,SAAwB;gBACrC,sBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAC;;;gBAEpB,sBAAO,CAAC,GAAC,CAAC,EAAC;;;;KAEd,CAAC;AAPW,QAAA,eAAe,mBAO1B;AAEK,IAAM,QAAQ,GAAG,UAAO,QAAgB;;;;;gBACtC,KAAA,CAAA,KAAA,oBAAI,CAAA,CAAC,IAAI,CAAA;gBAAC,qBAAM,QAAQ,CAAC,QAAQ,CAAC,EAAA;oBAAzC,sBAAO,cAAU,SAAwB,EAAC,EAAC;;;KAC5C,CAAC;AAFW,QAAA,QAAQ,YAEnB"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/utils/files.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA0B;AAC1B,oDAA2B;AAE3B,IAAM,QAAQ,GAAG,UAAO,IAAY;IAClC,sBAAA,qBAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAA;SAAA,CAAC;AAEpC,IAAM,eAAe,GAAG,UAAO,QAAgB;;;;;;gBAErC,qBAAM,QAAQ,CAAC,QAAQ,CAAC,EAAA;;gBAA/B,IAAI,GAAG,SAAwB;gBACrC,sBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAC;;;gBAEpB,sBAAO,CAAC,GAAC,CAAC,EAAC;;;;KAEd,CAAC;AAPW,QAAA,eAAe,mBAO1B;AAEK,IAAM,QAAQ,GAAG,UAAO,QAAgB;;;;;;gBAEpC,KAAA,CAAA,KAAA,oBAAI,CAAA,CAAC,IAAI,CAAA;gBAAC,qBAAM,QAAQ,CAAC,QAAQ,CAAC,EAAA;oBAAzC,sBAAO,cAAU,SAAwB,EAAC,EAAC;;;gBAE3C,sBAAO,IAAI,EAAC;;;;KAEf,CAAC;AANW,QAAA,QAAQ,YAMnB"}
@@ -15,5 +15,5 @@ declare type GitlabVariable = {
15
15
  environment_scope: string;
16
16
  };
17
17
  export declare const getAllVariables: ((vorpal: CommandInstance) => Promise<Array<GitlabVariable>>) & memoizee.Memoized<(vorpal: CommandInstance) => Promise<Array<GitlabVariable>>>;
18
- export declare const upsertAllVariables: (vorpal: CommandInstance, variables: Record<string, string>, env: string, componentName: string) => Promise<void>;
18
+ export declare const upsertAllVariables: (vorpal: CommandInstance, variables: Record<string, any>, env: string, componentName: string) => Promise<void>;
19
19
  export {};
@@ -35,12 +35,22 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
36
  }
37
37
  };
38
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40
+ if (ar || !(i in from)) {
41
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42
+ ar[i] = from[i];
43
+ }
44
+ }
45
+ return to.concat(ar || Array.prototype.slice.call(from));
46
+ };
38
47
  var __importDefault = (this && this.__importDefault) || function (mod) {
39
48
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
49
  };
41
50
  exports.__esModule = true;
42
51
  exports.upsertAllVariables = exports.getAllVariables = exports.getProjectInfo = exports.doGitlabRequest = exports.getGitlabToken = void 0;
43
52
  var child_process_promise_1 = require("child-process-promise");
53
+ var lodash_1 = require("lodash");
44
54
  var memoizee_1 = __importDefault(require("memoizee"));
45
55
  var node_fetch_1 = __importDefault(require("node-fetch"));
46
56
  var open_1 = __importDefault(require("open"));
@@ -138,14 +148,27 @@ var getProjectInfo = function (vorpal) { return __awaiter(void 0, void 0, void 0
138
148
  }); };
139
149
  exports.getProjectInfo = getProjectInfo;
140
150
  exports.getAllVariables = (0, memoizee_1["default"])(function (vorpal) { return __awaiter(void 0, void 0, void 0, function () {
141
- var id;
151
+ var id, all, result, page;
142
152
  return __generator(this, function (_a) {
143
153
  switch (_a.label) {
144
154
  case 0: return [4 /*yield*/, (0, exports.getProjectInfo)(vorpal)];
145
155
  case 1:
146
156
  id = (_a.sent()).id;
147
- return [4 /*yield*/, (0, exports.doGitlabRequest)(vorpal, "projects/".concat(id, "/variables"))];
148
- case 2: return [2 /*return*/, _a.sent()];
157
+ all = [];
158
+ page = 1;
159
+ _a.label = 2;
160
+ case 2: return [4 /*yield*/, (0, exports.doGitlabRequest)(vorpal,
161
+ // 100 is max page size
162
+ "projects/".concat(id, "/variables?per_page=100&page=").concat(page))];
163
+ case 3:
164
+ result = _a.sent();
165
+ page++;
166
+ all = __spreadArray(__spreadArray([], all, true), result, true);
167
+ _a.label = 4;
168
+ case 4:
169
+ if ((result === null || result === void 0 ? void 0 : result.length) > 0) return [3 /*break*/, 2];
170
+ _a.label = 5;
171
+ case 5: return [2 /*return*/, all];
149
172
  }
150
173
  });
151
174
  }); }, { promise: true });
@@ -171,7 +194,7 @@ var updateVariable = function (vorpal, projectId, key, value) { return __awaiter
171
194
  });
172
195
  }); };
173
196
  var upsertAllVariables = function (vorpal, variables, env, componentName) { return __awaiter(void 0, void 0, void 0, function () {
174
- var id, _i, _a, _b, key, value, fullKey, e_1;
197
+ var id, _i, _a, _b, key, value, fullKey, valueSanitized, e_1;
175
198
  return __generator(this, function (_c) {
176
199
  switch (_c.label) {
177
200
  case 0: return [4 /*yield*/, (0, exports.getProjectInfo)(vorpal)];
@@ -183,16 +206,17 @@ var upsertAllVariables = function (vorpal, variables, env, componentName) { retu
183
206
  if (!(_i < _a.length)) return [3 /*break*/, 9];
184
207
  _b = _a[_i], key = _b[0], value = _b[1];
185
208
  fullKey = "CL_" + env + "_" + componentName + "_" + key;
209
+ valueSanitized = (0, lodash_1.isObject)(value) ? JSON.stringify(value) : "".concat(value);
186
210
  _c.label = 3;
187
211
  case 3:
188
212
  _c.trys.push([3, 5, 7, 8]);
189
- return [4 /*yield*/, updateVariable(vorpal, id, fullKey, value)];
213
+ return [4 /*yield*/, updateVariable(vorpal, id, fullKey, valueSanitized)];
190
214
  case 4:
191
215
  _c.sent();
192
216
  return [3 /*break*/, 8];
193
217
  case 5:
194
218
  e_1 = _c.sent();
195
- return [4 /*yield*/, createVariable(vorpal, id, fullKey, value)];
219
+ return [4 /*yield*/, createVariable(vorpal, id, fullKey, valueSanitized)];
196
220
  case 6:
197
221
  _c.sent();
198
222
  return [3 /*break*/, 8];
@@ -1 +1 @@
1
- {"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../src/utils/gitlab.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../../src/utils/gitlab.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@ export declare const hasBitwarden: () => any;
4
4
  export declare const readPass: (path: string) => Promise<any>;
5
5
  export declare const syncBitwarden: (force?: boolean) => Promise<void>;
6
6
  export declare const insertPass: (path: string, content: string) => Promise<void>;
7
+ export declare const trashItem: (path: string) => Promise<any>;
7
8
  export declare const editPass: (path: string) => Promise<void>;
8
- export declare const readPassEnvVars: (path: string) => Promise<{}>;
@@ -50,14 +50,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
50
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
51
  };
52
52
  exports.__esModule = true;
53
- exports.readPassEnvVars = exports.editPass = exports.insertPass = exports.syncBitwarden = exports.readPass = exports.hasBitwarden = exports.getOrganization = exports.getCollection = void 0;
53
+ exports.editPass = exports.trashItem = exports.insertPass = exports.syncBitwarden = exports.readPass = exports.hasBitwarden = exports.getOrganization = exports.getCollection = void 0;
54
54
  var child_process_promise_1 = require("child-process-promise");
55
55
  var command_exists_promise_1 = __importDefault(require("command-exists-promise"));
56
56
  var dayjs_1 = __importDefault(require("dayjs"));
57
57
  var fs_extra_1 = require("fs-extra");
58
- var js_yaml_1 = __importDefault(require("js-yaml"));
59
58
  var tmp_promise_1 = require("tmp-promise");
60
- var formatEnvVars_1 = __importDefault(require("../formatEnvVars"));
61
59
  var getEditor_1 = __importDefault(require("../getEditor"));
62
60
  var preferences_1 = require("../preferences");
63
61
  var DEBUG = false;
@@ -164,10 +162,7 @@ var execBitwardenCommand = function (command) { return __awaiter(void 0, void 0,
164
162
  case 10:
165
163
  _a.sent();
166
164
  return [2 /*return*/, execBitwardenCommand(command)];
167
- case 11:
168
- console.error(e_1);
169
- console.log("wooops", e_1.message);
170
- _a.label = 12;
165
+ case 11: throw e_1;
171
166
  case 12: return [3 /*break*/, 13];
172
167
  case 13: return [2 /*return*/];
173
168
  }
@@ -327,6 +322,21 @@ var share = function (itemId) { return __awaiter(void 0, void 0, void 0, functio
327
322
  }
328
323
  });
329
324
  }); };
325
+ var trashItem = function (path) { return __awaiter(void 0, void 0, void 0, function () {
326
+ var item, result;
327
+ return __generator(this, function (_a) {
328
+ switch (_a.label) {
329
+ case 0: return [4 /*yield*/, getItem(path)];
330
+ case 1:
331
+ item = _a.sent();
332
+ return [4 /*yield*/, execBitwardenCommand("delete item ".concat(item.id))];
333
+ case 2:
334
+ result = _a.sent();
335
+ return [2 /*return*/, result];
336
+ }
337
+ });
338
+ }); };
339
+ exports.trashItem = trashItem;
330
340
  var editPass = function (path) { return __awaiter(void 0, void 0, void 0, function () {
331
341
  var item;
332
342
  return __generator(this, function (_a) {
@@ -365,17 +375,4 @@ var editPass = function (path) { return __awaiter(void 0, void 0, void 0, functi
365
375
  });
366
376
  }); };
367
377
  exports.editPass = editPass;
368
- var readPassEnvVars = function (path) { return __awaiter(void 0, void 0, void 0, function () {
369
- var yamlstring;
370
- return __generator(this, function (_a) {
371
- switch (_a.label) {
372
- case 0: return [4 /*yield*/, (0, exports.readPass)(path)];
373
- case 1:
374
- yamlstring = _a.sent();
375
- // if a value is an object, we convert it to strings
376
- return [2 /*return*/, (0, formatEnvVars_1["default"])(js_yaml_1["default"].load(yamlstring))];
377
- }
378
- });
379
- }); };
380
- exports.readPassEnvVars = readPassEnvVars;
381
378
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/passwordstore/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/passwordstore/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const getGitRoot: () => Promise<any>;
1
+ export declare const getGitRoot: () => Promise<string>;
2
2
  export declare const getRootGitlabCiFile: () => Promise<string>;
3
3
  export declare const readRootGitlabCiFile: () => Promise<any[]>;
4
4
  export declare const hasGitlabCiFile: () => Promise<boolean>;
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@bitwarden/cli": "^1.8.0",
20
- "@catladder/pipeline": "0.0.0-fudi",
20
+ "@catladder/pipeline": "0.0.0",
21
21
  "@kubernetes/client-node": "^0.16.1",
22
22
  "child-process-promise": "^2.2.1",
23
23
  "clipboardy": "^2.2.0",
@@ -60,5 +60,5 @@
60
60
  "eslint": "^8.7.0",
61
61
  "typescript": "^4.5.4"
62
62
  },
63
- "version": "0.0.0-main-d0a1e9f1"
63
+ "version": "0.0.0-main-67fbbdf8"
64
64
  }
@@ -9,12 +9,13 @@ import project from "./commands/project";
9
9
  import theStuffThatReallyMatters from "./commands/theStuffThatReallyMatters";
10
10
 
11
11
  import { getProjectConfig } from "../../config/getProjectConfig";
12
+ import { verify } from "./verify";
12
13
 
13
14
  export default async () => {
14
- const projectConfig = await getProjectConfig();
15
- const welcomeMessage = `catladder 2022 😻 version ${packageInfos.version}`;
16
-
17
15
  const vorpal = new Vorpal();
16
+ verify(vorpal);
17
+ const welcomeMessage = `catladder 2022 😻 version ${packageInfos.version}`;
18
+ const projectConfig = await getProjectConfig();
18
19
 
19
20
  vorpal
20
21
  .delimiter("catladder $") // emoji messes with cursor :-( https://github.com/dthree/vorpal/issues/332
@@ -26,6 +27,7 @@ export default async () => {
26
27
  if (projectConfig) {
27
28
  vorpal.log("project: " + projectConfig.appName);
28
29
  vorpal.log("customer: " + projectConfig.customerName);
30
+ vorpal.log("");
29
31
  }
30
32
 
31
33
  general(vorpal);
@@ -13,6 +13,24 @@ import { upsertAllVariables } from "../../../../utils/gitlab";
13
13
  import { delay } from "../../../../utils/promise";
14
14
  import { allEnvsAndAllComponents } from "./utils/autocompletions";
15
15
 
16
+ /* for convenience, parse json objects. that makes it easier to edit secrets that are object */
17
+ const resolveJson = (v: Record<string, Record<string, string>>) =>
18
+ Object.fromEntries(
19
+ Object.entries(v).map(([c, secrets]) => {
20
+ return [
21
+ c,
22
+ Object.fromEntries(
23
+ Object.entries(secrets).map(([key, value]) => {
24
+ try {
25
+ return [key, JSON.parse(value)];
26
+ } catch (e) {
27
+ return [key, value];
28
+ }
29
+ })
30
+ ),
31
+ ];
32
+ })
33
+ );
16
34
  const getEnvVarsToEdit = async (env: string, componentName: string) => {
17
35
  const { secretEnvVarKeys } = await getEnvironment(env, componentName);
18
36
 
@@ -26,7 +44,7 @@ const doItFor = async (
26
44
  env: string,
27
45
  components: string[]
28
46
  ) => {
29
- let valuesToEdit = Object.fromEntries(
47
+ let valuesToEdit: Record<string, Record<string, string>> = Object.fromEntries(
30
48
  await Promise.all(
31
49
  components.map(async (componentName) => [
32
50
  componentName,
@@ -37,7 +55,7 @@ const doItFor = async (
37
55
  let hasErrors = true;
38
56
  while (hasErrors) {
39
57
  valuesToEdit = await editAsFile(
40
- valuesToEdit,
58
+ resolveJson(valuesToEdit),
41
59
  stripIndents`
42
60
  Please fill in all secrets for: ${components.join(", ")}
43
61
 
@@ -87,6 +105,8 @@ const doItFor = async (
87
105
  }
88
106
  }
89
107
 
108
+ console.log(JSON.stringify(valuesToEdit, null, 2));
109
+
90
110
  for (const componentName of components) {
91
111
  await upsertAllVariables(
92
112
  this,
@@ -0,0 +1,61 @@
1
+ import { Config } from "@catladder/pipeline";
2
+ import { spawn } from "child-process-promise";
3
+ import { writeFile } from "fs-extra";
4
+ import { safeDump } from "js-yaml";
5
+ import { format } from "prettier";
6
+ import { CommandInstance } from "vorpal";
7
+ import { getGitRoot } from "../../../utils/projects";
8
+
9
+ export const writeConfig = async (
10
+ vorpal: CommandInstance,
11
+ config: Config,
12
+ options?: {
13
+ endComment?: string;
14
+ }
15
+ ) => {
16
+ const gitRoot = await getGitRoot();
17
+ const TS = "typescript (recommended)";
18
+ const { configType } = await vorpal.prompt({
19
+ type: "list",
20
+ name: "configType",
21
+ choices: [TS, "yaml"],
22
+ message: "In which format do you want the config? 🤔",
23
+ });
24
+ if (configType === TS) {
25
+ const content = format(`
26
+ import type { Config } from "@catladder/pipeline";
27
+
28
+ const config: Config = ${JSON.stringify(config)};
29
+
30
+ export default config;
31
+
32
+
33
+ ${options?.endComment ? `/*${options.endComment}*/` : ""}
34
+
35
+ `);
36
+
37
+ await writeFile(gitRoot + "/catladder.ts", content, {
38
+ encoding: "utf-8",
39
+ });
40
+ vorpal.log("adding type @catladder/pipeline....");
41
+ await spawn("yarn add @catladder/pipeline -D", {
42
+ shell: true,
43
+ });
44
+ } else {
45
+ const content = safeDump(config);
46
+
47
+ await writeFile(
48
+ gitRoot + "/catladder.yml",
49
+ content +
50
+ "\n\n" +
51
+ (options.endComment
52
+ ? "# " + options.endComment.split("\n").join("\n# ")
53
+ : ""),
54
+ {
55
+ encoding: "utf-8",
56
+ }
57
+ );
58
+ }
59
+ vorpal.log("done!");
60
+ vorpal.log("");
61
+ };
@@ -0,0 +1,24 @@
1
+ import Vorpal from "vorpal";
2
+ import {
3
+ getGitlabCi,
4
+ getProjectConfig,
5
+ } from "../../../config/getProjectConfig";
6
+ import { migrateV2 } from "./migration/fromv2";
7
+
8
+ export const verify = async (vorpal: Vorpal) => {
9
+ const projectConfig = await getProjectConfig();
10
+ try {
11
+ const gitlabCi = getGitlabCi();
12
+
13
+ if (!gitlabCi) {
14
+ vorpal.log("not initialized");
15
+ }
16
+
17
+ if (!projectConfig) {
18
+ vorpal.log("no project config, needs migration");
19
+ await migrateV2(vorpal);
20
+ }
21
+ } catch (e) {
22
+ // no gitroot, ignore
23
+ }
24
+ };
@@ -0,0 +1,157 @@
1
+ import {
2
+ BuildConfig,
3
+ Config,
4
+ DeployConfigKubernetes,
5
+ Env,
6
+ } from "@catladder/pipeline";
7
+ import { readFile, writeFile } from "fs-extra";
8
+ import { isEmpty } from "lodash";
9
+ import Vorpal from "vorpal";
10
+ import {
11
+ getGitlabCi,
12
+ getGitlabCiFilePath,
13
+ } from "../../../../config/getProjectConfig";
14
+ import { readYaml } from "../../../../utils/files";
15
+ import { getGitRoot } from "../../../../utils/projects";
16
+ import { writeConfig } from "../../config/writeConfig";
17
+ import { migrateSecrets } from "./migrateSecrets";
18
+ import { detectBuildConfig, OldGitlabCiFile } from "./oldGitlabCi";
19
+ export const LEGACY_ENVS = [
20
+ "dev-local",
21
+ "dev",
22
+ "review",
23
+ "stage",
24
+ "prod",
25
+ ] as const;
26
+
27
+ const arrayToRecord = (arr: { name: string }[]): Record<string, any> => {
28
+ if (!arr) return undefined;
29
+ return Object.fromEntries(arr.map(({ name, ...rest }) => [name, rest]));
30
+ };
31
+
32
+ const transformVars = (rawVars: {
33
+ public: Record<string, any>;
34
+ secret: Record<string, any>;
35
+ fromCommponents: any;
36
+ }) => {
37
+ if (rawVars.fromCommponents) {
38
+ console.warn("cant transform legacy fromCommponents");
39
+ }
40
+
41
+ return {
42
+ public: rawVars.public,
43
+ secret: rawVars.secret ? Object.keys(rawVars.secret) : undefined,
44
+ };
45
+ };
46
+
47
+ const transformValues = (
48
+ valuesIn: Record<string, any>
49
+ ): DeployConfigKubernetes["values"] => {
50
+ if (isEmpty(valuesIn)) {
51
+ return undefined;
52
+ }
53
+ delete valuesIn?.application?.hostname;
54
+ delete valuesIn?.application?.command;
55
+
56
+ return {
57
+ ...valuesIn,
58
+ jobs: arrayToRecord(valuesIn?.jobs),
59
+ cronjobs: arrayToRecord(valuesIn?.cronjobs),
60
+ };
61
+ };
62
+ export const migrateV2 = async (vorpal: Vorpal) => {
63
+ const gitlabCi: OldGitlabCiFile = await getGitlabCi();
64
+ const gitRoot = await getGitRoot();
65
+
66
+ const { CUSTOMER_NAME, APP_NAME, COMPONENT_NAME, APP_DIR, CLUSTER_NAME } =
67
+ gitlabCi.variables;
68
+
69
+ vorpal
70
+ .command("migrate")
71
+
72
+ .action(async function () {
73
+ this.log("⚠️ this project uses legacy catladder (v2)");
74
+ this.log("migrate project?");
75
+ const { shouldContinue } = await this.prompt({
76
+ default: true,
77
+ message: "Migrate? 🤔",
78
+ name: "shouldContinue",
79
+ type: "confirm",
80
+ });
81
+
82
+ if (shouldContinue) {
83
+ const { env, ...baseValues } =
84
+ (await readYaml(gitRoot + "/values.yml")) ?? {};
85
+
86
+ const startCommand = baseValues?.application?.command?.join(" ");
87
+
88
+ // we only have one component
89
+ const config: Config = {
90
+ customerName: CUSTOMER_NAME,
91
+ appName: APP_NAME,
92
+ components: {
93
+ [COMPONENT_NAME]: {
94
+ vars: env ? transformVars(env) : undefined,
95
+ dir: APP_DIR ?? ".",
96
+ build: {
97
+ type: detectBuildConfig(gitlabCi),
98
+ startCommand: startCommand,
99
+ } as BuildConfig,
100
+ deploy: {
101
+ type: "kubernetes",
102
+ values: transformValues(baseValues),
103
+ cluster: CLUSTER_NAME,
104
+ },
105
+ env: await LEGACY_ENVS.reduce<Promise<Env>>(
106
+ async (acc, envName) => {
107
+ const newEnvName =
108
+ envName === "dev-local" ? "local" : envName;
109
+
110
+ const envValues =
111
+ (await readYaml(gitRoot + `/values-${envName}.yml`)) ?? {};
112
+ const { env, ...rest } = envValues;
113
+ const hostname = rest?.application?.hostname;
114
+ const values = transformValues(rest);
115
+ return {
116
+ ...(await acc),
117
+ [newEnvName]: {
118
+ hostname: hostname,
119
+ vars: env ? transformVars(env) : undefined,
120
+ deploy: values
121
+ ? {
122
+ values: values,
123
+ }
124
+ : undefined,
125
+ },
126
+ };
127
+ },
128
+ Promise.resolve({})
129
+ ),
130
+ },
131
+ },
132
+ };
133
+ this.log("migrate secrets");
134
+ for (const env of LEGACY_ENVS) {
135
+ await migrateSecrets(this, gitlabCi, env);
136
+ }
137
+
138
+ const comment =
139
+ "Old migrated config:\n\n" +
140
+ (await readFile(await getGitlabCiFilePath(), {
141
+ encoding: "utf-8",
142
+ }));
143
+ this.log("write config");
144
+ await writeConfig(this, config, {
145
+ endComment: comment,
146
+ });
147
+ this.log("write gitlab-ci.yml");
148
+ await writeFile(
149
+ await getGitlabCiFilePath(),
150
+ "include: https://git.panter.ch/api/v4/projects/catladder%2Fcatladder/packages/generic/ci-includes/main/gitlab-ci.yml",
151
+ { encoding: "utf-8" }
152
+ );
153
+ }
154
+ });
155
+
156
+ vorpal.exec("migrate");
157
+ };
@@ -0,0 +1,32 @@
1
+ import { load } from "js-yaml";
2
+ import { CommandInstance } from "vorpal";
3
+ import { upsertAllVariables } from "../../../../utils/gitlab";
4
+ import { readPass, trashItem } from "../../../../utils/passwordstore";
5
+ import { LEGACY_ENVS } from "./fromv2";
6
+ import { OldGitlabCiFile } from "./oldGitlabCi";
7
+
8
+ const getPassPath = (gitlabCi: OldGitlabCiFile, env: string) => {
9
+ return `${gitlabCi.variables.CUSTOMER_NAME}/${gitlabCi.variables.APP_NAME}/${env}/secrets.yml`;
10
+ };
11
+
12
+ export const migrateSecrets = async (
13
+ vorpal: CommandInstance,
14
+ gitlabCi: OldGitlabCiFile,
15
+ env: typeof LEGACY_ENVS[number]
16
+ ) => {
17
+ const path = getPassPath(gitlabCi, env);
18
+ try {
19
+ const yamlstring = await readPass(path);
20
+ const secrets = load(yamlstring);
21
+
22
+ await upsertAllVariables(
23
+ vorpal,
24
+ secrets,
25
+ env === "dev-local" ? "local" : env,
26
+ gitlabCi.variables.COMPONENT_NAME
27
+ );
28
+ await trashItem(path);
29
+ } catch (e) {
30
+ console.warn(`could not migrate secrets for env '${env}': ${e}`);
31
+ }
32
+ };