@catladder/cli 0.0.0-refactor-docker-45f6e733 → 0.0.0-refactor-cache-b38c122b

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 (500) hide show
  1. package/CONTRIBUTING.md +3 -86
  2. package/README.md +6 -29
  3. package/dist/bundles/catci/index.js +1563 -1231
  4. package/dist/bundles/catenv/index.js +9798 -12257
  5. package/dist/bundles/cli/index.js +35093 -41918
  6. package/dist/cli/src/apps/catci/catci.js +19 -91
  7. package/dist/cli/src/apps/catci/catci.js.map +1 -1
  8. package/dist/cli/src/apps/catci/commands/security/auditDocument.js +73 -79
  9. package/dist/cli/src/apps/catci/commands/security/auditDocument.js.map +1 -1
  10. package/dist/cli/src/apps/catci/commands/security/commands.js +94 -169
  11. package/dist/cli/src/apps/catci/commands/security/commands.js.map +1 -1
  12. package/dist/cli/src/apps/catci/commands/security/createSecurityAuditMergeRequest.js +42 -102
  13. package/dist/cli/src/apps/catci/commands/security/createSecurityAuditMergeRequest.js.map +1 -1
  14. package/dist/cli/src/apps/catci/commands/security/evaluateSecurityAudit.js +19 -67
  15. package/dist/cli/src/apps/catci/commands/security/evaluateSecurityAudit.js.map +1 -1
  16. package/dist/cli/src/apps/catenv/catenv.js +18 -64
  17. package/dist/cli/src/apps/catenv/catenv.js.map +1 -1
  18. package/dist/cli/src/apps/catenv/printVariables.js +36 -123
  19. package/dist/cli/src/apps/catenv/printVariables.js.map +1 -1
  20. package/dist/cli/src/apps/catenv/utils.js +26 -112
  21. package/dist/cli/src/apps/catenv/utils.js.map +1 -1
  22. package/dist/cli/src/apps/catenv/writeDotEnvFiles.js +28 -132
  23. package/dist/cli/src/apps/catenv/writeDotEnvFiles.js.map +1 -1
  24. package/dist/cli/src/apps/catenv/writeEnvDTs.js +49 -150
  25. package/dist/cli/src/apps/catenv/writeEnvDTs.js.map +1 -1
  26. package/dist/cli/src/apps/cli/cli.js +31 -76
  27. package/dist/cli/src/apps/cli/cli.js.map +1 -1
  28. package/dist/cli/src/apps/cli/commands/cloudSQL/commandRestoreDb.js +106 -180
  29. package/dist/cli/src/apps/cli/commands/cloudSQL/commandRestoreDb.js.map +1 -1
  30. package/dist/cli/src/apps/cli/commands/cloudSQL/index.js +4 -43
  31. package/dist/cli/src/apps/cli/commands/cloudSQL/index.js.map +1 -1
  32. package/dist/cli/src/apps/cli/commands/general/index.js +67 -191
  33. package/dist/cli/src/apps/cli/commands/general/index.js.map +1 -1
  34. package/dist/cli/src/apps/cli/commands/general/namespaceAutoCompletion.js +4 -49
  35. package/dist/cli/src/apps/cli/commands/general/namespaceAutoCompletion.js.map +1 -1
  36. package/dist/cli/src/apps/cli/commands/general/portForward.js +36 -93
  37. package/dist/cli/src/apps/cli/commands/general/portForward.js.map +1 -1
  38. package/dist/cli/src/apps/cli/commands/mongodb/index.js +8 -47
  39. package/dist/cli/src/apps/cli/commands/mongodb/index.js.map +1 -1
  40. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoDestroyMember.js +86 -183
  41. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoDestroyMember.js.map +1 -1
  42. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoGetShell.js +30 -90
  43. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoGetShell.js.map +1 -1
  44. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoPortForward.js +50 -114
  45. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoPortForward.js.map +1 -1
  46. package/dist/cli/src/apps/cli/commands/mongodb/utils/index.js +58 -192
  47. package/dist/cli/src/apps/cli/commands/mongodb/utils/index.js.map +1 -1
  48. package/dist/cli/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.js +118 -197
  49. package/dist/cli/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.js.map +1 -1
  50. package/dist/cli/src/apps/cli/commands/project/commandCloudSqlProxy.js +81 -160
  51. package/dist/cli/src/apps/cli/commands/project/commandCloudSqlProxy.js.map +1 -1
  52. package/dist/cli/src/apps/cli/commands/project/commandConfigSecrets.js +134 -397
  53. package/dist/cli/src/apps/cli/commands/project/commandConfigSecrets.js.map +1 -1
  54. package/dist/cli/src/apps/cli/commands/project/commandDeletePods.js +40 -140
  55. package/dist/cli/src/apps/cli/commands/project/commandDeletePods.js.map +1 -1
  56. package/dist/cli/src/apps/cli/commands/project/commandDeleteProject.js +23 -92
  57. package/dist/cli/src/apps/cli/commands/project/commandDeleteProject.js.map +1 -1
  58. package/dist/cli/src/apps/cli/commands/project/commandEnvVars.js +10 -71
  59. package/dist/cli/src/apps/cli/commands/project/commandEnvVars.js.map +1 -1
  60. package/dist/cli/src/apps/cli/commands/project/commandGetMyTotalWorktime.js +7 -54
  61. package/dist/cli/src/apps/cli/commands/project/commandGetMyTotalWorktime.js.map +1 -1
  62. package/dist/cli/src/apps/cli/commands/project/commandGetShell.js +27 -89
  63. package/dist/cli/src/apps/cli/commands/project/commandGetShell.js.map +1 -1
  64. package/dist/cli/src/apps/cli/commands/project/commandGitlabCi.js +65 -180
  65. package/dist/cli/src/apps/cli/commands/project/commandGitlabCi.js.map +1 -1
  66. package/dist/cli/src/apps/cli/commands/project/commandListPods.js +13 -72
  67. package/dist/cli/src/apps/cli/commands/project/commandListPods.js.map +1 -1
  68. package/dist/cli/src/apps/cli/commands/project/commandMigrateHelm3.js +38 -104
  69. package/dist/cli/src/apps/cli/commands/project/commandMigrateHelm3.js.map +1 -1
  70. package/dist/cli/src/apps/cli/commands/project/commandNamespace.js +8 -67
  71. package/dist/cli/src/apps/cli/commands/project/commandNamespace.js.map +1 -1
  72. package/dist/cli/src/apps/cli/commands/project/commandOpenCostDashboard.js +16 -77
  73. package/dist/cli/src/apps/cli/commands/project/commandOpenCostDashboard.js.map +1 -1
  74. package/dist/cli/src/apps/cli/commands/project/commandOpenDashboard.js +18 -81
  75. package/dist/cli/src/apps/cli/commands/project/commandOpenDashboard.js.map +1 -1
  76. package/dist/cli/src/apps/cli/commands/project/commandOpenEnv.js +14 -74
  77. package/dist/cli/src/apps/cli/commands/project/commandOpenEnv.js.map +1 -1
  78. package/dist/cli/src/apps/cli/commands/project/commandOpenGit.js +6 -53
  79. package/dist/cli/src/apps/cli/commands/project/commandOpenGit.js.map +1 -1
  80. package/dist/cli/src/apps/cli/commands/project/commandOpenGrafana.js +16 -77
  81. package/dist/cli/src/apps/cli/commands/project/commandOpenGrafana.js.map +1 -1
  82. package/dist/cli/src/apps/cli/commands/project/commandOpenGrafanaPod.js +28 -93
  83. package/dist/cli/src/apps/cli/commands/project/commandOpenGrafanaPod.js.map +1 -1
  84. package/dist/cli/src/apps/cli/commands/project/commandOpenLogs.js +11 -71
  85. package/dist/cli/src/apps/cli/commands/project/commandOpenLogs.js.map +1 -1
  86. package/dist/cli/src/apps/cli/commands/project/commandPauseProject.js +23 -92
  87. package/dist/cli/src/apps/cli/commands/project/commandPauseProject.js.map +1 -1
  88. package/dist/cli/src/apps/cli/commands/project/commandPortForward.js +71 -163
  89. package/dist/cli/src/apps/cli/commands/project/commandPortForward.js.map +1 -1
  90. package/dist/cli/src/apps/cli/commands/project/commandRenewToken.d.ts +3 -0
  91. package/dist/cli/src/apps/cli/commands/project/commandRenewToken.js +9 -0
  92. package/dist/cli/src/apps/cli/commands/project/commandRenewToken.js.map +1 -0
  93. package/dist/cli/src/apps/cli/commands/project/commandSecretsClearBackups.js +17 -112
  94. package/dist/cli/src/apps/cli/commands/project/commandSecretsClearBackups.js.map +1 -1
  95. package/dist/cli/src/apps/cli/commands/project/commandSecurityEvaluate.js +15 -66
  96. package/dist/cli/src/apps/cli/commands/project/commandSecurityEvaluate.js.map +1 -1
  97. package/dist/cli/src/apps/cli/commands/project/commandSetup.js +6 -55
  98. package/dist/cli/src/apps/cli/commands/project/commandSetup.js.map +1 -1
  99. package/dist/cli/src/apps/cli/commands/project/commandTriggerCronjob.js +47 -135
  100. package/dist/cli/src/apps/cli/commands/project/commandTriggerCronjob.js.map +1 -1
  101. package/dist/cli/src/apps/cli/commands/project/index.js +54 -91
  102. package/dist/cli/src/apps/cli/commands/project/index.js.map +1 -1
  103. package/dist/cli/src/apps/cli/commands/project/setup/index.js +39 -127
  104. package/dist/cli/src/apps/cli/commands/project/setup/index.js.map +1 -1
  105. package/dist/cli/src/apps/cli/commands/project/setup/setupAccessTokens.js +35 -94
  106. package/dist/cli/src/apps/cli/commands/project/setup/setupAccessTokens.js.map +1 -1
  107. package/dist/cli/src/apps/cli/commands/project/setup/setupCloudRun.js +52 -129
  108. package/dist/cli/src/apps/cli/commands/project/setup/setupCloudRun.js.map +1 -1
  109. package/dist/cli/src/apps/cli/commands/project/setup/setupContext.js +19 -76
  110. package/dist/cli/src/apps/cli/commands/project/setup/setupContext.js.map +1 -1
  111. package/dist/cli/src/apps/cli/commands/project/setup/setupKubernetes.js +106 -147
  112. package/dist/cli/src/apps/cli/commands/project/setup/setupKubernetes.js.map +1 -1
  113. package/dist/cli/src/apps/cli/commands/project/setup/setupTopic.js +7 -80
  114. package/dist/cli/src/apps/cli/commands/project/setup/setupTopic.js.map +1 -1
  115. package/dist/cli/src/apps/cli/commands/project/utils/autocompletions.js +16 -105
  116. package/dist/cli/src/apps/cli/commands/project/utils/autocompletions.js.map +1 -1
  117. package/dist/cli/src/apps/cli/commands/project/utils/ensureCluster.js +28 -79
  118. package/dist/cli/src/apps/cli/commands/project/utils/ensureCluster.js.map +1 -1
  119. package/dist/cli/src/apps/cli/commands/project/utils/ensureNamespace.js +29 -110
  120. package/dist/cli/src/apps/cli/commands/project/utils/ensureNamespace.js.map +1 -1
  121. package/dist/cli/src/apps/cli/commands/project/utils/showProjectBanner.js +9 -53
  122. package/dist/cli/src/apps/cli/commands/project/utils/showProjectBanner.js.map +1 -1
  123. package/dist/cli/src/apps/cli/commands/theStuffThatReallyMatters/index.js +26 -92
  124. package/dist/cli/src/apps/cli/commands/theStuffThatReallyMatters/index.js.map +1 -1
  125. package/dist/cli/src/apps/cli/utils/getGoogleAuthUserNumber.js +13 -62
  126. package/dist/cli/src/apps/cli/utils/getGoogleAuthUserNumber.js.map +1 -1
  127. package/dist/cli/src/apps/cli/verify/index.js +10 -62
  128. package/dist/cli/src/apps/cli/verify/index.js.map +1 -1
  129. package/dist/cli/src/catci.js +1 -1
  130. package/dist/cli/src/catci.js.map +1 -1
  131. package/dist/cli/src/catenv.js +10 -4
  132. package/dist/cli/src/catenv.js.map +1 -1
  133. package/dist/cli/src/cli.js +1 -1
  134. package/dist/cli/src/cli.js.map +1 -1
  135. package/dist/cli/src/config/getProjectConfig.js +118 -292
  136. package/dist/cli/src/config/getProjectConfig.js.map +1 -1
  137. package/dist/cli/src/config/parseChoice.js +3 -19
  138. package/dist/cli/src/config/parseChoice.js.map +1 -1
  139. package/dist/cli/src/gcloud/artifactsRegistry.js +10 -54
  140. package/dist/cli/src/gcloud/artifactsRegistry.js.map +1 -1
  141. package/dist/cli/src/gcloud/cloudRun/getCloudRunDomainSuffix.js +21 -60
  142. package/dist/cli/src/gcloud/cloudRun/getCloudRunDomainSuffix.js.map +1 -1
  143. package/dist/cli/src/gcloud/cloudRun/openCloudRunDashboards.js +12 -57
  144. package/dist/cli/src/gcloud/cloudRun/openCloudRunDashboards.js.map +1 -1
  145. package/dist/cli/src/gcloud/cloudSql/copyDb.js +30 -56
  146. package/dist/cli/src/gcloud/cloudSql/copyDb.js.map +1 -1
  147. package/dist/cli/src/gcloud/cloudSql/startProxy.js +41 -123
  148. package/dist/cli/src/gcloud/cloudSql/startProxy.js.map +1 -1
  149. package/dist/cli/src/gcloud/enableServices.js +6 -82
  150. package/dist/cli/src/gcloud/enableServices.js.map +1 -1
  151. package/dist/cli/src/gcloud/openDashboard.js +12 -95
  152. package/dist/cli/src/gcloud/openDashboard.js.map +1 -1
  153. package/dist/cli/src/gcloud/serviceAccounts.js +63 -177
  154. package/dist/cli/src/gcloud/serviceAccounts.js.map +1 -1
  155. package/dist/cli/src/k8sApi/index.js +9 -9
  156. package/dist/cli/src/k8sApi/index.js.map +1 -1
  157. package/dist/cli/src/kubernetes/index.js +20 -81
  158. package/dist/cli/src/kubernetes/index.js.map +1 -1
  159. package/dist/cli/src/kubernetes/openKubernetesDashboards.js +32 -86
  160. package/dist/cli/src/kubernetes/openKubernetesDashboards.js.map +1 -1
  161. package/dist/cli/src/kubernetes/portForward.js +5 -50
  162. package/dist/cli/src/kubernetes/portForward.js.map +1 -1
  163. package/dist/cli/src/packageInfos.js +2 -2
  164. package/dist/cli/src/packageInfos.js.map +1 -1
  165. package/dist/cli/src/utils/boxWithAscii.js +6 -6
  166. package/dist/cli/src/utils/boxWithAscii.js.map +1 -1
  167. package/dist/cli/src/utils/cluster.js +8 -61
  168. package/dist/cli/src/utils/cluster.js.map +1 -1
  169. package/dist/cli/src/utils/editAsFile.js +21 -75
  170. package/dist/cli/src/utils/editAsFile.js.map +1 -1
  171. package/dist/cli/src/utils/files.js +11 -57
  172. package/dist/cli/src/utils/files.js.map +1 -1
  173. package/dist/cli/src/utils/getEditor.js +15 -71
  174. package/dist/cli/src/utils/getEditor.js.map +1 -1
  175. package/dist/cli/src/utils/gitlab.js +176 -466
  176. package/dist/cli/src/utils/gitlab.js.map +1 -1
  177. package/dist/cli/src/utils/log.js +2 -2
  178. package/dist/cli/src/utils/log.js.map +1 -1
  179. package/dist/cli/src/utils/portForwards.js +32 -120
  180. package/dist/cli/src/utils/portForwards.js.map +1 -1
  181. package/dist/cli/src/utils/preferences/index.js +27 -108
  182. package/dist/cli/src/utils/preferences/index.js.map +1 -1
  183. package/dist/cli/src/utils/projects/index.d.ts +1 -1
  184. package/dist/cli/src/utils/projects/index.js +28 -108
  185. package/dist/cli/src/utils/projects/index.js.map +1 -1
  186. package/dist/cli/src/utils/promise.js +4 -55
  187. package/dist/cli/src/utils/promise.js.map +1 -1
  188. package/dist/cli/src/utils/shell.js +19 -75
  189. package/dist/cli/src/utils/shell.js.map +1 -1
  190. package/dist/pipeline/src/bash/BashExpression.js +20 -52
  191. package/dist/pipeline/src/bash/BashExpression.js.map +1 -1
  192. package/dist/pipeline/src/bash/bashExpressionPerPipelineType.js +1 -1
  193. package/dist/pipeline/src/bash/bashExpressionPerPipelineType.js.map +1 -1
  194. package/dist/pipeline/src/bash/bashYaml.js +13 -10
  195. package/dist/pipeline/src/bash/bashYaml.js.map +1 -1
  196. package/dist/pipeline/src/bash/getInjectVarsScript.js +5 -27
  197. package/dist/pipeline/src/bash/getInjectVarsScript.js.map +1 -1
  198. package/dist/pipeline/src/bash/replaceAsync.js +29 -79
  199. package/dist/pipeline/src/bash/replaceAsync.js.map +1 -1
  200. package/dist/pipeline/src/build/artifacts/createBuildJobArtifact.d.ts +3 -0
  201. package/dist/pipeline/src/build/artifacts/createBuildJobArtifact.js +50 -0
  202. package/dist/pipeline/src/build/artifacts/createBuildJobArtifact.js.map +1 -0
  203. package/dist/pipeline/src/build/base/constants.js +1 -1
  204. package/dist/pipeline/src/build/base/constants.js.map +1 -1
  205. package/dist/pipeline/src/build/base/createAppBuildJob.d.ts +3 -3
  206. package/dist/pipeline/src/build/base/createAppBuildJob.js +42 -73
  207. package/dist/pipeline/src/build/base/createAppBuildJob.js.map +1 -1
  208. package/dist/pipeline/src/build/base/createArtifactsConfig.js +11 -40
  209. package/dist/pipeline/src/build/base/createArtifactsConfig.js.map +1 -1
  210. package/dist/pipeline/src/build/base/createBuildJobDefinition.d.ts +6 -0
  211. package/dist/pipeline/src/build/base/createBuildJobDefinition.js +30 -0
  212. package/dist/pipeline/src/build/base/createBuildJobDefinition.js.map +1 -0
  213. package/dist/pipeline/src/build/base/index.d.ts +7 -4
  214. package/dist/pipeline/src/build/base/index.js +42 -50
  215. package/dist/pipeline/src/build/base/index.js.map +1 -1
  216. package/dist/pipeline/src/build/base/writeBuildInfo.js +2 -2
  217. package/dist/pipeline/src/build/base/writeBuildInfo.js.map +1 -1
  218. package/dist/pipeline/src/build/base/writeDotEnv.d.ts +1 -0
  219. package/dist/pipeline/src/build/base/writeDotEnv.js +21 -32
  220. package/dist/pipeline/src/build/base/writeDotEnv.js.map +1 -1
  221. package/dist/pipeline/src/build/cache/createJobCache.d.ts +7 -0
  222. package/dist/pipeline/src/build/cache/createJobCache.js +57 -0
  223. package/dist/pipeline/src/build/cache/createJobCache.js.map +1 -0
  224. package/dist/pipeline/src/build/cache/getAllCacheConfigsFromConfig.d.ts +3 -0
  225. package/dist/pipeline/src/build/cache/getAllCacheConfigsFromConfig.js +25 -0
  226. package/dist/pipeline/src/build/cache/getAllCacheConfigsFromConfig.js.map +1 -0
  227. package/dist/pipeline/src/build/cache/transformLegacyJobCache.d.ts +3 -0
  228. package/dist/pipeline/src/build/cache/transformLegacyJobCache.js +17 -0
  229. package/dist/pipeline/src/build/cache/transformLegacyJobCache.js.map +1 -0
  230. package/dist/pipeline/src/build/custom/buildJob.js +8 -55
  231. package/dist/pipeline/src/build/custom/buildJob.js.map +1 -1
  232. package/dist/pipeline/src/build/custom/index.js +4 -29
  233. package/dist/pipeline/src/build/custom/index.js.map +1 -1
  234. package/dist/pipeline/src/build/custom/testJob.d.ts +1 -1
  235. package/dist/pipeline/src/build/custom/testJob.js +46 -54
  236. package/dist/pipeline/src/build/custom/testJob.js.map +1 -1
  237. package/dist/pipeline/src/build/docker.d.ts +6 -7
  238. package/dist/pipeline/src/build/docker.js +84 -108
  239. package/dist/pipeline/src/build/docker.js.map +1 -1
  240. package/dist/pipeline/src/build/index.d.ts +14 -5
  241. package/dist/pipeline/src/build/index.js +36 -16
  242. package/dist/pipeline/src/build/index.js.map +1 -1
  243. package/dist/pipeline/src/build/node/buildJob.d.ts +6 -2
  244. package/dist/pipeline/src/build/node/buildJob.js +43 -78
  245. package/dist/pipeline/src/build/node/buildJob.js.map +1 -1
  246. package/dist/pipeline/src/build/node/cache.d.ts +7 -6
  247. package/dist/pipeline/src/build/node/cache.js +60 -67
  248. package/dist/pipeline/src/build/node/cache.js.map +1 -1
  249. package/dist/pipeline/src/build/node/constants.js +2 -2
  250. package/dist/pipeline/src/build/node/constants.js.map +1 -1
  251. package/dist/pipeline/src/build/node/index.d.ts +2 -2
  252. package/dist/pipeline/src/build/node/index.js +9 -34
  253. package/dist/pipeline/src/build/node/index.js.map +1 -1
  254. package/dist/pipeline/src/build/node/meteor.js +21 -52
  255. package/dist/pipeline/src/build/node/meteor.js.map +1 -1
  256. package/dist/pipeline/src/build/node/testJob.d.ts +3 -2
  257. package/dist/pipeline/src/build/node/testJob.js +76 -65
  258. package/dist/pipeline/src/build/node/testJob.js.map +1 -1
  259. package/dist/pipeline/src/build/node/yarn.d.ts +4 -4
  260. package/dist/pipeline/src/build/node/yarn.js +39 -54
  261. package/dist/pipeline/src/build/node/yarn.js.map +1 -1
  262. package/dist/pipeline/src/build/rails/build.d.ts +1 -1
  263. package/dist/pipeline/src/build/rails/build.js +28 -58
  264. package/dist/pipeline/src/build/rails/build.js.map +1 -1
  265. package/dist/pipeline/src/build/rails/index.js +4 -29
  266. package/dist/pipeline/src/build/rails/index.js.map +1 -1
  267. package/dist/pipeline/src/build/rails/test.d.ts +1 -1
  268. package/dist/pipeline/src/build/rails/test.js +64 -65
  269. package/dist/pipeline/src/build/rails/test.js.map +1 -1
  270. package/dist/pipeline/src/build/sbom.js +19 -14
  271. package/dist/pipeline/src/build/sbom.js.map +1 -1
  272. package/dist/pipeline/src/build/types.d.ts +108 -7
  273. package/dist/pipeline/src/build/types.js +10 -6
  274. package/dist/pipeline/src/build/types.js.map +1 -1
  275. package/dist/pipeline/src/config/configruedEnvs.js +18 -47
  276. package/dist/pipeline/src/config/configruedEnvs.js.map +1 -1
  277. package/dist/pipeline/src/config/readConfig.d.ts +2 -2
  278. package/dist/pipeline/src/config/readConfig.js +14 -26
  279. package/dist/pipeline/src/config/readConfig.js.map +1 -1
  280. package/dist/pipeline/src/context/createAllComponentsContext.d.ts +8 -0
  281. package/dist/pipeline/src/context/createAllComponentsContext.js +21 -0
  282. package/dist/pipeline/src/context/createAllComponentsContext.js.map +1 -0
  283. package/dist/pipeline/src/context/createComponentContext.d.ts +11 -0
  284. package/dist/pipeline/src/context/createComponentContext.js +101 -0
  285. package/dist/pipeline/src/context/createComponentContext.js.map +1 -0
  286. package/dist/pipeline/src/context/createWorkspaceContext.d.ts +9 -0
  287. package/dist/pipeline/src/context/createWorkspaceContext.js +36 -0
  288. package/dist/pipeline/src/context/createWorkspaceContext.js.map +1 -0
  289. package/dist/pipeline/src/context/getBuildInfoVariables.d.ts +3 -4
  290. package/dist/pipeline/src/context/getBuildInfoVariables.js +23 -21
  291. package/dist/pipeline/src/context/getBuildInfoVariables.js.map +1 -1
  292. package/dist/pipeline/src/context/getEnvConfig.js +4 -4
  293. package/dist/pipeline/src/context/getEnvConfig.js.map +1 -1
  294. package/dist/pipeline/src/context/getEnvType.js +2 -2
  295. package/dist/pipeline/src/context/getEnvType.js.map +1 -1
  296. package/dist/pipeline/src/context/getEnvironment.js +17 -64
  297. package/dist/pipeline/src/context/getEnvironment.js.map +1 -1
  298. package/dist/pipeline/src/context/getEnvironmentContext.d.ts +1 -1
  299. package/dist/pipeline/src/context/getEnvironmentContext.js +21 -22
  300. package/dist/pipeline/src/context/getEnvironmentContext.js.map +1 -1
  301. package/dist/pipeline/src/context/getEnvironmentVariables.d.ts +2 -5
  302. package/dist/pipeline/src/context/getEnvironmentVariables.js +109 -165
  303. package/dist/pipeline/src/context/getEnvironmentVariables.js.map +1 -1
  304. package/dist/pipeline/src/context/getLabels.js +13 -16
  305. package/dist/pipeline/src/context/getLabels.js.map +1 -1
  306. package/dist/pipeline/src/context/getReviewSlug.js +7 -7
  307. package/dist/pipeline/src/context/getReviewSlug.js.map +1 -1
  308. package/dist/pipeline/src/context/index.d.ts +1 -16
  309. package/dist/pipeline/src/context/index.js +1 -109
  310. package/dist/pipeline/src/context/index.js.map +1 -1
  311. package/dist/pipeline/src/context/resolveReferences.js +51 -172
  312. package/dist/pipeline/src/context/resolveReferences.js.map +1 -1
  313. package/dist/pipeline/src/context/transformJobOnlyVars.js +22 -69
  314. package/dist/pipeline/src/context/transformJobOnlyVars.js.map +1 -1
  315. package/dist/pipeline/src/context/utils/envVars.js +13 -39
  316. package/dist/pipeline/src/context/utils/envVars.js.map +1 -1
  317. package/dist/pipeline/src/deploy/base/deploy.d.ts +2 -2
  318. package/dist/pipeline/src/deploy/base/deploy.js +71 -67
  319. package/dist/pipeline/src/deploy/base/deploy.js.map +1 -1
  320. package/dist/pipeline/src/deploy/base/index.d.ts +1 -3
  321. package/dist/pipeline/src/deploy/base/index.js +11 -34
  322. package/dist/pipeline/src/deploy/base/index.js.map +1 -1
  323. package/dist/pipeline/src/deploy/base/rollback.d.ts +1 -1
  324. package/dist/pipeline/src/deploy/base/rollback.js +11 -15
  325. package/dist/pipeline/src/deploy/base/rollback.js.map +1 -1
  326. package/dist/pipeline/src/deploy/base/stop.d.ts +1 -1
  327. package/dist/pipeline/src/deploy/base/stop.js +11 -15
  328. package/dist/pipeline/src/deploy/base/stop.js.map +1 -1
  329. package/dist/pipeline/src/deploy/base/variables.js +1 -1
  330. package/dist/pipeline/src/deploy/base/variables.js.map +1 -1
  331. package/dist/pipeline/src/deploy/cloudRun/artifactsRegistry.js +42 -65
  332. package/dist/pipeline/src/deploy/cloudRun/artifactsRegistry.js.map +1 -1
  333. package/dist/pipeline/src/deploy/cloudRun/cleanup.js +8 -33
  334. package/dist/pipeline/src/deploy/cloudRun/cleanup.js.map +1 -1
  335. package/dist/pipeline/src/deploy/cloudRun/cloudRunRevisions.js +25 -30
  336. package/dist/pipeline/src/deploy/cloudRun/cloudRunRevisions.js.map +1 -1
  337. package/dist/pipeline/src/deploy/cloudRun/createJobs/cloudRunJobs.js +121 -150
  338. package/dist/pipeline/src/deploy/cloudRun/createJobs/cloudRunJobs.js.map +1 -1
  339. package/dist/pipeline/src/deploy/cloudRun/createJobs/cloudRunServices.js +45 -61
  340. package/dist/pipeline/src/deploy/cloudRun/createJobs/cloudRunServices.js.map +1 -1
  341. package/dist/pipeline/src/deploy/cloudRun/createJobs/common.d.ts +4 -4
  342. package/dist/pipeline/src/deploy/cloudRun/createJobs/common.js +26 -54
  343. package/dist/pipeline/src/deploy/cloudRun/createJobs/common.js.map +1 -1
  344. package/dist/pipeline/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +36 -47
  345. package/dist/pipeline/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js.map +1 -1
  346. package/dist/pipeline/src/deploy/cloudRun/createJobs/getCloudRunStopScripts.js +22 -39
  347. package/dist/pipeline/src/deploy/cloudRun/createJobs/getCloudRunStopScripts.js.map +1 -1
  348. package/dist/pipeline/src/deploy/cloudRun/createJobs/index.js +27 -33
  349. package/dist/pipeline/src/deploy/cloudRun/createJobs/index.js.map +1 -1
  350. package/dist/pipeline/src/deploy/cloudRun/createJobs/volumes.js +7 -34
  351. package/dist/pipeline/src/deploy/cloudRun/createJobs/volumes.js.map +1 -1
  352. package/dist/pipeline/src/deploy/cloudRun/index.d.ts +2 -2
  353. package/dist/pipeline/src/deploy/cloudRun/index.js +38 -75
  354. package/dist/pipeline/src/deploy/cloudRun/index.js.map +1 -1
  355. package/dist/pipeline/src/deploy/cloudRun/utils/createArgsString.js +14 -42
  356. package/dist/pipeline/src/deploy/cloudRun/utils/createArgsString.js.map +1 -1
  357. package/dist/pipeline/src/deploy/cloudRun/utils/database.js +14 -30
  358. package/dist/pipeline/src/deploy/cloudRun/utils/database.js.map +1 -1
  359. package/dist/pipeline/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +5 -5
  360. package/dist/pipeline/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js.map +1 -1
  361. package/dist/pipeline/src/deploy/cloudRun/utils/getServiceName.js +1 -3
  362. package/dist/pipeline/src/deploy/cloudRun/utils/getServiceName.js.map +1 -1
  363. package/dist/pipeline/src/deploy/cloudRun/utils/jobName.js +1 -3
  364. package/dist/pipeline/src/deploy/cloudRun/utils/jobName.js.map +1 -1
  365. package/dist/pipeline/src/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.js +1 -1
  366. package/dist/pipeline/src/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.js.map +1 -1
  367. package/dist/pipeline/src/deploy/cloudSql/utils.js +4 -4
  368. package/dist/pipeline/src/deploy/cloudSql/utils.js.map +1 -1
  369. package/dist/pipeline/src/deploy/custom/deployJob.js +24 -41
  370. package/dist/pipeline/src/deploy/custom/deployJob.js.map +1 -1
  371. package/dist/pipeline/src/deploy/custom/index.d.ts +2 -2
  372. package/dist/pipeline/src/deploy/custom/index.js +4 -4
  373. package/dist/pipeline/src/deploy/custom/index.js.map +1 -1
  374. package/dist/pipeline/src/deploy/dockerTag/deployJob.js +16 -48
  375. package/dist/pipeline/src/deploy/dockerTag/deployJob.js.map +1 -1
  376. package/dist/pipeline/src/deploy/dockerTag/index.d.ts +2 -2
  377. package/dist/pipeline/src/deploy/dockerTag/index.js +4 -4
  378. package/dist/pipeline/src/deploy/dockerTag/index.js.map +1 -1
  379. package/dist/pipeline/src/deploy/index.d.ts +7 -7
  380. package/dist/pipeline/src/deploy/index.js +4 -4
  381. package/dist/pipeline/src/deploy/index.js.map +1 -1
  382. package/dist/pipeline/src/deploy/kubernetes/additionalSecretKeys.d.ts +3 -1
  383. package/dist/pipeline/src/deploy/kubernetes/additionalSecretKeys.js +6 -7
  384. package/dist/pipeline/src/deploy/kubernetes/additionalSecretKeys.js.map +1 -1
  385. package/dist/pipeline/src/deploy/kubernetes/cloudSql/index.js +14 -14
  386. package/dist/pipeline/src/deploy/kubernetes/cloudSql/index.js.map +1 -1
  387. package/dist/pipeline/src/deploy/kubernetes/deployJob.js +64 -72
  388. package/dist/pipeline/src/deploy/kubernetes/deployJob.js.map +1 -1
  389. package/dist/pipeline/src/deploy/kubernetes/index.d.ts +2 -2
  390. package/dist/pipeline/src/deploy/kubernetes/index.js +21 -47
  391. package/dist/pipeline/src/deploy/kubernetes/index.js.map +1 -1
  392. package/dist/pipeline/src/deploy/kubernetes/kubeEnv.js +13 -36
  393. package/dist/pipeline/src/deploy/kubernetes/kubeEnv.js.map +1 -1
  394. package/dist/pipeline/src/deploy/kubernetes/kubeValues.js +23 -60
  395. package/dist/pipeline/src/deploy/kubernetes/kubeValues.js.map +1 -1
  396. package/dist/pipeline/src/deploy/kubernetes/mongodb.js +38 -48
  397. package/dist/pipeline/src/deploy/kubernetes/mongodb.js.map +1 -1
  398. package/dist/pipeline/src/deploy/kubernetes/processSecretsAsFiles.js +15 -17
  399. package/dist/pipeline/src/deploy/kubernetes/processSecretsAsFiles.js.map +1 -1
  400. package/dist/pipeline/src/deploy/sbom.d.ts +1 -1
  401. package/dist/pipeline/src/deploy/sbom.js +11 -10
  402. package/dist/pipeline/src/deploy/sbom.js.map +1 -1
  403. package/dist/pipeline/src/deploy/types/custom.d.ts +2 -6
  404. package/dist/pipeline/src/deploy/types/googleCloudRun.d.ts +26 -0
  405. package/dist/pipeline/src/deploy/types/index.d.ts +3 -3
  406. package/dist/pipeline/src/deploy/types/index.js +1 -5
  407. package/dist/pipeline/src/deploy/types/index.js.map +1 -1
  408. package/dist/pipeline/src/deploy/utils.js +7 -7
  409. package/dist/pipeline/src/deploy/utils.js.map +1 -1
  410. package/dist/pipeline/src/packageInfos.d.ts +3 -1
  411. package/dist/pipeline/src/packageInfos.js +10 -5
  412. package/dist/pipeline/src/packageInfos.js.map +1 -1
  413. package/dist/pipeline/src/pipeline/createAllJobs.d.ts +12 -10
  414. package/dist/pipeline/src/pipeline/createAllJobs.js +39 -81
  415. package/dist/pipeline/src/pipeline/createAllJobs.js.map +1 -1
  416. package/dist/pipeline/src/pipeline/createChildPipeline.js +24 -70
  417. package/dist/pipeline/src/pipeline/createChildPipeline.js.map +1 -1
  418. package/dist/pipeline/src/pipeline/createJobsForComponent.d.ts +3 -3
  419. package/dist/pipeline/src/pipeline/createJobsForComponent.js +21 -118
  420. package/dist/pipeline/src/pipeline/createJobsForComponent.js.map +1 -1
  421. package/dist/pipeline/src/pipeline/createJobsForWorkspace.d.ts +3 -0
  422. package/dist/pipeline/src/pipeline/createJobsForWorkspace.js +10 -0
  423. package/dist/pipeline/src/pipeline/createJobsForWorkspace.js.map +1 -0
  424. package/dist/pipeline/src/pipeline/createMainPipeline.js +57 -130
  425. package/dist/pipeline/src/pipeline/createMainPipeline.js.map +1 -1
  426. package/dist/pipeline/src/pipeline/generatePipelineFiles.d.ts +38 -0
  427. package/dist/pipeline/src/pipeline/generatePipelineFiles.js +47 -92
  428. package/dist/pipeline/src/pipeline/generatePipelineFiles.js.map +1 -1
  429. package/dist/pipeline/src/pipeline/getPipelineStages.d.ts +3 -4
  430. package/dist/pipeline/src/pipeline/getPipelineStages.js +11 -35
  431. package/dist/pipeline/src/pipeline/getPipelineStages.js.map +1 -1
  432. package/dist/pipeline/src/pipeline/gitlab/createGitlabJobs.d.ts +4 -4
  433. package/dist/pipeline/src/pipeline/gitlab/createGitlabJobs.js +226 -189
  434. package/dist/pipeline/src/pipeline/gitlab/createGitlabJobs.js.map +1 -1
  435. package/dist/pipeline/src/pipeline/gitlab/createGitlabPipeline.js +14 -26
  436. package/dist/pipeline/src/pipeline/gitlab/createGitlabPipeline.js.map +1 -1
  437. package/dist/pipeline/src/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.js +11 -11
  438. package/dist/pipeline/src/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.js.map +1 -1
  439. package/dist/pipeline/src/pipeline/gitlab/gitlabReleaseJobs.d.ts +2 -0
  440. package/dist/pipeline/src/pipeline/gitlab/gitlabReleaseJobs.js +10 -8
  441. package/dist/pipeline/src/pipeline/gitlab/gitlabReleaseJobs.js.map +1 -1
  442. package/dist/pipeline/src/pipeline/gitlab/sortGitLabJobDefProps.d.ts +7 -0
  443. package/dist/pipeline/src/pipeline/gitlab/sortGitLabJobDefProps.js +50 -0
  444. package/dist/pipeline/src/pipeline/gitlab/sortGitLabJobDefProps.js.map +1 -0
  445. package/dist/pipeline/src/pipeline/packageManager.d.ts +3 -2
  446. package/dist/pipeline/src/pipeline/packageManager.js +62 -115
  447. package/dist/pipeline/src/pipeline/packageManager.js.map +1 -1
  448. package/dist/pipeline/src/pipeline/yarn/yarnUtils.d.ts +2 -2
  449. package/dist/pipeline/src/pipeline/yarn/yarnUtils.js +30 -119
  450. package/dist/pipeline/src/pipeline/yarn/yarnUtils.js.map +1 -1
  451. package/dist/pipeline/src/runner/index.js +2 -4
  452. package/dist/pipeline/src/runner/index.js.map +1 -1
  453. package/dist/pipeline/src/types/config.d.ts +9 -4
  454. package/dist/pipeline/src/types/config.js +4 -28
  455. package/dist/pipeline/src/types/config.js.map +1 -1
  456. package/dist/pipeline/src/types/context.d.ts +79 -19
  457. package/dist/pipeline/src/types/context.js +9 -0
  458. package/dist/pipeline/src/types/context.js.map +1 -1
  459. package/dist/pipeline/src/types/environmentContext.d.ts +5 -6
  460. package/dist/pipeline/src/types/gitlab-types.d.ts +2 -2
  461. package/dist/pipeline/src/types/index.d.ts +1 -0
  462. package/dist/pipeline/src/types/index.js +1 -0
  463. package/dist/pipeline/src/types/index.js.map +1 -1
  464. package/dist/pipeline/src/types/jobDefinition.d.ts +11 -0
  465. package/dist/pipeline/src/types/jobDefinition.js +3 -0
  466. package/dist/pipeline/src/types/jobDefinition.js.map +1 -0
  467. package/dist/pipeline/src/types/jobs.d.ts +8 -2
  468. package/dist/pipeline/src/types/jobs.js.map +1 -1
  469. package/dist/pipeline/src/utils/gitlab.js +19 -42
  470. package/dist/pipeline/src/utils/gitlab.js.map +1 -1
  471. package/dist/pipeline/src/utils/index.d.ts +2 -1
  472. package/dist/pipeline/src/utils/index.js +9 -35
  473. package/dist/pipeline/src/utils/index.js.map +1 -1
  474. package/dist/pipeline/src/utils/jsonParse.d.ts +1 -0
  475. package/dist/pipeline/src/utils/jsonParse.js +13 -0
  476. package/dist/pipeline/src/utils/jsonParse.js.map +1 -0
  477. package/dist/pipeline/src/utils/removeUndefined.d.ts +1 -0
  478. package/dist/pipeline/src/utils/removeUndefined.js +6 -0
  479. package/dist/pipeline/src/utils/removeUndefined.js.map +1 -0
  480. package/dist/pipeline/src/utils/writeFiles.d.ts +4 -0
  481. package/dist/pipeline/src/utils/writeFiles.js +26 -69
  482. package/dist/pipeline/src/utils/writeFiles.js.map +1 -1
  483. package/dist/tsconfig.tsbuildinfo +1 -1
  484. package/package.json +8 -7
  485. package/scripts/bundle +3 -3
  486. package/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.ts +4 -4
  487. package/src/apps/cli/commands/project/commandCloudSqlProxy.ts +2 -10
  488. package/src/apps/cli/commands/project/commandRenewToken.ts +12 -0
  489. package/src/apps/cli/commands/project/index.ts +2 -0
  490. package/src/apps/cli/commands/project/setup/setupAccessTokens.ts +48 -35
  491. package/src/apps/cli/commands/project/setup/setupCloudRun.ts +2 -2
  492. package/src/apps/cli/commands/project/setup/setupContext.ts +2 -14
  493. package/src/apps/cli/commands/project/setup/setupKubernetes.ts +3 -3
  494. package/src/apps/cli/commands/project/utils/ensureNamespace.ts +3 -16
  495. package/src/catenv.ts +12 -2
  496. package/src/config/getProjectConfig.ts +21 -19
  497. package/src/gcloud/serviceAccounts.ts +28 -10
  498. package/src/utils/projects/index.ts +7 -2
  499. package/tsconfig.json +2 -2
  500. package/.nvmrc +0 -1
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@catladder/cli",
3
- "description": "Panter cli tool for Kubernetes",
3
+ "description": "Panter cli tool for cloud CI/CD and DevOps",
4
4
  "author": "Marco Wettstein <maw@panter.ch>",
5
- "homepage": "https://git.panter.ch/catladder/catladder/#readme",
5
+ "homepage": "https://catladder.git.panter.biz/catladder/docs",
6
6
  "bugs": "https://git.panter.ch/catladder/catladder/issues",
7
+ "readme": "https://git.panter.ch/catladder/catladder/-/blob/main/cli/README.md",
7
8
  "repository": {
8
9
  "type": "git",
9
10
  "url": "git+https://git.panter.ch/catladder/catladder.git",
@@ -52,7 +53,7 @@
52
53
  }
53
54
  ],
54
55
  "license": "MIT",
55
- "version": "0.0.0-refactor-docker-45f6e733",
56
+ "version": "0.0.0-refactor-cache-b38c122b",
56
57
  "scripts": {
57
58
  "lint": "eslint \"src/**/*.ts\"",
58
59
  "lint:fix": "eslint \"src/**/*.ts\" --fix",
@@ -70,10 +71,7 @@
70
71
  "types": "dist/cli/src/index.d.ts",
71
72
  "main": "dist/cli/src/index.js",
72
73
  "engines": {
73
- "node": ">=12.0.0"
74
- },
75
- "dependencies": {
76
- "ts-node": "^10.9.1"
74
+ "node": ">=18.0.0"
77
75
  },
78
76
  "devDependencies": {
79
77
  "@gitbeaker/rest": "^39.28.0",
@@ -110,5 +108,8 @@
110
108
  "vorpal": "^1.12.0",
111
109
  "yaml": "^2.4.5"
112
110
  },
111
+ "dependencies": {
112
+ "tsx": "^4.16.2"
113
+ },
113
114
  "stableVersion": "0.0.0"
114
115
  }
package/scripts/bundle CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash
2
- ncc build dist/cli/src/catenv.js -o dist/bundles/catenv -e 'ts-node' $( ((SHOULD_MINIFY == 1)) && printf %s '-m')
2
+ ncc build dist/cli/src/catenv.js -o dist/bundles/catenv -e 'tsx/cjs/api' $( ((SHOULD_MINIFY == 1)) && printf %s '-m')
3
3
 
4
- ncc build dist/cli/src/cli.js -o dist/bundles/cli -e 'ts-node' $( ((SHOULD_MINIFY == 1)) && printf %s '-m')
4
+ ncc build dist/cli/src/cli.js -o dist/bundles/cli -e 'tsx/cjs/api' $( ((SHOULD_MINIFY == 1)) && printf %s '-m')
5
5
 
6
- ncc build dist/cli/src/catci.js -o dist/bundles/catci -e 'ts-node' $( ((SHOULD_MINIFY == 1)) && printf %s '-m')
6
+ ncc build dist/cli/src/catci.js -o dist/bundles/catci -e 'tsx/cjs/api' $( ((SHOULD_MINIFY == 1)) && printf %s '-m')
@@ -36,8 +36,8 @@ export default async (vorpal: Vorpal) =>
36
36
 
37
37
  const sourceEnvVars = await getEnvVarsResolved(
38
38
  this,
39
- sourceContext.environment.shortName,
40
- sourceContext.componentName,
39
+ sourceContext.env,
40
+ sourceContext.name,
41
41
  );
42
42
 
43
43
  let sourceProxy: CloudSqlBackgroundProxy;
@@ -99,8 +99,8 @@ export default async (vorpal: Vorpal) =>
99
99
 
100
100
  const targetEnvVars = await getEnvVarsResolved(
101
101
  this,
102
- targetContext.environment.shortName,
103
- targetContext.componentName,
102
+ targetContext.env,
103
+ targetContext.name,
104
104
  );
105
105
 
106
106
  if (targetEnv === "local") {
@@ -83,11 +83,7 @@ const getProxyInfoForKubernetes = async (
83
83
  throw new Error("unsupported");
84
84
  }
85
85
 
86
- const envVars = await getEnvVarsResolved(
87
- vorpal,
88
- context.environment.shortName,
89
- context.componentName,
90
- );
86
+ const envVars = await getEnvVarsResolved(vorpal, context.env, context.name);
91
87
  // bit hacky, would be nicer if we would also declare this through env vars
92
88
  const cloudSqlValues = createKubernetesCloudsqlBaseValues(context);
93
89
 
@@ -116,11 +112,7 @@ const getProxyInfoForCloudRun = async (
116
112
  throw new Error("unsupported");
117
113
  }
118
114
 
119
- const envVars = await getEnvVarsResolved(
120
- vorpal,
121
- context.environment.shortName,
122
- context.componentName,
123
- );
115
+ const envVars = await getEnvVarsResolved(vorpal, context.env, context.name);
124
116
 
125
117
  const DB_PASSWORD = envVars?.DB_PASSWORD;
126
118
  const DB_USER = envVars?.DB_USER;
@@ -0,0 +1,12 @@
1
+ import type Vorpal from "vorpal";
2
+ import { setupAccessTokens } from "./setup/setupAccessTokens";
3
+
4
+ export default async (vorpal: Vorpal) =>
5
+ vorpal
6
+ .command(
7
+ "project-renew-token",
8
+ "Configures the project access token for semantic release.",
9
+ )
10
+ .action(async function () {
11
+ await setupAccessTokens(this);
12
+ });
@@ -9,6 +9,7 @@ import commandGetMyTotalWorktime from "./commandGetMyTotalWorktime";
9
9
  import commandGetShell from "./commandGetShell";
10
10
  import commandGitlabCi from "./commandGitlabCi";
11
11
  import commandSetup from "./commandSetup";
12
+ import commandRenewToken from "./commandRenewToken";
12
13
  import commandListPods from "./commandListPods";
13
14
  import commandMigrateHelm3 from "./commandMigrateHelm3";
14
15
  import commandNamespace from "./commandNamespace";
@@ -29,6 +30,7 @@ import commandSecurityEvaluate from "./commandSecurityEvaluate";
29
30
 
30
31
  export default async (vorpal: Vorpal) => {
31
32
  commandSetup(vorpal);
33
+ commandRenewToken(vorpal);
32
34
 
33
35
  commandEnvVars(vorpal);
34
36
 
@@ -1,57 +1,70 @@
1
- import open from "open";
2
1
  import type { CommandInstance } from "vorpal";
2
+ import dayjs from "dayjs";
3
3
  import { doGitlabRequest, getProjectInfo } from "../../../../../utils/gitlab";
4
4
 
5
+ const TOKEN_NAME = "semantic-release";
6
+
5
7
  export const setupAccessTokens = async (instance: CommandInstance) => {
6
- const { id: projectId, web_url: projectWebUrl } =
7
- await getProjectInfo(instance);
8
+ const { id: projectId } = await getProjectInfo(instance);
9
+
10
+ const projectTokens = await doGitlabRequest(
11
+ instance,
12
+ `projects/${projectId}/access_tokens`,
13
+ );
14
+ const token = projectTokens.find(
15
+ (t) => t.name === TOKEN_NAME && t.active === true,
16
+ );
17
+
18
+ const expires_at = dayjs()
19
+ .add(1, "year")
20
+ .subtract(1, "day")
21
+ .format("YYYY-MM-DD");
22
+
23
+ const newToken = token
24
+ ? await doGitlabRequest(
25
+ instance,
26
+ `projects/${projectId}/access_tokens/${token.id}/rotate`,
27
+ { expires_at },
28
+ "POST",
29
+ )
30
+ : await doGitlabRequest(
31
+ instance,
32
+ `projects/${projectId}/access_tokens`,
33
+ {
34
+ name: TOKEN_NAME,
35
+ scopes: ["api", "read_repository"],
36
+ access_level: 40, // Maintainer
37
+ expires_at,
38
+ },
39
+ "POST",
40
+ );
41
+
8
42
  try {
9
43
  await doGitlabRequest(instance, `projects/${projectId}/variables/GL_TOKEN`);
44
+ await doGitlabRequest(
45
+ instance,
46
+ `projects/${projectId}/variables/GL_TOKEN`,
47
+ { value: newToken.token },
48
+ "PUT",
49
+ );
10
50
  } catch (e) {
11
51
  if (e.message !== "not found") {
12
52
  throw e;
13
53
  }
14
54
  // not found
15
-
16
- instance.log(
17
- "I need add a GL_TOKEN to the project, so that semantic release will work\n",
18
- );
19
- instance.log(
20
- "👉 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 - role: maintainer - scopes: api, read_repository",
21
- );
22
- instance.log("\n");
23
-
24
- const { understood } = await instance.prompt({
25
- default: true,
26
- message: "Understood and open gitlab now? 🤔",
27
- name: "understood",
28
- type: "confirm",
29
- });
30
- if (!understood) {
31
- instance.log("continuing anyway...");
32
- }
33
- open(`${projectWebUrl}/-/settings/access_tokens`);
34
-
35
- instance.log("\n");
36
-
37
- instance.log("Enter your copied token now: ");
38
-
39
- instance.log("\n");
40
- const { GL_TOKEN } = await instance.prompt({
41
- type: "password",
42
- name: "GL_TOKEN",
43
- message: "Access Token: ",
44
- });
45
-
46
55
  await doGitlabRequest(
47
56
  instance,
48
57
  `projects/${projectId}/variables`,
49
58
  {
50
59
  key: "GL_TOKEN",
51
- value: GL_TOKEN,
60
+ value: newToken.token,
52
61
  masked: true,
53
62
  },
54
63
  "POST",
55
64
  );
56
65
  }
66
+
67
+ instance.log(
68
+ "Token configured for semantic release. Renew me again in a year!",
69
+ );
57
70
  };
@@ -76,8 +76,8 @@ export const setupCloudRun = async (
76
76
  {
77
77
  [GCLOUD_RUN_CANONICAL_HOST_SUFFIX]: suffix,
78
78
  },
79
- context.environment.shortName,
80
- context.componentName,
79
+ context.env,
80
+ context.name,
81
81
  false, // backup
82
82
  false, // masked
83
83
  );
@@ -14,13 +14,7 @@ export const setupContext = async (
14
14
  "==================================================================================",
15
15
  );
16
16
 
17
- instance.log(
18
- "🐱 🔧 setting up " +
19
- context.environment.shortName +
20
- ":" +
21
- context.componentName +
22
- "...",
23
- );
17
+ instance.log("🐱 🔧 setting up " + context.env + ":" + context.name + "...");
24
18
  instance.log("");
25
19
  if (isOfDeployType(context.deploy?.config, "google-cloudrun")) {
26
20
  await setupCloudRun(instance, context);
@@ -32,13 +26,7 @@ export const setupContext = async (
32
26
  }
33
27
 
34
28
  instance.log("");
35
- instance.log(
36
- "✅ " +
37
- context.environment.shortName +
38
- ":" +
39
- context.componentName +
40
- " done!",
41
- );
29
+ instance.log("✅ " + context.env + ":" + context.name + " done!");
42
30
 
43
31
  instance.log("");
44
32
  };
@@ -63,7 +63,7 @@ export const setupKubernetes = async (
63
63
  // we name the service account and the role and the role binding with the same name
64
64
  // we currently create one per component to better separate them
65
65
  instance.log("ensuring service accounts...");
66
- const serviceAccountName = `cl-${context.componentName}-deploy`;
66
+ const serviceAccountName = `cl-${context.name}-deploy`;
67
67
  const KUBE_URL = await exec(
68
68
  `TERM=dumb kubectl cluster-info | grep -E 'Kubernetes master|Kubernetes control plane' | awk '/http/ {print $NF}'`,
69
69
  ).then((s) => s.stdout.trim());
@@ -163,8 +163,8 @@ EOF
163
163
  await upsertAllVariables(
164
164
  instance,
165
165
  vars,
166
- context.environment.shortName,
167
- context.componentName,
166
+ context.env,
167
+ context.name,
168
168
  false, // no backup
169
169
  );
170
170
  instance.log("done!");
@@ -5,29 +5,16 @@ import { V1Namespace } from "@kubernetes/client-node";
5
5
  import { getk8sApi } from "../../../../../k8sApi";
6
6
 
7
7
  export default async function (context: ComponentContext) {
8
- const namespace = getKubernetesNamespace(
9
- context.fullConfig,
10
- context.environment.shortName,
11
- );
8
+ const namespace = getKubernetesNamespace(context.fullConfig, context.env);
12
9
  const namespaceBody = new V1Namespace();
13
10
  const metadata: V1ObjectMeta = {
14
11
  name: namespace,
15
12
  labels: {
16
13
  customerName: context.fullConfig.customerName,
17
14
  appName: context.fullConfig.appName,
18
- environment: context.environment.shortName,
15
+ environment: context.env,
19
16
  components: Object.keys(context.fullConfig.components).join("_"), // limited chars available...
20
- buildTypes: Object.values(context.fullConfig.components)
21
- .map((config) => config.build.type)
22
- .join("_"), // limited chars available...
23
- ...Object.fromEntries(
24
- Object.entries(context.fullConfig.components).map(
25
- ([componentName, config]) => [
26
- "buildType_" + componentName,
27
- config.build.type,
28
- ],
29
- ),
30
- ),
17
+
31
18
  ...(context.fullConfig.meta?.labels ?? {}),
32
19
  },
33
20
  };
package/src/catenv.ts CHANGED
@@ -2,9 +2,19 @@ import catenv from "./apps/catenv/catenv";
2
2
 
3
3
  import { parseChoice } from "./config/parseChoice";
4
4
 
5
- const choice = process.argv[2] ? parseChoice(process.argv[2]) : null;
5
+ const args = process.argv.slice(2);
6
6
 
7
- catenv(choice).then(() => {
7
+ const helpFlags = ["--help", "-h", "help"];
8
+ if (args.some((arg) => helpFlags.includes(arg))) {
9
+ const docLink =
10
+ "https://git.panter.ch/catladder/catladder/-/blob/main/docs/1_VARS.md";
11
+ console.log(
12
+ `\nUsage: catenv [env|env:component]\n\nEnv variable and catenv documentation:\n${docLink}`,
13
+ );
14
+ process.exit(0);
15
+ }
16
+
17
+ catenv(args[0] ? parseChoice(args[0]) : null).then(() => {
8
18
  // we have to exit manually, because we have some file watches
9
19
  process.exit();
10
20
  });
@@ -1,6 +1,6 @@
1
1
  import type { Config, EnvironmentEnvVars } from "@catladder/pipeline";
2
2
  import {
3
- readConfigSync,
3
+ readConfig,
4
4
  getAllEnvs,
5
5
  getEnvironment as _getEnvironment,
6
6
  createComponentContext,
@@ -21,7 +21,10 @@ let currentConfig: Config | null = null;
21
21
  // reload the config on change
22
22
  const reloadConfigAndObserve = async () => {
23
23
  const gitRoot = await getGitRoot();
24
- const result = readConfigSync(gitRoot);
24
+ if (!gitRoot) {
25
+ return;
26
+ }
27
+ const result = await readConfig(gitRoot);
25
28
  if (!result) {
26
29
  // can't do anything, there is no config
27
30
  return;
@@ -120,23 +123,22 @@ const resolveSecrets = async (
120
123
  const allVariablesInGitlab = await getAllVariables(vorpal);
121
124
 
122
125
  return Object.fromEntries(
123
- varSets.flatMap((set) =>
124
- Object.entries(set.envVars)
125
- .map(([key, value]) => {
126
- const secretKey = set.secretEnvVarKeys.find((k) => k.key === key);
127
-
128
- if (secretKey?.hidden || value === undefined) {
129
- return null;
130
- }
131
-
132
- for (const variable of allVariablesInGitlab) {
133
- value = value
134
- .toString()
135
- .replace(new RegExp("\\$" + variable.key, "g"), variable.value);
136
- }
137
- return [key, value];
138
- })
139
- .filter(Boolean),
126
+ varSets.flatMap(({ envVars, secretEnvVarKeys }) =>
127
+ Object.entries(envVars)
128
+ .filter(
129
+ ([key, value]) =>
130
+ value !== undefined &&
131
+ value !== null &&
132
+ !secretEnvVarKeys.find((k) => k.key === key)?.hidden,
133
+ )
134
+ .map(([key, value]) => [
135
+ key,
136
+ allVariablesInGitlab.reduce(
137
+ (acc, curr) =>
138
+ acc.replace(new RegExp("\\$" + curr.key, "g"), curr.value),
139
+ `${value}`,
140
+ ),
141
+ ]),
140
142
  ),
141
143
  );
142
144
  };
@@ -28,16 +28,34 @@ const upsertGcloudServiceAccount = async (
28
28
  const { projectId, name, displayName, roles, description } = account;
29
29
 
30
30
  // name has limit of 30
31
- const namePrefix = `${name}-`;
32
- const nameSuffix = `-${context.environment.shortName}-${context.componentName}`;
33
- const nameMiddleLength = 30 - namePrefix.length - nameSuffix.length;
34
- const nameMiddle = `${context.fullConfig.customerName}-${context.fullConfig.appName}`;
35
-
36
- const middle = hashIfNessecary(nameMiddle, nameMiddleLength);
31
+ const namePrefix = `${name}`;
32
+ const nameSuffixRaw = `${context.env}-${context.name}`;
33
+ const nameMiddleRaw = `${context.fullConfig.customerName}-${context.fullConfig.appName}`;
34
+ const MAX_LENGTH = 30;
35
+ const NUM_SEPARATORS = 2;
36
+
37
+ // we want to first hash middle, then suffix
38
+ // if for middle we have at least 1 char left, its ok, so we don't hash nameSuffix, otherwise we need to hash that as well
39
+
40
+ const middleMaxLength =
41
+ MAX_LENGTH - namePrefix.length - nameSuffixRaw.length - NUM_SEPARATORS;
42
+
43
+ let nameMiddle: string;
44
+ let nameSuffix: string;
45
+ if (middleMaxLength < 1) {
46
+ nameMiddle = hashIfNessecary(nameMiddleRaw, 1);
47
+ nameSuffix = hashIfNessecary(
48
+ nameSuffixRaw,
49
+ MAX_LENGTH - namePrefix.length - 1 - NUM_SEPARATORS,
50
+ );
51
+ } else {
52
+ nameMiddle = hashIfNessecary(nameMiddleRaw, middleMaxLength);
53
+ nameSuffix = nameSuffixRaw;
54
+ }
37
55
 
38
- const fullName = `${namePrefix}${middle}${nameSuffix}`;
56
+ const fullName = `${namePrefix}-${nameMiddle}-${nameSuffix}`;
39
57
 
40
- const fullDisplayName = `${context.fullConfig.customerName}-${context.fullConfig.appName} ${context.environment.shortName}:${context.componentName} | ${displayName}`;
58
+ const fullDisplayName = `${context.fullConfig.customerName}-${context.fullConfig.appName} ${context.env}:${context.name} | ${displayName}`;
41
59
 
42
60
  const fullIdentifier = `${fullName}@${projectId}.iam.gserviceaccount.com`;
43
61
 
@@ -88,8 +106,8 @@ export const upsertGcloudServiceAccountAndSaveSecret = async (
88
106
  {
89
107
  [secretName]: key,
90
108
  },
91
- context.environment.shortName,
92
- context.componentName,
109
+ context.env,
110
+ context.name,
93
111
  );
94
112
  instance.log("done!");
95
113
  };
@@ -4,8 +4,13 @@ import { getProjectConfig, parseChoice } from "../../config/getProjectConfig";
4
4
  import { readFileOrError } from "../files";
5
5
  import { exec } from "child-process-promise";
6
6
 
7
- export const getGitRoot = async (): Promise<string> => {
8
- return (await exec(`git rev-parse --show-toplevel`)).stdout.trim();
7
+ export const getGitRoot = async (): Promise<string | null> => {
8
+ try {
9
+ return (await exec(`git rev-parse --show-toplevel`)).stdout.trim();
10
+ } catch (e) {
11
+ // not a git repo
12
+ return null;
13
+ }
9
14
  };
10
15
 
11
16
  export const getRootGitlabCiFile = async () => {
package/tsconfig.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "lib": ["es2021", "DOM"],
3
+ "lib": ["es2022", "DOM"],
4
4
  "module": "CommonJS",
5
5
  "downlevelIteration": true,
6
6
  "declaration": true,
7
-
7
+ "target": "ES2018",
8
8
  "moduleResolution": "node",
9
9
  "esModuleInterop": true,
10
10
  "sourceMap": true,
package/.nvmrc DELETED
@@ -1 +0,0 @@
1
- 16