@on-par/factory-core 0.9.7-next.24 → 0.9.7-next.26
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/blockers/file-blocker.d.ts +2 -0
- package/dist/blockers/file-blocker.d.ts.map +1 -1
- package/dist/blockers/file-blocker.js +2 -0
- package/dist/blockers/file-blocker.js.map +1 -1
- package/dist/blockers/index.d.ts +3 -1
- package/dist/blockers/index.d.ts.map +1 -1
- package/dist/blockers/index.js +2 -1
- package/dist/blockers/index.js.map +1 -1
- package/dist/blockers/poller.d.ts +37 -0
- package/dist/blockers/poller.d.ts.map +1 -0
- package/dist/blockers/poller.js +111 -0
- package/dist/blockers/poller.js.map +1 -0
- package/dist/config/example.d.ts.map +1 -1
- package/dist/config/example.js +18 -0
- package/dist/config/example.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +3 -3
- package/dist/config/index.js.map +1 -1
- package/dist/config/repo-harnesses.d.ts +43 -0
- package/dist/config/repo-harnesses.d.ts.map +1 -0
- package/dist/config/repo-harnesses.js +20 -0
- package/dist/config/repo-harnesses.js.map +1 -0
- package/dist/config/repo.d.ts +38 -7
- package/dist/config/repo.d.ts.map +1 -1
- package/dist/config/repo.js +9 -9
- package/dist/config/repo.js.map +1 -1
- package/dist/daemon/execution-config.d.ts +33 -0
- package/dist/daemon/execution-config.d.ts.map +1 -1
- package/dist/daemon/run-runtime.d.ts +33 -0
- package/dist/daemon/run-runtime.d.ts.map +1 -1
- package/dist/harness/catalog.d.ts +2 -0
- package/dist/harness/catalog.d.ts.map +1 -1
- package/dist/harness/catalog.js +4 -0
- package/dist/harness/catalog.js.map +1 -1
- package/dist/internal.d.ts +2 -2
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +2 -0
- package/dist/internal.js.map +1 -1
- package/dist/queue/queue-backend.d.ts +6 -1
- package/dist/queue/queue-backend.d.ts.map +1 -1
- package/dist/queue/queue-backend.js +7 -1
- package/dist/queue/queue-backend.js.map +1 -1
- package/dist/queue/unpark.d.ts +28 -0
- package/dist/queue/unpark.d.ts.map +1 -0
- package/dist/queue/unpark.js +69 -0
- package/dist/queue/unpark.js.map +1 -0
- package/dist/run/park-comment.d.ts +18 -0
- package/dist/run/park-comment.d.ts.map +1 -1
- package/dist/run/park-comment.js +66 -13
- package/dist/run/park-comment.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// packages/core/src/queue/queue-backend.ts — Backend-agnostic queue seam; GitHub-labels is today's only implementation (#1499).
|
|
2
|
+
import { pollBlockedParks } from '../blockers/poller.js';
|
|
2
3
|
import { createGithubQueue, } from './github-queue.js';
|
|
3
4
|
import { releaseStaleClaims } from './stale-claims.js';
|
|
4
5
|
export function createGithubQueueBackend(options) {
|
|
@@ -16,6 +17,11 @@ export function createGithubQueueBackend(options) {
|
|
|
16
17
|
async function reap() {
|
|
17
18
|
return releaseStaleClaims({ client, owner, repo, now });
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
+
async function pollParks() {
|
|
21
|
+
if (options.blockedParks === undefined)
|
|
22
|
+
return [];
|
|
23
|
+
return pollBlockedParks({ client, owner, repo, store: options.blockedParks });
|
|
24
|
+
}
|
|
25
|
+
return { claimNext: queue.claimNext, release: queue.release, list, reap, pollBlockedParks: pollParks };
|
|
20
26
|
}
|
|
21
27
|
//# sourceMappingURL=queue-backend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-backend.js","sourceRoot":"","sources":["../../src/queue/queue-backend.ts"],"names":[],"mappings":"AAAA,gIAAgI;AAEhI,OAAO,EACL,iBAAiB,GAIlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAA0B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"queue-backend.js","sourceRoot":"","sources":["../../src/queue/queue-backend.ts"],"names":[],"mappings":"AAAA,gIAAgI;AAEhI,OAAO,EAAqD,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EACL,iBAAiB,GAIlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAA0B,MAAM,mBAAmB,CAAC;AAiB/E,MAAM,UAAU,wBAAwB,CAAC,OAAkC;IACzE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAEzC,KAAK,UAAU,IAAI,CAAC,IAAa;QAC/B,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,UAAU,SAAS;QACtB,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QAClD,OAAO,gBAAgB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;AACzG,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type QueueGitHubClient } from './github-queue.js';
|
|
2
|
+
export type UnparkErrorCode = 'not-parked' | 'lane-required' | 'unpark-failed';
|
|
3
|
+
export declare class UnparkError extends Error {
|
|
4
|
+
readonly code: UnparkErrorCode;
|
|
5
|
+
constructor(code: UnparkErrorCode, message: string);
|
|
6
|
+
}
|
|
7
|
+
/** `factory unpark --json` payload (#2277). Additive changes only; bump schemaVersion on a breaking change. */
|
|
8
|
+
export interface UnparkJson {
|
|
9
|
+
schemaVersion: 1;
|
|
10
|
+
ok: true;
|
|
11
|
+
action: 'unpark';
|
|
12
|
+
issue: number;
|
|
13
|
+
/** Slug actually routed to (the factory:lane:<slug> suffix). */
|
|
14
|
+
lane: string;
|
|
15
|
+
/** The one order position assigned. */
|
|
16
|
+
order: number;
|
|
17
|
+
labelsBefore: string[];
|
|
18
|
+
labelsAfter: string[];
|
|
19
|
+
}
|
|
20
|
+
export interface UnparkInput {
|
|
21
|
+
client: QueueGitHubClient;
|
|
22
|
+
owner: string;
|
|
23
|
+
repo: string;
|
|
24
|
+
issue: number;
|
|
25
|
+
lane?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function runUnpark(input: UnparkInput): Promise<UnparkJson>;
|
|
28
|
+
//# sourceMappingURL=unpark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unpark.d.ts","sourceRoot":"","sources":["../../src/queue/unpark.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,eAAe,GAAG,eAAe,CAAC;AAE/E,qBAAa,WAAY,SAAQ,KAAK;IAElC,QAAQ,CAAC,IAAI,EAAE,eAAe;IADhC,YACW,IAAI,EAAE,eAAe,EAC9B,OAAO,EAAE,MAAM,EAIhB;CACF;AAED,+GAA+G;AAC/G,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAMD,wBAAsB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAwDvE"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// packages/core/src/queue/unpark.ts — re-queue a factory:parked issue; parked label removed last (#2277, #2318, ADR-0044).
|
|
2
|
+
import { createGithubQueue, LANE_LABEL_PREFIX, laneLabel, PARKED_LABEL, QUEUE_ORDER_LABEL_PREFIX, } from './github-queue.js';
|
|
3
|
+
export class UnparkError extends Error {
|
|
4
|
+
code;
|
|
5
|
+
constructor(code, message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.code = code;
|
|
8
|
+
this.name = 'UnparkError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function message(err) {
|
|
12
|
+
return err instanceof Error ? err.message : String(err);
|
|
13
|
+
}
|
|
14
|
+
export async function runUnpark(input) {
|
|
15
|
+
const { client, owner, repo, issue } = input;
|
|
16
|
+
const ref = { owner, repo, issue_number: issue };
|
|
17
|
+
try {
|
|
18
|
+
const labelsBefore = await client.getIssueLabels(ref);
|
|
19
|
+
if (!labelsBefore.includes(PARKED_LABEL)) {
|
|
20
|
+
throw new UnparkError('not-parked', `#${issue} is not labelled ${PARKED_LABEL}`);
|
|
21
|
+
}
|
|
22
|
+
const existing = labelsBefore
|
|
23
|
+
.filter((l) => l.startsWith(LANE_LABEL_PREFIX))
|
|
24
|
+
.map((l) => l.slice(LANE_LABEL_PREFIX.length))
|
|
25
|
+
.filter((s) => s !== '');
|
|
26
|
+
let lane;
|
|
27
|
+
if (input.lane !== undefined && input.lane.trim() !== '') {
|
|
28
|
+
lane = laneLabel(input.lane.trim()).slice(LANE_LABEL_PREFIX.length);
|
|
29
|
+
}
|
|
30
|
+
else if (existing.length === 1) {
|
|
31
|
+
lane = existing[0];
|
|
32
|
+
}
|
|
33
|
+
else if (existing.length === 0) {
|
|
34
|
+
throw new UnparkError('lane-required', `#${issue} has no ${LANE_LABEL_PREFIX}* label; pass --lane <lane>`);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
throw new UnparkError('lane-required', `#${issue} has several lane labels (${existing.join(', ')}); pass --lane <lane>`);
|
|
38
|
+
}
|
|
39
|
+
const keepLane = laneLabel(lane);
|
|
40
|
+
for (const name of labelsBefore) {
|
|
41
|
+
if (name.startsWith(QUEUE_ORDER_LABEL_PREFIX) || (name.startsWith(LANE_LABEL_PREFIX) && name !== keepLane)) {
|
|
42
|
+
await client.removeLabel({ ...ref, name });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const [r] = await createGithubQueue({ client, owner, repo }).enqueue(lane, [issue]);
|
|
46
|
+
if (r === undefined || r.outcome !== 'queued' || r.position === undefined) {
|
|
47
|
+
throw new UnparkError('unpark-failed', r?.detail ?? `enqueue returned ${r?.outcome}`);
|
|
48
|
+
}
|
|
49
|
+
// Remove the parked label last so a failed run can simply be repeated.
|
|
50
|
+
await client.removeLabel({ ...ref, name: PARKED_LABEL });
|
|
51
|
+
const labelsAfter = await client.getIssueLabels(ref);
|
|
52
|
+
return {
|
|
53
|
+
schemaVersion: 1,
|
|
54
|
+
ok: true,
|
|
55
|
+
action: 'unpark',
|
|
56
|
+
issue,
|
|
57
|
+
lane,
|
|
58
|
+
order: r.position,
|
|
59
|
+
labelsBefore: [...labelsBefore],
|
|
60
|
+
labelsAfter,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
if (err instanceof UnparkError)
|
|
65
|
+
throw err;
|
|
66
|
+
throw new UnparkError('unpark-failed', message(err));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=unpark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unpark.js","sourceRoot":"","sources":["../../src/queue/unpark.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ export interface ParkCommentInput {
|
|
|
10
10
|
lane?: string;
|
|
11
11
|
parkSha?: string;
|
|
12
12
|
blockers?: readonly number[];
|
|
13
|
+
autoUnparks?: number;
|
|
14
|
+
status?: string;
|
|
13
15
|
}
|
|
14
16
|
/** `reason` is a plain string because the parser reads untrusted text. */
|
|
15
17
|
export interface ParkState {
|
|
@@ -19,6 +21,9 @@ export interface ParkState {
|
|
|
19
21
|
branch?: string;
|
|
20
22
|
parkSha?: string;
|
|
21
23
|
blockers: number[];
|
|
24
|
+
/** Times the blocked-park poller re-queued this issue; 0 when the line is absent or malformed. */
|
|
25
|
+
autoUnparks: number;
|
|
26
|
+
status?: string;
|
|
22
27
|
}
|
|
23
28
|
export interface ParkStateComment {
|
|
24
29
|
id: number;
|
|
@@ -27,8 +32,21 @@ export interface ParkStateComment {
|
|
|
27
32
|
export declare function issueStateMarker(issue: number): string;
|
|
28
33
|
export declare function parkUnblockHint(reason: ParkReason, issue: number): string;
|
|
29
34
|
export declare function renderParkComment(input: ParkCommentInput): string;
|
|
35
|
+
export interface ParkCommentPatch {
|
|
36
|
+
reason?: ParkReason;
|
|
37
|
+
status?: string;
|
|
38
|
+
autoUnparks?: number;
|
|
39
|
+
}
|
|
40
|
+
/** Rewrites the state block (and the unblock hint on a reason change) in place; null when there is no state block. */
|
|
41
|
+
export declare function patchParkComment(body: string, issue: number, patch: ParkCommentPatch): string | null;
|
|
30
42
|
/** Lowest-id marked comment decides; null when none, or when its state block is unreadable. */
|
|
31
43
|
export declare function readParkState(comments: readonly ParkStateComment[], issue?: number): ParkState | null;
|
|
44
|
+
/** The lowest-id marker comment written by the authenticated user, or undefined. */
|
|
45
|
+
export declare function findOwnParkComment(deps: {
|
|
46
|
+
octokit: Octokit;
|
|
47
|
+
repo: string;
|
|
48
|
+
issue: number;
|
|
49
|
+
}): Promise<ParkStateComment | undefined>;
|
|
32
50
|
export declare function upsertParkComment(deps: {
|
|
33
51
|
octokit: Octokit;
|
|
34
52
|
repo: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"park-comment.d.ts","sourceRoot":"","sources":["../../src/run/park-comment.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"park-comment.d.ts","sourceRoot":"","sources":["../../src/run/park-comment.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,0EAA0E;AAC1E,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kGAAkG;IAClG,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAeD,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzE;AAQD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CA4BjE;AA8CD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,sHAAsH;AACtH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAmBpG;AAED,+FAA+F;AAC/F,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CASrG;AAED,oFAAoF;AACpF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAsBxC;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,CAAC;CACzB,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAanD;AAED,kFAAkF;AAClF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAClD,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB5F"}
|
package/dist/run/park-comment.js
CHANGED
|
@@ -32,14 +32,19 @@ function clean(v) {
|
|
|
32
32
|
}
|
|
33
33
|
export function renderParkComment(input) {
|
|
34
34
|
const blockers = input.blockers ?? [];
|
|
35
|
-
const
|
|
35
|
+
const stateLines = [
|
|
36
36
|
`reason: ${clean(input.reason)}`,
|
|
37
37
|
`lane: ${(input.lane && clean(input.lane)) || '-'}`,
|
|
38
38
|
`run: ${clean(input.runId)}`,
|
|
39
39
|
`branch: ${clean(input.branch)}`,
|
|
40
40
|
`park-sha: ${(input.parkSha && clean(input.parkSha)) || '-'}`,
|
|
41
41
|
`blockers: ${blockers.length > 0 ? blockers.map((n) => `#${n}`).join(', ') : '-'}`,
|
|
42
|
-
]
|
|
42
|
+
];
|
|
43
|
+
if (input.autoUnparks !== undefined && input.autoUnparks > 0)
|
|
44
|
+
stateLines.push(`auto-unparks: ${input.autoUnparks}`);
|
|
45
|
+
if (input.status)
|
|
46
|
+
stateLines.push(`status: ${clean(input.status)}`);
|
|
47
|
+
const stateBlock = stateLines.join('\n');
|
|
43
48
|
return [
|
|
44
49
|
'### Factory park state',
|
|
45
50
|
'',
|
|
@@ -56,7 +61,7 @@ export function renderParkComment(input) {
|
|
|
56
61
|
issueStateMarker(input.issue),
|
|
57
62
|
].join('\n');
|
|
58
63
|
}
|
|
59
|
-
function
|
|
64
|
+
function findStateFence(body) {
|
|
60
65
|
const lines = body.split('\n');
|
|
61
66
|
const heading = lines.indexOf(STATE_HEADING);
|
|
62
67
|
if (heading === -1)
|
|
@@ -68,6 +73,13 @@ function parseStateBlock(body) {
|
|
|
68
73
|
const close = lines.indexOf(lines[open], open + 1);
|
|
69
74
|
if (close === -1)
|
|
70
75
|
return null;
|
|
76
|
+
return { lines, open, close };
|
|
77
|
+
}
|
|
78
|
+
function parseStateBlock(body) {
|
|
79
|
+
const fence = findStateFence(body);
|
|
80
|
+
if (fence === null)
|
|
81
|
+
return null;
|
|
82
|
+
const { lines, open, close } = fence;
|
|
71
83
|
const values = new Map();
|
|
72
84
|
for (const line of lines.slice(open + 1, close)) {
|
|
73
85
|
const sep = line.indexOf(':');
|
|
@@ -83,6 +95,8 @@ function parseStateBlock(body) {
|
|
|
83
95
|
return v === undefined || v === '' || v === '-' ? undefined : v;
|
|
84
96
|
};
|
|
85
97
|
const blockers = [...(values.get('blockers') ?? '').matchAll(/#(\d+)/g)].map((m) => Number(m[1]));
|
|
98
|
+
const rawAutoUnparks = values.get('auto-unparks') ?? '';
|
|
99
|
+
const autoUnparks = /^\d+$/.test(rawAutoUnparks) && Number.isSafeInteger(Number(rawAutoUnparks)) ? Number(rawAutoUnparks) : 0;
|
|
86
100
|
return {
|
|
87
101
|
reason,
|
|
88
102
|
lane: optional('lane'),
|
|
@@ -90,8 +104,38 @@ function parseStateBlock(body) {
|
|
|
90
104
|
branch: optional('branch'),
|
|
91
105
|
parkSha: optional('park-sha'),
|
|
92
106
|
blockers,
|
|
107
|
+
autoUnparks,
|
|
108
|
+
status: optional('status'),
|
|
93
109
|
};
|
|
94
110
|
}
|
|
111
|
+
/** Rewrites the state block (and the unblock hint on a reason change) in place; null when there is no state block. */
|
|
112
|
+
export function patchParkComment(body, issue, patch) {
|
|
113
|
+
const fence = findStateFence(body);
|
|
114
|
+
if (fence === null)
|
|
115
|
+
return null;
|
|
116
|
+
const { lines, open, close } = fence;
|
|
117
|
+
const inner = lines.slice(open + 1, close);
|
|
118
|
+
const setLine = (key, value) => {
|
|
119
|
+
const at = inner.findIndex((l) => l.slice(0, Math.max(l.indexOf(':'), 0)).trim() === key);
|
|
120
|
+
if (at === -1)
|
|
121
|
+
inner.push(`${key}: ${value}`);
|
|
122
|
+
else
|
|
123
|
+
inner[at] = `${key}: ${value}`;
|
|
124
|
+
};
|
|
125
|
+
if (patch.reason !== undefined)
|
|
126
|
+
setLine('reason', clean(patch.reason));
|
|
127
|
+
if (patch.status !== undefined)
|
|
128
|
+
setLine('status', clean(patch.status));
|
|
129
|
+
if (patch.autoUnparks !== undefined)
|
|
130
|
+
setLine('auto-unparks', String(patch.autoUnparks));
|
|
131
|
+
const out = [...lines.slice(0, open + 1), ...inner, ...lines.slice(close)];
|
|
132
|
+
if (patch.reason !== undefined) {
|
|
133
|
+
const hint = out.findIndex((l) => l.startsWith('**What unblocks this:**'));
|
|
134
|
+
if (hint !== -1)
|
|
135
|
+
out[hint] = `**What unblocks this:** ${parkUnblockHint(patch.reason, issue)}`;
|
|
136
|
+
}
|
|
137
|
+
return out.join('\n');
|
|
138
|
+
}
|
|
95
139
|
/** Lowest-id marked comment decides; null when none, or when its state block is unreadable. */
|
|
96
140
|
export function readParkState(comments, issue) {
|
|
97
141
|
const marked = comments
|
|
@@ -104,33 +148,42 @@ export function readParkState(comments, issue) {
|
|
|
104
148
|
return null;
|
|
105
149
|
return parseStateBlock(marked[0].body);
|
|
106
150
|
}
|
|
107
|
-
|
|
108
|
-
|
|
151
|
+
/** The lowest-id marker comment written by the authenticated user, or undefined. */
|
|
152
|
+
export async function findOwnParkComment(deps) {
|
|
153
|
+
const { octokit, repo, issue } = deps;
|
|
109
154
|
const [owner, name] = repo.split('/');
|
|
110
|
-
const marker = issueStateMarker(
|
|
155
|
+
const marker = issueStateMarker(issue);
|
|
111
156
|
const { data: me } = await octokit.rest.users.getAuthenticated();
|
|
112
157
|
let existing;
|
|
113
158
|
for (let page = 1;; page++) {
|
|
114
159
|
const { data } = await octokit.rest.issues.listComments({
|
|
115
160
|
owner,
|
|
116
161
|
repo: name,
|
|
117
|
-
issue_number:
|
|
162
|
+
issue_number: issue,
|
|
118
163
|
per_page: PAGE_SIZE,
|
|
119
164
|
page,
|
|
120
165
|
});
|
|
121
166
|
for (const comment of data) {
|
|
122
|
-
|
|
167
|
+
const body = comment.body ?? '';
|
|
168
|
+
if (comment.user?.id !== me.id || !body.includes(marker))
|
|
123
169
|
continue;
|
|
124
|
-
if (existing === undefined || comment.id < existing)
|
|
125
|
-
existing = comment.id;
|
|
170
|
+
if (existing === undefined || comment.id < existing.id)
|
|
171
|
+
existing = { id: comment.id, body };
|
|
126
172
|
}
|
|
127
173
|
if (data.length < PAGE_SIZE)
|
|
128
174
|
break;
|
|
129
175
|
}
|
|
130
|
-
|
|
176
|
+
return existing;
|
|
177
|
+
}
|
|
178
|
+
export async function upsertParkComment(deps) {
|
|
179
|
+
const { octokit, repo, input } = deps;
|
|
180
|
+
const [owner, name] = repo.split('/');
|
|
181
|
+
const existing = await findOwnParkComment({ octokit, repo, issue: input.issue });
|
|
182
|
+
const autoUnparks = input.autoUnparks ?? (existing === undefined ? 0 : (readParkState([existing], input.issue)?.autoUnparks ?? 0));
|
|
183
|
+
const body = renderParkComment({ ...input, autoUnparks });
|
|
131
184
|
if (existing !== undefined) {
|
|
132
|
-
await octokit.rest.issues.updateComment({ owner, repo: name, comment_id: existing, body });
|
|
133
|
-
return { commentId: existing, created: false };
|
|
185
|
+
await octokit.rest.issues.updateComment({ owner, repo: name, comment_id: existing.id, body });
|
|
186
|
+
return { commentId: existing.id, created: false };
|
|
134
187
|
}
|
|
135
188
|
const { data } = await octokit.rest.issues.createComment({ owner, repo: name, issue_number: input.issue, body });
|
|
136
189
|
return { commentId: data.id, created: true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"park-comment.js","sourceRoot":"","sources":["../../src/run/park-comment.ts"],"names":[],"mappings":"AAAA,sIAAsI;AACtI,EAAE;AACF,yGAAyG;AACzG,iHAAiH;AAIjH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"park-comment.js","sourceRoot":"","sources":["../../src/run/park-comment.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@on-par/factory-core",
|
|
3
|
-
"version": "0.9.7-next.
|
|
3
|
+
"version": "0.9.7-next.26",
|
|
4
4
|
"description": "Core engine: model router, constitutions, checkers, and pipeline phases for the Software Factory.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -54,10 +54,10 @@
|
|
|
54
54
|
"prepack": "node ../../scripts/pack-hygiene-cli.ts prepack"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@on-par/adr-kit": "0.9.7-next.
|
|
58
|
-
"@on-par/contracts": "0.9.7-next.
|
|
59
|
-
"@on-par/factory-config": "0.9.7-next.
|
|
60
|
-
"@on-par/repo-context": "0.9.7-next.
|
|
57
|
+
"@on-par/adr-kit": "0.9.7-next.26",
|
|
58
|
+
"@on-par/contracts": "0.9.7-next.26",
|
|
59
|
+
"@on-par/factory-config": "0.9.7-next.26",
|
|
60
|
+
"@on-par/repo-context": "0.9.7-next.26",
|
|
61
61
|
"@octokit/rest": "^22.0.0",
|
|
62
62
|
"execa": "^10.1.0",
|
|
63
63
|
"gray-matter": "^4.0.3",
|