@bluewombat/manager-github 0.8.0 → 0.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/README.md +188 -33
- package/SPECS.md +60 -24
- package/dist/adapter/normalize/intent.d.ts +3 -3
- package/dist/adapter/normalize/intent.d.ts.map +1 -1
- package/dist/adapter/normalize/intent.js +4 -4
- package/dist/adapter/normalize/intent.js.map +1 -1
- package/dist/adapter/normalize/normalize.d.ts +5 -1
- package/dist/adapter/normalize/normalize.d.ts.map +1 -1
- package/dist/adapter/normalize/normalize.js +5 -1
- package/dist/adapter/normalize/normalize.js.map +1 -1
- package/dist/adapter/run/run-adapter.d.ts +1 -1
- package/dist/adapter/run/run-adapter.d.ts.map +1 -1
- package/dist/adapter/run/run-adapter.js +29 -2
- package/dist/adapter/run/run-adapter.js.map +1 -1
- package/dist/adapter/types.d.ts +13 -3
- package/dist/adapter/types.d.ts.map +1 -1
- package/dist/adapter/types.js +1 -1
- package/dist/adapter/types.js.map +1 -1
- package/dist/emitter/event/field-matrix.d.ts +1 -1
- package/dist/emitter/event/field-matrix.d.ts.map +1 -1
- package/dist/emitter/event/field-matrix.js +5 -9
- package/dist/emitter/event/field-matrix.js.map +1 -1
- package/dist/emitter/github/labels.d.ts +3 -4
- package/dist/emitter/github/labels.d.ts.map +1 -1
- package/dist/emitter/github/labels.js +9 -9
- package/dist/emitter/github/labels.js.map +1 -1
- package/dist/emitter/render/render-event.d.ts.map +1 -1
- package/dist/emitter/render/render-event.js +13 -42
- package/dist/emitter/render/render-event.js.map +1 -1
- package/dist/emitter/run/run-emitter.d.ts +1 -1
- package/dist/emitter/run/run-emitter.js +3 -3
- package/dist/emitter/thread/marker.d.ts +1 -1
- package/dist/emitter/thread/marker.d.ts.map +1 -1
- package/dist/emitter/thread/marker.js +1 -1
- package/dist/emitter/thread/marker.js.map +1 -1
- package/dist/emitter/types.d.ts +8 -10
- package/dist/emitter/types.d.ts.map +1 -1
- package/dist/emitter/types.js +1 -1
- package/dist/emitter/types.js.map +1 -1
- package/dist/github/blockers.d.ts +24 -0
- package/dist/github/blockers.d.ts.map +1 -0
- package/dist/github/blockers.js +50 -0
- package/dist/github/blockers.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +164 -45
- package/dist/index.js.map +1 -1
- package/dist/label-colors.d.ts +26 -0
- package/dist/label-colors.d.ts.map +1 -0
- package/dist/label-colors.js +51 -0
- package/dist/label-colors.js.map +1 -0
- package/dist/listener/delivery/process-tree.d.ts +1 -1
- package/dist/listener/delivery/process-tree.js +1 -1
- package/dist/listener/run/run-listener.d.ts +1 -1
- package/dist/listener/run/run-listener.js +1 -1
- package/dist/listener/source/select-events.d.ts +6 -1
- package/dist/listener/source/select-events.d.ts.map +1 -1
- package/dist/listener/source/select-events.js +9 -2
- package/dist/listener/source/select-events.js.map +1 -1
- package/dist/listener/types.d.ts +1 -1
- package/dist/listener/types.d.ts.map +1 -1
- package/dist/listener/types.js +1 -1
- package/dist/listener/types.js.map +1 -1
- package/dist/manager.d.ts +28 -8
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +152 -95
- package/dist/manager.js.map +1 -1
- package/dist/settled.d.ts +5 -4
- package/dist/settled.d.ts.map +1 -1
- package/dist/settled.js +7 -7
- package/dist/settled.js.map +1 -1
- package/dist/setup.d.ts +33 -8
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +117 -19
- package/dist/setup.js.map +1 -1
- package/dist/state-labels.d.ts +23 -0
- package/dist/state-labels.d.ts.map +1 -0
- package/dist/state-labels.js +55 -0
- package/dist/state-labels.js.map +1 -0
- package/dist/submission/lines.d.ts +19 -0
- package/dist/submission/lines.d.ts.map +1 -0
- package/dist/submission/lines.js +91 -0
- package/dist/submission/lines.js.map +1 -0
- package/dist/submission/submission.d.ts +16 -6
- package/dist/submission/submission.d.ts.map +1 -1
- package/dist/submission/submission.js +53 -7
- package/dist/submission/submission.js.map +1 -1
- package/dist/tickets/list-tickets.d.ts +29 -0
- package/dist/tickets/list-tickets.d.ts.map +1 -0
- package/dist/tickets/list-tickets.js +98 -0
- package/dist/tickets/list-tickets.js.map +1 -0
- package/dist/written-fingerprint.d.ts +2 -1
- package/dist/written-fingerprint.d.ts.map +1 -1
- package/dist/written-fingerprint.js +3 -3
- package/dist/written-fingerprint.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { EVENT_NAMES } from "@bluewombat/manager-kit";
|
|
2
|
+
/**
|
|
3
|
+
* What `labelColors` can colour. Keys name what a label is for, never the label itself, so
|
|
4
|
+
* renaming a label (`stateLabels`, `resumeLabel`, ...) does not lose its colour.
|
|
5
|
+
*
|
|
6
|
+
* One key per label, none for a group: `feature-ready`, `ticket-ready` and `merge-when-ready`
|
|
7
|
+
* for the three ready labels, `no-tests` for the label that skips the tests written first,
|
|
8
|
+
* `e2e` for the Ticket that holds the acceptance suite, `skip-test-e2e` for the Feature that
|
|
9
|
+
* is not put through it,
|
|
10
|
+
* `resume` for the resume label, `project` for the
|
|
11
|
+
* `project:<name>` label, and `state-<event>` for the label of each Event. When the Feature and
|
|
12
|
+
* the Ticket ready labels are one label (the same name), `feature-ready` colours it.
|
|
13
|
+
*/
|
|
14
|
+
export const LABEL_COLOR_KEYS = [
|
|
15
|
+
"feature-ready",
|
|
16
|
+
"ticket-ready",
|
|
17
|
+
"merge-when-ready",
|
|
18
|
+
"no-tests",
|
|
19
|
+
"e2e",
|
|
20
|
+
"skip-test-e2e",
|
|
21
|
+
"resume",
|
|
22
|
+
"project",
|
|
23
|
+
...EVENT_NAMES.map((event) => `state-${event}`),
|
|
24
|
+
];
|
|
25
|
+
const HEX = /^#?([0-9a-fA-F]{6})$/;
|
|
26
|
+
/** The colours from the `labelColors` option. A colour is six hex digits, with or without `#`. */
|
|
27
|
+
export function resolveLabelColors(named) {
|
|
28
|
+
if (named === undefined) {
|
|
29
|
+
return { ok: true, colors: undefined };
|
|
30
|
+
}
|
|
31
|
+
const known = new Set(LABEL_COLOR_KEYS);
|
|
32
|
+
const colors = {};
|
|
33
|
+
for (const [key, value] of Object.entries(named)) {
|
|
34
|
+
if (!known.has(key)) {
|
|
35
|
+
return {
|
|
36
|
+
ok: false,
|
|
37
|
+
reason: `"labelColors" names "${key}", which is not something a label is for (${LABEL_COLOR_KEYS.join(", ")}).`,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const match = HEX.exec(value.trim());
|
|
41
|
+
if (match?.[1] === undefined) {
|
|
42
|
+
return {
|
|
43
|
+
ok: false,
|
|
44
|
+
reason: `"labelColors.${key}" must be six hex digits, like "1d76db"; got "${value}".`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
colors[key] = match[1].toLowerCase();
|
|
48
|
+
}
|
|
49
|
+
return { ok: true, colors };
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=label-colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label-colors.js","sourceRoot":"","sources":["../src/label-colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,eAAe;IACf,cAAc;IACd,kBAAkB;IAClB,UAAU;IACV,KAAK;IACL,eAAe;IACf,QAAQ;IACR,SAAS;IACT,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,KAAK,EAAW,CAAC;CAChD,CAAC;AAUX,MAAM,GAAG,GAAG,sBAAsB,CAAC;AAEnC,kGAAkG;AAClG,MAAM,UAAU,kBAAkB,CAAC,KAAyC;IAC1E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACzC,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAS,gBAAgB,CAAC,CAAC;IAChD,MAAM,MAAM,GAA2C,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,wBAAwB,GAAG,6CAA6C,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;aAChH,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,gBAAgB,GAAG,iDAAiD,KAAK,IAAI;aACtF,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAoB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -5,7 +5,7 @@ export declare function ownGroup(): {
|
|
|
5
5
|
};
|
|
6
6
|
/**
|
|
7
7
|
* Remember a running child so it does not outlive this process: a group of its
|
|
8
|
-
* own
|
|
8
|
+
* own does not share the terminal's Ctrl-C, nor die by accident with us.
|
|
9
9
|
* Forgotten on its own once it closes.
|
|
10
10
|
*/
|
|
11
11
|
export declare function track(child: ChildProcess): void;
|
|
@@ -35,7 +35,7 @@ export function ownGroup() {
|
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* Remember a running child so it does not outlive this process: a group of its
|
|
38
|
-
* own
|
|
38
|
+
* own does not share the terminal's Ctrl-C, nor die by accident with us.
|
|
39
39
|
* Forgotten on its own once it closes.
|
|
40
40
|
*/
|
|
41
41
|
export function track(child) {
|
|
@@ -29,7 +29,7 @@ export type RunOptions = {
|
|
|
29
29
|
};
|
|
30
30
|
export declare function invalidInvocationResult(write: ProgressWriter, reason: string): RunResult;
|
|
31
31
|
/**
|
|
32
|
-
* Run one
|
|
32
|
+
* Run one Listener invocation to a run outcome.
|
|
33
33
|
*/
|
|
34
34
|
export declare function runListener(options: RunOptions): Promise<RunResult>;
|
|
35
35
|
//# sourceMappingURL=run-listener.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cursor arithmetic over what the Source listed. Pure: no request is made here,
|
|
3
|
-
* so ordering, cursor filtering, and the pull-request
|
|
3
|
+
* so ordering, cursor filtering, and the pull-request and sub-issue filters are testable from
|
|
4
4
|
* a list of objects.
|
|
5
5
|
*/
|
|
6
6
|
import type { Cursor, SkipReason } from "../types.js";
|
|
@@ -19,6 +19,11 @@ export declare function compareCursors(left: Cursor, right: Cursor): number;
|
|
|
19
19
|
* `/issues`, and only the tracker half is what this Block subscribes to.
|
|
20
20
|
*/
|
|
21
21
|
export declare function isPullRequest(entry: Record<string, unknown>): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* A sub-issue is a Ticket, read through its Feature. Only a top-level issue is
|
|
24
|
+
* a Feature, which is what lets a Feature and its Tickets carry the same label.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isSubIssue(entry: Record<string, unknown>): boolean;
|
|
22
27
|
export type CursorOfResult = {
|
|
23
28
|
ok: true;
|
|
24
29
|
cursor: Cursor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-events.d.ts","sourceRoot":"","sources":["../../../src/listener/source/select-events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWvD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQlE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAErE;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAUvE;AAED,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,CAoCvF"}
|
|
1
|
+
{"version":3,"file":"select-events.d.ts","sourceRoot":"","sources":["../../../src/listener/source/select-events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWvD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQlE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAErE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAElE;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAUvE;AAED,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,CAoCvF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cursor arithmetic over what the Source listed. Pure: no request is made here,
|
|
3
|
-
* so ordering, cursor filtering, and the pull-request
|
|
3
|
+
* so ordering, cursor filtering, and the pull-request and sub-issue filters are testable from
|
|
4
4
|
* a list of objects.
|
|
5
5
|
*/
|
|
6
6
|
export const CURSOR_SEPARATOR = "#";
|
|
@@ -41,6 +41,13 @@ export function compareCursors(left, right) {
|
|
|
41
41
|
export function isPullRequest(entry) {
|
|
42
42
|
return entry.pull_request !== undefined;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* A sub-issue is a Ticket, read through its Feature. Only a top-level issue is
|
|
46
|
+
* a Feature, which is what lets a Feature and its Tickets carry the same label.
|
|
47
|
+
*/
|
|
48
|
+
export function isSubIssue(entry) {
|
|
49
|
+
return typeof entry.parent_issue_url === "string";
|
|
50
|
+
}
|
|
44
51
|
/** The two fields an Event must carry to be placed in the order. */
|
|
45
52
|
export function cursorOf(entry) {
|
|
46
53
|
const number = entry.number;
|
|
@@ -71,7 +78,7 @@ export function selectEvents(entries, since) {
|
|
|
71
78
|
continue;
|
|
72
79
|
}
|
|
73
80
|
const issue = entry;
|
|
74
|
-
if (isPullRequest(issue)) {
|
|
81
|
+
if (isPullRequest(issue) || isSubIssue(issue)) {
|
|
75
82
|
continue;
|
|
76
83
|
}
|
|
77
84
|
const cursor = cursorOf(issue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-events.js","sourceRoot":"","sources":["../../../src/listener/source/select-events.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"select-events.js","sourceRoot":"","sources":["../../../src/listener/source/select-events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,GAAG,MAAM,CAAC,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACrD,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAa;IACxD,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAA8B;IAC1D,OAAO,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAA8B;IACvD,OAAO,OAAO,KAAK,CAAC,gBAAgB,KAAK,QAAQ,CAAC;AACpD,CAAC;AAMD,oEAAoE;AACpE,MAAM,UAAU,QAAQ,CAAC,KAA8B;IACrD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC;IACnC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC;IAC9F,CAAC;IACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,MAAM,2BAA2B,EAAE,CAAC;IACjG,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;AACrD,CAAC;AAMD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAkB,EAAE,KAAyB;IACxE,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAyE,EAAE,CAAC;IAExF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,qBAAqB,QAAQ,CAAC,KAAK,CAAC,iBAAiB;aAC9D,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,KAAgC,CAAC;QAC/C,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3E,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAChE,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,OAAO;QACL,GAAG,KAAK;QACR,GAAG,MAAM,CAAC,GAAG,CACX,CAAC,KAAK,EAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CACtF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,OAAO,KAAK,EAAE,CAAC;AAC7B,CAAC"}
|
package/dist/listener/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Domain types owned by
|
|
1
|
+
/** Domain types owned by Listener. Names match the Block perimeter only. */
|
|
2
2
|
export type RunOutcome = "completed" | "source-lost" | "invalid-invocation" | "interrupted";
|
|
3
3
|
export type StopReason = "drained" | "max-events" | "duration" | "source-lost" | "signal";
|
|
4
4
|
export type SkipReason = "not-object" | "no-cursor";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/listener/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/listener/types.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,oBAAoB,GAAG,aAAa,CAAC;AAE5F,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE1F,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,CAAC;AAEpD,2CAA2C;AAC3C,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEnD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,oEAAoE;IACpE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW;AACrB,mGAAmG;AACnG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF,kFAAkF;AAClF,MAAM,MAAM,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,qEAAqE;AACrE,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
package/dist/listener/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/listener/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/listener/types.ts"],"names":[],"mappings":"AAAA,4EAA4E"}
|
package/dist/manager.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Manager } from "@bluewombat/manager-kit";
|
|
2
2
|
import type { Repository } from "./repo.js";
|
|
3
|
+
import type { StateLabels } from "./state-labels.js";
|
|
3
4
|
export declare const DEFAULT_API_BASE = "https://api.github.com";
|
|
4
5
|
export declare const DEFAULT_TOKEN_ENV = "GITHUB_TOKEN";
|
|
5
|
-
export declare const
|
|
6
|
+
export declare const DEFAULT_RESUME_LABEL = "to-resume";
|
|
7
|
+
export declare const DEFAULT_FEATURE_READY_LABEL = "feature-ready";
|
|
8
|
+
export declare const DEFAULT_TICKET_READY_LABEL = "task-ready";
|
|
9
|
+
export declare const DEFAULT_NO_TESTS_LABEL = "no-tests";
|
|
10
|
+
export declare const DEFAULT_E2E_LABEL = "e2e";
|
|
11
|
+
export declare const DEFAULT_SKIP_TEST_E2E_LABEL = "skip-test-e2e";
|
|
12
|
+
export declare const DEFAULT_MERGE_WHEN_READY_LABEL = "merge-when-ready";
|
|
6
13
|
export declare const DEFAULT_PRIORITY = 50;
|
|
7
14
|
export type GithubManagerOptions = {
|
|
8
15
|
repo: Repository;
|
|
@@ -12,18 +19,31 @@ export type GithubManagerOptions = {
|
|
|
12
19
|
interrupted: boolean;
|
|
13
20
|
};
|
|
14
21
|
apiBase?: string;
|
|
15
|
-
labels?: string[];
|
|
16
22
|
defaultProject?: string;
|
|
17
|
-
|
|
23
|
+
resumeLabel?: string;
|
|
24
|
+
/** On a Feature: its content is final, so its Tickets may be made. */
|
|
25
|
+
featureReadyLabel?: string;
|
|
26
|
+
/** On a Ticket: its specification is final. */
|
|
27
|
+
ticketReadyLabel?: string;
|
|
28
|
+
/** On a Ticket: no tests are written before its code. */
|
|
29
|
+
noTestsLabel?: string;
|
|
30
|
+
/** On a Ticket: it holds the e2e acceptance suite of its Feature. */
|
|
31
|
+
e2eLabel?: string;
|
|
32
|
+
/** On a Feature: it is not put through the e2e acceptance check. */
|
|
33
|
+
skipTestE2eLabel?: string;
|
|
34
|
+
/** On a Feature: its line may be folded without a human. */
|
|
35
|
+
mergeWhenReadyLabel?: string;
|
|
18
36
|
defaultPriority?: number;
|
|
19
|
-
|
|
20
|
-
|
|
37
|
+
/** When set, each Event also lands on the issue as its label. */
|
|
38
|
+
stateLabels?: StateLabels;
|
|
39
|
+
/** Leave the ticket branch on the remote after a fold. Default: delete it. */
|
|
21
40
|
keepBranch?: boolean;
|
|
22
41
|
/** Replaces the REST API. Tests only. */
|
|
23
42
|
githubFetch?: typeof fetch;
|
|
24
43
|
};
|
|
25
44
|
/**
|
|
26
|
-
* One repository
|
|
45
|
+
* One repository: its issues are the Features and, as sub-issues, their
|
|
46
|
+
* Tickets; its branches are the lines; its pull requests are the Submissions.
|
|
27
47
|
*/
|
|
28
|
-
export declare function createGithubManager(options: GithubManagerOptions):
|
|
48
|
+
export declare function createGithubManager(options: GithubManagerOptions): Manager;
|
|
29
49
|
//# sourceMappingURL=manager.d.ts.map
|
package/dist/manager.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAOV,OAAO,EAQR,MAAM,yBAAyB,CAAC;AAUjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAsBrD,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,eAAO,MAAM,0BAA0B,eAAe,CAAC;AACvD,eAAO,MAAM,sBAAsB,aAAa,CAAC;AACjD,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAC3D,eAAO,MAAM,8BAA8B,qBAAqB,CAAC;AACjE,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE;QAAE,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,KAAK,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAuQ1E"}
|
package/dist/manager.js
CHANGED
|
@@ -7,7 +7,9 @@ import { payloadHasLabel } from "./labels.js";
|
|
|
7
7
|
import { runListener } from "./listener/run/run-listener.js";
|
|
8
8
|
import { probeIssue } from "./probe/probe-issue.js";
|
|
9
9
|
import { settledAlready } from "./settled.js";
|
|
10
|
-
import {
|
|
10
|
+
import { dropLine, openLine, settledPullRequest } from "./submission/lines.js";
|
|
11
|
+
import { behindPullRequest, foldPullRequest, submitPullRequest, } from "./submission/submission.js";
|
|
12
|
+
import { listTickets } from "./tickets/list-tickets.js";
|
|
11
13
|
import { writtenFingerprint } from "./written-fingerprint.js";
|
|
12
14
|
const silent = () => { };
|
|
13
15
|
const MANAGER = "github";
|
|
@@ -21,16 +23,28 @@ const DEFAULT_PRIORITY_LABEL_PREFIX = "priority:";
|
|
|
21
23
|
const MAX_REPORT_CHARS = 8_000;
|
|
22
24
|
export const DEFAULT_API_BASE = "https://api.github.com";
|
|
23
25
|
export const DEFAULT_TOKEN_ENV = "GITHUB_TOKEN";
|
|
24
|
-
export const
|
|
26
|
+
export const DEFAULT_RESUME_LABEL = "to-resume";
|
|
27
|
+
export const DEFAULT_FEATURE_READY_LABEL = "feature-ready";
|
|
28
|
+
export const DEFAULT_TICKET_READY_LABEL = "task-ready";
|
|
29
|
+
export const DEFAULT_NO_TESTS_LABEL = "no-tests";
|
|
30
|
+
export const DEFAULT_E2E_LABEL = "e2e";
|
|
31
|
+
export const DEFAULT_SKIP_TEST_E2E_LABEL = "skip-test-e2e";
|
|
32
|
+
export const DEFAULT_MERGE_WHEN_READY_LABEL = "merge-when-ready";
|
|
25
33
|
export const DEFAULT_PRIORITY = 50;
|
|
26
34
|
/**
|
|
27
|
-
* One repository
|
|
35
|
+
* One repository: its issues are the Features and, as sub-issues, their
|
|
36
|
+
* Tickets; its branches are the lines; its pull requests are the Submissions.
|
|
28
37
|
*/
|
|
29
38
|
export function createGithubManager(options) {
|
|
30
39
|
const apiBase = options.apiBase ?? DEFAULT_API_BASE;
|
|
31
|
-
const
|
|
40
|
+
const resumeLabel = options.resumeLabel ?? DEFAULT_RESUME_LABEL;
|
|
41
|
+
const featureReadyLabel = options.featureReadyLabel ?? DEFAULT_FEATURE_READY_LABEL;
|
|
42
|
+
const ticketReadyLabel = options.ticketReadyLabel ?? DEFAULT_TICKET_READY_LABEL;
|
|
43
|
+
const noTestsLabel = options.noTestsLabel ?? DEFAULT_NO_TESTS_LABEL;
|
|
44
|
+
const e2eLabel = options.e2eLabel ?? DEFAULT_E2E_LABEL;
|
|
45
|
+
const skipTestE2eLabel = options.skipTestE2eLabel ?? DEFAULT_SKIP_TEST_E2E_LABEL;
|
|
46
|
+
const mergeWhenReadyLabel = options.mergeWhenReadyLabel ?? DEFAULT_MERGE_WHEN_READY_LABEL;
|
|
32
47
|
const defaultPriority = options.defaultPriority ?? DEFAULT_PRIORITY;
|
|
33
|
-
const labels = options.labels ?? [];
|
|
34
48
|
const testNetwork = options.githubFetch !== undefined;
|
|
35
49
|
// One for the life of this manager — one `mason run` — shared by every call,
|
|
36
50
|
// so a tick that finds nothing changed costs no budget.
|
|
@@ -49,39 +63,107 @@ export function createGithubManager(options) {
|
|
|
49
63
|
...(options.githubFetch !== undefined ? { fetch: options.githubFetch } : {}),
|
|
50
64
|
};
|
|
51
65
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
66
|
+
const signalsResume = (payload) => payloadHasLabel(payload, resumeLabel);
|
|
67
|
+
const clearResume = async (key) => {
|
|
68
|
+
const issue = issueNumberFromExternalId(key);
|
|
69
|
+
if (issue === undefined) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const call = createClient(channelOptions());
|
|
73
|
+
try {
|
|
74
|
+
await call.request("DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", {
|
|
75
|
+
owner: options.repo.owner,
|
|
76
|
+
repo: options.repo.name,
|
|
77
|
+
issue_number: issue,
|
|
78
|
+
name: resumeLabel,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// Already gone, or the label was never there. Either way there is
|
|
83
|
+
// nothing left to take back.
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const report = async (input) => {
|
|
87
|
+
// Every key this manager mints ends in `#<issue>`, so the Thread to write
|
|
88
|
+
// on is recoverable without Host carrying an issue number around.
|
|
89
|
+
const issue = issueNumberFromExternalId(input.key);
|
|
90
|
+
if (issue === undefined) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
const emitterInvocation = {
|
|
94
|
+
repo: options.repo,
|
|
95
|
+
issue,
|
|
96
|
+
apiBase,
|
|
97
|
+
event: input.event,
|
|
98
|
+
key: input.key,
|
|
99
|
+
project: input.project,
|
|
100
|
+
at: new Date().toISOString(),
|
|
101
|
+
fields: input.fields,
|
|
102
|
+
maxReportChars: MAX_REPORT_CHARS,
|
|
103
|
+
defaultPriority,
|
|
104
|
+
resumeLabel,
|
|
105
|
+
durationMs: options.durationMs,
|
|
106
|
+
requestRetries: testNetwork ? 0 : DEFAULT_REQUEST_RETRIES,
|
|
107
|
+
dryRun: false,
|
|
108
|
+
};
|
|
109
|
+
if (input.eventId !== undefined) {
|
|
110
|
+
emitterInvocation.eventId = input.eventId;
|
|
111
|
+
}
|
|
112
|
+
if (options.stateLabels !== undefined) {
|
|
113
|
+
emitterInvocation.stateLabels = options.stateLabels;
|
|
114
|
+
}
|
|
115
|
+
const result = await runEmitter({
|
|
116
|
+
invocation: emitterInvocation,
|
|
117
|
+
github: createClient(channelOptions()),
|
|
118
|
+
write: silent,
|
|
119
|
+
interruptFlag: options.interruptFlag,
|
|
120
|
+
});
|
|
121
|
+
// A Thread that already carries this eventId has said it. Counting that
|
|
122
|
+
// as failure made every poll re-ask and film report-declined forever.
|
|
123
|
+
return result.outcome === "reported" || result.outcome === "duplicate";
|
|
124
|
+
};
|
|
125
|
+
const probe = async (key) => {
|
|
126
|
+
const issue = issueNumberFromExternalId(key);
|
|
127
|
+
if (issue === undefined) {
|
|
128
|
+
return "unavailable";
|
|
129
|
+
}
|
|
130
|
+
const now = () => Date.now();
|
|
131
|
+
return await probeIssue({
|
|
132
|
+
github: createClient(channelOptions()),
|
|
133
|
+
repo: options.repo,
|
|
134
|
+
number: issue,
|
|
135
|
+
deadlineMs: now() + options.durationMs,
|
|
136
|
+
now,
|
|
137
|
+
shouldInterrupt: () => options.interruptFlag.interrupted,
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
function submissionContext() {
|
|
141
|
+
const now = () => Date.now();
|
|
142
|
+
return {
|
|
143
|
+
repo: options.repo,
|
|
144
|
+
github: createClient(channelOptions()),
|
|
145
|
+
deadlineMs: now() + options.durationMs,
|
|
146
|
+
now,
|
|
147
|
+
shouldInterrupt: () => options.interruptFlag.interrupted,
|
|
148
|
+
keepBranch: options.keepBranch,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/** Features: the top-level issues that carry the feature-ready label, whatever else they say. */
|
|
152
|
+
const features = {
|
|
153
|
+
signalsResume,
|
|
154
|
+
clearResume,
|
|
155
|
+
probe,
|
|
156
|
+
report,
|
|
75
157
|
async listen(input) {
|
|
76
158
|
const deliveries = [];
|
|
77
|
-
const alreadySettled = (payload) => options.
|
|
78
|
-
settledAlready(payload, options.
|
|
159
|
+
const alreadySettled = (payload) => options.stateLabels !== undefined &&
|
|
160
|
+
settledAlready(payload, options.stateLabels, resumeLabel);
|
|
79
161
|
const listenerInvocation = {
|
|
80
162
|
manager: MANAGER,
|
|
81
163
|
repo: options.repo,
|
|
82
164
|
apiBase,
|
|
83
165
|
state: "all",
|
|
84
|
-
labels,
|
|
166
|
+
labels: [featureReadyLabel],
|
|
85
167
|
follow: false,
|
|
86
168
|
maxEvents: DEFAULT_MAX_EVENTS,
|
|
87
169
|
durationMs: options.durationMs,
|
|
@@ -116,7 +198,9 @@ export function createGithubManager(options) {
|
|
|
116
198
|
maxRawBytes: DEFAULT_MAX_RAW_BYTES,
|
|
117
199
|
projectLabelPrefix: DEFAULT_PROJECT_LABEL_PREFIX,
|
|
118
200
|
priorityLabelPrefix: DEFAULT_PRIORITY_LABEL_PREFIX,
|
|
119
|
-
|
|
201
|
+
resumeLabel,
|
|
202
|
+
mergeWhenReadyLabel,
|
|
203
|
+
skipTestE2eLabel,
|
|
120
204
|
fetch: true,
|
|
121
205
|
fetchDurationMs: options.durationMs,
|
|
122
206
|
requestRetries: testNetwork ? 0 : DEFAULT_REQUEST_RETRIES,
|
|
@@ -137,7 +221,7 @@ export function createGithubManager(options) {
|
|
|
137
221
|
invalid: adapted.invalid,
|
|
138
222
|
key: keyFromPayload(payload, options.repo),
|
|
139
223
|
project: projectFromPayload(payload, options.defaultProject),
|
|
140
|
-
fingerprint: writtenFingerprint(payload, options.
|
|
224
|
+
fingerprint: writtenFingerprint(payload, options.stateLabels),
|
|
141
225
|
};
|
|
142
226
|
}
|
|
143
227
|
if (adapted.outcome === "unavailable" || adapted.outcome === "interrupted") {
|
|
@@ -148,86 +232,59 @@ export function createGithubManager(options) {
|
|
|
148
232
|
}
|
|
149
233
|
return { outcome: "converted", feature: adapted.feature };
|
|
150
234
|
},
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
const
|
|
235
|
+
};
|
|
236
|
+
/** Tickets: the sub-issues of a Feature; the lines and Submissions: branches and pull requests. */
|
|
237
|
+
const tickets = {
|
|
238
|
+
clearResume,
|
|
239
|
+
probe,
|
|
240
|
+
report,
|
|
241
|
+
async tickets(feature) {
|
|
242
|
+
const now = () => Date.now();
|
|
243
|
+
return await listTickets({
|
|
244
|
+
github: createClient(channelOptions()),
|
|
159
245
|
repo: options.repo,
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
event: input.event,
|
|
163
|
-
key: input.key,
|
|
164
|
-
project: input.project,
|
|
165
|
-
at: new Date().toISOString(),
|
|
166
|
-
fields: input.fields,
|
|
167
|
-
maxReportChars: MAX_REPORT_CHARS,
|
|
246
|
+
manager: MANAGER,
|
|
247
|
+
feature,
|
|
168
248
|
defaultPriority,
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
emitterInvocation.labelPrefix = options.stateLabelPrefix;
|
|
179
|
-
}
|
|
180
|
-
const result = await runEmitter({
|
|
181
|
-
invocation: emitterInvocation,
|
|
182
|
-
github: createClient(channelOptions()),
|
|
183
|
-
write: silent,
|
|
184
|
-
interruptFlag: options.interruptFlag,
|
|
249
|
+
projectLabelPrefix: DEFAULT_PROJECT_LABEL_PREFIX,
|
|
250
|
+
priorityLabelPrefix: DEFAULT_PRIORITY_LABEL_PREFIX,
|
|
251
|
+
resumeLabel,
|
|
252
|
+
ticketReadyLabel,
|
|
253
|
+
noTestsLabel,
|
|
254
|
+
e2eLabel,
|
|
255
|
+
deadlineMs: now() + options.durationMs,
|
|
256
|
+
now,
|
|
257
|
+
shouldInterrupt: () => options.interruptFlag.interrupted,
|
|
185
258
|
});
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
return
|
|
259
|
+
},
|
|
260
|
+
async openLine(input) {
|
|
261
|
+
return await openLine(input, submissionContext());
|
|
262
|
+
},
|
|
263
|
+
async dropLine(line) {
|
|
264
|
+
await dropLine(line, submissionContext());
|
|
189
265
|
},
|
|
190
266
|
async submit(input) {
|
|
191
267
|
return await submitPullRequest(input, submissionContext());
|
|
192
268
|
},
|
|
269
|
+
async behind(input) {
|
|
270
|
+
return await behindPullRequest(input.reference, submissionContext());
|
|
271
|
+
},
|
|
193
272
|
async fold(input) {
|
|
194
273
|
return await foldPullRequest(input.reference, submissionContext());
|
|
195
274
|
},
|
|
196
|
-
async
|
|
197
|
-
|
|
198
|
-
if (issue === undefined) {
|
|
199
|
-
return "unavailable";
|
|
200
|
-
}
|
|
201
|
-
const now = () => Date.now();
|
|
202
|
-
return await probeIssue({
|
|
203
|
-
github: createClient(channelOptions()),
|
|
204
|
-
repo: options.repo,
|
|
205
|
-
number: issue,
|
|
206
|
-
deadlineMs: now() + options.durationMs,
|
|
207
|
-
now,
|
|
208
|
-
shouldInterrupt: () => options.interruptFlag.interrupted,
|
|
209
|
-
});
|
|
275
|
+
async settled(input) {
|
|
276
|
+
return await settledPullRequest(input.reference, submissionContext());
|
|
210
277
|
},
|
|
211
278
|
};
|
|
212
|
-
|
|
213
|
-
const now = () => Date.now();
|
|
214
|
-
return {
|
|
215
|
-
repo: options.repo,
|
|
216
|
-
github: createClient(channelOptions()),
|
|
217
|
-
deadlineMs: now() + options.durationMs,
|
|
218
|
-
now,
|
|
219
|
-
shouldInterrupt: () => options.interruptFlag.interrupted,
|
|
220
|
-
keepBranch: options.keepBranch,
|
|
221
|
-
};
|
|
222
|
-
}
|
|
279
|
+
return { features, tickets };
|
|
223
280
|
}
|
|
224
281
|
/**
|
|
225
|
-
* Whether the tracker already says this
|
|
282
|
+
* Whether the tracker already says this Ticket is finished.
|
|
226
283
|
*
|
|
227
284
|
* The WorkLedger is the source of truth, and it is the only memory: lose it and
|
|
228
285
|
* every open issue looks new, so finished work is built and offered a second
|
|
229
286
|
* time. The state label is what the tracker remembers, and reading it back is
|
|
230
|
-
* cheaper than rebuilding a
|
|
287
|
+
* cheaper than rebuilding a Ticket that is already merged. The resume signal
|
|
231
288
|
* overrides it, so a human still has a way to ask for more.
|
|
232
289
|
*/
|
|
233
290
|
function keyFromPayload(payload, repo) {
|
package/dist/manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
|