@catladder/cli 5.1.0 → 5.1.1

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 (40) hide show
  1. package/dist/apps/cli/src/apps/cli/commands/project/doctor/checkGithubImageCasing.d.ts +15 -0
  2. package/dist/apps/cli/src/apps/cli/commands/project/doctor/checkGithubImageCasing.js +60 -0
  3. package/dist/apps/cli/src/apps/cli/commands/project/doctor/checkGithubImageCasing.js.map +1 -0
  4. package/dist/apps/cli/src/apps/cli/commands/project/doctor/index.js +2 -0
  5. package/dist/apps/cli/src/apps/cli/commands/project/doctor/index.js.map +1 -1
  6. package/dist/apps/cli/src/utils/github.js +2 -2
  7. package/dist/apps/cli/src/utils/github.js.map +1 -1
  8. package/dist/bundles/catenv/index.js +150 -15
  9. package/dist/bundles/cli/index.js +221 -17
  10. package/dist/bundles/skills/catladder-config/SKILL.md +3 -1
  11. package/dist/bundles/skills/catladder-migrate-ci-backend/SKILL.md +11 -0
  12. package/dist/bundles/skills/catladder-pipelines/SKILL.md +24 -0
  13. package/dist/packages/pipeline/src/backends/github/GithubBackend.js +11 -5
  14. package/dist/packages/pipeline/src/backends/github/GithubBackend.js.map +1 -1
  15. package/dist/packages/pipeline/src/backends/github/ciVariables.d.ts +13 -2
  16. package/dist/packages/pipeline/src/backends/github/ciVariables.js +18 -5
  17. package/dist/packages/pipeline/src/backends/github/ciVariables.js.map +1 -1
  18. package/dist/packages/pipeline/src/backends/github/createGithubJobs.js +1 -1
  19. package/dist/packages/pipeline/src/backends/github/createGithubJobs.js.map +1 -1
  20. package/dist/packages/pipeline/src/backends/github/ghcr.d.ts +29 -0
  21. package/dist/packages/pipeline/src/backends/github/ghcr.js +40 -0
  22. package/dist/packages/pipeline/src/backends/github/ghcr.js.map +1 -0
  23. package/dist/packages/pipeline/src/backends/github/index.d.ts +2 -0
  24. package/dist/packages/pipeline/src/backends/github/index.js +2 -0
  25. package/dist/packages/pipeline/src/backends/github/index.js.map +1 -1
  26. package/dist/packages/pipeline/src/backends/github/registryImage.d.ts +20 -0
  27. package/dist/packages/pipeline/src/backends/github/registryImage.js +49 -0
  28. package/dist/packages/pipeline/src/backends/github/registryImage.js.map +1 -0
  29. package/dist/packages/pipeline/src/customImages/jobImagesPlan.d.ts +15 -3
  30. package/dist/packages/pipeline/src/customImages/jobImagesPlan.js +14 -3
  31. package/dist/packages/pipeline/src/customImages/jobImagesPlan.js.map +1 -1
  32. package/dist/packages/pipeline/src/types/config.d.ts +12 -0
  33. package/dist/skills/catladder-config/SKILL.md +3 -1
  34. package/dist/skills/catladder-migrate-ci-backend/SKILL.md +11 -0
  35. package/dist/skills/catladder-pipelines/SKILL.md +24 -0
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +1 -1
  38. package/src/apps/cli/commands/project/doctor/checkGithubImageCasing.ts +87 -0
  39. package/src/apps/cli/commands/project/doctor/index.ts +2 -0
  40. package/src/utils/github.ts +2 -4
@@ -802,6 +802,73 @@ const checkGithubMergeGating = async (report, repo) => {
802
802
 
803
803
  /***/ }),
804
804
 
805
+ /***/ 12668:
806
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
807
+
808
+ "use strict";
809
+
810
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
811
+ exports.checkGithubImageCasing = void 0;
812
+ const promises_1 = __nccwpck_require__(91943);
813
+ const path_1 = __nccwpck_require__(16928);
814
+ const pipeline_1 = __nccwpck_require__(53695);
815
+ const secrets_1 = __nccwpck_require__(85200);
816
+ const WORKFLOWS_FOLDER = ".github/workflows";
817
+ const GENERATED_FILE_PREFIX = "catladder-";
818
+ /**
819
+ * the generated workflow files, or an empty list when none exist yet
820
+ */
821
+ const readGeneratedWorkflows = async () => {
822
+ const entries = await (0, promises_1.readdir)(WORKFLOWS_FOLDER).catch(() => []);
823
+ return Promise.all(entries
824
+ .filter((file) => file.startsWith(GENERATED_FILE_PREFIX))
825
+ .map((file) => (0, promises_1.readFile)((0, path_1.join)(WORKFLOWS_FOLDER, file), "utf8")));
826
+ };
827
+ /**
828
+ * ghcr image paths must be lowercase, but `${{ github.repository }}`
829
+ * interpolates github's display casing — so a repository whose owner or
830
+ * name contains an uppercase character needs a lowercased literal in the
831
+ * generated workflows. Generation bakes that in, which means committed
832
+ * workflows generated by an older catladder (or hand-edited ones) still
833
+ * carry the expression and fail every docker job with
834
+ * `repository name must be lowercase`.
835
+ *
836
+ * Unlike the rest of the github checks this needs no `gh` login — only
837
+ * the git remote and the committed files.
838
+ */
839
+ const checkGithubImageCasing = async (report, config) => {
840
+ if (!(0, pipeline_1.getEnabledPipelineTypes)(config).includes("github"))
841
+ return;
842
+ const repo = await (0, secrets_1.getConfiguredGithubRepo)();
843
+ if (!repo || repo === repo.toLowerCase()) {
844
+ // an all-lowercase repository keeps the expression on purpose (it
845
+ // stays correct in forks), and an unresolvable remote is reported
846
+ // by checkGithub already
847
+ return;
848
+ }
849
+ report.section("github image names");
850
+ const workflows = await readGeneratedWorkflows();
851
+ if (workflows.length === 0) {
852
+ report.warn(`no generated workflows in ${WORKFLOWS_FOLDER} to check`, "run: catenv");
853
+ return;
854
+ }
855
+ const stale = workflows.filter((content) => content.includes(pipeline_1.GHCR_REPOSITORY_EXPRESSION));
856
+ if (stale.length > 0) {
857
+ report.fail(`'${repo}' is mixed-case, but ${stale.length}/${workflows.length} generated workflows still use ${pipeline_1.GHCR_REPOSITORY_EXPRESSION} — ghcr rejects uppercase image paths, so every docker job fails with "repository name must be lowercase"`, "run: catenv (and commit the regenerated workflows)");
858
+ return;
859
+ }
860
+ const uppercase = workflows.flatMap((content) => [...content.matchAll(/ghcr\.io\/\S*[A-Z]\S*/g)].map(([match]) => match));
861
+ if (uppercase.length > 0) {
862
+ report.fail(`uppercase ghcr image paths in the generated workflows: ${[...new Set(uppercase)].join(", ")}`, `run: catenv — if it persists, set pipelines.github.repository (the '${(0, pipeline_1.getPipelineGitRemote)(config, "github")}' remote resolves to '${repo}')`);
863
+ return;
864
+ }
865
+ report.ok(`ghcr image paths lowercased for '${repo}'`);
866
+ };
867
+ exports.checkGithubImageCasing = checkGithubImageCasing;
868
+ //# sourceMappingURL=checkGithubImageCasing.js.map
869
+
870
+ /***/ }),
871
+
805
872
  /***/ 26904:
806
873
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
807
874
 
@@ -946,6 +1013,7 @@ const pipeline_1 = __nccwpck_require__(53695);
946
1013
  const getProjectConfig_1 = __nccwpck_require__(70478);
947
1014
  const checkCloudRun_1 = __nccwpck_require__(55869);
948
1015
  const checkGithub_1 = __nccwpck_require__(88480);
1016
+ const checkGithubImageCasing_1 = __nccwpck_require__(12668);
949
1017
  const checkGitlab_1 = __nccwpck_require__(26904);
950
1018
  const checkStore_1 = __nccwpck_require__(62878);
951
1019
  const DoctorReport_1 = __nccwpck_require__(87354);
@@ -981,6 +1049,7 @@ const doctorProject = async (instance, onlyComponents) => {
981
1049
  await (0, checkGitlab_1.checkGitlab)(instance, report, contexts);
982
1050
  }
983
1051
  await (0, checkCloudRun_1.checkCloudRun)(report, contexts);
1052
+ await (0, checkGithubImageCasing_1.checkGithubImageCasing)(report, config);
984
1053
  await (0, checkGithub_1.checkGithub)(report, config);
985
1054
  report.summarize();
986
1055
  };
@@ -6982,6 +7051,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
6982
7051
  exports.ghApiJson = exports.ensureGithubEnvironment = exports.setGithubVariable = exports.setGithubSecret = exports.listGithubVariableNames = exports.listGithubSecretNames = exports.listGithubEnvironments = exports.getGithubRepoFromRemote = exports.isGhAuthenticated = void 0;
6983
7052
  const child_process_1 = __nccwpck_require__(35317);
6984
7053
  const util_1 = __nccwpck_require__(39023);
7054
+ const pipeline_1 = __nccwpck_require__(53695);
6985
7055
  const execFile = (0, util_1.promisify)(child_process_1.execFile);
6986
7056
  /**
6987
7057
  * whether the github cli (gh) is installed and authenticated
@@ -7004,8 +7074,7 @@ exports.isGhAuthenticated = isGhAuthenticated;
7004
7074
  const getGithubRepoFromRemote = async (remoteName) => {
7005
7075
  try {
7006
7076
  const { stdout } = await execFile("git", ["remote", "get-url", remoteName]);
7007
- const match = stdout.match(/github\.com[:/]([\w.-]+\/[\w.-]+?)(\.git)?\s*$/);
7008
- return match === null || match === void 0 ? void 0 : match[1];
7077
+ return (0, pipeline_1.parseGithubRepoFromRemoteUrl)(stdout);
7009
7078
  }
7010
7079
  catch (_a) {
7011
7080
  return undefined;
@@ -9024,6 +9093,7 @@ const path_1 = __nccwpck_require__(16928);
9024
9093
  const createAllJobs_1 = __nccwpck_require__(83477);
9025
9094
  const config_1 = __nccwpck_require__(75591);
9026
9095
  const ciVariables_1 = __nccwpck_require__(17300);
9096
+ const registryImage_1 = __nccwpck_require__(24333);
9027
9097
  const index_1 = __nccwpck_require__(62853);
9028
9098
  const createGithubJobs_1 = __nccwpck_require__(73474);
9029
9099
  const jobImagesPlan_1 = __nccwpck_require__(59623);
@@ -9077,7 +9147,10 @@ class GithubBackend {
9077
9147
  await (0, promises_1.rm)(scriptFiles_1.GITHUB_SCRIPTS_FOLDER, { recursive: true, force: true });
9078
9148
  }
9079
9149
  async createFiles(config) {
9080
- const images = this.createImagesPlan(config);
9150
+ // ghcr rejects uppercase image paths, and `${{ github.repository }}`
9151
+ // interpolates github's display casing — a mixed-case owner or repo
9152
+ // needs a lowercased literal instead (see ./ghcr)
9153
+ const images = this.createImagesPlan(config, await (0, registryImage_1.resolveGithubRegistryImage)(config));
9081
9154
  const scripts = new scriptFiles_1.GithubScriptFiles();
9082
9155
  const workflows = await this.createWorkflows(config, images, scripts);
9083
9156
  return [
@@ -9092,8 +9165,8 @@ class GithubBackend {
9092
9165
  ...(0, shippedCatci_1.getCatciGeneratedFiles)(),
9093
9166
  ];
9094
9167
  }
9095
- createImagesPlan(config) {
9096
- return new jobImagesPlan_1.JobImagesPlan(this.type, config.images);
9168
+ createImagesPlan(config, registryImage) {
9169
+ return new jobImagesPlan_1.JobImagesPlan(this.type, config.images, registryImage);
9097
9170
  }
9098
9171
  /**
9099
9172
  * all workflows keyed by file name, mainly for testing purposes
@@ -9102,9 +9175,11 @@ class GithubBackend {
9102
9175
  var _a, _b, _c, _d;
9103
9176
  const workflows = {};
9104
9177
  // per-pipeline-type variables (pipelines.github.runnerVariables);
9105
- // workflow-level env, so job-level runnerVariables take precedence
9178
+ // workflow-level env, so job-level runnerVariables take precedence.
9179
+ // The images plan is the single source of the ghcr namespace, so the
9180
+ // workflow env and the container images can never disagree.
9106
9181
  const workflowEnv = {
9107
- ...ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
9182
+ ...(0, ciVariables_1.getGithubInjectedWorkflowEnv)(images.registryImageRef()),
9108
9183
  ...(0, index_1.getPipelineOptions)(config, this.type).runnerVariables,
9109
9184
  };
9110
9185
  const reviewStopJobs = {};
@@ -9447,12 +9522,13 @@ exports.makeAggregateCheckJob = makeAggregateCheckJob;
9447
9522
  /***/ }),
9448
9523
 
9449
9524
  /***/ 17300:
9450
- /***/ ((__unused_webpack_module, exports) => {
9525
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
9451
9526
 
9452
9527
  "use strict";
9453
9528
 
9454
9529
  Object.defineProperty(exports, "__esModule", ({ value: true }));
9455
- exports.GITHUB_INJECTED_WORKFLOW_ENV = exports.GITHUB_CI_VARIABLES = void 0;
9530
+ exports.GITHUB_INJECTED_WORKFLOW_ENV_NAMES = exports.getGithubInjectedWorkflowEnv = exports.GITHUB_CI_VARIABLES = void 0;
9531
+ const ghcr_1 = __nccwpck_require__(59011);
9456
9532
  /**
9457
9533
  * how the github backend names the predefined CI variables.
9458
9534
  *
@@ -9473,16 +9549,28 @@ exports.GITHUB_CI_VARIABLES = {
9473
9549
  };
9474
9550
  /**
9475
9551
  * the workflow-level env the backend injects to provide the CL_*
9476
- * variables referenced by {@link GITHUB_CI_VARIABLES}
9552
+ * variables referenced by {@link GITHUB_CI_VARIABLES}.
9553
+ *
9554
+ * `registryImage` is the ghcr namespace to push to — the actions
9555
+ * expression for an all-lowercase repository, a lowercased literal for
9556
+ * a mixed-case one (see `./ghcr`).
9477
9557
  */
9478
- exports.GITHUB_INJECTED_WORKFLOW_ENV = {
9558
+ const getGithubInjectedWorkflowEnv = (registryImage = ghcr_1.GHCR_REPOSITORY_EXPRESSION) => ({
9479
9559
  CL_JOB_TOKEN: "${{ github.token }}",
9480
9560
  CL_REGISTRY: "ghcr.io",
9481
- CL_REGISTRY_IMAGE: "ghcr.io/${{ github.repository }}",
9561
+ CL_REGISTRY_IMAGE: registryImage,
9482
9562
  CL_REGISTRY_USER: "${{ github.actor }}",
9483
9563
  // empty outside of pull request events
9484
9564
  CL_PR_NUMBER: "${{ github.event.number }}",
9485
- };
9565
+ });
9566
+ exports.getGithubInjectedWorkflowEnv = getGithubInjectedWorkflowEnv;
9567
+ /**
9568
+ * the names of the injected workflow-level env — the values differ per
9569
+ * repository (see {@link getGithubInjectedWorkflowEnv}), the names never
9570
+ * do, so lookups that only ask "does the workflow already provide this?"
9571
+ * use this instead.
9572
+ */
9573
+ exports.GITHUB_INJECTED_WORKFLOW_ENV_NAMES = new Set(Object.keys((0, exports.getGithubInjectedWorkflowEnv)()));
9486
9574
  //# sourceMappingURL=ciVariables.js.map
9487
9575
 
9488
9576
  /***/ }),
@@ -9709,7 +9797,7 @@ const getSecretsEnv = (context, kinds) => {
9709
9797
  */
9710
9798
  const getReferencedSecretsEnv = (script, kinds) => Object.fromEntries([...script.matchAll(/\$\{?(CL_[A-Za-z0-9_]+)\}?/g)]
9711
9799
  .map((match) => match[1])
9712
- .filter((name) => !(name in ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV))
9800
+ .filter((name) => !ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV_NAMES.has(name))
9713
9801
  .map((name) => [name, vaultValueExpression(name, kinds)]));
9714
9802
  const makeGithubJob = (context, job, allJobs, uploadProviderIds, images, scripts, secretKinds = new Map()) => {
9715
9803
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
@@ -9973,6 +10061,53 @@ exports.makeEnsureImageGithubJobs = makeEnsureImageGithubJobs;
9973
10061
 
9974
10062
  /***/ }),
9975
10063
 
10064
+ /***/ 59011:
10065
+ /***/ ((__unused_webpack_module, exports) => {
10066
+
10067
+ "use strict";
10068
+
10069
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
10070
+ exports.toGhcrRegistryImage = exports.parseGithubRepoFromRemoteUrl = exports.GHCR_REPOSITORY_EXPRESSION = void 0;
10071
+ /**
10072
+ * the ghcr namespace expressed through the actions context — portable
10073
+ * across forks, and what every all-lowercase repository keeps using
10074
+ */
10075
+ exports.GHCR_REPOSITORY_EXPRESSION = "ghcr.io/${{ github.repository }}";
10076
+ /**
10077
+ * parses `owner/name` out of a github remote url (ssh or https, with or
10078
+ * without the `.git` suffix).
10079
+ *
10080
+ * Shared with the cli (`apps/cli/src/utils/github.ts`) so the two can't
10081
+ * drift apart.
10082
+ */
10083
+ const parseGithubRepoFromRemoteUrl = (url) => { var _a; return (_a = url.match(/github\.com[:/]([\w.-]+\/[\w.-]+?)(\.git)?\s*$/)) === null || _a === void 0 ? void 0 : _a[1]; };
10084
+ exports.parseGithubRepoFromRemoteUrl = parseGithubRepoFromRemoteUrl;
10085
+ /**
10086
+ * the ghcr image prefix for an `owner/name` repository.
10087
+ *
10088
+ * The OCI distribution spec only allows `[a-z0-9]` plus `.`, `_` and `-`
10089
+ * separators in a repository name, so a mixed-case owner or repo (very
10090
+ * common for org logins: `AcmeCorp`, …) makes the docker client reject
10091
+ * every tag before it even reaches the network. Lowercasing is not a
10092
+ * workaround: the org `AcmeCorp` owns the namespace `ghcr.io/acmecorp`,
10093
+ * so the lowercased path is the correct address.
10094
+ *
10095
+ * Returns the `${{ github.repository }}` expression when lowercasing
10096
+ * would change nothing — it is equivalent for those repositories, and
10097
+ * unlike a literal it keeps working in a fork (whose token can only
10098
+ * push to the fork's own namespace).
10099
+ */
10100
+ const toGhcrRegistryImage = (repository) => {
10101
+ const lowercased = repository.toLowerCase();
10102
+ return lowercased === repository
10103
+ ? exports.GHCR_REPOSITORY_EXPRESSION
10104
+ : `ghcr.io/${lowercased}`;
10105
+ };
10106
+ exports.toGhcrRegistryImage = toGhcrRegistryImage;
10107
+ //# sourceMappingURL=ghcr.js.map
10108
+
10109
+ /***/ }),
10110
+
9976
10111
  /***/ 25073:
9977
10112
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
9978
10113
 
@@ -10282,12 +10417,70 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10282
10417
  Object.defineProperty(exports, "__esModule", ({ value: true }));
10283
10418
  __exportStar(__nccwpck_require__(48476), exports);
10284
10419
  __exportStar(__nccwpck_require__(17300), exports);
10420
+ __exportStar(__nccwpck_require__(59011), exports);
10421
+ __exportStar(__nccwpck_require__(24333), exports);
10285
10422
  __exportStar(__nccwpck_require__(61071), exports);
10286
10423
  __exportStar(__nccwpck_require__(82145), exports);
10287
10424
  //# sourceMappingURL=index.js.map
10288
10425
 
10289
10426
  /***/ }),
10290
10427
 
10428
+ /***/ 24333:
10429
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
10430
+
10431
+ "use strict";
10432
+
10433
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
10434
+ exports.resolveGithubRegistryImage = exports.githubRegistryImageFromConfig = void 0;
10435
+ const child_process_1 = __nccwpck_require__(35317);
10436
+ const util_1 = __nccwpck_require__(39023);
10437
+ const index_1 = __nccwpck_require__(62853);
10438
+ const ghcr_1 = __nccwpck_require__(59011);
10439
+ const execFile = (0, util_1.promisify)(child_process_1.execFile);
10440
+ /**
10441
+ * the ghcr image prefix derived from the config alone
10442
+ * (`pipelines.github.repository`), without touching git.
10443
+ *
10444
+ * Used where generation must stay pure and hermetic (tests, examples);
10445
+ * {@link resolveGithubRegistryImage} adds the git remote fallback.
10446
+ */
10447
+ const githubRegistryImageFromConfig = (config) => {
10448
+ const { repository } = (0, index_1.getPipelineOptions)(config, "github");
10449
+ return repository ? (0, ghcr_1.toGhcrRegistryImage)(repository) : undefined;
10450
+ };
10451
+ exports.githubRegistryImageFromConfig = githubRegistryImageFromConfig;
10452
+ /**
10453
+ * the ghcr image prefix to generate with: the configured repository, or
10454
+ * the one the github git remote points at.
10455
+ *
10456
+ * Falls back to the `${{ github.repository }}` expression when the
10457
+ * remote is unavailable (a checkout without the remote, a tarball, …).
10458
+ * That is the pre-existing behavior and correct for every all-lowercase
10459
+ * repository; `project doctor` catches the mixed-case case it is not
10460
+ * correct for.
10461
+ */
10462
+ const resolveGithubRegistryImage = async (config) => {
10463
+ const fromConfig = (0, exports.githubRegistryImageFromConfig)(config);
10464
+ if (fromConfig) {
10465
+ return fromConfig;
10466
+ }
10467
+ const remote = (0, index_1.getPipelineGitRemote)(config, "github");
10468
+ try {
10469
+ const { stdout } = await execFile("git", ["remote", "get-url", remote]);
10470
+ const repository = (0, ghcr_1.parseGithubRepoFromRemoteUrl)(stdout);
10471
+ return repository
10472
+ ? (0, ghcr_1.toGhcrRegistryImage)(repository)
10473
+ : ghcr_1.GHCR_REPOSITORY_EXPRESSION;
10474
+ }
10475
+ catch (_a) {
10476
+ return ghcr_1.GHCR_REPOSITORY_EXPRESSION;
10477
+ }
10478
+ };
10479
+ exports.resolveGithubRegistryImage = resolveGithubRegistryImage;
10480
+ //# sourceMappingURL=registryImage.js.map
10481
+
10482
+ /***/ }),
10483
+
10291
10484
  /***/ 61071:
10292
10485
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
10293
10486
 
@@ -14397,6 +14590,7 @@ exports.JobImagesPlan = exports.PROJECT_IMAGES_FOLDER = exports.GENERATED_IMAGES
14397
14590
  const fs_1 = __nccwpck_require__(79896);
14398
14591
  const path_1 = __nccwpck_require__(16928);
14399
14592
  const ciVariables_1 = __nccwpck_require__(91215);
14593
+ const ghcr_1 = __nccwpck_require__(59011);
14400
14594
  const docker_1 = __nccwpck_require__(12354);
14401
14595
  const runner_1 = __nccwpck_require__(92146);
14402
14596
  const gitlab_1 = __nccwpck_require__(86962);
@@ -14457,9 +14651,16 @@ exports.PROJECT_IMAGES_FOLDER = `${exports.GENERATED_IMAGES_FOLDER}/project`;
14457
14651
  * Reference-driven: only images actually used by a job are built.
14458
14652
  */
14459
14653
  class JobImagesPlan {
14460
- constructor(pipelineType, projectImages = {}) {
14654
+ constructor(pipelineType, projectImages = {},
14655
+ /**
14656
+ * the registry image prefix to generate with, overriding the
14657
+ * pipeline type's default. On github this carries the lowercased
14658
+ * ghcr namespace (see `resolveGithubRegistryImage`).
14659
+ */
14660
+ registryImage) {
14461
14661
  this.pipelineType = pipelineType;
14462
14662
  this.projectImages = projectImages;
14663
+ this.registryImage = registryImage;
14463
14664
  this.used = new Map();
14464
14665
  this.usedProject = new Map();
14465
14666
  }
@@ -14484,11 +14685,14 @@ class JobImagesPlan {
14484
14685
  }
14485
14686
  /**
14486
14687
  * the registry image prefix. On github, container images can't use
14487
- * runtime env vars — the expression form is required.
14688
+ * runtime env vars — a literal or an actions expression is required.
14488
14689
  */
14489
14690
  registryImageRef() {
14691
+ if (this.registryImage) {
14692
+ return this.registryImage;
14693
+ }
14490
14694
  return this.pipelineType === "github"
14491
- ? "ghcr.io/${{ github.repository }}"
14695
+ ? ghcr_1.GHCR_REPOSITORY_EXPRESSION
14492
14696
  : `${(0, ciVariables_1.getCiVariable)({ pipelineType: this.pipelineType }, "registryImage")}`;
14493
14697
  }
14494
14698
  useProject(name) {
@@ -63,7 +63,9 @@ Key concepts:
63
63
  deploy settings, and more.
64
64
  - **Pipelines**: `pipelines: { gitlab: true, github: true }` selects
65
65
  which CI systems get generated files. Options objects instead of
66
- `true` allow per-pipeline settings (e.g. `runnerVariables`).
66
+ `true` allow per-pipeline settings (e.g. `runnerVariables`,
67
+ `gitRemote`, and `repository` — GitHub only, for lowercasing GHCR
68
+ image paths; see the `catladder-pipelines` skill).
67
69
  - **Package manager**: yarn and pnpm are supported and autodetected
68
70
  (from the `packageManager` field in package.json or the lockfile;
69
71
  yarn is the fallback). `packageManager: "pnpm" | "yarn"` at the top
@@ -204,6 +204,17 @@ system's own registry, so they change host with the backend:
204
204
  first pipeline on the new backend therefore **rebuilds every job image**
205
205
  — it will be slow, and that is expected, not a bug.
206
206
 
207
+ GHCR paths must be lowercase (the OCI spec allows no uppercase in a
208
+ repository name). If the GitHub owner or repo name is mixed-case
209
+ (`AcmeCorp/Nautilus`), catladder resolves the repository from the git
210
+ remote at generation time and writes the lowercased path
211
+ (`ghcr.io/acmecorp/nautilus`) into the workflows; an all-lowercase
212
+ repository keeps the portable `${{ github.repository }}` expression.
213
+ Set `pipelines.github.repository: "AcmeCorp/Nautilus"` when generation
214
+ cannot see the remote — without it, every docker job fails with
215
+ `repository name must be lowercase`. `catladder project doctor` reports
216
+ this.
217
+
207
218
  Where the **app image** goes depends on the deploy type:
208
219
 
209
220
  - **`google-cloudrun`** — the image goes to Google Artifact Registry
@@ -82,6 +82,30 @@ materialized into `.catladder-generated/images/project/<name>/`. Either
82
82
  way the build job is skipped when the content hash already exists in
83
83
  the registry.
84
84
 
85
+ ### GHCR image paths are lowercased (GitHub)
86
+
87
+ Image repository names may not contain uppercase characters, but
88
+ GitHub's `${{ github.repository }}` context interpolates the display
89
+ casing of the owner and repo. For a mixed-case repository
90
+ (`AcmeCorp/Nautilus`) catladder therefore resolves the repository from
91
+ the git remote at generation time and writes the lowercased literal
92
+ (`ghcr.io/acmecorp/nautilus/...`) into the workflows — GHCR serves that
93
+ org under the lowercased namespace, so it is the correct address.
94
+ An all-lowercase repository keeps the `${{ github.repository }}`
95
+ expression, which stays correct in forks.
96
+
97
+ If a docker job fails with `invalid tag ...: repository name must be
98
+ lowercase`, the committed workflows were generated before this was
99
+ fixed (or hand-edited): regenerate with `yarn catenv` and commit. When
100
+ generation cannot see the git remote, pin it explicitly:
101
+
102
+ ```ts
103
+ pipelines: { github: { repository: "AcmeCorp/Nautilus" } },
104
+ ```
105
+
106
+ `yarn catladder project doctor` reports a mixed-case repository whose
107
+ generated workflows still carry the expression.
108
+
85
109
  ## Caching
86
110
 
87
111
  Cache configuration is generated per build type. **yarn** node builds
@@ -6,6 +6,7 @@ const path_1 = require("path");
6
6
  const createAllJobs_1 = require("../../pipeline/createAllJobs");
7
7
  const config_1 = require("../../types/config");
8
8
  const ciVariables_1 = require("./ciVariables");
9
+ const registryImage_1 = require("./registryImage");
9
10
  const index_1 = require("../index");
10
11
  const createGithubJobs_1 = require("./createGithubJobs");
11
12
  const jobImagesPlan_1 = require("../../customImages/jobImagesPlan");
@@ -59,7 +60,10 @@ class GithubBackend {
59
60
  await (0, promises_1.rm)(scriptFiles_1.GITHUB_SCRIPTS_FOLDER, { recursive: true, force: true });
60
61
  }
61
62
  async createFiles(config) {
62
- const images = this.createImagesPlan(config);
63
+ // ghcr rejects uppercase image paths, and `${{ github.repository }}`
64
+ // interpolates github's display casing — a mixed-case owner or repo
65
+ // needs a lowercased literal instead (see ./ghcr)
66
+ const images = this.createImagesPlan(config, await (0, registryImage_1.resolveGithubRegistryImage)(config));
63
67
  const scripts = new scriptFiles_1.GithubScriptFiles();
64
68
  const workflows = await this.createWorkflows(config, images, scripts);
65
69
  return [
@@ -74,8 +78,8 @@ class GithubBackend {
74
78
  ...(0, shippedCatci_1.getCatciGeneratedFiles)(),
75
79
  ];
76
80
  }
77
- createImagesPlan(config) {
78
- return new jobImagesPlan_1.JobImagesPlan(this.type, config.images);
81
+ createImagesPlan(config, registryImage) {
82
+ return new jobImagesPlan_1.JobImagesPlan(this.type, config.images, registryImage);
79
83
  }
80
84
  /**
81
85
  * all workflows keyed by file name, mainly for testing purposes
@@ -84,9 +88,11 @@ class GithubBackend {
84
88
  var _a, _b, _c, _d;
85
89
  const workflows = {};
86
90
  // per-pipeline-type variables (pipelines.github.runnerVariables);
87
- // workflow-level env, so job-level runnerVariables take precedence
91
+ // workflow-level env, so job-level runnerVariables take precedence.
92
+ // The images plan is the single source of the ghcr namespace, so the
93
+ // workflow env and the container images can never disagree.
88
94
  const workflowEnv = {
89
- ...ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV,
95
+ ...(0, ciVariables_1.getGithubInjectedWorkflowEnv)(images.registryImageRef()),
90
96
  ...(0, index_1.getPipelineOptions)(config, this.type).runnerVariables,
91
97
  };
92
98
  const reviewStopJobs = {};
@@ -1 +1 @@
1
- {"version":3,"file":"GithubBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/GithubBackend.ts"],"names":[],"mappings":";;;AAAA,0CAAkD;AAClD,+BAA4B;AAC5B,gEAA6D;AAE7D,+CAA2D;AAI3D,+CAA6D;AAC7D,oCAA8C;AAC9C,yDAI4B;AAC5B,oEAAiE;AACjE,uDAA8D;AAC9D,2DAA4D;AAC5D,2DAAkE;AAClE,2DAK6B;AAC7B,+CAAyE;AAEzE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C;;;GAGG;AACH,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAE3C,sEAAsE;AACtE,oEAAoE;AACpE,oEAAoE;AACpE,kEAAkE;AAClE,iEAAiE;AACjE,MAAM,iBAAiB,GAGnB;IACF,EAAE,EAAE;QACF,IAAI,EAAE,sBAAsB;QAC5B,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,EAAE;QACtE,WAAW,EAAE;YACX,KAAK,EAAE,6CAA6C;YACpD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,UAAU,EAAE;QACV,IAAI,EAAE,oBAAoB;QAC1B,6CAA6C;QAC7C,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;KACrC;IACD,aAAa,EAAE;QACb,IAAI,EAAE,uBAAuB;QAC7B,gEAAgE;QAChE,mEAAmE;QACnE,2DAA2D;QAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE;KACtD;CACF,CAAC;AAEF,MAAa,aAAa;IAA1B;QACW,SAAI,GAAG,QAAiB,CAAC;IAoUpC,CAAC;IAlUC,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAO,EAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,CAAC,GAAG,CACf,OAAO;aACJ,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;aACxD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,iBAAM,EAAC,IAAA,WAAI,EAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CACvD,CAAC;QACF,MAAM,IAAA,aAAE,EAAC,mCAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,+BAAiB,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAEtE,OAAO;YACL,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1D,IAAI,EAAE,IAAA,WAAI,EAAC,gBAAgB,EAAE,QAAQ,CAAC;gBACtC,OAAO,EAAE,QAA8C;aACxD,CAAC,CAAC;YACH,6DAA6D;YAC7D,GAAG,OAAO,CAAC,iBAAiB,EAAE;YAC9B,GAAG,MAAM,CAAC,iBAAiB,EAAE;YAC7B,gEAAgE;YAChE,GAAG,IAAA,qCAAsB,GAAE;SAC5B,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,OAAO,IAAI,6BAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,MAAc,EACd,SAAwB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACrD,UAA6B,IAAI,+BAAiB,EAAE;;QAEpD,MAAM,SAAS,GAAmC,EAAE,CAAC;QAErD,kEAAkE;QAClE,mEAAmE;QACnE,MAAM,WAAW,GAAG;YAClB,GAAG,0CAA4B;YAC/B,GAAG,IAAA,0BAAkB,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe;SACzD,CAAC;QAEF,MAAM,cAAc,GAA8B,EAAE,CAAC;QACrD,oEAAoE;QACpE,kEAAkE;QAClE,kEAAkE;QAClE,oEAAoE;QACpE,oEAAoE;QACpE,iEAAiE;QACjE,yDAAyD;QACzD,MAAM,iBAAiB,GAAyC;YAC9D,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC/D,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC7D,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SAClE,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,8BAAqB,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAa,EAAC;gBAClC,MAAM;gBACN,OAAO;gBACP,YAAY,EAAE,IAAI,CAAC,IAAI;aACxB,CAAC,CAAC;YAEH,MAAM,iBAAiB,GAAG,IAAA,uCAAoB,EAAC,OAAO,CAAC,CAAC;YACxD,MAAM,WAAW,GAAG,IAAA,qCAAkB,EAAC,OAAO,CAAC,CAAC;YAEhD,mEAAmE;YACnE,yCAAyC;YACzC,yDAAyD;YACzD,MAAM,WAAW,GAAG,IAAI,GAAG,EAGxB,CAAC;YACJ,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CACpD,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CACjC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC1B,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,IAAA,gCAAa,EACnC,OAAO,EACP,GAAG,EACH,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,OAAO,EACP,WAAW,CACZ,CAAC;gBACF,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC,CACL,CAAC;YAEF,oEAAoE;YACpE,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC;gBACjE,IAAI,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;oBAClC,cAAc,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;oBAC/B,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,oEAAoE;YACpE,iEAAiE;YACjE,mBAAmB;YACnB,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC;iBAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;iBACtE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAErB,iEAAiE;YACjE,qEAAqE;YACrE,+DAA+D;YAC/D,oEAAoE;YACpE,iEAAiE;YACjE,8DAA8D;YAC9D,sEAAsE;YACtE,qEAAqE;YACrE,mEAAmE;YACnE,kEAAkE;YAClE,mEAAmE;YACnE,wDAAwD;YACxD,+DAA+D;YAC/D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;YAC/C,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC9C,KAAK,MAAM,IAAI,IAAI,MAAA,SAAS,CAAC,KAAK,mCAAI,EAAE,EAAE,CAAC;oBACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,SAAS;oBACrC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAClC,IAAI,IAAI;wBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;wBACnB,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;YACpD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,GAAuB,CAAC;gBAC5B,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzC,IAAI,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACnC,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,IAAI,CAAC;wBAAE,SAAS,CAAC,+BAA+B;oBAChE,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;wBACnB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAChC,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACjB,KAAK,MAAM,IAAI,IAAI,MAAA,MAAA,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAE,SAAS,CAAC,KAAK,mCAAI,EAAE,EAAE,CAAC;wBAC/D,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;4BAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB;oBAC/D,CAAC;oBACD,KAAK,MAAM,SAAS,IAAI,MAAA,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,EAAE,EAAE,CAAC;wBAClD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB;oBAChD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAChE,CAAC;YACF,MAAM,IAAI,GAA8B,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAI,MAAM,EAAE,CAAC;oBACX,yDAAyD;oBACzD,4DAA4D;oBAC5D,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,CACxB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CACjD,EAAE,CAAC;wBACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;wBACvC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;wBAC5B,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;6BAChC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;6BAC/C,IAAI,EAAE;6BACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,IAAI,GAAG,CAAC;6BACxC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC;gBACtD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,OAAO,CAAC;gBAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBACjC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAA,6CAAyB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACjE,CAAC;YAED,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;gBAC7B,4DAA4D;gBAC5D,uBAAuB;gBACvB,MAAM,CAAC,MAAM,CACX,IAAI,EACJ,IAAA,wCAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CACxD,CAAC;gBAEF,6DAA6D;gBAC7D,oDAAoD;gBACpD,SAAS,CAAC,GAAG,qBAAqB,oBAAoB,CAAC;oBACrD,IAAA,kDAA8B,EAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAE9D,+DAA+D;gBAC/D,yCAAyC;gBACzC,MAAM,cAAc,GAAG,IAAA,mDAA+B,EACpD,MAAM,EACN,MAAM,EACN,iBAAiB,CAAC,UAAU,CAAC,IAAI,EACjC,WAAW,CACZ,CAAC;gBACF,IAAI,cAAc,EAAE,CAAC;oBACnB,SAAS,CAAC,GAAG,qBAAqB,sBAAsB,CAAC;wBACvD,cAAc,CAAC;gBACnB,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,YAAY,GAAG,EAAE,GAAG,IAAA,2CAAyB,EAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;gBACvE,SAAS,CAAC,GAAG,qBAAqB,GAAG,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG;oBAClE,GAAG,iBAAiB,CAAC,OAAO,CAAC;oBAC7B,GAAG,mBAAmB,CAAC,MAAM,CAAC;oBAC9B,GAAG,EAAE,WAAW;oBAChB,4DAA4D;oBAC5D,oDAAoD;oBACpD,6DAA6D;oBAC7D,4DAA4D;oBAC5D,0DAA0D;oBAC1D,yDAAyD;oBACzD,wBAAwB;oBACxB,IAAI,EACF,OAAO,KAAK,IAAI;wBACd,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,GAAG,IAAA,yCAAqB,EAAC,YAAY,CAAC,EAAE;wBAC7D,CAAC,CAAC,YAAY;iBACnB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,SAAS,CAAC,GAAG,qBAAqB,iBAAiB,CAAC,GAAG;gBACrD,IAAI,EAAE,8BAA8B;gBACpC,EAAE,EAAE;oBACF,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE;oBACnC,4DAA4D;oBAC5D,qDAAqD;oBACrD,uDAAuD;oBACvD,cAAc;oBACd,iBAAiB,EAAE;wBACjB,MAAM,EAAE;4BACN,EAAE,EAAE;gCACF,WAAW,EACT,qDAAqD;gCACvD,QAAQ,EAAE,IAAI;gCACd,IAAI,EAAE,QAAQ;6BACf;yBACF;qBACF;iBACF;gBACD,GAAG,mBAAmB,CAAC,MAAM,CAAC;gBAC9B,GAAG,EAAE;oBACH,GAAG,WAAW;oBACd,yDAAyD;oBACzD,uCAAuC;oBACvC,YAAY,EAAE,yCAAyC;iBACxD;gBACD,IAAI,EAAE,EAAE,GAAG,IAAA,2CAAyB,EAAC,MAAM,CAAC,EAAE,GAAG,cAAc,EAAE;aAClE,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAE5D,EAAE,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1C,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,mEAAmE;YACnE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;YACxC,gEAAgE;YAChE,iEAAiE;YACjE,iCAAiC;YACjC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/C,MAAM,SAAS,GACb,QAAQ,CAAC,MAAM,KAAK,CAAC;gBACrB,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM;gBAC9C,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;gBACnB,CAAC,CAAC,EAAE,CAAC;YACT,SAAS,CAAC,GAAG,qBAAqB,GAAG,IAAI,MAAM,CAAC,GAAG;gBACjD,IAAI,EAAE,GAAG,0BAA0B,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE;gBACvD,EAAE,EAAE;oBACF,iBAAiB,EAAE,UAAU;wBAC3B,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC;4BACE,MAAM,EAAE;gCACN,GAAG,EAAE;oCACH,WAAW,EAAE,iBAAiB;oCAC9B,QAAQ,EAAE,IAAI;oCACd,IAAI,EAAE,QAAQ;oCACd,OAAO;iCACR;6BACF;yBACF;iBACN;gBACD,GAAG,mBAAmB,CAAC,MAAM,CAAC;gBAC9B,GAAG,EAAE,WAAW;gBAChB,IAAI,EAAE;oBACJ,GAAG,IAAA,2CAAyB,EAAC,MAAM,CAAC;oBACpC,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;wBAC7C,EAAE;wBACF,UAAU;4BACR,CAAC,CAAC,GAAG;4BACL,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,QAAQ,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;qBACvD,CAAC,CACH;iBACF;aACF,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AArUD,sCAqUC;AAED;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,OAAsB,EAAE,EAAE,CAAC,CAAC;IACvD,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE;CACrD,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,OAAwB,EAAU,EAAE;IAC5D,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,YAAY,CAAC;QACtB,KAAK,YAAY;YACf,OAAO,UAAU,CAAC;QACpB,KAAK,eAAe;YAClB,OAAO,aAAa,CAAC;IACzB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,mBAAmB,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,GAAiB,EAAE,EAAE;;IAC9D,OAAA,CAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,MAAM,MAAK,MAAM;QAClC,OAAO,CAAC,IAAI,KAAK,WAAW;QAC5B,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,QAAQ,CAAA;CAAA,CAAC;AAE3C;;;;GAIG;AACH,MAAM,eAAe,GAAG,CAAC,GAAiB,EAAE,EAAE,CAC5C,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC;AAsBnD,MAAM,0BAA0B,GAA+B;IAC7D,MAAM,EAAE,qBAAqB;IAC7B,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,uBAAuB;CAClC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,GAAiB,EAAc,EAAE,CACnD,GAAG,CAAC,KAAK,KAAK,MAAM;IAClB,CAAC,CAAC,MAAM;IACR,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,UAAU;QACxB,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,QAAQ,CAAC"}
1
+ {"version":3,"file":"GithubBackend.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/GithubBackend.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,17 @@ import type { CiVariableName } from "../../bash/ciVariables";
9
9
  export declare const GITHUB_CI_VARIABLES: Record<CiVariableName, string>;
10
10
  /**
11
11
  * the workflow-level env the backend injects to provide the CL_*
12
- * variables referenced by {@link GITHUB_CI_VARIABLES}
12
+ * variables referenced by {@link GITHUB_CI_VARIABLES}.
13
+ *
14
+ * `registryImage` is the ghcr namespace to push to — the actions
15
+ * expression for an all-lowercase repository, a lowercased literal for
16
+ * a mixed-case one (see `./ghcr`).
17
+ */
18
+ export declare const getGithubInjectedWorkflowEnv: (registryImage?: string) => Record<string, string>;
19
+ /**
20
+ * the names of the injected workflow-level env — the values differ per
21
+ * repository (see {@link getGithubInjectedWorkflowEnv}), the names never
22
+ * do, so lookups that only ask "does the workflow already provide this?"
23
+ * use this instead.
13
24
  */
14
- export declare const GITHUB_INJECTED_WORKFLOW_ENV: Record<string, string>;
25
+ export declare const GITHUB_INJECTED_WORKFLOW_ENV_NAMES: Set<string>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GITHUB_INJECTED_WORKFLOW_ENV = exports.GITHUB_CI_VARIABLES = void 0;
3
+ exports.GITHUB_INJECTED_WORKFLOW_ENV_NAMES = exports.getGithubInjectedWorkflowEnv = exports.GITHUB_CI_VARIABLES = void 0;
4
+ const ghcr_1 = require("./ghcr");
4
5
  /**
5
6
  * how the github backend names the predefined CI variables.
6
7
  *
@@ -21,14 +22,26 @@ exports.GITHUB_CI_VARIABLES = {
21
22
  };
22
23
  /**
23
24
  * the workflow-level env the backend injects to provide the CL_*
24
- * variables referenced by {@link GITHUB_CI_VARIABLES}
25
+ * variables referenced by {@link GITHUB_CI_VARIABLES}.
26
+ *
27
+ * `registryImage` is the ghcr namespace to push to — the actions
28
+ * expression for an all-lowercase repository, a lowercased literal for
29
+ * a mixed-case one (see `./ghcr`).
25
30
  */
26
- exports.GITHUB_INJECTED_WORKFLOW_ENV = {
31
+ const getGithubInjectedWorkflowEnv = (registryImage = ghcr_1.GHCR_REPOSITORY_EXPRESSION) => ({
27
32
  CL_JOB_TOKEN: "${{ github.token }}",
28
33
  CL_REGISTRY: "ghcr.io",
29
- CL_REGISTRY_IMAGE: "ghcr.io/${{ github.repository }}",
34
+ CL_REGISTRY_IMAGE: registryImage,
30
35
  CL_REGISTRY_USER: "${{ github.actor }}",
31
36
  // empty outside of pull request events
32
37
  CL_PR_NUMBER: "${{ github.event.number }}",
33
- };
38
+ });
39
+ exports.getGithubInjectedWorkflowEnv = getGithubInjectedWorkflowEnv;
40
+ /**
41
+ * the names of the injected workflow-level env — the values differ per
42
+ * repository (see {@link getGithubInjectedWorkflowEnv}), the names never
43
+ * do, so lookups that only ask "does the workflow already provide this?"
44
+ * use this instead.
45
+ */
46
+ exports.GITHUB_INJECTED_WORKFLOW_ENV_NAMES = new Set(Object.keys((0, exports.getGithubInjectedWorkflowEnv)()));
34
47
  //# sourceMappingURL=ciVariables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ciVariables.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/ciVariables.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACU,QAAA,mBAAmB,GAAmC;IACjE,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,aAAa;IACvB,aAAa,EAAE,mBAAmB;IAClC,YAAY,EAAE,kBAAkB;IAChC,oEAAoE;IACpE,wDAAwD;IACxD,gBAAgB,EAAE,cAAc;CACjC,CAAC;AAEF;;;GAGG;AACU,QAAA,4BAA4B,GAA2B;IAClE,YAAY,EAAE,qBAAqB;IACnC,WAAW,EAAE,SAAS;IACtB,iBAAiB,EAAE,kCAAkC;IACrD,gBAAgB,EAAE,qBAAqB;IACvC,uCAAuC;IACvC,YAAY,EAAE,4BAA4B;CAC3C,CAAC"}
1
+ {"version":3,"file":"ciVariables.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/backends/github/ciVariables.ts"],"names":[],"mappings":";;;AACA,iCAAoD;AAEpD;;;;;;GAMG;AACU,QAAA,mBAAmB,GAAmC;IACjE,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,aAAa;IACvB,aAAa,EAAE,mBAAmB;IAClC,YAAY,EAAE,kBAAkB;IAChC,oEAAoE;IACpE,wDAAwD;IACxD,gBAAgB,EAAE,cAAc;CACjC,CAAC;AAEF;;;;;;;GAOG;AACI,MAAM,4BAA4B,GAAG,CAC1C,gBAAwB,iCAA0B,EAC1B,EAAE,CAAC,CAAC;IAC5B,YAAY,EAAE,qBAAqB;IACnC,WAAW,EAAE,SAAS;IACtB,iBAAiB,EAAE,aAAa;IAChC,gBAAgB,EAAE,qBAAqB;IACvC,uCAAuC;IACvC,YAAY,EAAE,4BAA4B;CAC3C,CAAC,CAAC;AATU,QAAA,4BAA4B,gCAStC;AAEH;;;;;GAKG;AACU,QAAA,kCAAkC,GAAG,IAAI,GAAG,CACvD,MAAM,CAAC,IAAI,CAAC,IAAA,oCAA4B,GAAE,CAAC,CAC5C,CAAC"}
@@ -216,7 +216,7 @@ const getSecretsEnv = (context, kinds) => {
216
216
  */
217
217
  const getReferencedSecretsEnv = (script, kinds) => Object.fromEntries([...script.matchAll(/\$\{?(CL_[A-Za-z0-9_]+)\}?/g)]
218
218
  .map((match) => match[1])
219
- .filter((name) => !(name in ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV))
219
+ .filter((name) => !ciVariables_1.GITHUB_INJECTED_WORKFLOW_ENV_NAMES.has(name))
220
220
  .map((name) => [name, vaultValueExpression(name, kinds)]));
221
221
  const makeGithubJob = (context, job, allJobs, uploadProviderIds, images, scripts, secretKinds = new Map()) => {
222
222
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;