@catladder/cli 0.0.0-next-c177efda → 0.0.0-next-e3ccf7d4

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.
@@ -1530,6 +1530,7 @@ const path_1 = __nccwpck_require__(16928);
1530
1530
  const createAllJobs_1 = __nccwpck_require__(83671);
1531
1531
  const config_1 = __nccwpck_require__(96925);
1532
1532
  const ciVariables_1 = __nccwpck_require__(25474);
1533
+ const index_1 = __nccwpck_require__(93243);
1533
1534
  const createGithubJobs_1 = __nccwpck_require__(14016);
1534
1535
  const jobImagesPlan_1 = __nccwpck_require__(11585);
1535
1536
  const scriptFunctions_1 = __nccwpck_require__(75759);
@@ -1607,6 +1608,12 @@ class GithubBackend {
1607
1608
  */
1608
1609
  async createWorkflows(config, images = this.createImagesPlan(config), scripts = new scriptFiles_1.GithubScriptFiles()) {
1609
1610
  const workflows = {};
1611
+ // per-pipeline-type variables (pipelines.github.runnerVariables);
1612
+ // workflow-level env, so job-level runnerVariables take precedence
1613
+ const workflowEnv = {
1614
+ ...ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
1615
+ ...(0, index_1.getPipelineOptions)(config, this.type).runnerVariables
1616
+ };
1610
1617
  const reviewStopJobs = {};
1611
1618
  const manualJobs = {};
1612
1619
  for (const trigger of config_1.ALL_PIPELINE_TRIGGERS) {
@@ -1641,7 +1648,7 @@ class GithubBackend {
1641
1648
  workflows[`${GENERATED_FILE_PREFIX}${workflowFileName(trigger)}`] = {
1642
1649
  ...TRIGGER_WORKFLOWS[trigger],
1643
1650
  ...workflowPermissions(images),
1644
- env: ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
1651
+ env: workflowEnv,
1645
1652
  jobs: {
1646
1653
  ...makeEnsureImageGithubJobs(images),
1647
1654
  ...jobs
@@ -1658,7 +1665,7 @@ class GithubBackend {
1658
1665
  }
1659
1666
  },
1660
1667
  ...workflowPermissions(images),
1661
- env: ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
1668
+ env: workflowEnv,
1662
1669
  jobs: {
1663
1670
  ...makeEnsureImageGithubJobs(images),
1664
1671
  ...reviewStopJobs
@@ -1681,7 +1688,7 @@ class GithubBackend {
1681
1688
  }
1682
1689
  },
1683
1690
  ...workflowPermissions(images),
1684
- env: ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
1691
+ env: workflowEnv,
1685
1692
  jobs: {
1686
1693
  ...makeEnsureImageGithubJobs(images),
1687
1694
  ...Object.fromEntries(Object.entries(manualJobs).map(([id, job]) => [id, {
@@ -1997,6 +2004,36 @@ const makeGithubJob = (context, job, allJobs, uploadProviderIds, images, scripts
1997
2004
  ...getReferencedSecretsEnv(runScript, secretKinds),
1998
2005
  CL_JOB_IMAGE: image !== null && image !== void 0 ? image : "runner"
1999
2006
  };
2007
+ /**
2008
+ * the github environment of the job — serving two purposes:
2009
+ * deployment tracking on deploy jobs, and access to environment
2010
+ * secrets (the repo-level cap of 100 secrets doesn't scale to
2011
+ * multiple envs). Names are keyed by env NAME, never env type: an
2012
+ * app can have several envs of the same type.
2013
+ *
2014
+ * - deploy jobs: `<env>-<component>` — static (unlike the former
2015
+ * per-PR review names), so environment secrets can attach, and
2016
+ * each component keeps its own deployment badge/url in the
2017
+ * github ui. For review, PRs share the component's environment:
2018
+ * a newer PR's deploy marks the previous one Inactive (the badge,
2019
+ * not the app) — the price of a static name.
2020
+ * - other jobs referencing secrets join the shared `<env>`
2021
+ * environment — deliberately NOT the per-component one, whose
2022
+ * Active deploy badge their deployment records would displace.
2023
+ * NOTE: build-time and deploy-time vars are not differentiated
2024
+ * yet, so this environment holds roughly ALL of the env's
2025
+ * secrets (the build's dotenv references every component).
2026
+ * - jobs without secret references get no environment
2027
+ */
2028
+ const referencesSecrets = Object.values(env).some(value => typeof value === "string" && (value.includes("${{ secrets.") || value.includes("${{ vars.")));
2029
+ const githubEnvironment = job.environment && isComponent ? {
2030
+ name: `${context.env}-${context.name}`,
2031
+ ...(createsJobEnv ? {
2032
+ url: "${{ steps.main.outputs.url }}"
2033
+ } : {})
2034
+ } : referencesSecrets ? {
2035
+ name: context.env
2036
+ } : undefined;
2000
2037
  const githubJob = {
2001
2038
  name: githubJobName(context, job.name),
2002
2039
  "runs-on": "ubuntu-latest",
@@ -2018,13 +2055,8 @@ const makeGithubJob = (context, job, allJobs, uploadProviderIds, images, scripts
2018
2055
  ...(Object.keys(services).length > 0 ? {
2019
2056
  services
2020
2057
  } : {}),
2021
- ...(job.environment && isComponent ? {
2022
- environment: {
2023
- name: context.environment.envType === "review" ? `review-pr\${{ github.event.number }}-${context.name}` : `${context.env}-${context.name}`,
2024
- ...(createsJobEnv ? {
2025
- url: "${{ steps.main.outputs.url }}"
2026
- } : {})
2027
- }
2058
+ ...(githubEnvironment ? {
2059
+ environment: githubEnvironment
2028
2060
  } : {}),
2029
2061
  env,
2030
2062
  steps: [...(skipCheckout ? [] : [{
@@ -2303,6 +2335,7 @@ const config_1 = __nccwpck_require__(96925);
2303
2335
  const createAllJobs_1 = __nccwpck_require__(83671);
2304
2336
  const jobImagesPlan_1 = __nccwpck_require__(11585);
2305
2337
  const shippedCatci_1 = __nccwpck_require__(93401);
2338
+ const index_1 = __nccwpck_require__(93243);
2306
2339
  const createGitlabJobs_1 = __nccwpck_require__(80512);
2307
2340
  const createGitlabPipeline_1 = __nccwpck_require__(61862);
2308
2341
  const gitlabReleaseJobs_1 = __nccwpck_require__(35531);
@@ -2466,7 +2499,11 @@ class GitlabBackend {
2466
2499
  context: null
2467
2500
  }]))
2468
2501
  },
2469
- variables: config.runnerVariables
2502
+ variables: {
2503
+ ...config.runnerVariables,
2504
+ // per-pipeline-type variables (pipelines.gitlab.runnerVariables)
2505
+ ...(0, index_1.getPipelineOptions)(config, this.type).runnerVariables
2506
+ }
2470
2507
  });
2471
2508
  }
2472
2509
  }
@@ -5212,7 +5249,7 @@ Object.defineProperty(exports, "__esModule", ({
5212
5249
  value: true
5213
5250
  }));
5214
5251
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
5215
- exports.PIPELINE_IMAGE_TAG = "next-c177efda" || 0;
5252
+ exports.PIPELINE_IMAGE_TAG = "next-e3ccf7d4" || 0;
5216
5253
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
5217
5254
 
5218
5255
  /***/ }),
@@ -560,7 +560,7 @@ const mirrorSecretsToCiBackends = async (instance, config, envAndComponents, val
560
560
  return;
561
561
  }
562
562
  instance.log(`mirroring ${secrets.length} secrets to github ('${repo}')...`);
563
- await (0, commandSecretsSyncGithub_1.pushSecretsToGithub)(instance, repo, secrets);
563
+ await (0, commandSecretsSyncGithub_1.pushSecretsToGithub)(instance, repo, secrets, await (0, commandSecretsSyncGithub_1.collectSecretTargets)(config));
564
564
  };
565
565
  const projectConfigSecrets = async (io, envComponent) => {
566
566
  if (!envComponent) {
@@ -3392,7 +3392,7 @@ exports.commandSecretsClearBackups = (0, defineCommand_1.defineCommand)({
3392
3392
  Object.defineProperty(exports, "__esModule", ({
3393
3393
  value: true
3394
3394
  }));
3395
- exports.commandSecretsSyncGithub = exports.getConfiguredGithubRepo = exports.pushSecretsToGithub = exports.collectSecretsFromVault = void 0;
3395
+ exports.commandSecretsSyncGithub = exports.getConfiguredGithubRepo = exports.pushSecretsToGithub = exports.collectSecretTargets = exports.collectSecretsFromVault = void 0;
3396
3396
  const pipeline_1 = __nccwpck_require__(60241);
3397
3397
  const getProjectConfig_1 = __nccwpck_require__(50001);
3398
3398
  const defineCommand_1 = __nccwpck_require__(39489);
@@ -3437,22 +3437,71 @@ const collectSecretsFromVault = async (io, envFilter) => {
3437
3437
  };
3438
3438
  };
3439
3439
  exports.collectSecretsFromVault = collectSecretsFromVault;
3440
+ /** marker for repo-level (environment-less) targets */
3441
+ const REPO_LEVEL = "";
3440
3442
  /**
3441
- * pushes vault values to github via the gh cli: sensitive ones as repo
3442
- * secrets (masked), "variable"-kind ones as repo variables (plain)
3443
+ * derives which github environment(s) each secret/variable must live in
3444
+ * by scanning the GENERATED workflows: a `${{ secrets.X }}` / `${{
3445
+ * vars.X }}` reference in a job's env targets that job's environment
3446
+ * (or the repo level when the job has none). Deriving from the real
3447
+ * output means the sync can never drift from what the workflows expect.
3448
+ *
3449
+ * Environment secrets are the answer to github's cap of 100 secrets
3450
+ * per REPO (a multi-env project easily exceeds it): the cap applies
3451
+ * per environment instead.
3452
+ */
3453
+ const collectSecretTargets = async config => {
3454
+ var _a;
3455
+ const workflows = await new pipeline_1.GithubBackend().createWorkflows(config);
3456
+ const targets = new Map();
3457
+ for (const workflow of Object.values(workflows)) {
3458
+ for (const job of Object.values(workflow.jobs)) {
3459
+ const environment = typeof job.environment === "object" ? job.environment.name : job.environment;
3460
+ for (const value of Object.values((_a = job.env) !== null && _a !== void 0 ? _a : {})) {
3461
+ if (typeof value !== "string") continue;
3462
+ for (const match of value.matchAll(/\$\{\{\s*(?:secrets|vars)\.([A-Za-z0-9_]+)\s*\}\}/g)) {
3463
+ const name = match[1];
3464
+ if (!targets.has(name)) {
3465
+ targets.set(name, new Set());
3466
+ }
3467
+ targets.get(name).add(environment !== null && environment !== void 0 ? environment : REPO_LEVEL);
3468
+ }
3469
+ }
3470
+ }
3471
+ }
3472
+ return targets;
3473
+ };
3474
+ exports.collectSecretTargets = collectSecretTargets;
3475
+ /**
3476
+ * pushes vault values to github via the gh cli: sensitive ones as
3477
+ * secrets (masked), "variable"-kind ones as variables (plain) — each
3478
+ * into the environment(s) whose jobs reference them
3443
3479
  */
3444
- const pushSecretsToGithub = async (io, repo, secrets) => {
3480
+ const pushSecretsToGithub = async (io, repo, secrets, targets) => {
3481
+ const environments = [...new Set([...targets.values()].flatMap(envs => [...envs].filter(env => env !== REPO_LEVEL)))];
3482
+ for (const environment of environments) {
3483
+ await (0, github_1.ensureGithubEnvironment)(repo, environment);
3484
+ io.log(`🌍 environment ${environment}`);
3485
+ }
3445
3486
  for (const {
3446
3487
  name,
3447
3488
  value,
3448
3489
  kind
3449
3490
  } of secrets) {
3450
- if (kind === "variable") {
3451
- await (0, github_1.setGithubVariable)(repo, name, value);
3452
- io.log(`📖 ${name} (variable)`);
3453
- } else {
3454
- await (0, github_1.setGithubSecret)(repo, name, value);
3455
- io.log(`✅ ${name}`);
3491
+ const envs = targets.get(name);
3492
+ if (!envs) {
3493
+ io.log(`⏭️ ${name} (not referenced by any generated workflow)`);
3494
+ continue;
3495
+ }
3496
+ for (const environment of envs) {
3497
+ const suffix = environment === REPO_LEVEL ? "" : ` → ${environment}`;
3498
+ if (kind === "variable") {
3499
+ await (0, github_1.setGithubVariable)(repo, name, value, environment || undefined);
3500
+ io.log(`📖 ${name} (variable)${suffix}`);
3501
+ } else {
3502
+ await (0, github_1.setGithubSecret)(repo, name, value, environment || undefined);
3503
+ io.log(`✅ ${name}${suffix}`);
3504
+ }
3456
3505
  }
3457
3506
  }
3458
3507
  };
@@ -3532,7 +3581,7 @@ exports.commandSecretsSyncGithub = (0, defineCommand_1.defineCommand)({
3532
3581
  if (!confirmed) {
3533
3582
  throw new Error("abort");
3534
3583
  }
3535
- await (0, exports.pushSecretsToGithub)(ctx, repo, secrets);
3584
+ await (0, exports.pushSecretsToGithub)(ctx, repo, secrets, await (0, exports.collectSecretTargets)(config));
3536
3585
  ctx.log("");
3537
3586
  ctx.log("done! 😻 the github pipeline can use them as ${{ secrets.<NAME> }}");
3538
3587
  }
@@ -5729,7 +5778,7 @@ exports["default"] = async () => {
5729
5778
  Object.defineProperty(exports, "__esModule", ({
5730
5779
  value: true
5731
5780
  }));
5732
- exports.setGithubVariable = exports.setGithubSecret = exports.getGithubRepoFromRemote = exports.isGhAuthenticated = void 0;
5781
+ exports.ensureGithubEnvironment = exports.setGithubVariable = exports.setGithubSecret = exports.getGithubRepoFromRemote = exports.isGhAuthenticated = void 0;
5733
5782
  const child_process_1 = __nccwpck_require__(35317);
5734
5783
  const util_1 = __nccwpck_require__(39023);
5735
5784
  const execFile = (0, util_1.promisify)(child_process_1.execFile);
@@ -5762,9 +5811,9 @@ const getGithubRepoFromRemote = async remoteName => {
5762
5811
  }
5763
5812
  };
5764
5813
  exports.getGithubRepoFromRemote = getGithubRepoFromRemote;
5765
- const ghSetViaStdin = (kind, repo, name, value) => new Promise((resolve, reject) => {
5814
+ const ghSetViaStdin = (kind, repo, name, value, environment) => new Promise((resolve, reject) => {
5766
5815
  var _a, _b;
5767
- const child = (0, child_process_1.spawn)("gh", [kind, "set", name, "--repo", repo], {
5816
+ const child = (0, child_process_1.spawn)("gh", [kind, "set", name, "--repo", repo, ...(environment ? ["--env", environment] : [])], {
5768
5817
  stdio: ["pipe", "ignore", "pipe"]
5769
5818
  });
5770
5819
  let stderr = "";
@@ -5777,14 +5826,29 @@ const ghSetViaStdin = (kind, repo, name, value) => new Promise((resolve, reject)
5777
5826
  * sets a github actions repository secret via the gh cli.
5778
5827
  * The value is passed via stdin so it never shows up in a process list.
5779
5828
  */
5780
- const setGithubSecret = async (repo, name, value) => ghSetViaStdin("secret", repo, name, value);
5829
+ const setGithubSecret = async (repo, name, value, environment) => ghSetViaStdin("secret", repo, name, value, environment);
5781
5830
  exports.setGithubSecret = setGithubSecret;
5782
5831
  /**
5783
5832
  * sets a github actions repository variable (plain, unmasked) via the
5784
5833
  * gh cli — for vault values classified as not sensitive
5785
5834
  */
5786
- const setGithubVariable = async (repo, name, value) => ghSetViaStdin("variable", repo, name, value);
5835
+ const setGithubVariable = async (repo, name, value, environment) => ghSetViaStdin("variable", repo, name, value, environment);
5787
5836
  exports.setGithubVariable = setGithubVariable;
5837
+ /**
5838
+ * creates the github environment when it does not exist (idempotent —
5839
+ * PUT with an empty body leaves existing settings untouched)
5840
+ */
5841
+ const ensureGithubEnvironment = async (repo, environment) => new Promise((resolve, reject) => {
5842
+ var _a;
5843
+ const child = (0, child_process_1.spawn)("gh", ["api", "-X", "PUT", `repos/${repo}/environments/${encodeURIComponent(environment)}`], {
5844
+ stdio: ["ignore", "ignore", "pipe"]
5845
+ });
5846
+ let stderr = "";
5847
+ (_a = child.stderr) === null || _a === void 0 ? void 0 : _a.on("data", data => stderr += data);
5848
+ child.on("error", reject);
5849
+ child.on("close", code => code === 0 ? resolve() : reject(new Error(`creating github environment ${environment} failed: ${stderr.trim()}`)));
5850
+ });
5851
+ exports.ensureGithubEnvironment = ensureGithubEnvironment;
5788
5852
 
5789
5853
  /***/ }),
5790
5854
 
@@ -6781,6 +6845,7 @@ const path_1 = __nccwpck_require__(16928);
6781
6845
  const createAllJobs_1 = __nccwpck_require__(83671);
6782
6846
  const config_1 = __nccwpck_require__(96925);
6783
6847
  const ciVariables_1 = __nccwpck_require__(25474);
6848
+ const index_1 = __nccwpck_require__(93243);
6784
6849
  const createGithubJobs_1 = __nccwpck_require__(14016);
6785
6850
  const jobImagesPlan_1 = __nccwpck_require__(11585);
6786
6851
  const scriptFunctions_1 = __nccwpck_require__(75759);
@@ -6858,6 +6923,12 @@ class GithubBackend {
6858
6923
  */
6859
6924
  async createWorkflows(config, images = this.createImagesPlan(config), scripts = new scriptFiles_1.GithubScriptFiles()) {
6860
6925
  const workflows = {};
6926
+ // per-pipeline-type variables (pipelines.github.runnerVariables);
6927
+ // workflow-level env, so job-level runnerVariables take precedence
6928
+ const workflowEnv = {
6929
+ ...ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
6930
+ ...(0, index_1.getPipelineOptions)(config, this.type).runnerVariables
6931
+ };
6861
6932
  const reviewStopJobs = {};
6862
6933
  const manualJobs = {};
6863
6934
  for (const trigger of config_1.ALL_PIPELINE_TRIGGERS) {
@@ -6892,7 +6963,7 @@ class GithubBackend {
6892
6963
  workflows[`${GENERATED_FILE_PREFIX}${workflowFileName(trigger)}`] = {
6893
6964
  ...TRIGGER_WORKFLOWS[trigger],
6894
6965
  ...workflowPermissions(images),
6895
- env: ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
6966
+ env: workflowEnv,
6896
6967
  jobs: {
6897
6968
  ...makeEnsureImageGithubJobs(images),
6898
6969
  ...jobs
@@ -6909,7 +6980,7 @@ class GithubBackend {
6909
6980
  }
6910
6981
  },
6911
6982
  ...workflowPermissions(images),
6912
- env: ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
6983
+ env: workflowEnv,
6913
6984
  jobs: {
6914
6985
  ...makeEnsureImageGithubJobs(images),
6915
6986
  ...reviewStopJobs
@@ -6932,7 +7003,7 @@ class GithubBackend {
6932
7003
  }
6933
7004
  },
6934
7005
  ...workflowPermissions(images),
6935
- env: ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
7006
+ env: workflowEnv,
6936
7007
  jobs: {
6937
7008
  ...makeEnsureImageGithubJobs(images),
6938
7009
  ...Object.fromEntries(Object.entries(manualJobs).map(([id, job]) => [id, {
@@ -7248,6 +7319,36 @@ const makeGithubJob = (context, job, allJobs, uploadProviderIds, images, scripts
7248
7319
  ...getReferencedSecretsEnv(runScript, secretKinds),
7249
7320
  CL_JOB_IMAGE: image !== null && image !== void 0 ? image : "runner"
7250
7321
  };
7322
+ /**
7323
+ * the github environment of the job — serving two purposes:
7324
+ * deployment tracking on deploy jobs, and access to environment
7325
+ * secrets (the repo-level cap of 100 secrets doesn't scale to
7326
+ * multiple envs). Names are keyed by env NAME, never env type: an
7327
+ * app can have several envs of the same type.
7328
+ *
7329
+ * - deploy jobs: `<env>-<component>` — static (unlike the former
7330
+ * per-PR review names), so environment secrets can attach, and
7331
+ * each component keeps its own deployment badge/url in the
7332
+ * github ui. For review, PRs share the component's environment:
7333
+ * a newer PR's deploy marks the previous one Inactive (the badge,
7334
+ * not the app) — the price of a static name.
7335
+ * - other jobs referencing secrets join the shared `<env>`
7336
+ * environment — deliberately NOT the per-component one, whose
7337
+ * Active deploy badge their deployment records would displace.
7338
+ * NOTE: build-time and deploy-time vars are not differentiated
7339
+ * yet, so this environment holds roughly ALL of the env's
7340
+ * secrets (the build's dotenv references every component).
7341
+ * - jobs without secret references get no environment
7342
+ */
7343
+ const referencesSecrets = Object.values(env).some(value => typeof value === "string" && (value.includes("${{ secrets.") || value.includes("${{ vars.")));
7344
+ const githubEnvironment = job.environment && isComponent ? {
7345
+ name: `${context.env}-${context.name}`,
7346
+ ...(createsJobEnv ? {
7347
+ url: "${{ steps.main.outputs.url }}"
7348
+ } : {})
7349
+ } : referencesSecrets ? {
7350
+ name: context.env
7351
+ } : undefined;
7251
7352
  const githubJob = {
7252
7353
  name: githubJobName(context, job.name),
7253
7354
  "runs-on": "ubuntu-latest",
@@ -7269,13 +7370,8 @@ const makeGithubJob = (context, job, allJobs, uploadProviderIds, images, scripts
7269
7370
  ...(Object.keys(services).length > 0 ? {
7270
7371
  services
7271
7372
  } : {}),
7272
- ...(job.environment && isComponent ? {
7273
- environment: {
7274
- name: context.environment.envType === "review" ? `review-pr\${{ github.event.number }}-${context.name}` : `${context.env}-${context.name}`,
7275
- ...(createsJobEnv ? {
7276
- url: "${{ steps.main.outputs.url }}"
7277
- } : {})
7278
- }
7373
+ ...(githubEnvironment ? {
7374
+ environment: githubEnvironment
7279
7375
  } : {}),
7280
7376
  env,
7281
7377
  steps: [...(skipCheckout ? [] : [{
@@ -7554,6 +7650,7 @@ const config_1 = __nccwpck_require__(96925);
7554
7650
  const createAllJobs_1 = __nccwpck_require__(83671);
7555
7651
  const jobImagesPlan_1 = __nccwpck_require__(11585);
7556
7652
  const shippedCatci_1 = __nccwpck_require__(93401);
7653
+ const index_1 = __nccwpck_require__(93243);
7557
7654
  const createGitlabJobs_1 = __nccwpck_require__(80512);
7558
7655
  const createGitlabPipeline_1 = __nccwpck_require__(61862);
7559
7656
  const gitlabReleaseJobs_1 = __nccwpck_require__(35531);
@@ -7717,7 +7814,11 @@ class GitlabBackend {
7717
7814
  context: null
7718
7815
  }]))
7719
7816
  },
7720
- variables: config.runnerVariables
7817
+ variables: {
7818
+ ...config.runnerVariables,
7819
+ // per-pipeline-type variables (pipelines.gitlab.runnerVariables)
7820
+ ...(0, index_1.getPipelineOptions)(config, this.type).runnerVariables
7821
+ }
7721
7822
  });
7722
7823
  }
7723
7824
  }
@@ -10463,7 +10564,7 @@ Object.defineProperty(exports, "__esModule", ({
10463
10564
  value: true
10464
10565
  }));
10465
10566
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
10466
- exports.PIPELINE_IMAGE_TAG = "next-c177efda" || 0;
10567
+ exports.PIPELINE_IMAGE_TAG = "next-e3ccf7d4" || 0;
10467
10568
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
10468
10569
 
10469
10570
  /***/ }),
@@ -166,7 +166,7 @@ const mirrorSecretsToCiBackends = async (instance, config, envAndComponents, val
166
166
  return;
167
167
  }
168
168
  instance.log(`mirroring ${secrets.length} secrets to github ('${repo}')...`);
169
- await (0, commandSecretsSyncGithub_1.pushSecretsToGithub)(instance, repo, secrets);
169
+ await (0, commandSecretsSyncGithub_1.pushSecretsToGithub)(instance, repo, secrets, await (0, commandSecretsSyncGithub_1.collectSecretTargets)(config));
170
170
  };
171
171
  const projectConfigSecrets = async (io, envComponent) => {
172
172
  if (!envComponent) {
@@ -1 +1 @@
1
- {"version":3,"file":"commandConfigSecrets.js","sourceRoot":"","sources":["../../../../../../../src/apps/cli/commands/project/commandConfigSecrets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commandConfigSecrets.js","sourceRoot":"","sources":["../../../../../../../src/apps/cli/commands/project/commandConfigSecrets.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Config } from "../../../../pipeline/src/index.js";
1
2
  import type { IO } from "../../core/types";
2
3
  /**
3
4
  * all secrets declared in the config, with their values read from the
@@ -12,14 +13,27 @@ export declare const collectSecretsFromVault: (io: IO, envFilter?: string[]) =>
12
13
  missing: string[];
13
14
  }>;
14
15
  /**
15
- * pushes vault values to github via the gh cli: sensitive ones as repo
16
- * secrets (masked), "variable"-kind ones as repo variables (plain)
16
+ * derives which github environment(s) each secret/variable must live in
17
+ * by scanning the GENERATED workflows: a `${{ secrets.X }}` / `${{
18
+ * vars.X }}` reference in a job's env targets that job's environment
19
+ * (or the repo level when the job has none). Deriving from the real
20
+ * output means the sync can never drift from what the workflows expect.
21
+ *
22
+ * Environment secrets are the answer to github's cap of 100 secrets
23
+ * per REPO (a multi-env project easily exceeds it): the cap applies
24
+ * per environment instead.
25
+ */
26
+ export declare const collectSecretTargets: (config: Config) => Promise<Map<string, Set<string>>>;
27
+ /**
28
+ * pushes vault values to github via the gh cli: sensitive ones as
29
+ * secrets (masked), "variable"-kind ones as variables (plain) — each
30
+ * into the environment(s) whose jobs reference them
17
31
  */
18
32
  export declare const pushSecretsToGithub: (io: IO, repo: string, secrets: {
19
33
  name: string;
20
34
  value: string;
21
35
  kind: "secret" | "variable";
22
- }[]) => Promise<void>;
36
+ }[], targets: Map<string, Set<string>>) => Promise<void>;
23
37
  /**
24
38
  * resolves the github repository from the configured git remote
25
39
  * (`pipelines.github.gitRemote`, defaults to origin)
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.commandSecretsSyncGithub = exports.getConfiguredGithubRepo = exports.pushSecretsToGithub = exports.collectSecretsFromVault = void 0;
6
+ exports.commandSecretsSyncGithub = exports.getConfiguredGithubRepo = exports.pushSecretsToGithub = exports.collectSecretTargets = exports.collectSecretsFromVault = void 0;
7
7
  const pipeline_1 = require("../../../../pipeline/src/index.js");
8
8
  const getProjectConfig_1 = require("../../config/getProjectConfig");
9
9
  const defineCommand_1 = require("../../core/defineCommand");
@@ -48,22 +48,71 @@ const collectSecretsFromVault = async (io, envFilter) => {
48
48
  };
49
49
  };
50
50
  exports.collectSecretsFromVault = collectSecretsFromVault;
51
+ /** marker for repo-level (environment-less) targets */
52
+ const REPO_LEVEL = "";
51
53
  /**
52
- * pushes vault values to github via the gh cli: sensitive ones as repo
53
- * secrets (masked), "variable"-kind ones as repo variables (plain)
54
+ * derives which github environment(s) each secret/variable must live in
55
+ * by scanning the GENERATED workflows: a `${{ secrets.X }}` / `${{
56
+ * vars.X }}` reference in a job's env targets that job's environment
57
+ * (or the repo level when the job has none). Deriving from the real
58
+ * output means the sync can never drift from what the workflows expect.
59
+ *
60
+ * Environment secrets are the answer to github's cap of 100 secrets
61
+ * per REPO (a multi-env project easily exceeds it): the cap applies
62
+ * per environment instead.
54
63
  */
55
- const pushSecretsToGithub = async (io, repo, secrets) => {
64
+ const collectSecretTargets = async config => {
65
+ var _a;
66
+ const workflows = await new pipeline_1.GithubBackend().createWorkflows(config);
67
+ const targets = new Map();
68
+ for (const workflow of Object.values(workflows)) {
69
+ for (const job of Object.values(workflow.jobs)) {
70
+ const environment = typeof job.environment === "object" ? job.environment.name : job.environment;
71
+ for (const value of Object.values((_a = job.env) !== null && _a !== void 0 ? _a : {})) {
72
+ if (typeof value !== "string") continue;
73
+ for (const match of value.matchAll(/\$\{\{\s*(?:secrets|vars)\.([A-Za-z0-9_]+)\s*\}\}/g)) {
74
+ const name = match[1];
75
+ if (!targets.has(name)) {
76
+ targets.set(name, new Set());
77
+ }
78
+ targets.get(name).add(environment !== null && environment !== void 0 ? environment : REPO_LEVEL);
79
+ }
80
+ }
81
+ }
82
+ }
83
+ return targets;
84
+ };
85
+ exports.collectSecretTargets = collectSecretTargets;
86
+ /**
87
+ * pushes vault values to github via the gh cli: sensitive ones as
88
+ * secrets (masked), "variable"-kind ones as variables (plain) — each
89
+ * into the environment(s) whose jobs reference them
90
+ */
91
+ const pushSecretsToGithub = async (io, repo, secrets, targets) => {
92
+ const environments = [...new Set([...targets.values()].flatMap(envs => [...envs].filter(env => env !== REPO_LEVEL)))];
93
+ for (const environment of environments) {
94
+ await (0, github_1.ensureGithubEnvironment)(repo, environment);
95
+ io.log(`🌍 environment ${environment}`);
96
+ }
56
97
  for (const {
57
98
  name,
58
99
  value,
59
100
  kind
60
101
  } of secrets) {
61
- if (kind === "variable") {
62
- await (0, github_1.setGithubVariable)(repo, name, value);
63
- io.log(`📖 ${name} (variable)`);
64
- } else {
65
- await (0, github_1.setGithubSecret)(repo, name, value);
66
- io.log(`✅ ${name}`);
102
+ const envs = targets.get(name);
103
+ if (!envs) {
104
+ io.log(`⏭️ ${name} (not referenced by any generated workflow)`);
105
+ continue;
106
+ }
107
+ for (const environment of envs) {
108
+ const suffix = environment === REPO_LEVEL ? "" : ` → ${environment}`;
109
+ if (kind === "variable") {
110
+ await (0, github_1.setGithubVariable)(repo, name, value, environment || undefined);
111
+ io.log(`📖 ${name} (variable)${suffix}`);
112
+ } else {
113
+ await (0, github_1.setGithubSecret)(repo, name, value, environment || undefined);
114
+ io.log(`✅ ${name}${suffix}`);
115
+ }
67
116
  }
68
117
  }
69
118
  };
@@ -143,7 +192,7 @@ exports.commandSecretsSyncGithub = (0, defineCommand_1.defineCommand)({
143
192
  if (!confirmed) {
144
193
  throw new Error("abort");
145
194
  }
146
- await (0, exports.pushSecretsToGithub)(ctx, repo, secrets);
195
+ await (0, exports.pushSecretsToGithub)(ctx, repo, secrets, await (0, exports.collectSecretTargets)(config));
147
196
  ctx.log("");
148
197
  ctx.log("done! 😻 the github pipeline can use them as ${{ secrets.<NAME> }}");
149
198
  }
@@ -1 +1 @@
1
- {"version":3,"file":"commandSecretsSyncGithub.js","sourceRoot":"","sources":["../../../../../src/commands/project/commandSecretsSyncGithub.ts"],"names":[],"mappings":";;;AAAA,kDAI6B;AAC7B,oEAIuC;AACvC,4DAAyD;AAEzD,+CAK4B;AAE5B;;;GAGG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAAE,EAAM,EAAE,SAAoB,EAAE,EAAE;IAC5E,MAAM,gBAAgB,GAAG,MAAM,IAAA,0DAAuC,GAAE,CAAC;IAEzE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiC,CAAC;IACvD,KAAK,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1C,SAAS;YACX,CAAC;YACD,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,iCAAc,EAC5D,GAAG,EACH,aAAa,CACd,CAAC;YACF,MAAM,IAAI,GAAG;gBACX,GAAG,gBAAgB;gBACnB,GAAG,WAAW,CAAC,KAAK,CAAC,gBAAgB;gBACrC,GAAG,WAAW,CAAC,MAAM,CAAC,gBAAgB;aACvC,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAC7B,KAAK,CAAC,GAAG,CAAC,IAAA,2BAAgB,EAAC,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,QAAQ,CAAC,CACvE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,KAAK;SAClB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;SAC5C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;QAAC,OAAA,CAAC;YACd,IAAI;YACJ,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,MAAA,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAK,QAAkB;SAC7C,CAAC,CAAA;KAAA,CAAC,CAAC;IACN,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;IACnE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC,CAAC;AAnCW,QAAA,uBAAuB,2BAmClC;AAEF;;;GAGG;AACI,MAAM,mBAAmB,GAAG,KAAK,EACtC,EAAM,EACN,IAAY,EACZ,OAAuE,EACvE,EAAE;IACF,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;QAC5C,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,IAAA,0BAAiB,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3C,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,MAAM,IAAA,wBAAe,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACzC,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAdW,QAAA,mBAAmB,uBAc9B;AAEF;;;GAGG;AACI,MAAM,uBAAuB,GAAG,KAAK,IAE1C,EAAE;IACF,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,GAAE,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAA,gCAAuB,EAAC,IAAA,+BAAoB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AARW,QAAA,uBAAuB,2BAQlC;AAEF;;;;GAIG;AACU,QAAA,wBAAwB,GAAG,IAAA,6BAAa,EAAC;IACpD,IAAI,EAAE,6BAA6B;IACnC,WAAW,EACT,gGAAgG;IAClG,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,gCAAgC;YACzC,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,KAAK;SAChB;QACD,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,OAAO,EACL,0GAA0G;YAC5G,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;;QACrB,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,GAAE,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,IAAA,0BAAiB,GAAE,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,MAAA,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,mCAAI,CAAC,MAAM,IAAA,+BAAuB,GAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAA,+BAAoB,EAAC,MAAM,EAAE,QAAQ,CAAC,0EAA0E,CACvJ,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,MAAA,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,0CAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,+BAAuB,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAE3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,CACL,MAAM,OAAO,CAAC,MAAM,wDAAwD,CAC7E,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,MAAM,gBAAgB,IAAI,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACtD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACZ,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,IAAA,2BAAmB,EAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACZ,GAAG,CAAC,GAAG,CACL,oEAAoE,CACrE,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"commandSecretsSyncGithub.js","sourceRoot":"","sources":["../../../../../src/commands/project/commandSecretsSyncGithub.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,14 @@ export declare const getGithubRepoFromRemote: (remoteName: string) => Promise<st
12
12
  * sets a github actions repository secret via the gh cli.
13
13
  * The value is passed via stdin so it never shows up in a process list.
14
14
  */
15
- export declare const setGithubSecret: (repo: string, name: string, value: string) => Promise<void>;
15
+ export declare const setGithubSecret: (repo: string, name: string, value: string, environment?: string) => Promise<void>;
16
16
  /**
17
17
  * sets a github actions repository variable (plain, unmasked) via the
18
18
  * gh cli — for vault values classified as not sensitive
19
19
  */
20
- export declare const setGithubVariable: (repo: string, name: string, value: string) => Promise<void>;
20
+ export declare const setGithubVariable: (repo: string, name: string, value: string, environment?: string) => Promise<void>;
21
+ /**
22
+ * creates the github environment when it does not exist (idempotent —
23
+ * PUT with an empty body leaves existing settings untouched)
24
+ */
25
+ export declare const ensureGithubEnvironment: (repo: string, environment: string) => Promise<void>;