@detergent-software/conductor 1.4.0-dev.1 → 1.4.0-dev.11
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 +102 -0
- package/README.md +86 -20
- package/build/brief-cli.js +105 -23
- package/build/brief-cli.js.map +1 -1
- package/build/brief.js +107 -9
- package/build/brief.js.map +1 -1
- package/build/broker.js +40 -14
- package/build/broker.js.map +1 -1
- package/build/cli.js +49 -18
- package/build/cli.js.map +1 -1
- package/build/code-host-cli.js +46 -2
- package/build/code-host-cli.js.map +1 -1
- package/build/code-host.js +2 -0
- package/build/code-host.js.map +1 -1
- package/build/conditions.js +22 -13
- package/build/conditions.js.map +1 -1
- package/build/config.js +4 -0
- package/build/config.js.map +1 -1
- package/build/daemon.js +74 -19
- package/build/daemon.js.map +1 -1
- package/build/follow-ups.js +72 -0
- package/build/follow-ups.js.map +1 -0
- package/build/help.js +712 -208
- package/build/help.js.map +1 -1
- package/build/in-process.js +30 -0
- package/build/in-process.js.map +1 -0
- package/build/inbox.js +137 -11
- package/build/inbox.js.map +1 -1
- package/build/lib/providers/ado/code-host.js +8 -5
- package/build/lib/providers/ado/code-host.js.map +1 -1
- package/build/lib/providers/ado/pipelines.js +16 -10
- package/build/lib/providers/ado/pipelines.js.map +1 -1
- package/build/lib/providers/github/actions.js +11 -0
- package/build/lib/providers/github/actions.js.map +1 -1
- package/build/lib/providers/github/code-host.js +17 -0
- package/build/lib/providers/github/code-host.js.map +1 -1
- package/build/lib/providers/index.js +1 -1
- package/build/lib/providers/index.js.map +1 -1
- package/build/lib/providers/verdicts/pr.js +14 -12
- package/build/lib/providers/verdicts/pr.js.map +1 -1
- package/build/manager.js +116 -13
- package/build/manager.js.map +1 -1
- package/build/note.js +95 -14
- package/build/note.js.map +1 -1
- package/build/notes.js +104 -16
- package/build/notes.js.map +1 -1
- package/build/notify.js +2 -1
- package/build/notify.js.map +1 -1
- package/build/package-info.js +12 -0
- package/build/package-info.js.map +1 -0
- package/build/profile.js +64 -13
- package/build/profile.js.map +1 -1
- package/build/project-check-cli.js +85 -0
- package/build/project-check-cli.js.map +1 -0
- package/build/project-check.js +362 -0
- package/build/project-check.js.map +1 -0
- package/build/resolve.js +11 -3
- package/build/resolve.js.map +1 -1
- package/build/rule-actions.js +26 -6
- package/build/rule-actions.js.map +1 -1
- package/build/rules-service.js +33 -20
- package/build/rules-service.js.map +1 -1
- package/build/rules.js +31 -14
- package/build/rules.js.map +1 -1
- package/build/runs.js.map +1 -1
- package/build/scheduler.js +43 -1
- package/build/scheduler.js.map +1 -1
- package/build/server.js +76 -7
- package/build/server.js.map +1 -1
- package/build/spend.js +37 -4
- package/build/spend.js.map +1 -1
- package/build/store.js +42 -4
- package/build/store.js.map +1 -1
- package/build/tracker-writes.js +74 -0
- package/build/tracker-writes.js.map +1 -0
- package/build/trackers.js +20 -0
- package/build/trackers.js.map +1 -1
- package/build/watchers/ado.js +7 -1
- package/build/watchers/ado.js.map +1 -1
- package/build/watchers/boards-writes.js +182 -34
- package/build/watchers/boards-writes.js.map +1 -1
- package/build/watchers/boards.js +7 -2
- package/build/watchers/boards.js.map +1 -1
- package/build/watchers/github.js +20 -2
- package/build/watchers/github.js.map +1 -1
- package/build/watchers/index.js +32 -4
- package/build/watchers/index.js.map +1 -1
- package/build/watchers/issues-brief.js +48 -0
- package/build/watchers/issues-brief.js.map +1 -0
- package/build/watchers/issues-queue.js +85 -0
- package/build/watchers/issues-queue.js.map +1 -0
- package/build/watchers/issues-writes.js +233 -0
- package/build/watchers/issues-writes.js.map +1 -0
- package/build/watchers/issues.js +264 -0
- package/build/watchers/issues.js.map +1 -0
- package/build/watchers/linear-writes.js +198 -0
- package/build/watchers/linear-writes.js.map +1 -0
- package/build/watchers/source.js.map +1 -1
- package/build/worktrees.js +1 -0
- package/build/worktrees.js.map +1 -1
- package/mod/hooks/model.ts +11 -0
- package/mod/hooks/register.tsx +25 -3
- package/package.json +1 -1
package/build/watchers/github.js
CHANGED
|
@@ -2,15 +2,18 @@ import { bindCi } from "../code-host.js";
|
|
|
2
2
|
import { checksSettled, githubActions, githubCodeHost, githubRepoRef, prVerdict } from "../lib/providers/index.js";
|
|
3
3
|
import { notePrefixes } from "../profile.js";
|
|
4
4
|
import { hostMergeFacts } from "../runs.js";
|
|
5
|
+
import { issuesWaits } from "./issues.js";
|
|
5
6
|
import { checkMerge, factsCache } from "./merge.js";
|
|
6
7
|
import { checksLine, perPass, perWait, untilSpent, verdictLine, WaitProblem, } from "./source.js";
|
|
7
8
|
// GitHub PRs (verdict, merged, checks, comment) and a merge's GitHub Actions runs (merge), read
|
|
8
9
|
// through the providers' GitHub code host and Actions adapter as the waiting project's gh account
|
|
9
10
|
// (`projects.<name>.github.user`, else gh's active account). GitHub has no open/closed thread state
|
|
10
11
|
// to read cheaply, so `comment` means a person's comment or review made after the wait was
|
|
11
|
-
// registered; bots and the work skill's own notes don't count. A merge's commit is read once.
|
|
12
|
+
// registered; bots and the work skill's own notes don't count. A merge's commit is read once. The
|
|
13
|
+
// waits on GitHub Issues items (approval, item) share the budget (issues.ts).
|
|
12
14
|
export function githubSource({ credentials, now = () => Date.now(), }) {
|
|
13
15
|
const merges = factsCache();
|
|
16
|
+
const issues = issuesWaits({ credentials });
|
|
14
17
|
return {
|
|
15
18
|
check: async (waits, budget) => {
|
|
16
19
|
const outcomes = new Map();
|
|
@@ -58,7 +61,7 @@ export function githubSource({ credentials, now = () => Date.now(), }) {
|
|
|
58
61
|
}
|
|
59
62
|
if (c.on === 'checks') {
|
|
60
63
|
const settled = checksSettled(await host.checks(ref));
|
|
61
|
-
return settled === null ? null : `${at} ${checksLine(settled)}
|
|
64
|
+
return settled === null ? null : { checks: settled, resolution: `${at} ${checksLine(settled)}` };
|
|
62
65
|
}
|
|
63
66
|
const since = Date.parse(wait.createdAt);
|
|
64
67
|
const threads = await host.threads(ref, {
|
|
@@ -70,6 +73,21 @@ export function githubSource({ credentials, now = () => Date.now(), }) {
|
|
|
70
73
|
});
|
|
71
74
|
}
|
|
72
75
|
});
|
|
76
|
+
try {
|
|
77
|
+
await untilSpent(() => issues.check(waits, budget, outcomes));
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
// An issues failure (a 5xx, GitHub throttling it) mustn't throw away this pass's PR and merge
|
|
81
|
+
// outcomes or back them off: with any of them here, it is the issue waits' problem this pass,
|
|
82
|
+
// and they stay open. Alone, the source fails and backs off as for any API.
|
|
83
|
+
const issueWait = (w) => (w.condition.kind === 'approval' || w.condition.kind === 'item') && w.condition.tracker === 'github-issues';
|
|
84
|
+
if (waits.every(issueWait))
|
|
85
|
+
throw error;
|
|
86
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
87
|
+
for (const wait of waits)
|
|
88
|
+
if (issueWait(wait) && !outcomes.has(wait.id))
|
|
89
|
+
outcomes.set(wait.id, { error: message });
|
|
90
|
+
}
|
|
73
91
|
return outcomes;
|
|
74
92
|
},
|
|
75
93
|
name: 'github',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/watchers/github.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACnH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,UAAU,EAEV,OAAO,EACP,OAAO,EAEP,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AAMrB,gGAAgG;AAChG,kGAAkG;AAClG,oGAAoG;AACpG,2FAA2F;AAC3F,
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/watchers/github.ts"],"names":[],"mappings":"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"}
|
package/build/watchers/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { parseCondition, prRef, sourceOf } from "../conditions.js";
|
|
2
2
|
import { ConductorError } from "../errors.js";
|
|
3
|
+
import {} from "../lib/providers/index.js";
|
|
3
4
|
import { resolveOpenWait } from "../resolve.js";
|
|
4
5
|
import { ACTIVE_STATUSES } from "../store.js";
|
|
5
6
|
import { adoSource } from "./ado.js";
|
|
@@ -116,6 +117,24 @@ export function startWatchers(deps) {
|
|
|
116
117
|
subject: worker?.item ?? null,
|
|
117
118
|
});
|
|
118
119
|
};
|
|
120
|
+
// A PR's required checks failed: after the wait's own `wait.resolved`, the failed runs, which the
|
|
121
|
+
// rules see as `run.failed` and the inbox raises as a failure.
|
|
122
|
+
const checksFailed = (wait, resolution, builds) => {
|
|
123
|
+
const worker = store.getWorker(wait.worker);
|
|
124
|
+
store.appendEvent({
|
|
125
|
+
data: {
|
|
126
|
+
builds,
|
|
127
|
+
condition: wait.condition,
|
|
128
|
+
resolution,
|
|
129
|
+
wait: wait.id,
|
|
130
|
+
worker: wait.worker,
|
|
131
|
+
...(worker ? { name: worker.name } : {}),
|
|
132
|
+
},
|
|
133
|
+
kind: 'pr.checks-failed',
|
|
134
|
+
project: worker?.project ?? null,
|
|
135
|
+
subject: worker?.item ?? null,
|
|
136
|
+
});
|
|
137
|
+
};
|
|
119
138
|
const checkSource = async (source, s, checks) => {
|
|
120
139
|
const interval = settings(config, source).intervalSeconds * 1000;
|
|
121
140
|
s.passes++;
|
|
@@ -126,11 +145,20 @@ export function startWatchers(deps) {
|
|
|
126
145
|
try {
|
|
127
146
|
const outcomes = await source.check(ordered, s.budget);
|
|
128
147
|
let resolved = 0;
|
|
129
|
-
const resolve = (id, resolution) => {
|
|
148
|
+
const resolve = (id, resolution, checks) => {
|
|
130
149
|
const wait = store.getWait(id);
|
|
131
|
-
if (wait && resolveOpenWait(store, wait, resolution))
|
|
132
|
-
resolved++;
|
|
133
150
|
problems.delete(id);
|
|
151
|
+
if (!wait)
|
|
152
|
+
return;
|
|
153
|
+
// The failed runs land with the wait's resolution or not at all: the wait isn't checked again.
|
|
154
|
+
const done = store.transaction(() => {
|
|
155
|
+
const closed = resolveOpenWait(store, wait, resolution, checks ? { checks: checks.state } : {});
|
|
156
|
+
if (closed && checks?.state === 'failed')
|
|
157
|
+
checksFailed(closed, resolution, checks.builds);
|
|
158
|
+
return closed;
|
|
159
|
+
});
|
|
160
|
+
if (done)
|
|
161
|
+
resolved++;
|
|
134
162
|
};
|
|
135
163
|
// A PR's conflict wakes its worker once per spell, and its line goes with the waits' own.
|
|
136
164
|
const wake = spells.observe(ordered, outcomes);
|
|
@@ -140,7 +168,7 @@ export function startWatchers(deps) {
|
|
|
140
168
|
if ('error' in outcome)
|
|
141
169
|
problem(id, outcome.error);
|
|
142
170
|
else if ('resolution' in outcome && !wake.has(id))
|
|
143
|
-
resolve(id, outcome.resolution);
|
|
171
|
+
resolve(id, outcome.resolution, outcome.checks);
|
|
144
172
|
}
|
|
145
173
|
for (const [id, line] of wake)
|
|
146
174
|
resolve(id, line);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/watchers/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/watchers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { BriefError } from "../brief.js";
|
|
2
|
+
import { areaOf, issueNumber, issueRef, issuesGet, issueState, labelsOf, readComments, readDependencies, readIssue, readViewer, requireIssueRepo, } from "./issues.js";
|
|
3
|
+
// A GitHub issue's brief (ATK-458): the issue, its comments, the issues it is blocked by and blocks
|
|
4
|
+
// (GitHub's issue dependencies) and the gh account, whose approvals count. GitHub has no "related"
|
|
5
|
+
// relation, so the brief has none.
|
|
6
|
+
export function issuesBriefs(options) {
|
|
7
|
+
// The gh account's login by account: it doesn't change while the daemon runs.
|
|
8
|
+
const viewers = new Map();
|
|
9
|
+
return {
|
|
10
|
+
read: async (item, profile) => {
|
|
11
|
+
const repo = requireIssueRepo(profile);
|
|
12
|
+
const number = issueNumber(item, repo);
|
|
13
|
+
if (number === null)
|
|
14
|
+
throw new BriefError(`${item} isn't an issue of the repo keyed ${repo.key}`, 'missing');
|
|
15
|
+
const get = issuesGet(options.credentials, repo, null);
|
|
16
|
+
const issue = await readIssue(get, repo, number);
|
|
17
|
+
if (!issue || issue.pull_request !== undefined)
|
|
18
|
+
throw new BriefError(`${repo.owner}/${repo.repo} has no issue #${number} (${item})`, 'missing');
|
|
19
|
+
const who = options.credentials.account('github', repo.conducted).id;
|
|
20
|
+
const [comments, blockedBy, blocks, viewer] = await Promise.all([
|
|
21
|
+
readComments(get, repo, number),
|
|
22
|
+
readDependencies(get, repo, number, 'blocked_by'),
|
|
23
|
+
readDependencies(get, repo, number, 'blocking'),
|
|
24
|
+
viewers.get(who) ?? readViewer(get),
|
|
25
|
+
]);
|
|
26
|
+
viewers.set(who, viewer);
|
|
27
|
+
const labels = labelsOf(issue);
|
|
28
|
+
return {
|
|
29
|
+
area: areaOf(labels, repo.areaPrefix),
|
|
30
|
+
blockedBy: blockedBy.map((d) => link(d, repo)),
|
|
31
|
+
blocks: blocks.map((d) => link(d, repo)),
|
|
32
|
+
comments,
|
|
33
|
+
description: (issue.body ?? '').trim(),
|
|
34
|
+
labels,
|
|
35
|
+
related: [],
|
|
36
|
+
status: issueState(issue, repo),
|
|
37
|
+
title: issue.title,
|
|
38
|
+
trackerProject: null,
|
|
39
|
+
url: issue.html_url,
|
|
40
|
+
viewer,
|
|
41
|
+
};
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function link(issue, repo) {
|
|
46
|
+
return { id: issueRef(issue, repo), status: issueState(issue, repo).name, title: issue.title };
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=issues-brief.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues-brief.js","sourceRoot":"","sources":["../../src/watchers/issues-brief.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { areaOf, ghIssue, issueNumber, issueRef, issuesGet, issueState, labelsOf, readDependencies, readIssue, readPages, repoPath, requireIssueRepo, } from "./issues.js";
|
|
2
|
+
// The scheduler's read of a GitHub Issues queue (ATK-458): the open issues carrying the profile's
|
|
3
|
+
// queue label, oldest first, are the conducted queue. The in-flight issues are read too (a closed
|
|
4
|
+
// one retires its worker), and the open blockers of every open issue, from GitHub's issue
|
|
5
|
+
// dependencies. Pull requests, which the issues API also lists, are left out.
|
|
6
|
+
const OPEN = new Set(['started', 'unstarted']);
|
|
7
|
+
export function issuesQueue(options) {
|
|
8
|
+
return {
|
|
9
|
+
read: async (profile, inFlight, budget) => {
|
|
10
|
+
const repo = requireIssueRepo(profile);
|
|
11
|
+
const get = issuesGet(options.credentials, repo, budget);
|
|
12
|
+
const label = encodeURIComponent(repo.queueLabel);
|
|
13
|
+
const listed = (await readPages(get, `${repoPath(repo)}/issues?state=open&labels=${label}&sort=created&direction=asc`))
|
|
14
|
+
.map((i) => ghIssue.parse(i))
|
|
15
|
+
.filter((i) => i.pull_request === undefined);
|
|
16
|
+
const issues = new Map(listed.map((i) => [issueRef(i, repo), i]));
|
|
17
|
+
const flying = inFlight.flatMap((item) => issueNumber(item, repo) ?? []);
|
|
18
|
+
for (const n of flying) {
|
|
19
|
+
if (issues.has(`${repo.key}-${n}`))
|
|
20
|
+
continue;
|
|
21
|
+
const found = await readIssue(get, repo, n);
|
|
22
|
+
if (found && found.pull_request === undefined)
|
|
23
|
+
issues.set(issueRef(found, repo), found);
|
|
24
|
+
}
|
|
25
|
+
// An open blocker outside the queue still blocks, so it is listed too. The summary counts the
|
|
26
|
+
// open blockers, which saves a read for most issues; without one, the list is read.
|
|
27
|
+
const blockedBy = new Map();
|
|
28
|
+
for (const [ref, issue] of [...issues]) {
|
|
29
|
+
if (!OPEN.has(issueState(issue, repo).type))
|
|
30
|
+
continue;
|
|
31
|
+
const summary = issue.issue_dependencies_summary;
|
|
32
|
+
if (summary && summary.blocked_by === 0)
|
|
33
|
+
continue;
|
|
34
|
+
const open = (await readDependencies(get, repo, issue.number, 'blocked_by')).filter((d) => d.state.toLowerCase() === 'open');
|
|
35
|
+
blockedBy.set(ref, open.map((d) => issueRef(d, repo)));
|
|
36
|
+
for (const d of open)
|
|
37
|
+
if (!issues.has(issueRef(d, repo)))
|
|
38
|
+
issues.set(issueRef(d, repo), d);
|
|
39
|
+
}
|
|
40
|
+
return issuesSnapshot(repo, listed.map((i) => i.number), flying, issues, blockedBy);
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
// The snapshot from the queued issue numbers (oldest first), the in-flight ones, every issue read by
|
|
45
|
+
// key, and each open issue's open blockers. Open queued issues are the queue, in one tracker project
|
|
46
|
+
// named after the repo, as are in-flight ones whose queue label was taken off; an open blocker
|
|
47
|
+
// outside both is listed without a project, so it holds its Area and blocks.
|
|
48
|
+
export function issuesSnapshot(repo, queued, flying, issues, blockedBy) {
|
|
49
|
+
const project = `${repo.owner}/${repo.repo}`;
|
|
50
|
+
const key = (n) => `${repo.key}-${n}`;
|
|
51
|
+
const rank = new Map(queued.map((n, i) => [key(n), i]));
|
|
52
|
+
const inFlight = new Set(flying.map(key));
|
|
53
|
+
const listed = [...issues].flatMap(([ref, issue]) => {
|
|
54
|
+
const type = issueState(issue, repo).type;
|
|
55
|
+
if (!OPEN.has(type))
|
|
56
|
+
return [];
|
|
57
|
+
// Labels ignore case on GitHub, so the human label is spelt as the scheduler looks for it.
|
|
58
|
+
const labels = labelsOf(issue).map((l) => l.toLowerCase() === repo.humanLabel.toLowerCase() ? repo.humanLabel : l);
|
|
59
|
+
const position = rank.get(ref);
|
|
60
|
+
return [
|
|
61
|
+
{
|
|
62
|
+
area: areaOf(labels, repo.areaPrefix),
|
|
63
|
+
blockedBy: [...(blockedBy.get(ref) ?? [])],
|
|
64
|
+
createdAt: issue.created_at ?? null,
|
|
65
|
+
id: ref,
|
|
66
|
+
labels,
|
|
67
|
+
priority: null,
|
|
68
|
+
...(position === undefined ? {} : { rank: position }),
|
|
69
|
+
stateType: type,
|
|
70
|
+
title: issue.title,
|
|
71
|
+
trackerProject: position !== undefined || inFlight.has(ref) ? project : null,
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
});
|
|
75
|
+
return {
|
|
76
|
+
areaLabels: [...new Set(listed.flatMap((i) => i.area ?? []))].sort(),
|
|
77
|
+
closed: flying.map(key).filter((ref) => {
|
|
78
|
+
const issue = issues.get(ref);
|
|
79
|
+
return issue !== undefined && !OPEN.has(issueState(issue, repo).type);
|
|
80
|
+
}),
|
|
81
|
+
issues: listed,
|
|
82
|
+
projects: [{ name: project, priority: repo.priority, sortOrder: 0 }],
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=issues-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues-queue.js","sourceRoot":"","sources":["../../src/watchers/issues-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ConductorError } from "../errors.js";
|
|
3
|
+
import { NotFound } from "../lib/providers/index.js";
|
|
4
|
+
import { NotePostError } from "../notes.js";
|
|
5
|
+
import { followUpLinks, keepsClosed, transitionsOf } from "../tracker-writes.js";
|
|
6
|
+
import { issueNumber, issuesGet, issueState, labelsOf, readComments, readIssue, readPages, readViewer, repoPath, requireIssueRepo, } from "./issues.js";
|
|
7
|
+
// The conductor's writes to GitHub Issues (ATK-458), as the project's gh account: phase notes as
|
|
8
|
+
// issue comments, a rule's label edit, and the tracker writes a worker's notes and verbs cause. A
|
|
9
|
+
// phase is a label (`in-progress`, `in-review`) until Landed closes the issue as completed; labels
|
|
10
|
+
// are added and removed one at a time, never replaced as a set, so a label someone added meanwhile
|
|
11
|
+
// stays. None takes from the watchers' budget, as Linear's and Boards' writes don't.
|
|
12
|
+
const created = z.looseObject({ html_url: z.string(), id: z.number(), number: z.number() });
|
|
13
|
+
const comment = z.looseObject({ html_url: z.string().nullish(), id: z.number() });
|
|
14
|
+
const pull = z.looseObject({ body: z.string().nullish() });
|
|
15
|
+
export function issuesLabels(options) {
|
|
16
|
+
return {
|
|
17
|
+
label: async (item, label, op, profile) => {
|
|
18
|
+
const { issue, number, repo, write } = await target(options, item, profile);
|
|
19
|
+
const has = labelsOf(issue).some((l) => l.toLowerCase() === label.toLowerCase());
|
|
20
|
+
if (has === (op === 'add'))
|
|
21
|
+
return 'already';
|
|
22
|
+
if (op === 'add')
|
|
23
|
+
await addLabel(write, repo, number, label, item);
|
|
24
|
+
else
|
|
25
|
+
await removeLabel(write, repo, number, label);
|
|
26
|
+
return op === 'add' ? 'added' : 'removed';
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
// A note as an issue comment. A refused request (a 4xx, or no gh login) posted nothing; a lost
|
|
31
|
+
// answer or a 5xx may have posted it.
|
|
32
|
+
export function issuesNotes(options) {
|
|
33
|
+
return {
|
|
34
|
+
comment: async (item, body, profile) => {
|
|
35
|
+
const repo = requireIssueRepo(profile);
|
|
36
|
+
const number = issueNumber(item, repo);
|
|
37
|
+
if (number === null)
|
|
38
|
+
throw new NotePostError(`${item} isn't an issue of the repo keyed ${repo.key}`, 'no');
|
|
39
|
+
let answer;
|
|
40
|
+
try {
|
|
41
|
+
answer = await options.credentials.ghWrite(repo.conducted)('POST', `${repoPath(repo)}/issues/${number}/comments`, {
|
|
42
|
+
body,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
47
|
+
// No gh login (nothing was sent), no such issue, or GitHub refusing it: nothing was posted.
|
|
48
|
+
if (error instanceof ConductorError)
|
|
49
|
+
throw new NotePostError(message, 'no', error.details);
|
|
50
|
+
if (error instanceof NotFound || /HTTP 4\d\d/.test(message))
|
|
51
|
+
throw new NotePostError(`GitHub refused the comment on ${item}: ${message}`, 'no');
|
|
52
|
+
throw new NotePostError(`GitHub unreachable: ${message}`, 'unknown');
|
|
53
|
+
}
|
|
54
|
+
const posted = comment.safeParse(answer).data;
|
|
55
|
+
if (!posted)
|
|
56
|
+
throw new NotePostError(`GitHub's answer to the comment on ${item} didn't read`, 'unknown');
|
|
57
|
+
return { id: String(posted.id), url: posted.html_url ?? null };
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// The tracker writes on GitHub Issues: the phase label (and the assignee on `started`), Landed's
|
|
62
|
+
// close as completed, a PR linked by the reference its body carries (else a comment with its URL),
|
|
63
|
+
// and a follow-up as a new issue with its labels and dependencies.
|
|
64
|
+
export function issuesWrites(options) {
|
|
65
|
+
// The gh account's login by account, which an assignee takes.
|
|
66
|
+
const viewers = new Map();
|
|
67
|
+
const viewerOf = async (get, repo) => {
|
|
68
|
+
const who = options.credentials.account('github', repo.conducted).id;
|
|
69
|
+
const known = viewers.get(who) ?? (await readViewer(get));
|
|
70
|
+
viewers.set(who, known);
|
|
71
|
+
return known;
|
|
72
|
+
};
|
|
73
|
+
return {
|
|
74
|
+
file: async (followUp, profile) => {
|
|
75
|
+
const repo = requireIssueRepo(profile);
|
|
76
|
+
const get = issuesGet(options.credentials, repo, null);
|
|
77
|
+
const write = options.credentials.ghWrite(repo.conducted);
|
|
78
|
+
const area = `${repo.areaPrefix}${followUp.area.replace(new RegExp(`^${escape(repo.areaPrefix)}`, 'i'), '')}`;
|
|
79
|
+
// An Area the repo has no label for is refused before anything is written.
|
|
80
|
+
try {
|
|
81
|
+
await get(`${repoPath(repo)}/labels/${encodeURIComponent(area)}`);
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
if (!(error instanceof NotFound))
|
|
85
|
+
throw error;
|
|
86
|
+
const known = (await readPages(get, `${repoPath(repo)}/labels`))
|
|
87
|
+
.map((l) => z.looseObject({ name: z.string() }).parse(l).name)
|
|
88
|
+
.filter((n) => n.toLowerCase().startsWith(repo.areaPrefix.toLowerCase()))
|
|
89
|
+
.map((n) => n.slice(repo.areaPrefix.length))
|
|
90
|
+
.sort();
|
|
91
|
+
throw new ConductorError(`"${followUp.area}" isn't an Area: a "${repo.areaPrefix}" label of ${repo.owner}/${repo.repo}`, [`the Areas: ${known.join(', ') || 'none'}`]);
|
|
92
|
+
}
|
|
93
|
+
const links = followUpLinks(followUp);
|
|
94
|
+
const numberOf = (key) => {
|
|
95
|
+
const n = issueNumber(key, repo);
|
|
96
|
+
if (n === null)
|
|
97
|
+
throw new ConductorError(`${key} isn't an issue of the repo keyed ${repo.key}`);
|
|
98
|
+
return n;
|
|
99
|
+
};
|
|
100
|
+
const related = links.related.map(numberOf);
|
|
101
|
+
const blockedBy = links.blockedBy.map(numberOf);
|
|
102
|
+
// GitHub has no "related" relation: a mention in the body links each in its timeline.
|
|
103
|
+
const body = related.length > 0
|
|
104
|
+
? `${followUp.body.trimEnd()}\n\nRelated: ${related.map((n) => `#${n}`).join(', ')}`
|
|
105
|
+
: followUp.body;
|
|
106
|
+
const labels = [repo.queueLabel, area, repo.triageLabel, followUp.human ? repo.humanLabel : null].flatMap((l) => l === null ? [] : [l]);
|
|
107
|
+
const made = created.safeParse(await write('POST', `${repoPath(repo)}/issues`, { body, labels, title: followUp.title })).data;
|
|
108
|
+
if (!made)
|
|
109
|
+
throw new ConductorError("GitHub didn't create the follow-up");
|
|
110
|
+
const warnings = [];
|
|
111
|
+
// The issue exists now: a dependency that doesn't take is a warning on it, not a failed filing.
|
|
112
|
+
for (const n of blockedBy) {
|
|
113
|
+
try {
|
|
114
|
+
const blocker = await readIssue(get, repo, n);
|
|
115
|
+
if (!blocker?.id)
|
|
116
|
+
throw new Error(`${repo.owner}/${repo.repo} has no issue #${n}`);
|
|
117
|
+
await write('POST', `${repoPath(repo)}/issues/${made.number}/dependencies/blocked_by`, {
|
|
118
|
+
issue_id: blocker.id,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
warnings.push(`not blocked by ${repo.key}-${n}: ${error instanceof Error ? error.message : String(error)}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return { key: `${repo.key}-${made.number}`, url: made.html_url, warnings };
|
|
126
|
+
},
|
|
127
|
+
linkPr: async (item, pr, profile) => {
|
|
128
|
+
const { get, number, repo, write } = await target(options, item, profile);
|
|
129
|
+
// A GitHub PR whose body carries the issue's reference is linked by GitHub itself.
|
|
130
|
+
if (pr.repo.host === 'github') {
|
|
131
|
+
const body = pull.parse(await get(`repos/${pr.repo.owner}/${pr.repo.repo}/pulls/${pr.number}`)).body ?? '';
|
|
132
|
+
if (mentions(body, repo, number, pr.repo))
|
|
133
|
+
return 'already';
|
|
134
|
+
}
|
|
135
|
+
const comments = await readComments(get, repo, number);
|
|
136
|
+
if (comments.some((c) => c.body.includes(pr.url)))
|
|
137
|
+
return 'already';
|
|
138
|
+
await write('POST', `${repoPath(repo)}/issues/${number}/comments`, { body: `PR: ${pr.url}` });
|
|
139
|
+
return 'linked';
|
|
140
|
+
},
|
|
141
|
+
prReference: (item, host, profile) => {
|
|
142
|
+
if (host !== 'github')
|
|
143
|
+
return null;
|
|
144
|
+
const repo = requireIssueRepo(profile);
|
|
145
|
+
const number = issueNumber(item, repo);
|
|
146
|
+
return number === null ? null : `Refs ${repo.owner}/${repo.repo}#${number}`;
|
|
147
|
+
},
|
|
148
|
+
transition: async (item, phase, profile) => {
|
|
149
|
+
const name = transitionsOf(profile)[phase];
|
|
150
|
+
// A phase with no label moves nothing, but `started` still assigns.
|
|
151
|
+
if (name === null && phase !== 'started')
|
|
152
|
+
return { result: 'skipped', state: null };
|
|
153
|
+
const { get, issue, number, repo, write } = await target(options, item, profile);
|
|
154
|
+
const state = issueState(issue, repo);
|
|
155
|
+
if (keepsClosed(phase, state.type))
|
|
156
|
+
return { result: 'kept', state: state.name };
|
|
157
|
+
const labels = labelsOf(issue);
|
|
158
|
+
const phaseLabels = labels.filter((l) => repo.phaseLabels.some((p) => p.toLowerCase() === l.toLowerCase()));
|
|
159
|
+
if (phase === 'landed') {
|
|
160
|
+
if (state.type === 'completed')
|
|
161
|
+
return { result: 'already', state: state.name };
|
|
162
|
+
const after = z
|
|
163
|
+
.looseObject({ state: z.string() })
|
|
164
|
+
.safeParse(await write('PATCH', `${repoPath(repo)}/issues/${number}`, { state: 'closed', state_reason: 'completed' })).data;
|
|
165
|
+
if (after?.state.toLowerCase() !== 'closed')
|
|
166
|
+
throw new ConductorError(`GitHub didn't close ${item}: it is ${after?.state ?? 'unreadable'}`);
|
|
167
|
+
for (const l of phaseLabels)
|
|
168
|
+
await removeLabel(write, repo, number, l);
|
|
169
|
+
return { result: 'moved', state: 'closed' };
|
|
170
|
+
}
|
|
171
|
+
const assignee = phase === 'started' ? await viewerOf(get, repo) : null;
|
|
172
|
+
const assign = assignee !== null && !(issue.assignees ?? []).some((a) => a.login.toLowerCase() === assignee.toLowerCase());
|
|
173
|
+
// A phase with no label of its own leaves the other phase's label where it is.
|
|
174
|
+
const stale = name === null ? [] : phaseLabels.filter((l) => l.toLowerCase() !== name.toLowerCase());
|
|
175
|
+
const add = name !== null && !labels.some((l) => l.toLowerCase() === name.toLowerCase());
|
|
176
|
+
// A PR opened on a closed issue reopens it, for a follow-up PR on a landed item.
|
|
177
|
+
const reopen = state.type === 'completed' || state.type === 'canceled';
|
|
178
|
+
if (!assign && !add && stale.length === 0 && !reopen)
|
|
179
|
+
return { result: name === null ? 'skipped' : 'already', state: name === null ? null : state.name };
|
|
180
|
+
if (reopen)
|
|
181
|
+
await write('PATCH', `${repoPath(repo)}/issues/${number}`, { state: 'open' });
|
|
182
|
+
if (assign)
|
|
183
|
+
await write('POST', `${repoPath(repo)}/issues/${number}/assignees`, { assignees: [assignee] });
|
|
184
|
+
if (add)
|
|
185
|
+
await addLabel(write, repo, number, name, item);
|
|
186
|
+
for (const l of stale)
|
|
187
|
+
await removeLabel(write, repo, number, l);
|
|
188
|
+
return { result: name === null ? 'skipped' : 'moved', state: name };
|
|
189
|
+
},
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
async function addLabel(write, repo, number, label, item) {
|
|
193
|
+
// GitHub makes a label the repo doesn't have yet. The answer is the issue's labels after the add.
|
|
194
|
+
const after = z
|
|
195
|
+
.array(z.looseObject({ name: z.string() }))
|
|
196
|
+
.safeParse(await write('POST', `${repoPath(repo)}/issues/${number}/labels`, { labels: [label] })).data;
|
|
197
|
+
if (!after?.some((l) => l.name.toLowerCase() === label.toLowerCase()))
|
|
198
|
+
throw new ConductorError(`GitHub didn't add the label "${label}" to ${item}`);
|
|
199
|
+
}
|
|
200
|
+
function escape(text) {
|
|
201
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
202
|
+
}
|
|
203
|
+
// The issue's reference in a PR body: `#n` in the issue's own repo, `owner/repo#n` or the issue's
|
|
204
|
+
// URL from anywhere.
|
|
205
|
+
function mentions(body, repo, number, prRepo) {
|
|
206
|
+
const full = new RegExp(`(?:^|[^\\w/])${escape(`${repo.owner}/${repo.repo}`)}#${number}\\b`, 'i');
|
|
207
|
+
const url = new RegExp(`github\\.com/${escape(`${repo.owner}/${repo.repo}`)}/issues/${number}\\b`, 'i');
|
|
208
|
+
const same = prRepo.owner.toLowerCase() === repo.owner.toLowerCase() && prRepo.repo.toLowerCase() === repo.repo.toLowerCase();
|
|
209
|
+
return full.test(body) || url.test(body) || (same && new RegExp(`(?:^|[^\\w/])#${number}\\b`).test(body));
|
|
210
|
+
}
|
|
211
|
+
// A label taken off; one already gone (GitHub's 404) is fine.
|
|
212
|
+
async function removeLabel(write, repo, number, label) {
|
|
213
|
+
try {
|
|
214
|
+
await write('DELETE', `${repoPath(repo)}/issues/${number}/labels/${encodeURIComponent(label)}`);
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
if (!(error instanceof NotFound))
|
|
218
|
+
throw error;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
// The item's repo, number and issue, refused when the item isn't one of the repo's issues.
|
|
222
|
+
async function target(options, item, profile) {
|
|
223
|
+
const repo = requireIssueRepo(profile);
|
|
224
|
+
const number = issueNumber(item, repo);
|
|
225
|
+
if (number === null)
|
|
226
|
+
throw new ConductorError(`${item} isn't an issue of the repo keyed ${repo.key}, such as ${repo.key}-12`);
|
|
227
|
+
const get = issuesGet(options.credentials, repo, null);
|
|
228
|
+
const issue = await readIssue(get, repo, number);
|
|
229
|
+
if (!issue || issue.pull_request !== undefined)
|
|
230
|
+
throw new ConductorError(`${repo.owner}/${repo.repo} has no issue #${number} (${item})`);
|
|
231
|
+
return { get, issue, number, repo, write: options.credentials.ghWrite(repo.conducted) };
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=issues-writes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues-writes.js","sourceRoot":"","sources":["../../src/watchers/issues-writes.ts"],"names":[],"mappings":"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"}
|