@detergent-software/conductor 1.2.1-dev.2 → 1.2.1-dev.3
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/CHANGELOG.md +10 -0
- package/README.md +4 -0
- package/build/brief.js +2 -1
- package/build/brief.js.map +1 -1
- package/build/lib/providers/ado/code-host.js +230 -0
- package/build/lib/providers/ado/code-host.js.map +1 -0
- package/build/lib/providers/ado/http.js +95 -0
- package/build/lib/providers/ado/http.js.map +1 -0
- package/build/lib/providers/ado/pipelines.js +185 -0
- package/build/lib/providers/ado/pipelines.js.map +1 -0
- package/build/lib/providers/ado/trigger.js +99 -0
- package/build/lib/providers/ado/trigger.js.map +1 -0
- package/build/lib/providers/errors.js +23 -0
- package/build/lib/providers/errors.js.map +1 -0
- package/build/lib/providers/github/actions.js +86 -0
- package/build/lib/providers/github/actions.js.map +1 -0
- package/build/lib/providers/github/code-host.js +201 -0
- package/build/lib/providers/github/code-host.js.map +1 -0
- package/build/lib/providers/github/gh.js +15 -0
- package/build/lib/providers/github/gh.js.map +1 -0
- package/build/lib/providers/index.js +15 -0
- package/build/lib/providers/index.js.map +1 -0
- package/build/lib/providers/notes.js +22 -0
- package/build/lib/providers/notes.js.map +1 -0
- package/build/lib/providers/npm/stage.js +62 -0
- package/build/lib/providers/npm/stage.js.map +1 -0
- package/build/lib/providers/types.js +8 -0
- package/build/lib/providers/types.js.map +1 -0
- package/build/lib/providers/verdicts/pr.js +90 -0
- package/build/lib/providers/verdicts/pr.js.map +1 -0
- package/build/lib/providers/verdicts/runs.js +73 -0
- package/build/lib/providers/verdicts/runs.js.map +1 -0
- package/build/lib/providers/verdicts/stage.js +14 -0
- package/build/lib/providers/verdicts/stage.js.map +1 -0
- package/build/notes.js +1 -1
- package/build/notes.js.map +1 -1
- package/build/watchers/ado-api.js +2 -31
- package/build/watchers/ado-api.js.map +1 -1
- package/build/watchers/ado.js +36 -119
- package/build/watchers/ado.js.map +1 -1
- package/build/watchers/github.js +21 -48
- package/build/watchers/github.js.map +1 -1
- package/build/watchers/linear.js +2 -17
- package/build/watchers/linear.js.map +1 -1
- package/build/watchers/npm.js +1 -1
- package/build/watchers/npm.js.map +1 -1
- package/build/watchers/source.js +8 -2
- package/build/watchers/source.js.map +1 -1
- package/package.json +1 -1
package/build/watchers/ado.js
CHANGED
|
@@ -1,91 +1,40 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { adoCodeHost, adoHttp, adoPipelines, checksSettled, needsAnswer, } from "../lib/providers/index.js";
|
|
2
2
|
import { notePrefixes } from "../profile.js";
|
|
3
|
-
import {
|
|
3
|
+
import { azToken } from "./ado-api.js";
|
|
4
4
|
import { boardsWaits } from "./boards.js";
|
|
5
|
-
import {
|
|
6
|
-
import { perPass, perWait, spend, untilSpent, WaitProblem, } from "./source.js";
|
|
5
|
+
import { checksLine, perPass, perWait, spend, untilSpent, WaitProblem, } from "./source.js";
|
|
7
6
|
export { azToken } from "./ado-api.js";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
status: z.string(),
|
|
15
|
-
targetRefName: z.string().optional(),
|
|
16
|
-
});
|
|
17
|
-
const evaluation = z.looseObject({
|
|
18
|
-
configuration: z
|
|
19
|
-
.looseObject({
|
|
20
|
-
isBlocking: z.boolean().optional(),
|
|
21
|
-
isEnabled: z.boolean().optional(),
|
|
22
|
-
type: z.looseObject({ displayName: z.string().optional() }).optional(),
|
|
23
|
-
})
|
|
24
|
-
.optional(),
|
|
25
|
-
context: z
|
|
26
|
-
.looseObject({
|
|
27
|
-
buildDefinitionName: z.string().optional(),
|
|
28
|
-
buildIsNotCurrent: z.boolean().optional(),
|
|
29
|
-
isExpired: z.boolean().optional(),
|
|
30
|
-
lastMergeSourceCommitId: z.string().optional(),
|
|
31
|
-
})
|
|
32
|
-
.nullish(),
|
|
33
|
-
status: z.string(),
|
|
34
|
-
});
|
|
35
|
-
const thread = z.looseObject({
|
|
36
|
-
comments: z
|
|
37
|
-
.array(z.looseObject({
|
|
38
|
-
commentType: z.string().optional(),
|
|
39
|
-
content: z.string().nullish(),
|
|
40
|
-
isDeleted: z.boolean().optional(),
|
|
41
|
-
}))
|
|
42
|
-
.optional(),
|
|
43
|
-
id: z.number(),
|
|
44
|
-
isDeleted: z.boolean().optional(),
|
|
45
|
-
properties: z.looseObject({ CodeReviewThreadType: z.unknown().optional() }).nullish(),
|
|
46
|
-
status: z.string().optional(),
|
|
47
|
-
});
|
|
48
|
-
const build = z.looseObject({ result: z.string().nullish(), status: z.string() });
|
|
49
|
-
const list = (item) => z.looseObject({ value: z.array(item) });
|
|
50
|
-
// ADO PRs (merged, checks, comment) and pipeline runs (done), over REST, and the waits on ADO Boards
|
|
51
|
-
// items (approval, item), so all of them share one budget. The organization and project come from
|
|
52
|
-
// the waiting worker's profile. A pass reads each PR once, and its evaluations and threads only
|
|
53
|
-
// when a wait needs them. A PR wait whose condition doesn't hold yet reports the PR's merge state,
|
|
54
|
-
// so a conflict with the base branch, which no build runs on, can wake its worker (conflicts.ts).
|
|
7
|
+
// ADO PRs (merged, checks, comment) and pipeline runs (done), read through the providers' Azure
|
|
8
|
+
// Repos and Azure Pipelines adapters, and the waits on ADO Boards items (approval, item), so all of
|
|
9
|
+
// them share one budget. The organization and project come from the waiting worker's profile. A
|
|
10
|
+
// pass reads each PR once, and its evaluations and threads only when a wait needs them. A PR wait
|
|
11
|
+
// whose condition doesn't hold yet reports the PR's merge state, so a conflict with the base
|
|
12
|
+
// branch, which no build runs on, can wake its worker (conflicts.ts).
|
|
55
13
|
export function adoSource({ fetch: fetcher = globalThis.fetch, token = azToken(), } = {}) {
|
|
56
|
-
// The first try's request was taken from the budget by the caller; a retry with a renewed token
|
|
57
|
-
// takes one more.
|
|
58
|
-
const get = async (budget, base, path, version = '7.1') => {
|
|
59
|
-
const url = `${base}/_apis/${path}${path.includes('?') ? '&' : '?'}api-version=${version}`;
|
|
60
|
-
const { body, status } = await adoRequest(fetcher, token, url, { onRetry: () => spend(budget) });
|
|
61
|
-
if (status === 404 || status === 400)
|
|
62
|
-
throw new WaitProblem(`Azure DevOps answered ${status} for ${path}`);
|
|
63
|
-
if (status !== 200)
|
|
64
|
-
throw new Error(`Azure DevOps answered ${status} for ${path}`);
|
|
65
|
-
return body;
|
|
66
|
-
};
|
|
67
14
|
const boards = boardsWaits({ fetch: fetcher, token });
|
|
68
15
|
return {
|
|
69
16
|
check: async (waits, budget) => {
|
|
70
17
|
const outcomes = new Map();
|
|
71
|
-
|
|
72
|
-
const
|
|
18
|
+
// A retry with a renewed token takes one more request from the budget.
|
|
19
|
+
const http = perPassHttp(adoHttp({ fetch: fetcher, onRetry: () => spend(budget), token }), budget);
|
|
20
|
+
const host = adoCodeHost(http);
|
|
21
|
+
const ci = adoPipelines(http);
|
|
73
22
|
await untilSpent(async () => {
|
|
74
23
|
for (const wait of waits) {
|
|
75
24
|
const c = wait.condition;
|
|
76
25
|
if ((c.kind !== 'pr' || c.host !== 'ado') && c.kind !== 'run')
|
|
77
26
|
continue;
|
|
78
27
|
await perWait(outcomes, wait.id, async () => {
|
|
79
|
-
const
|
|
28
|
+
const repo = repoOf(wait.profile);
|
|
80
29
|
if (c.kind === 'run') {
|
|
81
|
-
const
|
|
82
|
-
return
|
|
30
|
+
const run = await ci.run({ id: c.id, repo });
|
|
31
|
+
return run.status === 'completed' ? `run ${c.pipeline} ${c.id} ${run.result ?? 'completed'}` : null;
|
|
83
32
|
}
|
|
84
|
-
const
|
|
85
|
-
const pr =
|
|
86
|
-
if (pr.
|
|
33
|
+
const ref = { number: c.number, repo: { ...repo, repository: c.repo } };
|
|
34
|
+
const pr = await host.pr(ref);
|
|
35
|
+
if (pr.state === 'merged')
|
|
87
36
|
return `pr ${c.number} merged`;
|
|
88
|
-
if (pr.
|
|
37
|
+
if (pr.state === 'closed')
|
|
89
38
|
return `pr ${c.number} abandoned`;
|
|
90
39
|
const merge = mergeOf(pr);
|
|
91
40
|
const found = (resolution) => resolution === null
|
|
@@ -99,13 +48,10 @@ export function adoSource({ fetch: fetcher = globalThis.fetch, token = azToken()
|
|
|
99
48
|
// No build runs on a conflicted PR, so its evaluations can only be stale: not asked.
|
|
100
49
|
if (merge?.conflicts)
|
|
101
50
|
return found(null);
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
const verdict = checksVerdict(pr, value);
|
|
105
|
-
return found(verdict === null ? null : `pr ${c.number} ${verdict}`);
|
|
51
|
+
const settled = checksSettled(await host.checks(ref));
|
|
52
|
+
return found(settled === null ? null : `pr ${c.number} ${checksLine(settled)}`);
|
|
106
53
|
}
|
|
107
|
-
const
|
|
108
|
-
const open = openReviewThreads(value, notePrefixes(wait.profile));
|
|
54
|
+
const open = (await host.threads(ref, { notePrefixes: notePrefixes(wait.profile) })).filter(needsAnswer);
|
|
109
55
|
return found(open.length > 0
|
|
110
56
|
? `pr ${c.number} comment: ${open.length} open thread${open.length === 1 ? '' : 's'}`
|
|
111
57
|
: null);
|
|
@@ -132,56 +78,27 @@ export function adoSource({ fetch: fetcher = globalThis.fetch, token = azToken()
|
|
|
132
78
|
name: 'ado',
|
|
133
79
|
};
|
|
134
80
|
}
|
|
135
|
-
// The PR's blocking builds as one verdict once none of them runs, or null while one does (or none
|
|
136
|
-
// has been evaluated yet). A path-filtered build the PR doesn't touch is `notApplicable`, which
|
|
137
|
-
// passes, as `land` reads it. Right after a push an evaluation can still describe the previous commit.
|
|
138
|
-
export function checksVerdict(pr, evaluations) {
|
|
139
|
-
const source = pr.lastMergeSourceCommit?.commitId;
|
|
140
|
-
const builds = evaluations.filter((e) => e.configuration?.isEnabled &&
|
|
141
|
-
e.configuration.isBlocking &&
|
|
142
|
-
e.configuration.type?.displayName === 'Build' &&
|
|
143
|
-
!e.context?.buildIsNotCurrent &&
|
|
144
|
-
(!source || !e.context?.lastMergeSourceCommitId || e.context.lastMergeSourceCommitId === source));
|
|
145
|
-
const finished = new Set(['approved', 'broken', 'notApplicable', 'rejected']);
|
|
146
|
-
const live = builds.filter((e) => !e.context?.isExpired);
|
|
147
|
-
if (builds.length === 0 || live.some((e) => !finished.has(e.status)))
|
|
148
|
-
return null;
|
|
149
|
-
if (live.length === 0)
|
|
150
|
-
return 'checks expired';
|
|
151
|
-
const failed = live
|
|
152
|
-
.filter((e) => e.status === 'rejected' || e.status === 'broken')
|
|
153
|
-
.map((e) => e.context?.buildDefinitionName ?? 'a build');
|
|
154
|
-
return failed.length > 0 ? `checks failed: ${failed.join(', ')}` : 'checks passed';
|
|
155
|
-
}
|
|
156
81
|
// An open PR's merge state, from what ADO last worked out: `conflicts`, or `succeeded` for a clean
|
|
157
82
|
// merge. Null while it works one out (`queued`, `notSet`), for a failure that isn't a conflict, or
|
|
158
83
|
// with no target branch to name in the wake's `git merge`.
|
|
159
|
-
|
|
160
|
-
if ((pr.
|
|
84
|
+
function mergeOf(pr) {
|
|
85
|
+
if ((pr.merge !== 'conflicts' && pr.merge !== 'clean') || !pr.base)
|
|
161
86
|
return null;
|
|
87
|
+
return { base: pr.base, commit: pr.sourceCommit, conflicts: pr.merge === 'conflicts' };
|
|
88
|
+
}
|
|
89
|
+
// The adapters' GETs, each URL asked once per pass and taken from the budget first.
|
|
90
|
+
function perPassHttp(http, budget) {
|
|
91
|
+
const json = perPass(budget);
|
|
92
|
+
const text = perPass(budget);
|
|
162
93
|
return {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
conflicts: pr.mergeStatus === 'conflicts',
|
|
94
|
+
json: (url) => json(url, () => http.json(url)),
|
|
95
|
+
text: (url) => text(url, () => http.text(url)),
|
|
166
96
|
};
|
|
167
97
|
}
|
|
168
|
-
|
|
169
|
-
// work-skill note: what a worker has to answer. Every comment here can carry the same identity, so
|
|
170
|
-
// a note heading (`noteHeading`, under any of `notePrefixes`), not the author, marks the
|
|
171
|
-
// worker's own (the work skill's `land` reads them the same way).
|
|
172
|
-
export function openReviewThreads(threads, notePrefixes) {
|
|
173
|
-
const done = new Set(['byDesign', 'closed', 'fixed', 'wontFix']);
|
|
174
|
-
return threads
|
|
175
|
-
.filter((t) => !t.isDeleted && !done.has(t.status ?? '') && !t.properties?.CodeReviewThreadType)
|
|
176
|
-
.filter((t) => {
|
|
177
|
-
const comments = (t.comments ?? []).filter((c) => !c.isDeleted && c.commentType !== 'system');
|
|
178
|
-
return comments.length > 0 && noteHeading(comments.at(-1)?.content ?? '', notePrefixes) === null;
|
|
179
|
-
})
|
|
180
|
-
.map((t) => t.id);
|
|
181
|
-
}
|
|
182
|
-
function baseOf(profile) {
|
|
98
|
+
function repoOf(profile) {
|
|
183
99
|
if (profile?.codeHost.kind !== 'ado')
|
|
184
100
|
throw new WaitProblem("the project's profile has no Azure DevOps code host");
|
|
185
|
-
|
|
101
|
+
const { organization, project, repository } = profile.codeHost;
|
|
102
|
+
return { host: 'ado', organization, project, repository };
|
|
186
103
|
}
|
|
187
104
|
//# sourceMappingURL=ado.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado.js","sourceRoot":"","sources":["../../src/watchers/ado.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ado.js","sourceRoot":"","sources":["../../src/watchers/ado.ts"],"names":[],"mappings":"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"}
|
package/build/watchers/github.js
CHANGED
|
@@ -1,21 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { checksSettled, githubCodeHost, githubRepoRef, NotFound } from "../lib/providers/index.js";
|
|
2
2
|
import { notePrefixes } from "../profile.js";
|
|
3
3
|
import { outputOf, run } from "../run.js";
|
|
4
|
-
import {
|
|
5
|
-
import { perPass, perWait, untilSpent, WaitProblem } from "./source.js";
|
|
6
|
-
const pull = z.looseObject({
|
|
7
|
-
head: z.looseObject({ sha: z.string() }),
|
|
8
|
-
merged: z.boolean().optional(),
|
|
9
|
-
state: z.string(),
|
|
10
|
-
});
|
|
11
|
-
const checkRuns = z.looseObject({
|
|
12
|
-
check_runs: z.array(z.looseObject({ conclusion: z.string().nullish(), name: z.string(), status: z.string() })),
|
|
13
|
-
});
|
|
14
|
-
const user = z.looseObject({ login: z.string(), type: z.string().optional() }).nullish();
|
|
15
|
-
const comments = z.array(z.looseObject({ body: z.string().nullish(), created_at: z.string(), user }));
|
|
16
|
-
const reviews = z.array(z.looseObject({ body: z.string().nullish(), state: z.string(), submitted_at: z.string().nullish(), user }));
|
|
17
|
-
// Conclusions that don't fail a check.
|
|
18
|
-
const PASSING = new Set(['neutral', 'skipped', 'success']);
|
|
4
|
+
import { checksLine, perPass, perWait, untilSpent, WaitProblem } from "./source.js";
|
|
19
5
|
export function ghApi() {
|
|
20
6
|
return async (path) => {
|
|
21
7
|
const result = await run('gh', ['api', path], { timeoutMs: 60_000 });
|
|
@@ -23,19 +9,19 @@ export function ghApi() {
|
|
|
23
9
|
return JSON.parse(result.stdout);
|
|
24
10
|
const said = outputOf(result, 300);
|
|
25
11
|
if (/HTTP 404|Not Found/i.test(said))
|
|
26
|
-
throw new
|
|
12
|
+
throw new NotFound(`GitHub answered 404 for ${path}`);
|
|
27
13
|
throw new Error(`gh api ${path} failed: ${said}`);
|
|
28
14
|
};
|
|
29
15
|
}
|
|
30
|
-
// GitHub PRs (merged, checks, comment), the
|
|
31
|
-
//
|
|
32
|
-
//
|
|
16
|
+
// GitHub PRs (merged, checks, comment), read through the providers' GitHub code host. GitHub has no
|
|
17
|
+
// open/closed thread state to read cheaply, so `comment` means a person's comment or review made
|
|
18
|
+
// after the wait was registered; bots and the work skill's own notes don't count.
|
|
33
19
|
export function githubSource({ gh = ghApi() } = {}) {
|
|
34
20
|
return {
|
|
35
21
|
check: async (waits, budget) => {
|
|
36
22
|
const outcomes = new Map();
|
|
37
23
|
const ask = perPass(budget);
|
|
38
|
-
const
|
|
24
|
+
const host = githubCodeHost({ api: (path) => ask(path, () => gh(path)) });
|
|
39
25
|
await untilSpent(async () => {
|
|
40
26
|
for (const wait of waits) {
|
|
41
27
|
const c = wait.condition;
|
|
@@ -43,41 +29,28 @@ export function githubSource({ gh = ghApi() } = {}) {
|
|
|
43
29
|
continue;
|
|
44
30
|
await perWait(outcomes, wait.id, async () => {
|
|
45
31
|
const at = `pr ${c.repo}#${c.number}`;
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
32
|
+
const repo = githubRepoRef(c.repo);
|
|
33
|
+
if (!repo)
|
|
34
|
+
throw new WaitProblem(`${c.repo} is not a GitHub owner/repo`);
|
|
35
|
+
const ref = { number: c.number, repo };
|
|
36
|
+
const pr = await host.pr(ref);
|
|
37
|
+
if (pr.state === 'merged')
|
|
49
38
|
return `${at} merged`;
|
|
50
39
|
if (pr.state === 'closed')
|
|
51
40
|
return `${at} closed unmerged`;
|
|
52
41
|
if (c.on === 'merged')
|
|
53
42
|
return null;
|
|
54
43
|
if (c.on === 'checks') {
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
return null;
|
|
58
|
-
const failed = runs.filter((r) => !PASSING.has(r.conclusion ?? '')).map((r) => r.name);
|
|
59
|
-
return failed.length > 0 ? `${at} checks failed: ${failed.join(', ')}` : `${at} checks passed`;
|
|
44
|
+
const settled = checksSettled(await host.checks(ref));
|
|
45
|
+
return settled === null ? null : `${at} ${checksLine(settled)}`;
|
|
60
46
|
}
|
|
61
|
-
const notes = notePrefixes(wait.profile);
|
|
62
47
|
const since = Date.parse(wait.createdAt);
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
...comments
|
|
70
|
-
.parse(await once(`${base}/issues/${c.number}/comments?${after}`))
|
|
71
|
-
.filter((x) => byPerson(x.user, x.body, x.created_at)),
|
|
72
|
-
...comments
|
|
73
|
-
.parse(await once(`${base}/pulls/${c.number}/comments?${after}`))
|
|
74
|
-
.filter((x) => byPerson(x.user, x.body, x.created_at)),
|
|
75
|
-
...reviews
|
|
76
|
-
.parse(await once(`${base}/pulls/${c.number}/reviews?per_page=100`))
|
|
77
|
-
.filter((x) => x.state !== 'PENDING' && byPerson(x.user, x.body, x.submitted_at)),
|
|
78
|
-
];
|
|
79
|
-
const first = found[0];
|
|
80
|
-
return first ? `${at} comment by ${first.user?.login ?? 'someone'}` : null;
|
|
48
|
+
const threads = await host.threads(ref, {
|
|
49
|
+
notePrefixes: notePrefixes(wait.profile),
|
|
50
|
+
since: wait.createdAt,
|
|
51
|
+
});
|
|
52
|
+
const first = threads.find((t) => t.byPerson && t.at !== null && Date.parse(t.at) > since);
|
|
53
|
+
return first ? `${at} comment by ${first.by ?? 'someone'}` : null;
|
|
81
54
|
});
|
|
82
55
|
}
|
|
83
56
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/watchers/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/watchers/github.ts"],"names":[],"mappings":"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"}
|
package/build/watchers/linear.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { ConductorError } from "../errors.js";
|
|
3
|
+
import { noteHeading } from "../lib/providers/index.js";
|
|
3
4
|
import { notePrefixes } from "../profile.js";
|
|
4
5
|
import { readLinearKey } from "./linear-key.js";
|
|
5
6
|
import { perWait, spend, untilSpent, WaitProblem } from "./source.js";
|
|
@@ -208,23 +209,7 @@ export function linearSource({ fetch: fetcher = globalThis.fetch, key = readLine
|
|
|
208
209
|
name: 'linear',
|
|
209
210
|
};
|
|
210
211
|
}
|
|
211
|
-
//
|
|
212
|
-
// null when the body doesn't start with one. "Plan approved (via …)" reads as "Plan approved".
|
|
213
|
-
export function noteHeading(body, notePrefixes) {
|
|
214
|
-
const first = body.split(/\r?\n/).find((line) => line.trim() !== '') ?? '';
|
|
215
|
-
const heading = first.replace(/^[#*\s]+/, '').replace(/[*\s]+$/, '');
|
|
216
|
-
const prefix = notePrefixes.find((p) => heading.startsWith(p));
|
|
217
|
-
if (prefix === undefined)
|
|
218
|
-
return null;
|
|
219
|
-
const rest = heading.slice(prefix.length);
|
|
220
|
-
const split = /^([^(·]+?) · (.+)$/.exec(rest);
|
|
221
|
-
const phase = (split?.[1] ?? rest.replace(/\s*\(.*\)$/, '')).trim();
|
|
222
|
-
if (!phase)
|
|
223
|
-
return null;
|
|
224
|
-
const kind = split?.[2] === undefined ? null : /^([a-z][a-z-]*):\s*(.*)$/.exec(split[2].trim());
|
|
225
|
-
return { kind: kind?.[1] ?? null, line: kind ? kind[2]?.trim() || null : null, phase };
|
|
226
|
-
}
|
|
227
|
-
// The phase of a note's heading, or null.
|
|
212
|
+
// The phase of a note's heading (`noteHeading`), or null.
|
|
228
213
|
export function phaseOf(body, notePrefixes) {
|
|
229
214
|
return noteHeading(body, notePrefixes)?.phase ?? null;
|
|
230
215
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../../src/watchers/linear.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../../src/watchers/linear.ts"],"names":[],"mappings":"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"}
|
package/build/watchers/npm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { NPM_REGISTRY } from "../lib/providers/index.js";
|
|
2
3
|
import { getJson, perPass, perWait, untilSpent, WaitProblem } from "./source.js";
|
|
3
|
-
export const NPM_REGISTRY = 'https://registry.npmjs.org';
|
|
4
4
|
const distTags = z.record(z.string(), z.string());
|
|
5
5
|
// A version on a dist-tag, from the registry's dist-tags endpoint: a few bytes, read with no cache,
|
|
6
6
|
// so a stage approved a moment ago shows on the next pass. One request per package per pass.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/watchers/npm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAgB,OAAO,EAAE,OAAO,EAAe,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE5G,MAAM,
|
|
1
|
+
{"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/watchers/npm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAgB,OAAO,EAAE,OAAO,EAAe,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE5G,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAElD,oGAAoG;AACpG,6FAA6F;AAC7F,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,YAAY,EAAE,GAAG,EAAE;IAC3F,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC7B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;YAC5C,MAAM,GAAG,GAAG,OAAO,CAAyB,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,CAAC,GAAW,EAAmC,EAAE,CAC9D,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CACpC,OAAO,EACP,GAAG,QAAQ,cAAc,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,YAAY,EAC5D;oBACE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE;iBACrE,CACF,CAAC;gBACF,IAAI,MAAM,KAAK,GAAG;oBAAE,MAAM,IAAI,WAAW,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;gBACvE,IAAI,MAAM,KAAK,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC;gBACrF,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YACL,MAAM,UAAU,CAAC,KAAK,IAAI,EAAE;gBAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;oBACzB,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;wBAAE,SAAS;oBAC/B,MAAM,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CAC1C,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CACpG,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,EAAE,KAAK;KACZ,CAAC;AACJ,CAAC"}
|
package/build/watchers/source.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NotFound } from "../lib/providers/index.js";
|
|
1
2
|
// Stops a pass when the budget is spent.
|
|
2
3
|
export class BudgetSpent extends Error {
|
|
3
4
|
constructor() {
|
|
@@ -13,6 +14,10 @@ export class WaitProblem extends Error {
|
|
|
13
14
|
this.name = 'WaitProblem';
|
|
14
15
|
}
|
|
15
16
|
}
|
|
17
|
+
// A PR's settled checks in a wake: `checks passed`, `checks expired` or `checks failed: <names>`.
|
|
18
|
+
export function checksLine(settled) {
|
|
19
|
+
return settled.state === 'failed' ? `checks failed: ${settled.failed.join(', ')}` : `checks ${settled.state}`;
|
|
20
|
+
}
|
|
16
21
|
// GET with a timeout, for the plain-HTTP sources.
|
|
17
22
|
export async function getJson(fetcher, url, { headers = {}, timeoutMs = 20_000 } = {}) {
|
|
18
23
|
const response = await fetcher(url, { cache: 'no-store', headers, signal: AbortSignal.timeout(timeoutMs) });
|
|
@@ -40,7 +45,8 @@ export function perPass(budget) {
|
|
|
40
45
|
return pending;
|
|
41
46
|
};
|
|
42
47
|
}
|
|
43
|
-
// Runs one wait's check, turning a WaitProblem
|
|
48
|
+
// Runs one wait's check, turning a WaitProblem (or a provider's NotFound: the PR or run doesn't
|
|
49
|
+
// exist) into its Outcome; anything else is the source's.
|
|
44
50
|
export async function perWait(outcomes, id, check) {
|
|
45
51
|
try {
|
|
46
52
|
const found = await check();
|
|
@@ -48,7 +54,7 @@ export async function perWait(outcomes, id, check) {
|
|
|
48
54
|
outcomes.set(id, typeof found === 'string' ? { resolution: found } : found);
|
|
49
55
|
}
|
|
50
56
|
catch (error) {
|
|
51
|
-
if (!(error instanceof WaitProblem))
|
|
57
|
+
if (!(error instanceof WaitProblem) && !(error instanceof NotFound))
|
|
52
58
|
throw error;
|
|
53
59
|
outcomes.set(id, { error: error.message });
|
|
54
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/watchers/source.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/watchers/source.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED