@bluewombat/manager-github 0.7.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
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 { dropLine, openLine, settledPullRequest } from "./submission/lines.js";
|
|
10
11
|
import { 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,22 @@ 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_MERGE_WHEN_READY_LABEL = "merge-when-ready";
|
|
25
30
|
export const DEFAULT_PRIORITY = 50;
|
|
26
31
|
/**
|
|
27
|
-
* One repository
|
|
32
|
+
* One repository: its issues are the Features and, as sub-issues, their
|
|
33
|
+
* Tickets; its branches are the lines; its pull requests are the Submissions.
|
|
28
34
|
*/
|
|
29
35
|
export function createGithubManager(options) {
|
|
30
36
|
const apiBase = options.apiBase ?? DEFAULT_API_BASE;
|
|
31
|
-
const
|
|
37
|
+
const resumeLabel = options.resumeLabel ?? DEFAULT_RESUME_LABEL;
|
|
38
|
+
const featureReadyLabel = options.featureReadyLabel ?? DEFAULT_FEATURE_READY_LABEL;
|
|
39
|
+
const ticketReadyLabel = options.ticketReadyLabel ?? DEFAULT_TICKET_READY_LABEL;
|
|
40
|
+
const mergeWhenReadyLabel = options.mergeWhenReadyLabel ?? DEFAULT_MERGE_WHEN_READY_LABEL;
|
|
32
41
|
const defaultPriority = options.defaultPriority ?? DEFAULT_PRIORITY;
|
|
33
|
-
const labels = options.labels ?? [];
|
|
34
42
|
const testNetwork = options.githubFetch !== undefined;
|
|
35
43
|
// One for the life of this manager — one `mason run` — shared by every call,
|
|
36
44
|
// so a tick that finds nothing changed costs no budget.
|
|
@@ -49,39 +57,107 @@ export function createGithubManager(options) {
|
|
|
49
57
|
...(options.githubFetch !== undefined ? { fetch: options.githubFetch } : {}),
|
|
50
58
|
};
|
|
51
59
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
60
|
+
const signalsResume = (payload) => payloadHasLabel(payload, resumeLabel);
|
|
61
|
+
const clearResume = async (key) => {
|
|
62
|
+
const issue = issueNumberFromExternalId(key);
|
|
63
|
+
if (issue === undefined) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const call = createClient(channelOptions());
|
|
67
|
+
try {
|
|
68
|
+
await call.request("DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", {
|
|
69
|
+
owner: options.repo.owner,
|
|
70
|
+
repo: options.repo.name,
|
|
71
|
+
issue_number: issue,
|
|
72
|
+
name: resumeLabel,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Already gone, or the label was never there. Either way there is
|
|
77
|
+
// nothing left to take back.
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
const report = async (input) => {
|
|
81
|
+
// Every key this manager mints ends in `#<issue>`, so the Thread to write
|
|
82
|
+
// on is recoverable without Host carrying an issue number around.
|
|
83
|
+
const issue = issueNumberFromExternalId(input.key);
|
|
84
|
+
if (issue === undefined) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
const emitterInvocation = {
|
|
88
|
+
repo: options.repo,
|
|
89
|
+
issue,
|
|
90
|
+
apiBase,
|
|
91
|
+
event: input.event,
|
|
92
|
+
key: input.key,
|
|
93
|
+
project: input.project,
|
|
94
|
+
at: new Date().toISOString(),
|
|
95
|
+
fields: input.fields,
|
|
96
|
+
maxReportChars: MAX_REPORT_CHARS,
|
|
97
|
+
defaultPriority,
|
|
98
|
+
resumeLabel,
|
|
99
|
+
durationMs: options.durationMs,
|
|
100
|
+
requestRetries: testNetwork ? 0 : DEFAULT_REQUEST_RETRIES,
|
|
101
|
+
dryRun: false,
|
|
102
|
+
};
|
|
103
|
+
if (input.eventId !== undefined) {
|
|
104
|
+
emitterInvocation.eventId = input.eventId;
|
|
105
|
+
}
|
|
106
|
+
if (options.stateLabels !== undefined) {
|
|
107
|
+
emitterInvocation.stateLabels = options.stateLabels;
|
|
108
|
+
}
|
|
109
|
+
const result = await runEmitter({
|
|
110
|
+
invocation: emitterInvocation,
|
|
111
|
+
github: createClient(channelOptions()),
|
|
112
|
+
write: silent,
|
|
113
|
+
interruptFlag: options.interruptFlag,
|
|
114
|
+
});
|
|
115
|
+
// A Thread that already carries this eventId has said it. Counting that
|
|
116
|
+
// as failure made every poll re-ask and film report-declined forever.
|
|
117
|
+
return result.outcome === "reported" || result.outcome === "duplicate";
|
|
118
|
+
};
|
|
119
|
+
const probe = async (key) => {
|
|
120
|
+
const issue = issueNumberFromExternalId(key);
|
|
121
|
+
if (issue === undefined) {
|
|
122
|
+
return "unavailable";
|
|
123
|
+
}
|
|
124
|
+
const now = () => Date.now();
|
|
125
|
+
return await probeIssue({
|
|
126
|
+
github: createClient(channelOptions()),
|
|
127
|
+
repo: options.repo,
|
|
128
|
+
number: issue,
|
|
129
|
+
deadlineMs: now() + options.durationMs,
|
|
130
|
+
now,
|
|
131
|
+
shouldInterrupt: () => options.interruptFlag.interrupted,
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
function submissionContext() {
|
|
135
|
+
const now = () => Date.now();
|
|
136
|
+
return {
|
|
137
|
+
repo: options.repo,
|
|
138
|
+
github: createClient(channelOptions()),
|
|
139
|
+
deadlineMs: now() + options.durationMs,
|
|
140
|
+
now,
|
|
141
|
+
shouldInterrupt: () => options.interruptFlag.interrupted,
|
|
142
|
+
keepBranch: options.keepBranch,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/** Features: the top-level issues that carry the feature-ready label, whatever else they say. */
|
|
146
|
+
const features = {
|
|
147
|
+
signalsResume,
|
|
148
|
+
clearResume,
|
|
149
|
+
probe,
|
|
150
|
+
report,
|
|
75
151
|
async listen(input) {
|
|
76
152
|
const deliveries = [];
|
|
77
|
-
const alreadySettled = (payload) => options.
|
|
78
|
-
settledAlready(payload, options.
|
|
153
|
+
const alreadySettled = (payload) => options.stateLabels !== undefined &&
|
|
154
|
+
settledAlready(payload, options.stateLabels, resumeLabel);
|
|
79
155
|
const listenerInvocation = {
|
|
80
156
|
manager: MANAGER,
|
|
81
157
|
repo: options.repo,
|
|
82
158
|
apiBase,
|
|
83
159
|
state: "all",
|
|
84
|
-
labels,
|
|
160
|
+
labels: [featureReadyLabel],
|
|
85
161
|
follow: false,
|
|
86
162
|
maxEvents: DEFAULT_MAX_EVENTS,
|
|
87
163
|
durationMs: options.durationMs,
|
|
@@ -116,7 +192,8 @@ export function createGithubManager(options) {
|
|
|
116
192
|
maxRawBytes: DEFAULT_MAX_RAW_BYTES,
|
|
117
193
|
projectLabelPrefix: DEFAULT_PROJECT_LABEL_PREFIX,
|
|
118
194
|
priorityLabelPrefix: DEFAULT_PRIORITY_LABEL_PREFIX,
|
|
119
|
-
|
|
195
|
+
resumeLabel,
|
|
196
|
+
mergeWhenReadyLabel,
|
|
120
197
|
fetch: true,
|
|
121
198
|
fetchDurationMs: options.durationMs,
|
|
122
199
|
requestRetries: testNetwork ? 0 : DEFAULT_REQUEST_RETRIES,
|
|
@@ -137,7 +214,7 @@ export function createGithubManager(options) {
|
|
|
137
214
|
invalid: adapted.invalid,
|
|
138
215
|
key: keyFromPayload(payload, options.repo),
|
|
139
216
|
project: projectFromPayload(payload, options.defaultProject),
|
|
140
|
-
fingerprint: writtenFingerprint(payload, options.
|
|
217
|
+
fingerprint: writtenFingerprint(payload, options.stateLabels),
|
|
141
218
|
};
|
|
142
219
|
}
|
|
143
220
|
if (adapted.outcome === "unavailable" || adapted.outcome === "interrupted") {
|
|
@@ -148,44 +225,34 @@ export function createGithubManager(options) {
|
|
|
148
225
|
}
|
|
149
226
|
return { outcome: "converted", feature: adapted.feature };
|
|
150
227
|
},
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
const
|
|
228
|
+
};
|
|
229
|
+
/** Tickets: the sub-issues of a Feature; the lines and Submissions: branches and pull requests. */
|
|
230
|
+
const tickets = {
|
|
231
|
+
clearResume,
|
|
232
|
+
probe,
|
|
233
|
+
report,
|
|
234
|
+
async tickets(feature) {
|
|
235
|
+
const now = () => Date.now();
|
|
236
|
+
return await listTickets({
|
|
237
|
+
github: createClient(channelOptions()),
|
|
159
238
|
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,
|
|
239
|
+
manager: MANAGER,
|
|
240
|
+
feature,
|
|
168
241
|
defaultPriority,
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
if (options.stateLabelPrefix !== undefined) {
|
|
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,
|
|
242
|
+
projectLabelPrefix: DEFAULT_PROJECT_LABEL_PREFIX,
|
|
243
|
+
priorityLabelPrefix: DEFAULT_PRIORITY_LABEL_PREFIX,
|
|
244
|
+
resumeLabel,
|
|
245
|
+
ticketReadyLabel,
|
|
246
|
+
deadlineMs: now() + options.durationMs,
|
|
247
|
+
now,
|
|
248
|
+
shouldInterrupt: () => options.interruptFlag.interrupted,
|
|
185
249
|
});
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
return
|
|
250
|
+
},
|
|
251
|
+
async openLine(input) {
|
|
252
|
+
return await openLine(input, submissionContext());
|
|
253
|
+
},
|
|
254
|
+
async dropLine(line) {
|
|
255
|
+
await dropLine(line, submissionContext());
|
|
189
256
|
},
|
|
190
257
|
async submit(input) {
|
|
191
258
|
return await submitPullRequest(input, submissionContext());
|
|
@@ -193,41 +260,19 @@ export function createGithubManager(options) {
|
|
|
193
260
|
async fold(input) {
|
|
194
261
|
return await foldPullRequest(input.reference, submissionContext());
|
|
195
262
|
},
|
|
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
|
-
});
|
|
263
|
+
async settled(input) {
|
|
264
|
+
return await settledPullRequest(input.reference, submissionContext());
|
|
210
265
|
},
|
|
211
266
|
};
|
|
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
|
-
}
|
|
267
|
+
return { features, tickets };
|
|
223
268
|
}
|
|
224
269
|
/**
|
|
225
|
-
* Whether the tracker already says this
|
|
270
|
+
* Whether the tracker already says this Ticket is finished.
|
|
226
271
|
*
|
|
227
272
|
* The WorkLedger is the source of truth, and it is the only memory: lose it and
|
|
228
273
|
* every open issue looks new, so finished work is built and offered a second
|
|
229
274
|
* time. The state label is what the tracker remembers, and reading it back is
|
|
230
|
-
* cheaper than rebuilding a
|
|
275
|
+
* cheaper than rebuilding a Ticket that is already merged. The resume signal
|
|
231
276
|
* overrides it, so a human still has a way to ask for more.
|
|
232
277
|
*/
|
|
233
278
|
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":"
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/settled.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import type { StateLabels } from "./state-labels.js";
|
|
1
2
|
/**
|
|
2
|
-
* Whether the tracker already says this issue reached an end —
|
|
3
|
-
* `
|
|
3
|
+
* Whether the tracker already says this issue reached an end — the state
|
|
4
|
+
* labels of `done` or `cancelled` — and nobody asked to resume it.
|
|
4
5
|
*
|
|
5
6
|
* The WorkLedger is the truth; this is the tracker's own memory read as a
|
|
6
7
|
* guard for when the ledger is gone, so a fresh one neither rebuilds merged
|
|
7
|
-
* work nor takes up an abandoned issue again. The
|
|
8
|
+
* work nor takes up an abandoned issue again. The resume label still resumes.
|
|
8
9
|
*/
|
|
9
|
-
export declare function settledAlready(payload: Record<string, unknown>,
|
|
10
|
+
export declare function settledAlready(payload: Record<string, unknown>, labels: StateLabels, resume: string): boolean;
|
|
10
11
|
//# sourceMappingURL=settled.d.ts.map
|
package/dist/settled.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settled.d.ts","sourceRoot":"","sources":["../src/settled.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"settled.d.ts","sourceRoot":"","sources":["../src/settled.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAKT"}
|
package/dist/settled.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { payloadHasLabel } from "./labels.js";
|
|
2
|
-
/** The states that end a
|
|
2
|
+
/** The states that end a Ticket: nothing more is done for it unless resumed. */
|
|
3
3
|
const SETTLED_STATES = ["done", "cancelled"];
|
|
4
4
|
/**
|
|
5
|
-
* Whether the tracker already says this issue reached an end —
|
|
6
|
-
* `
|
|
5
|
+
* Whether the tracker already says this issue reached an end — the state
|
|
6
|
+
* labels of `done` or `cancelled` — and nobody asked to resume it.
|
|
7
7
|
*
|
|
8
8
|
* The WorkLedger is the truth; this is the tracker's own memory read as a
|
|
9
9
|
* guard for when the ledger is gone, so a fresh one neither rebuilds merged
|
|
10
|
-
* work nor takes up an abandoned issue again. The
|
|
10
|
+
* work nor takes up an abandoned issue again. The resume label still resumes.
|
|
11
11
|
*/
|
|
12
|
-
export function settledAlready(payload,
|
|
13
|
-
return (SETTLED_STATES.some((state) => payloadHasLabel(payload,
|
|
14
|
-
!payloadHasLabel(payload,
|
|
12
|
+
export function settledAlready(payload, labels, resume) {
|
|
13
|
+
return (SETTLED_STATES.some((state) => payloadHasLabel(payload, labels[state])) &&
|
|
14
|
+
!payloadHasLabel(payload, resume));
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=settled.js.map
|
package/dist/settled.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settled.js","sourceRoot":"","sources":["../src/settled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"settled.js","sourceRoot":"","sources":["../src/settled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,gFAAgF;AAChF,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,WAAW,CAAU,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAgC,EAChC,MAAmB,EACnB,MAAc;IAEd,OAAO,CACL,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAClC,CAAC;AACJ,CAAC"}
|
package/dist/setup.d.ts
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import { type SetupResult } from "@bluewombat/manager-kit";
|
|
1
|
+
import { type ManagerSide, type SetupResult } from "@bluewombat/manager-kit";
|
|
2
2
|
import type { Repository } from "./repo.js";
|
|
3
|
+
import type { StateLabels } from "./state-labels.js";
|
|
3
4
|
export type SetupSettings = {
|
|
4
5
|
repo: Repository;
|
|
5
6
|
token: string;
|
|
6
7
|
apiBase: string;
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
resumeLabel: string;
|
|
9
|
+
featureReadyLabel: string;
|
|
10
|
+
ticketReadyLabel: string;
|
|
11
|
+
mergeWhenReadyLabel: string;
|
|
12
|
+
/** The sides this manager is built for: only their labels are wanted. */
|
|
13
|
+
sides: readonly ManagerSide[];
|
|
9
14
|
defaultProject: string | undefined;
|
|
10
|
-
|
|
15
|
+
stateLabels: StateLabels | undefined;
|
|
11
16
|
/** The branch pull requests are opened onto, and whether the config named it. */
|
|
12
17
|
branch: string;
|
|
13
18
|
branchConfigured: boolean;
|
|
@@ -32,12 +37,20 @@ type WantedLabel = {
|
|
|
32
37
|
export declare function runSetup(settings: SetupSettings, input: {
|
|
33
38
|
apply: boolean;
|
|
34
39
|
}): Promise<SetupResult>;
|
|
35
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Every label this configuration will look for or write, and why it exists.
|
|
42
|
+
* Only the labels of the sides this manager is built for: a manager that holds
|
|
43
|
+
* only the Tickets does not create the Feature label, and the reverse. No
|
|
44
|
+
* `sides` means both.
|
|
45
|
+
*/
|
|
36
46
|
export declare function wantedLabels(settings: {
|
|
37
|
-
|
|
38
|
-
|
|
47
|
+
resumeLabel: string;
|
|
48
|
+
featureReadyLabel: string;
|
|
49
|
+
ticketReadyLabel: string;
|
|
50
|
+
mergeWhenReadyLabel: string;
|
|
51
|
+
sides?: readonly ManagerSide[];
|
|
39
52
|
defaultProject: string | undefined;
|
|
40
|
-
|
|
53
|
+
stateLabels: StateLabels | undefined;
|
|
41
54
|
}): WantedLabel[];
|
|
42
55
|
export {};
|
|
43
56
|
//# sourceMappingURL=setup.d.ts.map
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAEhB,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUrD,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE;QAAE,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IACxC,WAAW,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GACxB,OAAO,CAAC,WAAW,CAAC,CAyDtB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;CACtC,GAAG,WAAW,EAAE,CAwEhB"}
|
package/dist/setup.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { EVENT_NAMES, PRODUCT } from "@bluewombat/manager-kit";
|
|
1
|
+
import { EVENT_NAMES, PRODUCT, } from "@bluewombat/manager-kit";
|
|
2
2
|
import { callSignal, createClient, readFailure } from "./github/client.js";
|
|
3
3
|
const PER_PAGE = 100;
|
|
4
4
|
/** Colours are only there so a human can tell the families apart at a glance. */
|
|
5
|
-
const
|
|
5
|
+
const RESUME_COLOUR = "0e8a16";
|
|
6
6
|
const ADMISSION_COLOUR = "1d76db";
|
|
7
7
|
const STATE_COLOUR = "5319e7";
|
|
8
8
|
const PROJECT_COLOUR = "c5def5";
|
|
@@ -67,20 +67,53 @@ export async function runSetup(settings, input) {
|
|
|
67
67
|
}
|
|
68
68
|
return { ok: steps.every((step) => step.state !== "blocked"), steps };
|
|
69
69
|
}
|
|
70
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Every label this configuration will look for or write, and why it exists.
|
|
72
|
+
* Only the labels of the sides this manager is built for: a manager that holds
|
|
73
|
+
* only the Tickets does not create the Feature label, and the reverse. No
|
|
74
|
+
* `sides` means both.
|
|
75
|
+
*/
|
|
71
76
|
export function wantedLabels(settings) {
|
|
77
|
+
const sides = settings.sides ?? ["featureTracker", "ticketTracker"];
|
|
78
|
+
const forFeatures = sides.includes("featureTracker");
|
|
79
|
+
const forTickets = sides.includes("ticketTracker");
|
|
80
|
+
// One name for both roles is allowed: a sub-issue is a Ticket and a top-level
|
|
81
|
+
// issue is a Feature, so the label is created once and says both.
|
|
82
|
+
const shared = forFeatures &&
|
|
83
|
+
forTickets &&
|
|
84
|
+
settings.featureReadyLabel.toLowerCase() === settings.ticketReadyLabel.toLowerCase();
|
|
72
85
|
const wanted = [];
|
|
73
|
-
|
|
86
|
+
if (forFeatures) {
|
|
87
|
+
wanted.push(shared
|
|
88
|
+
? {
|
|
89
|
+
name: settings.featureReadyLabel,
|
|
90
|
+
colour: ADMISSION_COLOUR,
|
|
91
|
+
description: "on a Feature: its content is final; on a Ticket: its specification is final",
|
|
92
|
+
}
|
|
93
|
+
: {
|
|
94
|
+
name: settings.featureReadyLabel,
|
|
95
|
+
colour: ADMISSION_COLOUR,
|
|
96
|
+
description: `on a Feature: its content is final, ${PRODUCT} may build it once its Tickets are ready`,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
if (forTickets) {
|
|
100
|
+
wanted.push({
|
|
101
|
+
name: settings.ticketReadyLabel,
|
|
102
|
+
colour: ADMISSION_COLOUR,
|
|
103
|
+
description: "on a Ticket: its specification is final",
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
if (forFeatures) {
|
|
74
107
|
wanted.push({
|
|
75
|
-
name,
|
|
108
|
+
name: settings.mergeWhenReadyLabel,
|
|
76
109
|
colour: ADMISSION_COLOUR,
|
|
77
|
-
description:
|
|
110
|
+
description: `on a Feature: ${PRODUCT} folds its line without a human`,
|
|
78
111
|
});
|
|
79
112
|
}
|
|
80
113
|
wanted.push({
|
|
81
|
-
name: settings.
|
|
82
|
-
colour:
|
|
83
|
-
description: `on an escalated
|
|
114
|
+
name: settings.resumeLabel,
|
|
115
|
+
colour: RESUME_COLOUR,
|
|
116
|
+
description: `on an escalated Feature or Ticket, ${PRODUCT} resumes it`,
|
|
84
117
|
});
|
|
85
118
|
if (settings.defaultProject !== undefined) {
|
|
86
119
|
wanted.push({
|
|
@@ -89,10 +122,10 @@ export function wantedLabels(settings) {
|
|
|
89
122
|
description: `routes the issue to this ${PRODUCT} Project`,
|
|
90
123
|
});
|
|
91
124
|
}
|
|
92
|
-
if (settings.
|
|
125
|
+
if (settings.stateLabels !== undefined) {
|
|
93
126
|
for (const event of EVENT_NAMES) {
|
|
94
127
|
wanted.push({
|
|
95
|
-
name:
|
|
128
|
+
name: settings.stateLabels[event],
|
|
96
129
|
colour: STATE_COLOUR,
|
|
97
130
|
description: `${PRODUCT} state: ${event}`,
|
|
98
131
|
});
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type EventName } from "@bluewombat/manager-kit";
|
|
2
|
+
/** The label each Event lands as on an issue. */
|
|
3
|
+
export type StateLabels = Readonly<Record<EventName, string>>;
|
|
4
|
+
export type StateLabelsResult = {
|
|
5
|
+
ok: true;
|
|
6
|
+
labels: StateLabels | undefined;
|
|
7
|
+
} | {
|
|
8
|
+
ok: false;
|
|
9
|
+
reason: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* The label of every Event, from the `stateLabels` option.
|
|
13
|
+
*
|
|
14
|
+
* Absent, the Events leave no label. Present, it names every Event: an Event
|
|
15
|
+
* with no label would leave the previous one on the issue, and two Events
|
|
16
|
+
* cannot share one, or the issue could not tell them apart.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveStateLabels(named: Record<string, string> | undefined): StateLabelsResult;
|
|
19
|
+
/** The label of this Event, if it is one the state labels cover. */
|
|
20
|
+
export declare function stateLabelOf(labels: StateLabels, event: string): string | undefined;
|
|
21
|
+
/** Whether this label is one of the state labels, whatever the case. */
|
|
22
|
+
export declare function isStateLabel(labels: StateLabels, name: string): boolean;
|
|
23
|
+
//# sourceMappingURL=state-labels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-labels.d.ts","sourceRoot":"","sources":["../src/state-labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEtE,iDAAiD;AACjD,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AAE9D,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,GAC7C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,iBAAiB,CAoC/F;AAED,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAInF;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvE"}
|