@git.zone/cli 6.9.0 → 6.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_ts/00_commitinfo_data.js +2 -2
- package/dist_ts/helpers.workflow.d.ts +23 -1
- package/dist_ts/helpers.workflow.js +93 -3
- package/dist_ts/mod_config/index.js +49 -7
- package/dist_ts/mod_release/classes.releasejournal.d.ts +20 -1
- package/dist_ts/mod_release/classes.releasejournal.js +191 -9
- package/dist_ts/mod_release/helpers.giteaassets.d.ts +36 -0
- package/dist_ts/mod_release/helpers.giteaassets.js +661 -0
- package/dist_ts/mod_release/helpers.releasepublication.d.ts +2 -0
- package/dist_ts/mod_release/helpers.releasepublication.js +147 -6
- package/dist_ts/mod_release/index.js +86 -11
- package/dist_ts/mod_release/interfaces.giteaassets.d.ts +50 -0
- package/dist_ts/mod_release/interfaces.giteaassets.js +2 -0
- package/package.json +2 -2
- package/readme.md +92 -3
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/helpers.workflow.ts +154 -3
- package/ts/mod_config/index.ts +61 -6
- package/ts/mod_release/classes.releasejournal.ts +298 -14
- package/ts/mod_release/helpers.giteaassets.ts +932 -0
- package/ts/mod_release/helpers.releasepublication.ts +224 -4
- package/ts/mod_release/index.ts +111 -8
- package/ts/mod_release/interfaces.giteaassets.ts +67 -0
|
@@ -3,10 +3,11 @@ import * as paths from "../paths.js";
|
|
|
3
3
|
import { logger } from "../gitzone.logging.js";
|
|
4
4
|
import { getCliMode, printJson } from "../helpers.climode.js";
|
|
5
5
|
import { inferVersionTypeFromPending, movePendingToVersion, readPendingChangelog, } from "../helpers.changelog.js";
|
|
6
|
-
import { resolveReleaseDockerConfiguration, resolveReleaseWorkflow, resolveReleaseResumeConfiguration, } from "../helpers.workflow.js";
|
|
6
|
+
import { resolveReleaseDockerConfiguration, resolveReleaseWorkflow, resolveReleaseResumeConfiguration, assertGiteaAssetsGitDestination, } from "../helpers.workflow.js";
|
|
7
7
|
import * as commitHelpers from "../mod_commit/mod.helpers.js";
|
|
8
8
|
import { inspectReleaseBranch, integrateReleaseBranch, prepareReleaseIntegration, revalidatePreparedReleaseBranch, revalidateReleasePublicationState, releaseGitEnv, resolveReleaseMergeFlag, } from "./helpers.releasebranch.js";
|
|
9
|
-
import { ReleaseJournalStore, createInitialReleaseDockerJournal, createInitialTargetStatus, finalizeJournalCompletion, normalizeReleaseGitRemoteName, normalizeReleaseVersion, resolveGitCommonDirectory, getReleaseArtifacts, releasePackageArtifactFile, } from "./classes.releasejournal.js";
|
|
9
|
+
import { ReleaseJournalStore, createInitialReleaseDockerJournal, createInitialTargetStatus, finalizeJournalCompletion, normalizeReleaseGitRemoteName, normalizeReleaseVersion, resolveGitCommonDirectory, getReleaseArtifacts, hasReleasePackages, releasePackageArtifactFile, } from "./classes.releasejournal.js";
|
|
10
|
+
import { GiteaAssetsClient, prepareGiteaAssets, } from "./helpers.giteaassets.js";
|
|
10
11
|
import { assertNoLegacyNpmPublisher, assertPnpmReleaseCapability, hashReleaseDestination, normalizeNpmRegistryUrl, packNpmArtifact, verifyStoredNpmArtifact, } from "./helpers.npmartifact.js";
|
|
11
12
|
import { executeReleasePublication } from "./helpers.releasepublication.js";
|
|
12
13
|
import { assertPackageReleaseRecovery, assertRecoveryUnpublished, withReleasePreparationRecovery, } from "./helpers.releasepreparation.js";
|
|
@@ -67,6 +68,8 @@ const runInternal = async (argvArg) => {
|
|
|
67
68
|
mergeRequested,
|
|
68
69
|
planMode: workflow.confirmation === "plan",
|
|
69
70
|
});
|
|
71
|
+
if (workflow.giteaAssets)
|
|
72
|
+
assertGiteaAssetsGitDestination(workflow.giteaAssets, branchContext.pushUrl || "");
|
|
70
73
|
printReleasePlan(workflow, branchContext);
|
|
71
74
|
if (workflow.targets.includes("npm") &&
|
|
72
75
|
workflow.npmPackageSource === "tspublish") {
|
|
@@ -90,6 +93,18 @@ const runInternal = async (argvArg) => {
|
|
|
90
93
|
const projectType = await commitHelpers.detectProjectType(branchContext.sourceCwd);
|
|
91
94
|
const currentVersion = await commitHelpers.readCurrentVersion(projectType, branchContext.sourceCwd);
|
|
92
95
|
const plannedVersion = commitHelpers.calculateNewVersion(currentVersion, versionType);
|
|
96
|
+
if (workflow.giteaAssets) {
|
|
97
|
+
const { tokenEnv, manifestPath, ...destination } = workflow.giteaAssets;
|
|
98
|
+
const token = process.env[tokenEnv];
|
|
99
|
+
if (!token)
|
|
100
|
+
throw new Error(`Gitea assets require the configured credential in ${tokenEnv}.`);
|
|
101
|
+
await new GiteaAssetsClient({
|
|
102
|
+
destination,
|
|
103
|
+
tag: `v${plannedVersion}`,
|
|
104
|
+
commit: branchContext.sourceOid,
|
|
105
|
+
token,
|
|
106
|
+
}).preflight();
|
|
107
|
+
}
|
|
93
108
|
if (preflightTsdocker) {
|
|
94
109
|
await preflightTsdocker.validate(createDockerQualificationRequest(workflow, branchContext.sourceCwd, plannedVersion, branchContext.sourceOid));
|
|
95
110
|
}
|
|
@@ -185,6 +200,14 @@ const assertFreshReleaseCapabilities = async (smartshellArg, workflowArg, cwdArg
|
|
|
185
200
|
}
|
|
186
201
|
};
|
|
187
202
|
const assertReleaseConfiguration = (workflowArg, mergeRequestedArg) => {
|
|
203
|
+
if (workflowArg.targets.includes("giteaAssets") &&
|
|
204
|
+
(!workflowArg.giteaAssets ||
|
|
205
|
+
!workflowArg.targets.includes("git") ||
|
|
206
|
+
!workflowArg.pushBranch ||
|
|
207
|
+
!workflowArg.pushTags ||
|
|
208
|
+
workflowArg.targets.includes("docker") ||
|
|
209
|
+
mergeRequestedArg))
|
|
210
|
+
throw new Error("Gitea asset releases require integrated main and Git branch/tag publication without Docker.");
|
|
188
211
|
if (workflowArg.targets.includes("docker")) {
|
|
189
212
|
if (mergeRequestedArg) {
|
|
190
213
|
throw new Error("Docker releases cannot use --merge because qualification must precede every remote publication.");
|
|
@@ -292,9 +315,41 @@ export const createReleaseJournal = async (optionsArg) => {
|
|
|
292
315
|
}
|
|
293
316
|
const now = new Date().toISOString();
|
|
294
317
|
const gitStatus = createInitialTargetStatus(gitEnabled);
|
|
318
|
+
const assetConfiguration = optionsArg.workflow.giteaAssets;
|
|
319
|
+
let giteaAssets;
|
|
320
|
+
if (optionsArg.workflow.targets.includes("giteaAssets")) {
|
|
321
|
+
if (!assetConfiguration || !gitEnabled || optionsArg.dockerRequest)
|
|
322
|
+
throw new Error("Invalid Gitea asset target combination.");
|
|
323
|
+
assertGiteaAssetsGitDestination(assetConfiguration, optionsArg.releasePushUrl);
|
|
324
|
+
const { tokenEnv, manifestPath, ...destination } = assetConfiguration;
|
|
325
|
+
const assets = await prepareGiteaAssets({
|
|
326
|
+
repositoryRoot: npmSourceCwd,
|
|
327
|
+
manifestPath,
|
|
328
|
+
version: optionsArg.version,
|
|
329
|
+
tag: `v${optionsArg.version}`,
|
|
330
|
+
artifactDirectory: temporaryDirectory,
|
|
331
|
+
destination,
|
|
332
|
+
});
|
|
333
|
+
giteaAssets = {
|
|
334
|
+
destination,
|
|
335
|
+
tokenEnv,
|
|
336
|
+
manifestPath,
|
|
337
|
+
release: { ...createInitialTargetStatus(true), id: null },
|
|
338
|
+
assets: assets.map((asset) => ({
|
|
339
|
+
...createInitialTargetStatus(true),
|
|
340
|
+
asset,
|
|
341
|
+
})),
|
|
342
|
+
};
|
|
343
|
+
}
|
|
295
344
|
const journal = finalizeJournalCompletion({
|
|
296
345
|
kind: "gitzone-release-journal",
|
|
297
|
-
schemaVersion:
|
|
346
|
+
schemaVersion: giteaAssets
|
|
347
|
+
? 4
|
|
348
|
+
: packages.length
|
|
349
|
+
? 3
|
|
350
|
+
: optionsArg.dockerRequest
|
|
351
|
+
? 2
|
|
352
|
+
: 1,
|
|
298
353
|
revision: 1,
|
|
299
354
|
release: {
|
|
300
355
|
version: optionsArg.version,
|
|
@@ -303,7 +358,7 @@ export const createReleaseJournal = async (optionsArg) => {
|
|
|
303
358
|
tagOid: optionsArg.refs.tagOid,
|
|
304
359
|
},
|
|
305
360
|
artifact,
|
|
306
|
-
...(packages.length ? { packages } : {}),
|
|
361
|
+
...(packages.length || giteaAssets ? { packages } : {}),
|
|
307
362
|
git: {
|
|
308
363
|
state: gitStatus.state,
|
|
309
364
|
attempts: gitStatus.attempts,
|
|
@@ -342,6 +397,7 @@ export const createReleaseJournal = async (optionsArg) => {
|
|
|
342
397
|
})
|
|
343
398
|
: [],
|
|
344
399
|
},
|
|
400
|
+
...(giteaAssets ? { giteaAssets } : {}),
|
|
345
401
|
...(optionsArg.dockerRequest
|
|
346
402
|
? {
|
|
347
403
|
docker: createInitialReleaseDockerJournal(optionsArg.dockerRequest),
|
|
@@ -551,6 +607,7 @@ const runReleaseResume = async (argvArg, modeArg) => {
|
|
|
551
607
|
const resumeConfiguration = await resolveReleaseResumeConfiguration({
|
|
552
608
|
git: gitEnabled,
|
|
553
609
|
npm: journal.npm.registries.length > 0,
|
|
610
|
+
giteaAssets: journal.schemaVersion === 4,
|
|
554
611
|
});
|
|
555
612
|
await assertResumeConfiguration(resumeConfiguration, journal, paths.cwd);
|
|
556
613
|
let tsdocker;
|
|
@@ -650,10 +707,17 @@ const assertResumeConfiguration = async (workflowArg, journalArg, cwdArg) => {
|
|
|
650
707
|
]) ||
|
|
651
708
|
workflowArg.npmAccessLevel !== journalArg.npm.access ||
|
|
652
709
|
workflowArg.npmPackageSource !==
|
|
653
|
-
(journalArg
|
|
710
|
+
(hasReleasePackages(journalArg) ? "tspublish" : "root") ||
|
|
654
711
|
workflowArg.npmAlreadyPublished !== journalArg.npm.alreadyPublished)) {
|
|
655
712
|
throw new Error("Current npm release configuration does not match the journal.");
|
|
656
713
|
}
|
|
714
|
+
if (journalArg.schemaVersion === 4) {
|
|
715
|
+
const { destination, tokenEnv, manifestPath } = journalArg.giteaAssets;
|
|
716
|
+
if (JSON.stringify(workflowArg.giteaAssets) !==
|
|
717
|
+
JSON.stringify({ ...destination, tokenEnv, manifestPath })) {
|
|
718
|
+
throw new Error("Current Gitea asset configuration does not match the journal.");
|
|
719
|
+
}
|
|
720
|
+
}
|
|
657
721
|
if (journalArg.git.state !== "skipped" ||
|
|
658
722
|
getReleaseArtifacts(journalArg).length) {
|
|
659
723
|
await assertNoLegacyNpmPublisher(cwdArg);
|
|
@@ -668,10 +732,15 @@ const printReleaseJournalSummary = (journalArg) => {
|
|
|
668
732
|
for (const registry of journalArg.npm.registries) {
|
|
669
733
|
console.log(`npm ${registry.packageName ? `${registry.packageName} ` : ""}${registry.registry}: ${registry.state}`);
|
|
670
734
|
}
|
|
671
|
-
if (journalArg
|
|
735
|
+
if (hasReleasePackages(journalArg)) {
|
|
672
736
|
for (const { artifact } of journalArg.packages)
|
|
673
737
|
console.log(`artifact ${artifact.packageName}: ${artifact.integrity} (${artifact.sha256})`);
|
|
674
738
|
}
|
|
739
|
+
if (journalArg.schemaVersion === 4) {
|
|
740
|
+
console.log(`Gitea release: ${journalArg.giteaAssets.release.state}`);
|
|
741
|
+
for (const entry of journalArg.giteaAssets.assets)
|
|
742
|
+
console.log(`asset ${entry.asset.name}: ${entry.state} (${entry.asset.sha256})`);
|
|
743
|
+
}
|
|
675
744
|
if (journalArg.schemaVersion === 2) {
|
|
676
745
|
console.log(`docker qualification ${journalArg.docker.request.candidateId}: ${journalArg.docker.qualification.state}`);
|
|
677
746
|
for (const promotion of journalArg.docker.promotions) {
|
|
@@ -858,6 +927,12 @@ function printReleasePlan(workflow, branchContextArg) {
|
|
|
858
927
|
console.log(`npm package source: ${workflow.npmPackageSource}`);
|
|
859
928
|
console.log(`npm registries: ${workflow.npmRegistries.length > 0 ? workflow.npmRegistries.join(", ") : "none"}`);
|
|
860
929
|
}
|
|
930
|
+
if (workflow.giteaAssets) {
|
|
931
|
+
const assets = workflow.giteaAssets;
|
|
932
|
+
console.log(`Gitea assets: ${assets.apiOrigin}/${assets.owner}/${assets.repository}`);
|
|
933
|
+
console.log(`asset manifest: ${assets.manifestPath}`);
|
|
934
|
+
console.log(`asset credential variable: ${assets.tokenEnv}`);
|
|
935
|
+
}
|
|
861
936
|
if (workflow.targets.includes("docker")) {
|
|
862
937
|
console.log(`docker engine: ${workflow.dockerEngine}`);
|
|
863
938
|
console.log(`docker registry: ${workflow.dockerRegistry || "all configured registries"}`);
|
|
@@ -908,7 +983,7 @@ export function showHelp(mode) {
|
|
|
908
983
|
{ flag: "-p, --push", description: "Explicitly select the git target" },
|
|
909
984
|
{
|
|
910
985
|
flag: "--target <names>",
|
|
911
|
-
description: "Replace configured targets with a non-empty subset of git,npm,docker",
|
|
986
|
+
description: "Replace configured targets with a non-empty subset of git,giteaAssets,npm,docker",
|
|
912
987
|
},
|
|
913
988
|
{ flag: "--npm", description: "Explicitly select the npm target" },
|
|
914
989
|
{
|
|
@@ -917,7 +992,7 @@ export function showHelp(mode) {
|
|
|
917
992
|
},
|
|
918
993
|
{
|
|
919
994
|
flag: "--no-publish",
|
|
920
|
-
description: "Remove npm and Docker without implicitly enabling Git",
|
|
995
|
+
description: "Remove Gitea assets, npm and Docker without implicitly enabling Git",
|
|
921
996
|
},
|
|
922
997
|
{
|
|
923
998
|
flag: "--merge",
|
|
@@ -958,10 +1033,10 @@ export function showHelp(mode) {
|
|
|
958
1033
|
console.log(" -b, --build Build after creating local release metadata");
|
|
959
1034
|
console.log(" --no-build Disable the post-metadata release build");
|
|
960
1035
|
console.log(" -p, --push Explicitly select the git target");
|
|
961
|
-
console.log(" --target <names> Replace configured targets with a non-empty subset of git,npm,docker");
|
|
1036
|
+
console.log(" --target <names> Replace configured targets with a non-empty subset of git,giteaAssets,npm,docker");
|
|
962
1037
|
console.log(" --npm Explicitly select the npm target");
|
|
963
1038
|
console.log(" --docker Select digest-qualified Docker publication through project-local tSDocker >= 3.5.1");
|
|
964
|
-
console.log(" --no-publish Remove npm and Docker without implicitly enabling Git");
|
|
1039
|
+
console.log(" --no-publish Remove Gitea assets, npm and Docker without implicitly enabling Git");
|
|
965
1040
|
console.log(" --merge Fast-forward and lease-push a cleanly rebased feature branch before release metadata");
|
|
966
1041
|
console.log(" --major|--minor|--patch Override inferred semver level");
|
|
967
1042
|
console.log(" --plan Show workflow without fetching or mutating refs, files, index, or worktrees");
|
|
@@ -971,4 +1046,4 @@ export function showHelp(mode) {
|
|
|
971
1046
|
console.log(" --recover-attempt Recover one exact 32-character hexadecimal attempt ID after proving its publisher stopped");
|
|
972
1047
|
console.log("");
|
|
973
1048
|
}
|
|
974
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfcmVsZWFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFDTCwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLG9CQUFvQixHQUNyQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsc0JBQXNCLEVBQ3RCLGlDQUFpQyxHQUdsQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sS0FBSyxhQUFhLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIseUJBQXlCLEVBQ3pCLCtCQUErQixFQUMvQixpQ0FBaUMsRUFDakMsYUFBYSxFQUNiLHVCQUF1QixHQUV4QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsaUNBQWlDLEVBQ2pDLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsNkJBQTZCLEVBQzdCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLDBCQUEwQixHQU0zQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLHVCQUF1QixHQUV4QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9B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
|
|
1049
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfcmVsZWFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFDTCwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLG9CQUFvQixHQUNyQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsc0JBQXNCLEVBQ3RCLGlDQUFpQyxFQUNqQywrQkFBK0IsR0FHaEMsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEtBQUssYUFBYSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QiwrQkFBK0IsRUFDL0IsaUNBQWlDLEVBQ2pDLGFBQWEsRUFDYix1QkFBdUIsR0FFeEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGlDQUFpQyxFQUNqQyx5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLDZCQUE2QixFQUM3Qix1QkFBdUIsRUFDdkIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsMEJBQTBCLEdBTTNCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixrQkFBa0IsR0FDbkIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFD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
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export interface IGiteaAssetDestination {
|
|
2
|
+
apiOrigin: string;
|
|
3
|
+
owner: string;
|
|
4
|
+
repository: string;
|
|
5
|
+
}
|
|
6
|
+
export interface IGiteaFrozenAsset {
|
|
7
|
+
name: string;
|
|
8
|
+
size: number;
|
|
9
|
+
sha256: string;
|
|
10
|
+
fileName: string;
|
|
11
|
+
publicUrl: string;
|
|
12
|
+
}
|
|
13
|
+
export interface IPrepareGiteaAssetsOptions {
|
|
14
|
+
repositoryRoot: string;
|
|
15
|
+
manifestPath: string;
|
|
16
|
+
version: string;
|
|
17
|
+
tag: string;
|
|
18
|
+
artifactDirectory: string;
|
|
19
|
+
destination: IGiteaAssetDestination;
|
|
20
|
+
}
|
|
21
|
+
export interface IGiteaRelease {
|
|
22
|
+
id: number;
|
|
23
|
+
tag: string;
|
|
24
|
+
publicUrl: string;
|
|
25
|
+
}
|
|
26
|
+
export interface IGiteaAssetInspection {
|
|
27
|
+
present: IGiteaFrozenAsset[];
|
|
28
|
+
missing: IGiteaFrozenAsset[];
|
|
29
|
+
}
|
|
30
|
+
export interface IGiteaAssetsClientOptions {
|
|
31
|
+
destination: IGiteaAssetDestination;
|
|
32
|
+
tag: string;
|
|
33
|
+
commit: string;
|
|
34
|
+
token: string;
|
|
35
|
+
fetchImplementation?: typeof fetch;
|
|
36
|
+
timeoutMs?: number;
|
|
37
|
+
}
|
|
38
|
+
export interface IGiteaAssetPreflight {
|
|
39
|
+
repositoryId: number;
|
|
40
|
+
/** Issue-attachment setting; Gitea's release FILE_MAX_SIZE is separate. */
|
|
41
|
+
generalAttachmentMaximumBytes: number;
|
|
42
|
+
}
|
|
43
|
+
export interface IGiteaAssetsClient {
|
|
44
|
+
preflight(): Promise<IGiteaAssetPreflight>;
|
|
45
|
+
inspectRelease(): Promise<IGiteaRelease | null>;
|
|
46
|
+
createRelease(): Promise<IGiteaRelease>;
|
|
47
|
+
inspectAssets(releaseId: number, expected: IGiteaFrozenAsset[]): Promise<IGiteaAssetInspection>;
|
|
48
|
+
uploadAsset(releaseId: number, asset: IGiteaFrozenAsset, artifactDirectory: string): Promise<void>;
|
|
49
|
+
verifyComplete(releaseId: number, expected: IGiteaFrozenAsset[]): Promise<void>;
|
|
50
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@git.zone/cli",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.10.0",
|
|
5
5
|
"description": "A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
7
7
|
"typings": "dist_ts/index.d.ts",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@aws-sdk/client-s3": "3.1095.0",
|
|
50
50
|
"@git.zone/tsdoc": "^2.1.1",
|
|
51
51
|
"@git.zone/tsdocker": "3.5.2",
|
|
52
|
-
"@git.zone/tspublish": "^1.
|
|
52
|
+
"@git.zone/tspublish": "^1.14.0",
|
|
53
53
|
"@push.rocks/commitinfo": "^1.0.13",
|
|
54
54
|
"@push.rocks/early": "^4.0.4",
|
|
55
55
|
"@push.rocks/projectinfo": "^5.1.0",
|
package/readme.md
CHANGED
|
@@ -192,12 +192,12 @@ Release flags:
|
|
|
192
192
|
| `-t`, `--test` | Enable preflight tests |
|
|
193
193
|
| `-b`, `--build` | Enable the release build after local release metadata is created |
|
|
194
194
|
| `-p`, `--push` | Explicitly select the `git` target; combine with other target flags as needed |
|
|
195
|
-
| `--target <csv>` |
|
|
195
|
+
| `--target <csv>` | Select `git`, `giteaAssets`, `npm`, and/or `docker`; npm cannot omit a configured enabled Gitea asset target |
|
|
196
196
|
| `--npm` | Explicitly select the `npm` target; combine with other target flags as needed |
|
|
197
197
|
| `--docker` | Explicitly select digest-qualified Docker publication; requires project-local `@git.zone/tsdocker >= 3.5.1` with protocol v1 |
|
|
198
|
-
| `--no-publish` | Remove npm and Docker from the resolved target set without implicitly enabling Git
|
|
198
|
+
| `--no-publish` | Remove Gitea assets, npm and Docker from the resolved target set without implicitly enabling Git |
|
|
199
199
|
| `--no-build` | Disable the separate post-metadata project build; Docker qualification still performs its required image build |
|
|
200
|
-
| `--merge` | Fast-forward and lease-push a cleanly rebased feature branch into `main`, then release from `main`; incompatible with
|
|
200
|
+
| `--merge` | Fast-forward and lease-push a cleanly rebased feature branch into `main`, then release from `main`; incompatible with Docker or Gitea assets |
|
|
201
201
|
| `--major`, `--minor`, `--patch` | Override inferred semver level |
|
|
202
202
|
| `--plan` | Show the resolved workflow without fetching or mutating refs, files, the index, or worktrees |
|
|
203
203
|
| `inspect [version]` | Read one or all durable release journals; add `--json` for machine-readable output |
|
|
@@ -303,6 +303,95 @@ This component release mode supports Git and npm targets. A combined Docker
|
|
|
303
303
|
target is rejected before release mutation. Root-package Docker releases
|
|
304
304
|
continue to use schema 2.
|
|
305
305
|
|
|
306
|
+
### Gitea release attachments before npm
|
|
307
|
+
|
|
308
|
+
Enable `release.targets.giteaAssets` when public source archives, native executables,
|
|
309
|
+
or other versioned artifacts must be available before npm packages. This works
|
|
310
|
+
with root packages and ordered tspublish modules. The Git branch and tag target
|
|
311
|
+
must be active; integrate `main` before releasing. Docker and `--merge` cannot be
|
|
312
|
+
combined with this target.
|
|
313
|
+
|
|
314
|
+
```json
|
|
315
|
+
{
|
|
316
|
+
"@git.zone/cli": {
|
|
317
|
+
"release": {
|
|
318
|
+
"targets": {
|
|
319
|
+
"git": { "enabled": true, "remote": "origin", "pushBranch": true, "pushTags": true },
|
|
320
|
+
"giteaAssets": {
|
|
321
|
+
"enabled": true,
|
|
322
|
+
"apiOrigin": "https://code.example.org",
|
|
323
|
+
"owner": "example",
|
|
324
|
+
"repository": "native-cli",
|
|
325
|
+
"tokenEnv": "GITZONE_RELEASE_GITEA_TOKEN",
|
|
326
|
+
"manifestPath": "dist/release-assets.json"
|
|
327
|
+
},
|
|
328
|
+
"npm": { "enabled": true, "registries": ["https://registry.npmjs.org"], "accessLevel": "public" }
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
The configured HTTPS origin must match the resolved SSH/HTTPS Git host and exact
|
|
336
|
+
owner/repository path. SSH aliases cannot establish that identity. `tokenEnv` is
|
|
337
|
+
the environment variable's name; credentials are never stored in the journal.
|
|
338
|
+
Before Git publication, authenticated and anonymous repository checks require a
|
|
339
|
+
public repository, repository-admin authority, and a PAT with `write:repository`
|
|
340
|
+
scope (or an existing `all` scope). Code-push permission alone is insufficient
|
|
341
|
+
because Gitea grants code and release-unit permissions separately. Configure an
|
|
342
|
+
existing appropriate credential; the CLI does not acquire or broaden tokens.
|
|
343
|
+
|
|
344
|
+
The normal release build generates a strict manifest for the new release version:
|
|
345
|
+
|
|
346
|
+
```json
|
|
347
|
+
{
|
|
348
|
+
"schemaVersion": 1,
|
|
349
|
+
"version": "1.2.3",
|
|
350
|
+
"assets": [
|
|
351
|
+
{ "name": "source.tar.gz", "path": "dist/source.tar.gz", "size": 12345, "sha256": "<64 lowercase hexadecimal characters>" },
|
|
352
|
+
{ "name": "native-linux-x64", "path": "dist/native-linux-x64", "size": 23456, "sha256": "<64 lowercase hexadecimal characters>" }
|
|
353
|
+
]
|
|
354
|
+
}
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
Replace the example sizes and hashes with the actual file identities. Names and
|
|
358
|
+
paths must be canonical and unique. Regular files and their ancestor directories
|
|
359
|
+
must not be symlinks; credential/runtime paths, traversal and globs are rejected.
|
|
360
|
+
Assets are uploaded in manifest order. Put corresponding source and relinking
|
|
361
|
+
materials before native executables, since public Gitea attachments also
|
|
362
|
+
distribute those binaries.
|
|
363
|
+
|
|
364
|
+
Publication runs build → freeze every artifact → write schema-4 journal → Git →
|
|
365
|
+
Gitea assets → npm. Stored assets use `asset.<sha256-of-name>.bin` filenames next
|
|
366
|
+
to the retained npm archives. The CLI verifies local hashes before Git, then
|
|
367
|
+
inspects or creates the exact public, non-draft, non-prerelease tag release.
|
|
368
|
+
Every upload has a revisioned journal attempt. Each accepted attachment must
|
|
369
|
+
download anonymously with the expected size and SHA256; authenticated redirects
|
|
370
|
+
are rejected and anonymous downloads never carry the token. Transfers and
|
|
371
|
+
hashing stream with bounded memory and timeouts.
|
|
372
|
+
|
|
373
|
+
The complete remote attachment set must equal the manifest. Extra names,
|
|
374
|
+
duplicates, changed release identity, or conflicting bytes stop publication;
|
|
375
|
+
the CLI has no deletion or replacement path. It verifies the complete set again
|
|
376
|
+
before npm. An inconclusive or rejected upload leaves npm unpublished and retains
|
|
377
|
+
the journal for `gitzone release resume <version> -y`. Resume uses the recorded
|
|
378
|
+
destination and retained bytes without rebuilding or repacking, and re-verifies
|
|
379
|
+
public assets even for completed journals. An unresolved active attempt requires
|
|
380
|
+
the exact `--recover-attempt` identifier after its publisher has stopped.
|
|
381
|
+
|
|
382
|
+
Gitea's general attachment-enabled switch is checked. Its issue-attachment size
|
|
383
|
+
setting is distinct from `repository.release.FILE_MAX_SIZE`; confirm the actual
|
|
384
|
+
release and proxy upload limits for the largest planned artifact. A size rejection
|
|
385
|
+
blocks npm and retains the original artifact; archives are never split or replaced
|
|
386
|
+
automatically. The manifest and journal provide exact sizes for this check.
|
|
387
|
+
|
|
388
|
+
Artifact immutability here means conflict refusal by the publisher. Administrators
|
|
389
|
+
can still change server state. Distributors must retain the exact public
|
|
390
|
+
corresponding-source and relinking artifacts while distributing the binaries and
|
|
391
|
+
include those artifacts in their operational retention and backup policy.
|
|
392
|
+
Independent CI publishers must not rebuild, upload, delete, or publish these same
|
|
393
|
+
release assets or packages; keep tag jobs limited to verification.
|
|
394
|
+
|
|
306
395
|
Independent tag-triggered npm publishers are incompatible with this transaction. GitZone rejects a release while `.gitea/workflows/default_tags.yaml` or `.gitlab-ci.yml` still contains the legacy `npmci npm publish` command. Apply the v6 Gitea workflow template or remove the legacy GitLab job and commit that change first.
|
|
307
396
|
|
|
308
397
|
Inspect and resume without regenerating release identity:
|