bkper 4.24.3 → 4.25.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/lib/commands/apps/git/index.d.ts +2 -2
- package/lib/commands/apps/git/index.d.ts.map +1 -1
- package/lib/commands/apps/git/index.js +1 -1
- package/lib/commands/apps/git/index.js.map +1 -1
- package/lib/commands/apps/git/markers.d.ts +2 -2
- package/lib/commands/apps/git/markers.d.ts.map +1 -1
- package/lib/commands/apps/git/markers.js +10 -2
- package/lib/commands/apps/git/markers.js.map +1 -1
- package/lib/commands/apps/git/mode.d.ts +3 -4
- package/lib/commands/apps/git/mode.d.ts.map +1 -1
- package/lib/commands/apps/git/mode.js +24 -28
- package/lib/commands/apps/git/mode.js.map +1 -1
- package/lib/commands/apps/git/push.d.ts +7 -0
- package/lib/commands/apps/git/push.d.ts.map +1 -1
- package/lib/commands/apps/git/push.js +31 -0
- package/lib/commands/apps/git/push.js.map +1 -1
- package/lib/commands/apps/git/types.d.ts +6 -2
- package/lib/commands/apps/git/types.d.ts.map +1 -1
- package/lib/commands/apps/git/types.js.map +1 -1
- package/lib/commands/apps/source-workflow.d.ts.map +1 -1
- package/lib/commands/apps/source-workflow.js +19 -9
- package/lib/commands/apps/source-workflow.js.map +1 -1
- package/lib/docs/cli/app-management.md +25 -5
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ARTIFACTS_HOST_SUFFIX, CREDENTIAL_USERNAME, DEFAULT_MANAGED_BRANCH, ManagedGitError, SOURCE_MARKER_DIR, SOURCE_MARKER_FILE, type GitPreflightCode, type GitRemote, type GitRepositoryInfo, type ManagedSourceActivationResult, type ManagedSourceCredential, type ManagedSourcePlatformStatus, type SourceMarker, type SourceMode, type SourceModeDecision, type WorkingTreeStatus, } from './types.js';
|
|
1
|
+
export { ARTIFACTS_HOST_SUFFIX, CREDENTIAL_USERNAME, DEFAULT_MANAGED_BRANCH, ManagedGitError, SOURCE_MARKER_DIR, SOURCE_MARKER_FILE, type GitPreflightCode, type GitRemote, type GitRepositoryInfo, type ManagedSourceActivationResult, type ManagedSourceCredential, type ManagedSourcePlatformStatus, type ManagedSourceUpload, type SourceMarker, type SourceMode, type SourceModeDecision, type WorkingTreeStatus, } from './types.js';
|
|
2
2
|
export { runGit, type GitCommandResult, type GitRunOptions, type GitRunner } from './run-git.js';
|
|
3
3
|
export { ensureGitInitialized, findBkperYaml, findGitRoot, getCurrentBranch, getHeadSha, getOriginRemote, getWorkingTreeStatus, hasExternalRemote, inspectGitRepository, isArtifactsRemoteUrl, listRemotes, normalizeRemoteUrl, remoteUrlsEqual, requireGitRepository, } from './inspect.js';
|
|
4
4
|
export { createActivationId, ensurePendingSourceMarker, getSourceMarkerPath, isUuidV4, readSourceMarker, writeManagedSourceMarker, } from './markers.js';
|
|
@@ -7,6 +7,6 @@ export { detectSourceMode, type DetectSourceModeInput } from './mode.js';
|
|
|
7
7
|
export { buildCredentialConfigSection, buildCredentialHelperCommand, configureManagedCredentialHelper, formatCredentialGetResponse, parseCredentialInput, runGitCredentialHelper, type CredentialHelperOptions, type CredentialRequest, } from './credentials.js';
|
|
8
8
|
export { createPlatformSourceApi, getPlatformBaseUrl, stripRepositoryTokenSecret, type PlatformSourceApi, } from './platform-source.js';
|
|
9
9
|
export { configureManagedOrigin } from './remote.js';
|
|
10
|
-
export { assertFastForwardPush, pushCurrentBranchSafe, type SafePushOptions, type SafePushResult, } from './push.js';
|
|
10
|
+
export { assertFastForwardPush, pushAllLocalRefsAtomic, pushCurrentBranchSafe, type SafePushOptions, type SafePushResult, } from './push.js';
|
|
11
11
|
export { cloneManagedApp, cloneManagedAppCommand, type CloneManagedAppOptions, } from './clone.js';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/apps/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAC,MAAM,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AAE/F,OAAO,EACH,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,oBAAoB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACH,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,wBAAwB,GAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACH,0BAA0B,EAC1B,oBAAoB,EACpB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GACjC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAC,gBAAgB,EAAE,KAAK,qBAAqB,EAAC,MAAM,WAAW,CAAC;AAEvE,OAAO,EACH,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,KAAK,iBAAiB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAEnD,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,GACtB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACH,eAAe,EACf,sBAAsB,EACtB,KAAK,sBAAsB,GAC9B,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/apps/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAC,MAAM,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AAE/F,OAAO,EACH,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,oBAAoB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACH,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,wBAAwB,GAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACH,0BAA0B,EAC1B,oBAAoB,EACpB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GACjC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAC,gBAAgB,EAAE,KAAK,qBAAqB,EAAC,MAAM,WAAW,CAAC;AAEvE,OAAO,EACH,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,KAAK,iBAAiB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAEnD,OAAO,EACH,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,GACtB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACH,eAAe,EACf,sBAAsB,EACtB,KAAK,sBAAsB,GAC9B,MAAM,YAAY,CAAC"}
|
|
@@ -7,6 +7,6 @@ export { detectSourceMode } from './mode.js';
|
|
|
7
7
|
export { buildCredentialConfigSection, buildCredentialHelperCommand, configureManagedCredentialHelper, formatCredentialGetResponse, parseCredentialInput, runGitCredentialHelper, } from './credentials.js';
|
|
8
8
|
export { createPlatformSourceApi, getPlatformBaseUrl, stripRepositoryTokenSecret, } from './platform-source.js';
|
|
9
9
|
export { configureManagedOrigin } from './remote.js';
|
|
10
|
-
export { assertFastForwardPush, pushCurrentBranchSafe, } from './push.js';
|
|
10
|
+
export { assertFastForwardPush, pushAllLocalRefsAtomic, pushCurrentBranchSafe, } from './push.js';
|
|
11
11
|
export { cloneManagedApp, cloneManagedAppCommand, } from './clone.js';
|
|
12
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/apps/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/apps/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GAYrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAC,MAAM,EAA4D,MAAM,cAAc,CAAC;AAE/F,OAAO,EACH,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,oBAAoB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACH,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,wBAAwB,GAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACH,0BAA0B,EAC1B,oBAAoB,GAGvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAC,gBAAgB,EAA6B,MAAM,WAAW,CAAC;AAEvE,OAAO,EACH,4BAA4B,EAC5B,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,GAGzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,GAE7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAC,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAEnD,OAAO,EACH,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GAGxB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACH,eAAe,EACf,sBAAsB,GAEzB,MAAM,YAAY,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type SourceMarker } from './types.js';
|
|
1
|
+
import { type ManagedSourceUpload, type SourceMarker } from './types.js';
|
|
2
2
|
export declare function getSourceMarkerPath(repoRoot: string): string;
|
|
3
3
|
export declare function isUuidV4(value: string): boolean;
|
|
4
4
|
export declare function createActivationId(): string;
|
|
@@ -7,7 +7,7 @@ export declare function readSourceMarker(repoRoot: string): SourceMarker | null;
|
|
|
7
7
|
* Creates or returns the existing pending activation marker.
|
|
8
8
|
* Does not overwrite a managed marker.
|
|
9
9
|
*/
|
|
10
|
-
export declare function ensurePendingSourceMarker(repoRoot: string): SourceMarker & {
|
|
10
|
+
export declare function ensurePendingSourceMarker(repoRoot: string, upload?: ManagedSourceUpload): SourceMarker & {
|
|
11
11
|
state: 'pending';
|
|
12
12
|
};
|
|
13
13
|
export declare function writeManagedSourceMarker(repoRoot: string, appId: string, remote: string): SourceMarker & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../../../src/commands/apps/git/markers.ts"],"names":[],"mappings":"AAGA,OAAO,EAIH,KAAK,YAAY,EACpB,MAAM,YAAY,CAAC;AAKpB,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;
|
|
1
|
+
{"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../../../src/commands/apps/git/markers.ts"],"names":[],"mappings":"AAGA,OAAO,EAIH,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACpB,MAAM,YAAY,CAAC;AAKpB,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAgFD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAMtE;AAiCD;;;GAGG;AACH,wBAAgB,yBAAyB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,mBAA4B,GACrC,YAAY,GAAG;IACd,KAAK,EAAE,SAAS,CAAC;CACpB,CAmBA;AAED,wBAAgB,wBAAwB,CACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACf,YAAY,GAAG;IAAC,KAAK,EAAE,SAAS,CAAA;CAAC,CASnC"}
|
|
@@ -13,11 +13,12 @@ export function createActivationId() {
|
|
|
13
13
|
return randomUUID();
|
|
14
14
|
}
|
|
15
15
|
function parseSourceMarker(raw) {
|
|
16
|
+
var _a;
|
|
16
17
|
let parsed;
|
|
17
18
|
try {
|
|
18
19
|
parsed = JSON.parse(raw);
|
|
19
20
|
}
|
|
20
|
-
catch (
|
|
21
|
+
catch (_b) {
|
|
21
22
|
throw new ManagedGitError('SOURCE_MARKER_INVALID', 'The local managed-source marker is malformed. Inspect .bkper/source-marker.json and restore a valid pending or managed marker before retrying.');
|
|
22
23
|
}
|
|
23
24
|
if (!parsed || typeof parsed !== 'object') {
|
|
@@ -31,10 +32,16 @@ function parseSourceMarker(raw) {
|
|
|
31
32
|
if (typeof marker.activationId !== 'string' || !isUuidV4(marker.activationId)) {
|
|
32
33
|
throw new ManagedGitError('SOURCE_MARKER_INVALID', 'The pending managed-source marker must contain a lowercase UUID v4 activationId.');
|
|
33
34
|
}
|
|
35
|
+
if (marker.upload !== undefined &&
|
|
36
|
+
marker.upload !== 'main' &&
|
|
37
|
+
marker.upload !== 'all_refs') {
|
|
38
|
+
throw new ManagedGitError('SOURCE_MARKER_INVALID', 'The pending managed-source marker has an invalid upload scope.');
|
|
39
|
+
}
|
|
34
40
|
return {
|
|
35
41
|
version: 1,
|
|
36
42
|
state: 'pending',
|
|
37
43
|
activationId: marker.activationId,
|
|
44
|
+
upload: (_a = marker.upload) !== null && _a !== void 0 ? _a : 'main',
|
|
38
45
|
};
|
|
39
46
|
}
|
|
40
47
|
if (marker.state === 'managed') {
|
|
@@ -96,7 +103,7 @@ function writeMarkerAtomic(repoRoot, marker) {
|
|
|
96
103
|
* Creates or returns the existing pending activation marker.
|
|
97
104
|
* Does not overwrite a managed marker.
|
|
98
105
|
*/
|
|
99
|
-
export function ensurePendingSourceMarker(repoRoot) {
|
|
106
|
+
export function ensurePendingSourceMarker(repoRoot, upload = 'main') {
|
|
100
107
|
const existing = readSourceMarker(repoRoot);
|
|
101
108
|
if ((existing === null || existing === void 0 ? void 0 : existing.state) === 'pending') {
|
|
102
109
|
return existing;
|
|
@@ -108,6 +115,7 @@ export function ensurePendingSourceMarker(repoRoot) {
|
|
|
108
115
|
version: 1,
|
|
109
116
|
state: 'pending',
|
|
110
117
|
activationId: createActivationId(),
|
|
118
|
+
upload,
|
|
111
119
|
};
|
|
112
120
|
writeMarkerAtomic(repoRoot, marker);
|
|
113
121
|
return marker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markers.js","sourceRoot":"","sources":["../../../../src/commands/apps/git/markers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AAClC,OAAO,EACH,eAAe,EACf,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"markers.js","sourceRoot":"","sources":["../../../../src/commands/apps/git/markers.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,11 +15,10 @@ export interface DetectSourceModeInput {
|
|
|
15
15
|
* Deterministic source-mode detection.
|
|
16
16
|
*
|
|
17
17
|
* Order:
|
|
18
|
-
* 1.
|
|
19
|
-
* 2.
|
|
18
|
+
* 1. Pending local marker (preserves activation upload scope across retries)
|
|
19
|
+
* 2. Platform managed record
|
|
20
20
|
* 3. Nested monorepo / external remote / missing git root
|
|
21
|
-
* 4.
|
|
22
|
-
* 5. New standalone eligible App activates managed source
|
|
21
|
+
* 4. Eligible standalone Apps activate managed source
|
|
23
22
|
*/
|
|
24
23
|
export declare function detectSourceMode(input: DetectSourceModeInput): Promise<SourceModeDecision>;
|
|
25
24
|
//# sourceMappingURL=mode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../../../src/commands/apps/git/mode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,KAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EACR,2BAA2B,EAC3B,kBAAkB,EACrB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,cAAc,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACnD,8CAA8C;IAC9C,aAAa,EAAE,OAAO,CAAC;IACvB,kEAAkE;IAClE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;CACtB;AAED
|
|
1
|
+
{"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../../../src/commands/apps/git/mode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,KAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EACR,2BAA2B,EAC3B,kBAAkB,EACrB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,cAAc,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACnD,8CAA8C;IAC9C,aAAa,EAAE,OAAO,CAAC;IACvB,kEAAkE;IAClE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAClC,KAAK,EAAE,qBAAqB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAoF7B"}
|
|
@@ -15,16 +15,26 @@ import { runGit } from './run-git.js';
|
|
|
15
15
|
* Deterministic source-mode detection.
|
|
16
16
|
*
|
|
17
17
|
* Order:
|
|
18
|
-
* 1.
|
|
19
|
-
* 2.
|
|
18
|
+
* 1. Pending local marker (preserves activation upload scope across retries)
|
|
19
|
+
* 2. Platform managed record
|
|
20
20
|
* 3. Nested monorepo / external remote / missing git root
|
|
21
|
-
* 4.
|
|
22
|
-
* 5. New standalone eligible App activates managed source
|
|
21
|
+
* 4. Eligible standalone Apps activate managed source
|
|
23
22
|
*/
|
|
24
23
|
export function detectSourceMode(input) {
|
|
25
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
var _a, _b, _c
|
|
25
|
+
var _a, _b, _c;
|
|
27
26
|
const runner = (_a = input.runner) !== null && _a !== void 0 ? _a : runGit;
|
|
27
|
+
const repo = yield inspectGitRepository(input.appDir, runner);
|
|
28
|
+
const marker = repo ? readSourceMarker(repo.root) : null;
|
|
29
|
+
if ((marker === null || marker === void 0 ? void 0 : marker.state) === 'pending') {
|
|
30
|
+
return {
|
|
31
|
+
mode: 'managed',
|
|
32
|
+
reason: 'pending_marker',
|
|
33
|
+
appId: input.appId,
|
|
34
|
+
activationId: marker.activationId,
|
|
35
|
+
upload: marker.upload,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
28
38
|
if (((_b = input.platformStatus) === null || _b === void 0 ? void 0 : _b.mode) === 'managed') {
|
|
29
39
|
return {
|
|
30
40
|
mode: 'managed',
|
|
@@ -32,19 +42,9 @@ export function detectSourceMode(input) {
|
|
|
32
42
|
appId: input.platformStatus.appId,
|
|
33
43
|
};
|
|
34
44
|
}
|
|
35
|
-
const repo = yield inspectGitRepository(input.appDir, runner);
|
|
36
45
|
if (!repo) {
|
|
37
46
|
return { mode: 'external', reason: 'no_git' };
|
|
38
47
|
}
|
|
39
|
-
const marker = readSourceMarker(repo.root);
|
|
40
|
-
if ((marker === null || marker === void 0 ? void 0 : marker.state) === 'pending') {
|
|
41
|
-
return {
|
|
42
|
-
mode: 'managed',
|
|
43
|
-
reason: 'pending_marker',
|
|
44
|
-
appId: input.appId,
|
|
45
|
-
activationId: marker.activationId,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
48
|
if ((marker === null || marker === void 0 ? void 0 : marker.state) === 'managed') {
|
|
49
49
|
return {
|
|
50
50
|
mode: 'managed',
|
|
@@ -84,23 +84,19 @@ export function detectSourceMode(input) {
|
|
|
84
84
|
details: external,
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
87
|
+
return input.coreAppExists
|
|
88
|
+
? {
|
|
89
|
+
mode: 'activate_managed',
|
|
90
|
+
reason: 'existing_standalone_app',
|
|
91
|
+
appId: input.appId,
|
|
92
|
+
upload: 'all_refs',
|
|
93
|
+
}
|
|
94
|
+
: {
|
|
93
95
|
mode: 'activate_managed',
|
|
94
96
|
reason: 'new_standalone_app',
|
|
95
97
|
appId: input.appId,
|
|
98
|
+
upload: 'main',
|
|
96
99
|
};
|
|
97
|
-
}
|
|
98
|
-
// No platform status available and local shape is eligible for activation.
|
|
99
|
-
return {
|
|
100
|
-
mode: 'activate_managed',
|
|
101
|
-
reason: 'new_standalone_app',
|
|
102
|
-
appId: input.appId,
|
|
103
|
-
};
|
|
104
100
|
});
|
|
105
101
|
}
|
|
106
102
|
//# sourceMappingURL=mode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode.js","sourceRoot":"","sources":["../../../../src/commands/apps/git/mode.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,cAAc,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,MAAM,EAAiB,MAAM,cAAc,CAAC;AAkBpD
|
|
1
|
+
{"version":3,"file":"mode.js","sourceRoot":"","sources":["../../../../src/commands/apps/git/mode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { type GitRunner } from './run-git.js';
|
|
2
|
+
import { type ManagedSourceUpload } from './types.js';
|
|
2
3
|
export interface SafePushOptions {
|
|
3
4
|
appDir?: string;
|
|
4
5
|
expectedOriginRemote?: string;
|
|
5
6
|
requireMainBranch?: boolean;
|
|
7
|
+
upload?: ManagedSourceUpload;
|
|
6
8
|
runner?: GitRunner;
|
|
7
9
|
}
|
|
8
10
|
export interface SafePushResult {
|
|
@@ -14,6 +16,11 @@ export interface SafePushResult {
|
|
|
14
16
|
* Fetches the remote branch and allows only missing, equal, or ancestor remote tips.
|
|
15
17
|
*/
|
|
16
18
|
export declare function assertFastForwardPush(repoRoot: string, branch: string, head: string, runner?: GitRunner): Promise<'missing' | 'same' | 'ahead'>;
|
|
19
|
+
/**
|
|
20
|
+
* Pushes every local branch and tag as one atomic remote update.
|
|
21
|
+
* A rejected ref leaves the managed repository unchanged.
|
|
22
|
+
*/
|
|
23
|
+
export declare function pushAllLocalRefsAtomic(options?: SafePushOptions): Promise<SafePushResult>;
|
|
17
24
|
/**
|
|
18
25
|
* Safe current-branch push with upstream setup.
|
|
19
26
|
* Never commits, merges, rebases, force-pushes, or discards local changes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../../src/commands/apps/git/push.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../../src/commands/apps/git/push.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,SAAS,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,EAAkB,KAAK,mBAAmB,EAAC,MAAM,YAAY,CAAC;AAErE,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;CACrE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,SAAkB,GAC3B,OAAO,CAAC,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,CA2CvC;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CACxC,OAAO,GAAE,eAAoB,GAC9B,OAAO,CAAC,cAAc,CAAC,CA+BzB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACvC,OAAO,GAAE,eAAoB,GAC9B,OAAO,CAAC,cAAc,CAAC,CA+DzB"}
|
|
@@ -52,6 +52,37 @@ export function assertFastForwardPush(repoRoot_1, branch_1, head_1) {
|
|
|
52
52
|
].join('\n'));
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Pushes every local branch and tag as one atomic remote update.
|
|
57
|
+
* A rejected ref leaves the managed repository unchanged.
|
|
58
|
+
*/
|
|
59
|
+
export function pushAllLocalRefsAtomic() {
|
|
60
|
+
return __awaiter(this, arguments, void 0, function* (options = {}) {
|
|
61
|
+
var _a;
|
|
62
|
+
const runner = (_a = options.runner) !== null && _a !== void 0 ? _a : runGit;
|
|
63
|
+
const preflight = yield requireManagedGitPreflight({
|
|
64
|
+
appDir: options.appDir,
|
|
65
|
+
expectedOriginRemote: options.expectedOriginRemote,
|
|
66
|
+
requireMainBranch: options.requireMainBranch,
|
|
67
|
+
runner,
|
|
68
|
+
});
|
|
69
|
+
const refsResult = yield runner(['for-each-ref', '--format=%(refname)', 'refs/heads', 'refs/tags'], { cwd: preflight.repo.root });
|
|
70
|
+
const refs = refsResult.stdout
|
|
71
|
+
.split(/\r?\n/)
|
|
72
|
+
.map(ref => ref.trim())
|
|
73
|
+
.filter(ref => ref.length > 0);
|
|
74
|
+
const refspecs = refs.map(ref => `${ref}:${ref}`);
|
|
75
|
+
yield runner(['push', '--atomic', 'origin', ...refspecs], {
|
|
76
|
+
cwd: preflight.repo.root,
|
|
77
|
+
});
|
|
78
|
+
yield runner(['branch', '--set-upstream-to', `origin/${preflight.branch}`, preflight.branch], { cwd: preflight.repo.root });
|
|
79
|
+
return {
|
|
80
|
+
branch: preflight.branch,
|
|
81
|
+
head: preflight.head,
|
|
82
|
+
action: 'pushed',
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
}
|
|
55
86
|
/**
|
|
56
87
|
* Safe current-branch push with upstream setup.
|
|
57
88
|
* Never commits, merges, rebases, force-pushes, or discards local changes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../src/commands/apps/git/push.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,eAAe,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAC,0BAA0B,EAAC,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAC,MAAM,EAAiB,MAAM,cAAc,CAAC;AACpD,OAAO,EAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../src/commands/apps/git/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Managed Artifacts source types and agent-actionable errors for CLI Git plumbing.
|
|
3
3
|
*/
|
|
4
4
|
export type SourceMode = 'managed' | 'external' | 'pending_activation';
|
|
5
|
+
export type ManagedSourceUpload = 'main' | 'all_refs';
|
|
5
6
|
export type ManagedSourcePlatformStatus = {
|
|
6
7
|
mode: 'external';
|
|
7
8
|
state: 'not_managed';
|
|
@@ -39,6 +40,7 @@ export type SourceMarker = {
|
|
|
39
40
|
version: 1;
|
|
40
41
|
state: 'pending';
|
|
41
42
|
activationId: string;
|
|
43
|
+
upload: ManagedSourceUpload;
|
|
42
44
|
} | {
|
|
43
45
|
version: 1;
|
|
44
46
|
state: 'managed';
|
|
@@ -72,14 +74,16 @@ export type SourceModeDecision = {
|
|
|
72
74
|
appId: string;
|
|
73
75
|
remote?: string;
|
|
74
76
|
activationId?: string;
|
|
77
|
+
upload?: ManagedSourceUpload;
|
|
75
78
|
} | {
|
|
76
79
|
mode: 'external';
|
|
77
|
-
reason: 'nested_app' | 'external_remote' | '
|
|
80
|
+
reason: 'nested_app' | 'external_remote' | 'not_git_root' | 'no_git' | 'platform_external' | 'feature_disabled';
|
|
78
81
|
details?: string;
|
|
79
82
|
} | {
|
|
80
83
|
mode: 'activate_managed';
|
|
81
|
-
reason: 'new_standalone_app';
|
|
84
|
+
reason: 'new_standalone_app' | 'existing_standalone_app';
|
|
82
85
|
appId: string;
|
|
86
|
+
upload: ManagedSourceUpload;
|
|
83
87
|
};
|
|
84
88
|
export type GitPreflightCode = 'NO_GIT_REPOSITORY' | 'BKPER_YAML_NOT_AT_GIT_ROOT' | 'NO_COMMITS' | 'DETACHED_HEAD' | 'FIRST_ACTIVATION_NOT_MAIN' | 'STAGED_CHANGES' | 'MODIFIED_TRACKED_FILES' | 'UNTRACKED_FILES' | 'MISSING_MANAGED_ORIGIN' | 'INCORRECT_MANAGED_ORIGIN' | 'EXTERNAL_ORIGIN_PRESENT' | 'AUTHENTICATION_REQUIRED' | 'REPOSITORY_CREDENTIAL_EXPIRED' | 'REMOTE_AHEAD_OR_DIVERGED' | 'APP_ID_MISMATCH' | 'MANAGED_SOURCE_UNAVAILABLE' | 'EXTERNAL_SOURCE_CLONE' | 'CLONE_DESTINATION_EXISTS' | 'CLONE_EMPTY_REPOSITORY' | 'INVALID_CREDENTIAL_REQUEST' | 'SOURCE_MARKER_INVALID' | 'GIT_COMMAND_FAILED';
|
|
85
89
|
export declare class ManagedGitError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commands/apps/git/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,oBAAoB,CAAC;AAEvE,MAAM,MAAM,2BAA2B,GACjC;IACI,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,UAAU,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;CACnB,GACD;IACI,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAER,MAAM,WAAW,6BAA6B;IAC1C,OAAO,EAAE,IAAI,CAAC;IACd,WAAW,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAChD,MAAM,EAAE;QACJ,IAAI,EAAE,SAAS,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED,MAAM,WAAW,uBAAuB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GAClB;IACI,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commands/apps/git/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,oBAAoB,CAAC;AAEvE,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtD,MAAM,MAAM,2BAA2B,GACjC;IACI,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,UAAU,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;CACnB,GACD;IACI,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAER,MAAM,WAAW,6BAA6B;IAC1C,OAAO,EAAE,IAAI,CAAC;IACd,WAAW,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAChD,MAAM,EAAE;QACJ,IAAI,EAAE,SAAS,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED,MAAM,WAAW,uBAAuB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GAClB;IACI,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC;CAC/B,GACD;IACI,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAER,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,kBAAkB,GACxB;IACI,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAChC,GACD;IACI,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EACA,YAAY,GACZ,iBAAiB,GACjB,cAAc,GACd,QAAQ,GACR,mBAAmB,GACnB,kBAAkB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACI,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,GAAG,yBAAyB,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AAER,MAAM,MAAM,gBAAgB,GACtB,mBAAmB,GACnB,4BAA4B,GAC5B,YAAY,GACZ,eAAe,GACf,2BAA2B,GAC3B,gBAAgB,GAChB,wBAAwB,GACxB,iBAAiB,GACjB,wBAAwB,GACxB,0BAA0B,GAC1B,yBAAyB,GACzB,yBAAyB,GACzB,+BAA+B,GAC/B,0BAA0B,GAC1B,iBAAiB,GACjB,4BAA4B,GAC5B,uBAAuB,GACvB,0BAA0B,GAC1B,wBAAwB,GACxB,4BAA4B,GAC5B,uBAAuB,GACvB,oBAAoB,CAAC;AAE3B,qBAAa,eAAgB,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEb,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO;CAM5E;AAED,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AACjE,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAC1C,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAC7C,eAAO,MAAM,mBAAmB,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/commands/apps/git/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/commands/apps/git/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqIH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAItC,YAAY,IAAsB,EAAE,OAAe,EAAE,QAAkB,EAAE;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AACjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAC1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-workflow.d.ts","sourceRoot":"","sources":["../../../src/commands/apps/source-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,
|
|
1
|
+
{"version":3,"file":"source-workflow.d.ts","sourceRoot":"","sources":["../../../src/commands/apps/source-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EAYtB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,KAAK,eAAe,GAAG,OAAO,sBAAsB,CAAC;AACrD,KAAK,iBAAiB,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAE/E,UAAU,qBAAqB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA2B,SAAQ,qBAAqB;IACrE,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AA4DD;;;GAGG;AACH,wBAAsB,oBAAoB,CACtC,OAAO,EAAE,0BAA0B,GACpC,OAAO,CAAC,UAAU,CAAC,CAsFrB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC5C,OAAO,EAAE,qBAAqB,GAC/B,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAkE3C"}
|
|
@@ -7,12 +7,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { configureManagedOrigin, createPlatformSourceApi, detectSourceMode, ensurePendingSourceMarker, inspectGitRepository, ManagedGitError, pushCurrentBranchSafe, readSourceMarker, requireManagedGitPreflight, writeManagedSourceMarker, } from './git/index.js';
|
|
10
|
+
import { configureManagedOrigin, createPlatformSourceApi, detectSourceMode, ensurePendingSourceMarker, inspectGitRepository, ManagedGitError, pushAllLocalRefsAtomic, pushCurrentBranchSafe, readSourceMarker, requireManagedGitPreflight, writeManagedSourceMarker, } from './git/index.js';
|
|
11
11
|
function platformStatus(status) {
|
|
12
12
|
return typeof status === 'string' ? null : status;
|
|
13
13
|
}
|
|
14
14
|
function pushManagedRepository(options_1, remote_1) {
|
|
15
|
-
return __awaiter(this, arguments, void 0, function* (options, remote, requireMainBranch = false) {
|
|
15
|
+
return __awaiter(this, arguments, void 0, function* (options, remote, requireMainBranch = false, upload = 'main') {
|
|
16
16
|
var _a, _b;
|
|
17
17
|
const appDir = (_a = options.appDir) !== null && _a !== void 0 ? _a : process.cwd();
|
|
18
18
|
if (options.push) {
|
|
@@ -20,6 +20,7 @@ function pushManagedRepository(options_1, remote_1) {
|
|
|
20
20
|
appDir,
|
|
21
21
|
expectedOriginRemote: remote,
|
|
22
22
|
requireMainBranch,
|
|
23
|
+
upload,
|
|
23
24
|
});
|
|
24
25
|
}
|
|
25
26
|
const preflight = yield requireManagedGitPreflight({
|
|
@@ -28,10 +29,12 @@ function pushManagedRepository(options_1, remote_1) {
|
|
|
28
29
|
requireMainBranch,
|
|
29
30
|
});
|
|
30
31
|
yield ((_b = options.configureOrigin) !== null && _b !== void 0 ? _b : configureManagedOrigin)(preflight.repo.root, remote, options.appId);
|
|
31
|
-
|
|
32
|
+
const push = upload === 'all_refs' ? pushAllLocalRefsAtomic : pushCurrentBranchSafe;
|
|
33
|
+
return push({
|
|
32
34
|
appDir,
|
|
33
35
|
expectedOriginRemote: remote,
|
|
34
36
|
requireMainBranch,
|
|
37
|
+
upload,
|
|
35
38
|
});
|
|
36
39
|
});
|
|
37
40
|
}
|
|
@@ -57,7 +60,7 @@ function validateLocalManagedMarker(appDir, appId) {
|
|
|
57
60
|
*/
|
|
58
61
|
export function syncManagedAppSource(options) {
|
|
59
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
var _a, _b, _c;
|
|
63
|
+
var _a, _b, _c, _d;
|
|
61
64
|
const appDir = (_a = options.appDir) !== null && _a !== void 0 ? _a : process.cwd();
|
|
62
65
|
const api = (_b = options.api) !== null && _b !== void 0 ? _b : createPlatformSourceApi();
|
|
63
66
|
const statusResult = yield api.getStatus(options.appId);
|
|
@@ -83,15 +86,18 @@ export function syncManagedAppSource(options) {
|
|
|
83
86
|
appDir,
|
|
84
87
|
requireMainBranch: true,
|
|
85
88
|
});
|
|
86
|
-
const
|
|
87
|
-
|
|
89
|
+
const upload = (_c = decision.upload) !== null && _c !== void 0 ? _c : 'main';
|
|
90
|
+
const pending = ensurePendingSourceMarker(preflight.repo.root, upload);
|
|
91
|
+
console.log(upload === 'all_refs'
|
|
92
|
+
? 'Enabling Bkper-managed source and uploading local branches and tags...'
|
|
93
|
+
: 'Enabling Bkper-managed source and uploading committed main...');
|
|
88
94
|
yield options.syncCore(action);
|
|
89
95
|
const activation = yield api.activate(options.appId, pending.activationId);
|
|
90
96
|
if (activation.source.appId !== options.appId) {
|
|
91
97
|
throw new ManagedGitError('APP_ID_MISMATCH', 'Managed source activation returned a different App ID.');
|
|
92
98
|
}
|
|
93
|
-
yield ((
|
|
94
|
-
yield pushManagedRepository(options, activation.source.remote, true);
|
|
99
|
+
yield ((_d = options.configureOrigin) !== null && _d !== void 0 ? _d : configureManagedOrigin)(preflight.repo.root, activation.source.remote, options.appId);
|
|
100
|
+
yield pushManagedRepository(options, activation.source.remote, true, pending.upload);
|
|
95
101
|
writeManagedSourceMarker(preflight.repo.root, options.appId, activation.source.remote);
|
|
96
102
|
return { id: options.appId, action };
|
|
97
103
|
}
|
|
@@ -147,8 +153,12 @@ export function prepareManagedDeploySource(options) {
|
|
|
147
153
|
platformStatus: statusResult,
|
|
148
154
|
coreAppExists: true,
|
|
149
155
|
});
|
|
150
|
-
if (decision.mode === 'external')
|
|
156
|
+
if (decision.mode === 'external' || decision.mode === 'activate_managed') {
|
|
151
157
|
return undefined;
|
|
158
|
+
}
|
|
159
|
+
if (decision.reason === 'pending_marker') {
|
|
160
|
+
throw new ManagedGitError('MANAGED_SOURCE_UNAVAILABLE', 'Managed source activation is pending. Run `bkper app sync` to finish uploading source before deploying.');
|
|
161
|
+
}
|
|
152
162
|
yield validateLocalManagedMarker(appDir, options.appId);
|
|
153
163
|
if (statusResult.mode !== 'managed') {
|
|
154
164
|
throw new ManagedGitError('MANAGED_SOURCE_UNAVAILABLE', 'Managed source linkage is not visible yet. Run `bkper app sync` or retry the deployment.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-workflow.js","sourceRoot":"","sources":["../../../src/commands/apps/source-workflow.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACH,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,EAC1B,wBAAwB,GAK3B,MAAM,gBAAgB,CAAC;AAyBxB,SAAS,cAAc,CACnB,MAA0E;IAE1E,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;AACtD,CAAC;AAED,SAAe,qBAAqB;yDAChC,OAA8B,EAC9B,MAAc,EACd,iBAAiB,GAAG,KAAK;;
|
|
1
|
+
{"version":3,"file":"source-workflow.js","sourceRoot":"","sources":["../../../src/commands/apps/source-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,10 +11,10 @@ Build, deploy, and manage Bkper apps using the `bkper` CLI.
|
|
|
11
11
|
|
|
12
12
|
Bkper selects source mode without changing the local-build deployment model:
|
|
13
13
|
|
|
14
|
-
- **Managed source:**
|
|
15
|
-
- **External source:** an App keeps direct sync/deploy behavior when it has an external Git remote, is nested in a monorepo, is not rooted at `bkper.yaml
|
|
14
|
+
- **Managed source:** `bkper app sync` activates private Bkper-managed Git for a new or existing App when `bkper.yaml` is at the root of a standalone Git repository, the current clean committed branch is `main`, and no Git remote exists. Bkper configures the managed repository as `origin`. New Apps initially upload `main`; existing Apps atomically upload all local branches and tags.
|
|
15
|
+
- **External source:** an App keeps direct sync/deploy behavior when it has an external Git remote, is nested in a monorepo, or is not rooted at `bkper.yaml`. The CLI never changes an existing external remote.
|
|
16
16
|
|
|
17
|
-
To opt out
|
|
17
|
+
To opt out, keep a GitHub, GitLab, or other provider remote configured. Managed mode is sticky after activation; adding another remote later does not change it, and Artifacts remains `origin`. The App listing `repoUrl` metadata does not select source mode.
|
|
18
18
|
|
|
19
19
|
Source and deployment remain separate. `git push` stores source only and **never deploys**. `bkper app sync` pushes managed source before syncing local metadata. `bkper app deploy` pushes managed source, verifies that the exact commit exists in the linked repository, and then uploads the existing local `dist/server` and optional `dist/client` output. Builds remain local and explicit; Bkper does not claim reproducible remote CI or prove that the local bundle was built from the declared commit. Source linkage is best-effort provenance for already-authorized developers.
|
|
20
20
|
|
|
@@ -22,6 +22,26 @@ CLI-managed pushes are clean-tree and fast-forward-only. The CLI never commits,
|
|
|
22
22
|
|
|
23
23
|
Configured App developers, including matches such as `*@example.com`, can read and modify private managed source under the existing owner/developer policy. App users and Book collaborators do not receive source access unless they also satisfy that developer policy. Repository credentials are exact URL/path-scoped, noninteractive, and valid for five minutes; they are never persisted by Bkper.
|
|
24
24
|
|
|
25
|
+
### Migrate from an external Git provider
|
|
26
|
+
|
|
27
|
+
Source changes remain the user or coding agent's responsibility; the CLI never removes or renames provider remotes. Before migration, verify that `main` is clean and committed, the provider has the latest source, and every desired provider-only branch and tag is available locally. A coding agent must show the exact mutating commands and obtain explicit user approval before continuing.
|
|
28
|
+
|
|
29
|
+
Inspect first:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
git status --short --branch
|
|
33
|
+
git remote -v
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
After approval, remove every external remote and sync. For a repository whose only external remote is `origin`:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
git remote remove origin
|
|
40
|
+
bkper app sync
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Sync preserves the existing App identity, activates managed source, configures it as `origin`, and atomically uploads all local branches and tags. If that upload fails, the pending marker makes the next `bkper app sync` retry the complete upload. `bkper app deploy` never activates migration.
|
|
44
|
+
|
|
25
45
|
## Verification Workflow
|
|
26
46
|
|
|
27
47
|
When scaffolding, developing, or deploying an app, verify each step before proceeding. This prevents broken deployments and silent failures.
|
|
@@ -192,7 +212,7 @@ Managed sync and deploy require `bkper.yaml` at the Git root, an attached branch
|
|
|
192
212
|
|
|
193
213
|
| Failure | Safe recovery |
|
|
194
214
|
| --- | --- |
|
|
195
|
-
| No Git repository | For a
|
|
215
|
+
| No Git repository | For a standalone App, run `git init -b main`, review files, commit, and retry. An eligible new or existing App activates managed source on sync when no remote exists. |
|
|
196
216
|
| `bkper.yaml` below Git root | Keep the monorepo/external workflow; managed monorepos are not supported. |
|
|
197
217
|
| No commits | Review, then run `git add .` and `git commit -m "Initial app"`. |
|
|
198
218
|
| Detached `HEAD` | Attach a branch with `git switch -c <branch>`; use `main` for first activation. |
|
|
@@ -515,7 +535,7 @@ Inside the interactive agent:
|
|
|
515
535
|
- `app clone <appId> [path]` - Clone a Bkper-managed App source repository. Does not install dependencies; run `bun install` explicitly afterward. External-source Apps must be cloned from their provider instead.
|
|
516
536
|
- `app git-credential <appId> [operation]` - Internal noninteractive Git credential helper for managed Artifacts source. Generated repository config pins the App ID and exact remote URL/path; Git appends `get`, `store`, or `erase`. Never persists tokens.
|
|
517
537
|
- `app list` - List all apps you have access to
|
|
518
|
-
- `app sync` - Sync [bkper.yaml][bkper.yaml reference] configuration.
|
|
538
|
+
- `app sync` - Sync [bkper.yaml][bkper.yaml reference] configuration. For an eligible standalone repository with no remote, activate managed source for a new or existing App; existing migrations atomically upload all local branches and tags. If already managed, cleanly fast-forward-push the current committed branch first.
|
|
519
539
|
- `app build` - Build the server Worker bundle for deployment
|
|
520
540
|
- `app deploy` - For managed Apps, cleanly fast-forward-push and verify the current commit, then explicitly deploy the existing local build. External Apps keep direct upload behavior.
|
|
521
541
|
- `-p, --preview` - Deploy to preview environment
|