@bluewombat/manager-github 0.8.0 → 0.9.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 +120 -31
- package/SPECS.md +45 -20
- 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 +4 -1
- package/dist/adapter/normalize/normalize.d.ts.map +1 -1
- package/dist/adapter/normalize/normalize.js +3 -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 +28 -2
- package/dist/adapter/run/run-adapter.js.map +1 -1
- package/dist/adapter/types.d.ts +9 -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 +118 -45
- package/dist/index.js.map +1 -1
- 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 +19 -8
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +139 -94
- 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 +21 -8
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +44 -11
- 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 +5 -5
- package/dist/submission/submission.d.ts.map +1 -1
- package/dist/submission/submission.js +4 -7
- package/dist/submission/submission.js.map +1 -1
- package/dist/tickets/list-tickets.d.ts +27 -0
- package/dist/tickets/list-tickets.d.ts.map +1 -0
- package/dist/tickets/list-tickets.js +95 -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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-adapter.js","sourceRoot":"","sources":["../../../src/adapter/run/run-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-adapter.js","sourceRoot":"","sources":["../../../src/adapter/run/run-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/** Domain types owned by
|
|
1
|
+
/** Domain types owned by Adapter. Names match the Block perimeter only. */
|
|
2
2
|
export type RunOutcome = "converted" | "invalid" | "invalid-invocation" | "unavailable" | "interrupted";
|
|
3
|
-
export type Intent = "upsert" | "
|
|
3
|
+
export type Intent = "upsert" | "resume" | "cancel";
|
|
4
4
|
export type InvalidCode = "raw-too-large" | "raw-not-json" | "raw-not-object" | "not-an-issue" | "unknown-action" | "missing-id" | "missing-project" | "ambiguous-project" | "missing-intention" | "bad-field-type" | "bad-priority";
|
|
5
5
|
export type Repository = {
|
|
6
6
|
owner: string;
|
|
@@ -21,7 +21,9 @@ export type Invocation = {
|
|
|
21
21
|
/** Prefix of the label carrying the priority, e.g. `priority:`. */
|
|
22
22
|
priorityLabelPrefix: string;
|
|
23
23
|
/** Label whose arrival means a human unblocked the intention. */
|
|
24
|
-
|
|
24
|
+
resumeLabel: string;
|
|
25
|
+
/** Label meaning the Feature's line may be folded without a human. */
|
|
26
|
+
mergeWhenReadyLabel: string;
|
|
25
27
|
/** Re-read the issue from the API before normalizing. */
|
|
26
28
|
fetch: boolean;
|
|
27
29
|
fetchDurationMs?: number;
|
|
@@ -48,6 +50,10 @@ export type FeatureStandard = {
|
|
|
48
50
|
title?: string;
|
|
49
51
|
intention?: string;
|
|
50
52
|
priority: number;
|
|
53
|
+
/** Keys of the Features that must be `done` before this one may open. */
|
|
54
|
+
blocked_by: string[];
|
|
55
|
+
/** Its line may be folded without a human. */
|
|
56
|
+
merge_when_ready: boolean;
|
|
51
57
|
source?: {
|
|
52
58
|
ref?: string;
|
|
53
59
|
revision?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapter/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapter/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,MAAM,MAAM,UAAU,GAClB,WAAW,GACX,SAAS,GACT,oBAAoB,GACpB,aAAa,GACb,aAAa,CAAC;AAElB,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpD,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yDAAyD;IACzD,KAAK,EAAE,OAAO,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,WAAW;AACrB,uFAAuF;AACvF;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,8CAA8C;IAC9C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,eAAe,GACvB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,GACtC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC"}
|
package/dist/adapter/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapter/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapter/types.ts"],"names":[],"mappings":"AAAA,2EAA2E"}
|
|
@@ -9,7 +9,7 @@ type Rule = {
|
|
|
9
9
|
};
|
|
10
10
|
/**
|
|
11
11
|
* What each Event accepts. A field outside its row is refused, not dropped:
|
|
12
|
-
* a caller setting `reference` on `
|
|
12
|
+
* a caller setting `reference` on `accepted` has confused two Events, and a
|
|
13
13
|
* report that hides that is worse than a refusal.
|
|
14
14
|
*/
|
|
15
15
|
export declare const FIELD_MATRIX: Record<EventName, Rule>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-matrix.d.ts","sourceRoot":"","sources":["../../../src/emitter/event/field-matrix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC;AAE1C,qEAAqE;AACrE,eAAO,MAAM,WAAW,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"field-matrix.d.ts","sourceRoot":"","sources":["../../../src/emitter/event/field-matrix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC;AAE1C,qEAAqE;AACrE,eAAO,MAAM,WAAW,EAAE,SAAS,EAalC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,SAAS,EAWlC,CAAC;AAEF,KAAK,IAAI,GAAG;IAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAAC,QAAQ,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAwBhD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,gBAAgB,CA4BtF;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAE/C"}
|
|
@@ -5,9 +5,7 @@ export const FIELD_ORDER = [
|
|
|
5
5
|
"stage",
|
|
6
6
|
"trace",
|
|
7
7
|
"counters",
|
|
8
|
-
"plan",
|
|
9
8
|
"priority",
|
|
10
|
-
"unit",
|
|
11
9
|
"remaining",
|
|
12
10
|
"state",
|
|
13
11
|
"resume_point",
|
|
@@ -18,7 +16,6 @@ export const FIELD_ORDER = [
|
|
|
18
16
|
export const EVENT_NAMES = [
|
|
19
17
|
"invalid",
|
|
20
18
|
"accepted",
|
|
21
|
-
"planned",
|
|
22
19
|
"progress",
|
|
23
20
|
"escalated",
|
|
24
21
|
"escalation_reminder",
|
|
@@ -30,26 +27,25 @@ export const EVENT_NAMES = [
|
|
|
30
27
|
];
|
|
31
28
|
/**
|
|
32
29
|
* What each Event accepts. A field outside its row is refused, not dropped:
|
|
33
|
-
* a caller setting `reference` on `
|
|
30
|
+
* a caller setting `reference` on `accepted` has confused two Events, and a
|
|
34
31
|
* report that hides that is worse than a refusal.
|
|
35
32
|
*/
|
|
36
33
|
export const FIELD_MATRIX = {
|
|
37
34
|
invalid: { required: ["reason"], optional: [] },
|
|
38
35
|
accepted: { required: ["priority"], optional: [] },
|
|
39
|
-
|
|
40
|
-
// Progress is one sentence a person reads — a Subtask landed, a refusal
|
|
36
|
+
// Progress is one sentence a person reads — a refusal
|
|
41
37
|
// being repaired — and whatever detail the caller wants to leave under it.
|
|
42
38
|
progress: {
|
|
43
39
|
required: ["summary"],
|
|
44
|
-
optional: ["
|
|
40
|
+
optional: ["remaining", "state", "stage", "reason", "trace", "counters"],
|
|
45
41
|
},
|
|
46
42
|
escalated: {
|
|
47
43
|
required: ["reason", "stage"],
|
|
48
|
-
optional: ["trace", "counters"
|
|
44
|
+
optional: ["trace", "counters"],
|
|
49
45
|
},
|
|
50
46
|
escalation_reminder: {
|
|
51
47
|
required: ["reason", "stage"],
|
|
52
|
-
optional: ["trace", "counters"
|
|
48
|
+
optional: ["trace", "counters"],
|
|
53
49
|
},
|
|
54
50
|
resumed: { required: ["resume_point"], optional: ["reason"] },
|
|
55
51
|
// The work is in front of the Authority; the reference is where it can be seen.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-matrix.js","sourceRoot":"","sources":["../../../src/emitter/event/field-matrix.ts"],"names":[],"mappings":"AAIA,qEAAqE;AACrE,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;IACP,UAAU;IACV,
|
|
1
|
+
{"version":3,"file":"field-matrix.js","sourceRoot":"","sources":["../../../src/emitter/event/field-matrix.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { type GithubClient } from "../../github/client.js";
|
|
2
|
+
import { type StateLabels } from "../../state-labels.js";
|
|
2
3
|
import type { Invocation } from "../types.js";
|
|
3
4
|
import type { CallContext, TargetResult } from "./result.js";
|
|
4
|
-
/** The label this Event stands for, e.g. `mason:escalated`. */
|
|
5
|
-
export declare function labelFor(prefix: string, event: string): string;
|
|
6
5
|
export type LabelSync = {
|
|
7
6
|
added?: string;
|
|
8
7
|
removed: string[];
|
|
@@ -10,9 +9,9 @@ export type LabelSync = {
|
|
|
10
9
|
/**
|
|
11
10
|
* Move the Thread's state label to this Event.
|
|
12
11
|
*
|
|
13
|
-
* Only
|
|
12
|
+
* Only the state labels are touched: a `project:` or a `bug` label is
|
|
14
13
|
* somebody else's, and a report that rewrites the issue's whole label set is a
|
|
15
14
|
* report that destroys data.
|
|
16
15
|
*/
|
|
17
|
-
export declare function syncStateLabel(invocation: Invocation, github: GithubClient, context: CallContext,
|
|
16
|
+
export declare function syncStateLabel(invocation: Invocation, github: GithubClient, context: CallContext, labels: StateLabels): Promise<TargetResult<LabelSync>>;
|
|
18
17
|
//# sourceMappingURL=labels.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../../src/emitter/github/labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,YAAY,EAAe,MAAM,wBAAwB,CAAC;AACpF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../../src/emitter/github/labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,YAAY,EAAe,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAgB,KAAK,WAAW,EAAgB,MAAM,uBAAuB,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI7D,MAAM,MAAM,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAS9D;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAmElC"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { callSignal, readFailure } from "../../github/client.js";
|
|
2
|
+
import { isStateLabel, stateLabelOf } from "../../state-labels.js";
|
|
2
3
|
const PER_PAGE = 100;
|
|
3
|
-
/** The label this Event stands for, e.g. `mason:escalated`. */
|
|
4
|
-
export function labelFor(prefix, event) {
|
|
5
|
-
return `${prefix}${event}`;
|
|
6
|
-
}
|
|
7
4
|
function failed(error, context) {
|
|
8
5
|
if (context.shouldInterrupt()) {
|
|
9
6
|
return { kind: "interrupted" };
|
|
@@ -13,12 +10,15 @@ function failed(error, context) {
|
|
|
13
10
|
/**
|
|
14
11
|
* Move the Thread's state label to this Event.
|
|
15
12
|
*
|
|
16
|
-
* Only
|
|
13
|
+
* Only the state labels are touched: a `project:` or a `bug` label is
|
|
17
14
|
* somebody else's, and a report that rewrites the issue's whole label set is a
|
|
18
15
|
* report that destroys data.
|
|
19
16
|
*/
|
|
20
|
-
export async function syncStateLabel(invocation, github, context,
|
|
21
|
-
const target =
|
|
17
|
+
export async function syncStateLabel(invocation, github, context, labels) {
|
|
18
|
+
const target = stateLabelOf(labels, invocation.event);
|
|
19
|
+
if (target === undefined) {
|
|
20
|
+
return { kind: "ok", value: { removed: [] } };
|
|
21
|
+
}
|
|
22
22
|
const issue = {
|
|
23
23
|
owner: invocation.repo.owner,
|
|
24
24
|
repo: invocation.repo.name,
|
|
@@ -40,7 +40,7 @@ export async function syncStateLabel(invocation, github, context, prefix) {
|
|
|
40
40
|
finally {
|
|
41
41
|
listing.release();
|
|
42
42
|
}
|
|
43
|
-
const stale = present.filter((name) => name
|
|
43
|
+
const stale = present.filter((name) => isStateLabel(labels, name) && name.toLowerCase() !== target.toLowerCase());
|
|
44
44
|
const removed = [];
|
|
45
45
|
for (const name of stale) {
|
|
46
46
|
const call = callSignal(context.deadlineMs, context.now, context.shouldInterrupt);
|
|
@@ -59,7 +59,7 @@ export async function syncStateLabel(invocation, github, context, prefix) {
|
|
|
59
59
|
call.release();
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
if (present.
|
|
62
|
+
if (present.some((name) => name.toLowerCase() === target.toLowerCase())) {
|
|
63
63
|
return { kind: "ok", value: { removed } };
|
|
64
64
|
}
|
|
65
65
|
const adding = callSignal(context.deadlineMs, context.now, context.shouldInterrupt);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../src/emitter/github/labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../src/emitter/github/labels.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-event.d.ts","sourceRoot":"","sources":["../../../src/emitter/render/render-event.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA0B,WAAW,EAAE,UAAU,EAAS,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"render-event.d.ts","sourceRoot":"","sources":["../../../src/emitter/render/render-event.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA0B,WAAW,EAAE,UAAU,EAAS,MAAM,aAAa,CAAC;AAmD1F,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CA6C5D;AAsMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMtF"}
|
|
@@ -2,11 +2,9 @@ import { FIELD_ORDER } from "../event/field-matrix.js";
|
|
|
2
2
|
import { renderMarker } from "../thread/marker.js";
|
|
3
3
|
import { truncateText } from "./truncate.js";
|
|
4
4
|
/** Free-text fields the report ceiling applies to. */
|
|
5
|
-
const BOUNDED_FIELDS = ["reason", "
|
|
5
|
+
const BOUNDED_FIELDS = ["reason", "trace"];
|
|
6
6
|
/** Fields rendered as a fenced block rather than a bullet. */
|
|
7
7
|
const BLOCK_FIELDS = ["trace"];
|
|
8
|
-
/** Fields that are already text a reader can read, rendered as they are. */
|
|
9
|
-
const PROSE_FIELDS = ["plan"];
|
|
10
8
|
/** Said first, as a sentence: no label, no bullet. */
|
|
11
9
|
const LEAD_FIELDS = ["summary"];
|
|
12
10
|
/**
|
|
@@ -18,7 +16,6 @@ const LEAD_FIELDS = ["summary"];
|
|
|
18
16
|
const TITLES = {
|
|
19
17
|
invalid: "Not accepted",
|
|
20
18
|
accepted: "Accepted",
|
|
21
|
-
planned: "Planned",
|
|
22
19
|
progress: "In progress",
|
|
23
20
|
escalated: "Escalated",
|
|
24
21
|
escalation_reminder: "Still escalated",
|
|
@@ -30,7 +27,6 @@ const TITLES = {
|
|
|
30
27
|
};
|
|
31
28
|
const SECTION_TITLES = {
|
|
32
29
|
trace: "Trace",
|
|
33
|
-
plan: "Plan",
|
|
34
30
|
};
|
|
35
31
|
/** A field whose generic name says nothing useful under a given Event. */
|
|
36
32
|
const FIELD_LABELS = {
|
|
@@ -74,12 +70,9 @@ export function renderEvent(invocation) {
|
|
|
74
70
|
case "accepted":
|
|
75
71
|
section = renderAccepted(invocation, bounded.fields);
|
|
76
72
|
break;
|
|
77
|
-
case "planned":
|
|
78
|
-
section = renderPlanned(bounded.fields);
|
|
79
|
-
break;
|
|
80
73
|
case "escalated":
|
|
81
74
|
case "escalation_reminder":
|
|
82
|
-
section = renderEscalated(invocation.event, bounded.fields, invocation.
|
|
75
|
+
section = renderEscalated(invocation.event, bounded.fields, invocation.resumeLabel);
|
|
83
76
|
break;
|
|
84
77
|
case "resumed":
|
|
85
78
|
section = renderResumed(bounded.fields);
|
|
@@ -131,20 +124,12 @@ function renderAccepted(invocation, fields) {
|
|
|
131
124
|
Taken in at ${priorityPhrase(priority, invocation.defaultPriority)}.
|
|
132
125
|
`;
|
|
133
126
|
}
|
|
134
|
-
function renderPlanned(fields) {
|
|
135
|
-
return `## Planned
|
|
136
|
-
|
|
137
|
-
I have planned this work this issue.
|
|
138
|
-
|
|
139
|
-
${fields.plan ?? ""}
|
|
140
|
-
`;
|
|
141
|
-
}
|
|
142
127
|
/**
|
|
143
128
|
* An escalation and its reminder say the same thing: the reminder is the same
|
|
144
129
|
* diagnosis, still waiting, so a reader who only sees the later comment still
|
|
145
130
|
* learns what stopped and what they can do about it.
|
|
146
131
|
*/
|
|
147
|
-
function renderEscalated(event, fields,
|
|
132
|
+
function renderEscalated(event, fields, resumeLabel) {
|
|
148
133
|
const lead = event === "escalated"
|
|
149
134
|
? "🙋 A human action is required to continue."
|
|
150
135
|
: "🙋 Still waiting for a human — this is a repeat of an earlier escalation.";
|
|
@@ -157,7 +142,7 @@ ${lead}
|
|
|
157
142
|
|
|
158
143
|
${fields.reason ?? ""}${escalatedWhere(fields)}
|
|
159
144
|
|
|
160
|
-
No further work starts until a human answers.${answers(fields.stage,
|
|
145
|
+
No further work starts until a human answers.${answers(fields.stage, resumeLabel)}${trace}
|
|
161
146
|
`;
|
|
162
147
|
}
|
|
163
148
|
/**
|
|
@@ -165,14 +150,14 @@ No further work starts until a human answers.${answers(fields.stage, readyLabel)
|
|
|
165
150
|
* escalation born while folding is past the point of no return: closing the
|
|
166
151
|
* issue would be refused, so it is not offered.
|
|
167
152
|
*/
|
|
168
|
-
function answers(stage,
|
|
169
|
-
if (
|
|
153
|
+
function answers(stage, resumeLabel) {
|
|
154
|
+
if (resumeLabel === undefined) {
|
|
170
155
|
return "";
|
|
171
156
|
}
|
|
172
157
|
if (stage === "merging") {
|
|
173
|
-
return ` To resume, add the \`${
|
|
158
|
+
return ` To resume, add the \`${resumeLabel}\` label. It can no longer be abandoned: the fold had started.`;
|
|
174
159
|
}
|
|
175
|
-
return ` To resume, add the \`${
|
|
160
|
+
return ` To resume, add the \`${resumeLabel}\` label; to abandon, close the issue.`;
|
|
176
161
|
}
|
|
177
162
|
/**
|
|
178
163
|
* A Trace is what the step that stopped the work said, and it is often written
|
|
@@ -198,21 +183,16 @@ Work continues from ${fields.resume_point ?? ""}.${reason}
|
|
|
198
183
|
`;
|
|
199
184
|
}
|
|
200
185
|
const STAGE_PHRASE = {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
integrating: "while assembling the feature",
|
|
186
|
+
unit: "while the work was being made",
|
|
187
|
+
integrating: "while assembling the work",
|
|
204
188
|
// A refused offer stops here too, before any Submission exists to review.
|
|
205
189
|
submitting: "while submitting the work",
|
|
206
190
|
merging: "while folding into the work line",
|
|
207
191
|
};
|
|
208
192
|
function escalatedWhere(fields) {
|
|
209
|
-
const unit = fields.unit;
|
|
210
193
|
const attempts = fields.counters?.attempts;
|
|
211
|
-
if (
|
|
212
|
-
return `\n\nAfter ${attemptsShown(attempts)} attempts
|
|
213
|
-
}
|
|
214
|
-
if (unit !== undefined && unit.length > 0) {
|
|
215
|
-
return `\n\nOn \`${unit}\`.`;
|
|
194
|
+
if (attempts !== undefined) {
|
|
195
|
+
return `\n\nAfter ${attemptsShown(attempts)} attempts.`;
|
|
216
196
|
}
|
|
217
197
|
if (fields.stage !== undefined) {
|
|
218
198
|
return `\n\nThis happened ${STAGE_PHRASE[fields.stage]}.`;
|
|
@@ -244,9 +224,7 @@ function renderSection(invocation, fields) {
|
|
|
244
224
|
// not leave a blank line standing under its heading.
|
|
245
225
|
const bullets = [];
|
|
246
226
|
for (const field of FIELD_ORDER) {
|
|
247
|
-
if (BLOCK_FIELDS.includes(field) ||
|
|
248
|
-
PROSE_FIELDS.includes(field) ||
|
|
249
|
-
LEAD_FIELDS.includes(field)) {
|
|
227
|
+
if (BLOCK_FIELDS.includes(field) || LEAD_FIELDS.includes(field)) {
|
|
250
228
|
continue;
|
|
251
229
|
}
|
|
252
230
|
const value = fields[field];
|
|
@@ -265,13 +243,6 @@ function renderSection(invocation, fields) {
|
|
|
265
243
|
if (bullets.length > 0) {
|
|
266
244
|
lines.push("", ...bullets);
|
|
267
245
|
}
|
|
268
|
-
for (const field of PROSE_FIELDS) {
|
|
269
|
-
const value = fields[field];
|
|
270
|
-
if (typeof value !== "string") {
|
|
271
|
-
continue;
|
|
272
|
-
}
|
|
273
|
-
lines.push("", `### ${title(field)}`, "", value);
|
|
274
|
-
}
|
|
275
246
|
for (const field of BLOCK_FIELDS) {
|
|
276
247
|
const value = fields[field];
|
|
277
248
|
if (typeof value !== "string") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-event.js","sourceRoot":"","sources":["../../../src/emitter/render/render-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,sDAAsD;AACtD,MAAM,cAAc,GAAgB,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"render-event.js","sourceRoot":"","sources":["../../../src/emitter/render/render-event.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ export type RunOptions = {
|
|
|
21
21
|
};
|
|
22
22
|
export declare function invalidInvocationResult(write: ProgressWriter, reason: string): RunResult;
|
|
23
23
|
/**
|
|
24
|
-
* Run one
|
|
24
|
+
* Run one Emitter invocation to a run outcome.
|
|
25
25
|
*/
|
|
26
26
|
export declare function runEmitter(options: RunOptions): Promise<RunResult>;
|
|
27
27
|
//# sourceMappingURL=run-emitter.d.ts.map
|
|
@@ -26,7 +26,7 @@ export function invalidInvocationResult(write, reason) {
|
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
|
-
* Run one
|
|
29
|
+
* Run one Emitter invocation to a run outcome.
|
|
30
30
|
*/
|
|
31
31
|
export async function runEmitter(options) {
|
|
32
32
|
const { invocation } = options;
|
|
@@ -111,10 +111,10 @@ export async function runEmitter(options) {
|
|
|
111
111
|
await syncLabel();
|
|
112
112
|
return finish("reported");
|
|
113
113
|
async function syncLabel() {
|
|
114
|
-
if (invocation.
|
|
114
|
+
if (invocation.stateLabels === undefined) {
|
|
115
115
|
return;
|
|
116
116
|
}
|
|
117
|
-
const synced = await syncStateLabel(invocation, github, context, invocation.
|
|
117
|
+
const synced = await syncStateLabel(invocation, github, context, invocation.stateLabels);
|
|
118
118
|
write({
|
|
119
119
|
event: "labels-finished",
|
|
120
120
|
key: invocation.key,
|
|
@@ -6,7 +6,7 @@ import type { EventRecord } from "../types.js";
|
|
|
6
6
|
* machine reads the record. The record travels inside an HTML comment, which
|
|
7
7
|
* GitHub renders as nothing at all, so neither audience pays for the other.
|
|
8
8
|
*/
|
|
9
|
-
export declare const MARKER_TAG = "
|
|
9
|
+
export declare const MARKER_TAG = "ticket-event";
|
|
10
10
|
export declare function renderMarker(record: EventRecord): string;
|
|
11
11
|
/** Every record a comment body carries. A body a human wrote carries none. */
|
|
12
12
|
export declare function readMarkers(body: string): EventRecord[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../../../src/emitter/thread/marker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"marker.d.ts","sourceRoot":"","sources":["../../../src/emitter/thread/marker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,iBAAiB,CAAC;AAEzC,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAExD;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAkBvD;AAED,sDAAsD;AACtD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAErE"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* machine reads the record. The record travels inside an HTML comment, which
|
|
6
6
|
* GitHub renders as nothing at all, so neither audience pays for the other.
|
|
7
7
|
*/
|
|
8
|
-
export const MARKER_TAG = "
|
|
8
|
+
export const MARKER_TAG = "ticket-event";
|
|
9
9
|
export function renderMarker(record) {
|
|
10
10
|
return `<!-- ${MARKER_TAG} ${JSON.stringify(record)} -->`;
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker.js","sourceRoot":"","sources":["../../../src/emitter/thread/marker.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"marker.js","sourceRoot":"","sources":["../../../src/emitter/thread/marker.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC;AAEzC,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,OAAO,QAAQ,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5D,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,WAAW,UAAU,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,OAAO,CAAC,IAAI,CAAC,MAAqB,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,UAAU,CAAC,MAAgB,EAAE,OAAe;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC;AAChG,CAAC"}
|
package/dist/emitter/types.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/** Domain types owned by
|
|
1
|
+
/** Domain types owned by Emitter. Names match the Block perimeter only. */
|
|
2
2
|
export type RunOutcome = "reported" | "duplicate" | "rendered" | "unreportable" | "invalid-invocation" | "interrupted";
|
|
3
|
-
export type EventName = "invalid" | "accepted" | "
|
|
4
|
-
export type Stage = "
|
|
5
|
-
export type ResumePoint = "
|
|
3
|
+
export type EventName = "invalid" | "accepted" | "progress" | "escalated" | "escalation_reminder" | "resumed" | "submitted" | "done" | "cancelled" | "reject_late";
|
|
4
|
+
export type Stage = "unit" | "integrating" | "submitting" | "merging";
|
|
5
|
+
export type ResumePoint = "running" | "integrating";
|
|
6
6
|
/** The Target: one repository. */
|
|
7
7
|
export type Repository = {
|
|
8
8
|
owner: string;
|
|
@@ -16,9 +16,7 @@ export type EventFields = {
|
|
|
16
16
|
stage?: Stage;
|
|
17
17
|
trace?: string;
|
|
18
18
|
counters?: Record<string, string>;
|
|
19
|
-
plan?: string;
|
|
20
19
|
priority?: number;
|
|
21
|
-
unit?: string;
|
|
22
20
|
remaining?: number;
|
|
23
21
|
state?: string;
|
|
24
22
|
resume_point?: ResumePoint;
|
|
@@ -42,10 +40,10 @@ export type Invocation = {
|
|
|
42
40
|
maxReportChars: number;
|
|
43
41
|
/** What `priority` is when nobody chose one, so the comment can say so. */
|
|
44
42
|
defaultPriority?: number;
|
|
45
|
-
/** When set, the Event also lands
|
|
46
|
-
|
|
47
|
-
/** The label that signals
|
|
48
|
-
|
|
43
|
+
/** When set, the Event also lands on the issue as its label. */
|
|
44
|
+
stateLabels?: Readonly<Record<EventName, string>>;
|
|
45
|
+
/** The label that signals a resume, so an `escalated` comment can name it. */
|
|
46
|
+
resumeLabel?: string;
|
|
49
47
|
durationMs: number;
|
|
50
48
|
/** Extra attempts after the first, on a transport failure, a 5xx, or a rate limit. */
|
|
51
49
|
requestRetries: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/emitter/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/emitter/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,WAAW,GACX,UAAU,GACV,cAAc,GACd,oBAAoB,GACpB,aAAa,CAAC;AAElB,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,GACX,qBAAqB,GACrB,SAAS,GACT,WAAW,GACX,MAAM,GACN,WAAW,GACX,aAAa,CAAC;AAElB,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;AAEpD,kCAAkC;AAClC,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,wEAAwE;AACxE,MAAM,MAAM,WAAW,GAAG;IACxB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW;AACrB,iFAAiF;AACjF;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF,oEAAoE;AACpE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
|
package/dist/emitter/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/emitter/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/emitter/types.ts"],"names":[],"mappings":"AAAA,2EAA2E"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Repository } from "../repo.js";
|
|
2
|
+
import { type GithubClient } from "./client.js";
|
|
3
|
+
export type IssueList = {
|
|
4
|
+
kind: "listed";
|
|
5
|
+
issues: Record<string, unknown>[];
|
|
6
|
+
} | {
|
|
7
|
+
kind: "unavailable";
|
|
8
|
+
detail: string;
|
|
9
|
+
} | {
|
|
10
|
+
kind: "interrupted";
|
|
11
|
+
};
|
|
12
|
+
export type ListRequest = {
|
|
13
|
+
github: GithubClient;
|
|
14
|
+
repo: Repository;
|
|
15
|
+
number: number;
|
|
16
|
+
deadlineMs: number;
|
|
17
|
+
now: () => number;
|
|
18
|
+
shouldInterrupt: () => boolean;
|
|
19
|
+
};
|
|
20
|
+
/** The issues that block this one, as GitHub holds the dependency. */
|
|
21
|
+
export declare function listBlockers(request: ListRequest): Promise<IssueList>;
|
|
22
|
+
/** The sub-issues of this one: the Tickets of a Feature. */
|
|
23
|
+
export declare function listSubIssues(request: ListRequest): Promise<IssueList>;
|
|
24
|
+
//# sourceMappingURL=blockers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockers.d.ts","sourceRoot":"","sources":["../../src/github/blockers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAc,KAAK,YAAY,EAAe,MAAM,aAAa,CAAC;AAKzE,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAE5B,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,OAAO,CAAC;CAChC,CAAC;AAEF,sEAAsE;AACtE,wBAAsB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAK3E;AAED,4DAA4D;AAC5D,wBAAsB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAE5E"}
|