@detergent-software/conductor 3.0.0-dev.4 → 3.0.0-dev.41
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 +352 -0
- package/README.md +274 -124
- package/build/brief-cli.js +5 -12
- package/build/brief-cli.js.map +1 -1
- package/build/brief.js +4 -3
- package/build/brief.js.map +1 -1
- package/build/broker-cli.js +15 -10
- package/build/broker-cli.js.map +1 -1
- package/build/broker.js +1 -1
- package/build/broker.js.map +1 -1
- package/build/claude.js +48 -2
- package/build/claude.js.map +1 -1
- package/build/cli.js +225 -71
- package/build/cli.js.map +1 -1
- package/build/clones.js +92 -0
- package/build/clones.js.map +1 -0
- package/build/code-host-cli.js +172 -40
- package/build/code-host-cli.js.map +1 -1
- package/build/code-host-service.js +35 -2
- package/build/code-host-service.js.map +1 -1
- package/build/code-host.js +140 -16
- package/build/code-host.js.map +1 -1
- package/build/conditions.js +33 -16
- package/build/conditions.js.map +1 -1
- package/build/config.js +58 -28
- package/build/config.js.map +1 -1
- package/build/console.js +43 -27
- package/build/console.js.map +1 -1
- package/build/credentials.js +86 -54
- package/build/credentials.js.map +1 -1
- package/build/daemon.js +57 -66
- package/build/daemon.js.map +1 -1
- package/build/file-lock.js +155 -40
- package/build/file-lock.js.map +1 -1
- package/build/follow-ups.js +2 -2
- package/build/follow-ups.js.map +1 -1
- package/build/help.js +237 -82
- package/build/help.js.map +1 -1
- package/build/history.js +10 -4
- package/build/history.js.map +1 -1
- package/build/host/credential-manager.js +109 -0
- package/build/host/credential-manager.js.map +1 -0
- package/build/host/keychain.js +44 -0
- package/build/host/keychain.js.map +1 -0
- package/build/host/launchd.js +118 -0
- package/build/host/launchd.js.map +1 -0
- package/build/host/libsecret.js +40 -0
- package/build/host/libsecret.js.map +1 -0
- package/build/host/macos-terminal.js +63 -0
- package/build/host/macos-terminal.js.map +1 -0
- package/build/host/platform.js +4 -0
- package/build/host/platform.js.map +1 -0
- package/build/host/secrets.js +46 -0
- package/build/host/secrets.js.map +1 -0
- package/build/host/shell.js +26 -0
- package/build/host/shell.js.map +1 -0
- package/build/host/startup.js +26 -0
- package/build/host/startup.js.map +1 -0
- package/build/host/systemd.js +91 -0
- package/build/host/systemd.js.map +1 -0
- package/build/host/task-scheduler.js +78 -0
- package/build/host/task-scheduler.js.map +1 -0
- package/build/host/terminal.js +46 -0
- package/build/host/terminal.js.map +1 -0
- package/build/host/tmux.js +39 -0
- package/build/host/tmux.js.map +1 -0
- package/build/host/windows-terminal.js +46 -0
- package/build/host/windows-terminal.js.map +1 -0
- package/build/in-process.js +6 -5
- package/build/in-process.js.map +1 -1
- package/build/inbox.js +57 -39
- package/build/inbox.js.map +1 -1
- package/build/init.js +509 -0
- package/build/init.js.map +1 -0
- package/build/landing.js +107 -10
- package/build/landing.js.map +1 -1
- package/build/lib/providers/ado/code-host.js +5 -1
- package/build/lib/providers/ado/code-host.js.map +1 -1
- package/build/lib/providers/ado/pipelines.js +138 -26
- package/build/lib/providers/ado/pipelines.js.map +1 -1
- package/build/lib/providers/ado/trigger.js +5 -0
- package/build/lib/providers/ado/trigger.js.map +1 -1
- package/build/lib/providers/ado/writes.js +17 -2
- package/build/lib/providers/ado/writes.js.map +1 -1
- package/build/lib/providers/github/actions.js +90 -3
- package/build/lib/providers/github/actions.js.map +1 -1
- package/build/lib/providers/github/code-host.js +2 -0
- package/build/lib/providers/github/code-host.js.map +1 -1
- package/build/lib/providers/github/writes.js +25 -2
- package/build/lib/providers/github/writes.js.map +1 -1
- package/build/lib/providers/index.js +4 -3
- package/build/lib/providers/index.js.map +1 -1
- package/build/lib/providers/npm/stage.js +28 -5
- package/build/lib/providers/npm/stage.js.map +1 -1
- package/build/lib/providers/timing.js +10 -0
- package/build/lib/providers/timing.js.map +1 -0
- package/build/lib/providers/verdicts/pr.js +47 -6
- package/build/lib/providers/verdicts/pr.js.map +1 -1
- package/build/lib/providers/verdicts/runs.js +12 -2
- package/build/lib/providers/verdicts/runs.js.map +1 -1
- package/build/logins.js +13 -6
- package/build/logins.js.map +1 -1
- package/build/manager.js +131 -55
- package/build/manager.js.map +1 -1
- package/build/note.js +5 -15
- package/build/note.js.map +1 -1
- package/build/notes.js +130 -23
- package/build/notes.js.map +1 -1
- package/build/notify.js +104 -42
- package/build/notify.js.map +1 -1
- package/build/npm-reads.js +323 -0
- package/build/npm-reads.js.map +1 -0
- package/build/ownership.js +2 -2
- package/build/paths.js +44 -1
- package/build/paths.js.map +1 -1
- package/build/plugin.js +4 -2
- package/build/plugin.js.map +1 -1
- package/build/profile-fields.js +153 -0
- package/build/profile-fields.js.map +1 -0
- package/build/profile-layers.js +264 -0
- package/build/profile-layers.js.map +1 -0
- package/build/profile.js +107 -51
- package/build/profile.js.map +1 -1
- package/build/project-check-cli.js +19 -19
- package/build/project-check-cli.js.map +1 -1
- package/build/project-check.js +194 -108
- package/build/project-check.js.map +1 -1
- package/build/protocol.js +5 -21
- package/build/protocol.js.map +1 -1
- package/build/pushover.js +5 -5
- package/build/pushover.js.map +1 -1
- package/build/queue.js +4 -4
- package/build/queue.js.map +1 -1
- package/build/registry.js +195 -36
- package/build/registry.js.map +1 -1
- package/build/release-kinds.js +34 -0
- package/build/release-kinds.js.map +1 -0
- package/build/rule-actions.js +8 -6
- package/build/rule-actions.js.map +1 -1
- package/build/rules-service.js +104 -47
- package/build/rules-service.js.map +1 -1
- package/build/rules.js +23 -23
- package/build/rules.js.map +1 -1
- package/build/run.js +20 -7
- package/build/run.js.map +1 -1
- package/build/runs.js +218 -68
- package/build/runs.js.map +1 -1
- package/build/scheduler.js +89 -13
- package/build/scheduler.js.map +1 -1
- package/build/search.js +2 -1
- package/build/search.js.map +1 -1
- package/build/server.js +51 -14
- package/build/server.js.map +1 -1
- package/build/spend.js +1 -1
- package/build/spend.js.map +1 -1
- package/build/store.js +79 -20
- package/build/store.js.map +1 -1
- package/build/supervise.js +1 -1
- package/build/supervise.js.map +1 -1
- package/build/timeline.js +104 -0
- package/build/timeline.js.map +1 -0
- package/build/tracker-reads-cli.js +4 -5
- package/build/tracker-reads-cli.js.map +1 -1
- package/build/trackers.js +56 -10
- package/build/trackers.js.map +1 -1
- package/build/train-cli.js +6 -5
- package/build/train-cli.js.map +1 -1
- package/build/train.js +2 -2
- package/build/train.js.map +1 -1
- package/build/upgrade.js +8 -9
- package/build/upgrade.js.map +1 -1
- package/build/wait.js +10 -10
- package/build/wait.js.map +1 -1
- package/build/watchers/ado.js +44 -20
- package/build/watchers/ado.js.map +1 -1
- package/build/watchers/github.js +21 -6
- package/build/watchers/github.js.map +1 -1
- package/build/watchers/index.js +2 -2
- package/build/watchers/index.js.map +1 -1
- package/build/watchers/linear-queue.js +47 -14
- package/build/watchers/linear-queue.js.map +1 -1
- package/build/watchers/linear-writes.js +26 -12
- package/build/watchers/linear-writes.js.map +1 -1
- package/build/watchers/linear.js +2 -2
- package/build/watchers/linear.js.map +1 -1
- package/build/watchers/npm.js +6 -4
- package/build/watchers/npm.js.map +1 -1
- package/build/watchers/source.js +5 -1
- package/build/watchers/source.js.map +1 -1
- package/build/webhook.js +80 -0
- package/build/webhook.js.map +1 -0
- package/build/why.js +1 -1
- package/build/why.js.map +1 -1
- package/build/worktrees.js +56 -93
- package/build/worktrees.js.map +1 -1
- package/package.json +61 -61
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/hooks/model.ts +46 -6
- package/plugin/hooks/register.tsx +41 -2
- package/plugin/skills/conductor-console/SKILL.md +26 -27
- package/plugin/skills/work-item/SKILL.md +58 -54
- package/plugin/skills/work-item/trackers/ado-boards.md +2 -2
- package/plugin/skills/work-item/trackers/github-issues.md +1 -1
- package/plugin/skills/work-item/trackers/linear.md +2 -2
- package/plugin/types/index.d.ts +1 -1
- package/protocol/PROTOCOL.md +3 -9
- package/build/checkout-sync.js +0 -249
- package/build/checkout-sync.js.map +0 -1
- package/build/credential.js +0 -66
- package/build/credential.js.map +0 -1
- package/build/startup.js +0 -92
- package/build/startup.js.map +0 -1
- package/build/tab.js +0 -32
- package/build/tab.js.map +0 -1
package/build/landing.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {} from "./checkout.js";
|
|
2
2
|
import { prTarget, repoKey, repoOf } from "./code-host.js";
|
|
3
3
|
import { ConductorError } from "./errors.js";
|
|
4
|
-
import { prVerdict, } from "./lib/providers/index.js";
|
|
4
|
+
import { needsAnswer, prVerdict, requeuedBuilds, requeueHeading, } from "./lib/providers/index.js";
|
|
5
5
|
import { landingMode } from "./ownership.js";
|
|
6
6
|
import { notePrefixes } from "./profile.js";
|
|
7
7
|
import { outputOf } from "./run.js";
|
|
@@ -38,7 +38,7 @@ export async function landPr(ctx, request) {
|
|
|
38
38
|
const repo = repoOf(ctx.profile, request.repo);
|
|
39
39
|
const host = ctx.hosts(repo);
|
|
40
40
|
const prefixes = notePrefixes(ctx.profile);
|
|
41
|
-
|
|
41
|
+
let before = await host.read(request.pr, { notePrefixes: prefixes });
|
|
42
42
|
// The PR must be this worker's, as for pr create: its title and the branch the checkout is on now
|
|
43
43
|
// carry the item's key. And it must be that branch's PR, into its base.
|
|
44
44
|
const { base, dir, head } = await prTarget(ctx, {
|
|
@@ -59,24 +59,42 @@ export async function landPr(ctx, request) {
|
|
|
59
59
|
return reportOf(host, repo, request.pr, before.url, mode, prVerdict(before), { armed: false, did: [], noted });
|
|
60
60
|
}
|
|
61
61
|
const mode = await modeFor(ctx, dir, base, before.head ?? head, request.mode);
|
|
62
|
-
|
|
62
|
+
let requeued;
|
|
63
|
+
const report = (verdict, extra) => reportOf(host, repo, request.pr, before.url, mode, verdict, {
|
|
64
|
+
armed: false,
|
|
65
|
+
noted,
|
|
66
|
+
...extra,
|
|
67
|
+
did: [...(requeued ? [`queued the failed build ${requeued.run} again`] : []), ...(extra.did ?? [])],
|
|
68
|
+
...(requeued ? { requeued } : {}),
|
|
69
|
+
});
|
|
63
70
|
// The Landing note goes last, so it exists only once the landing was armed: a note whose landing
|
|
64
71
|
// armed something (everything but a GitHub PR in review mode; ADO sets auto-complete in both)
|
|
65
72
|
// with that gone now means someone cancelled it, unless the host is completing the PR. That is a
|
|
66
|
-
// brake, held until told to arm it again.
|
|
73
|
+
// brake, held until told to arm it again, and nothing is queued again for it.
|
|
67
74
|
const arms = (m) => !(m === 'review' && repo.host === 'github');
|
|
68
75
|
const notedArmed = notedMode === 'unknown' || (notedMode !== null && arms(notedMode));
|
|
69
76
|
// A PR the host is merging has had its auto-merge cleared already: not a cancel, and nothing to arm.
|
|
70
77
|
if (notedArmed && !before.autoMerge.armed && !before.completing && !request.rearm) {
|
|
71
78
|
return report({ outcome: 'auto-merge-cancelled' }, {});
|
|
72
79
|
}
|
|
80
|
+
const landable = async () => {
|
|
81
|
+
const check = await host.landingCheck(base, mode);
|
|
82
|
+
if (!check.ok)
|
|
83
|
+
throw new ConductorError(`refused: ${check.reason}`);
|
|
84
|
+
};
|
|
85
|
+
// A requeue spends the head's one try, so the landing is checked first: what could refuse after it
|
|
86
|
+
// is the host's own write failing.
|
|
87
|
+
if (request.requeue !== undefined) {
|
|
88
|
+
await landable();
|
|
89
|
+
requeued = await requeueBuild(host, before, { reason: request.reason, run: request.requeue }, prefixes[0] ?? '');
|
|
90
|
+
before = await host.read(request.pr, { notePrefixes: prefixes });
|
|
91
|
+
}
|
|
73
92
|
// A brake already on it (a comment, a failed build, conflicts) is reported first, unarmed.
|
|
74
93
|
const first = prVerdict(before);
|
|
75
94
|
if (first.outcome !== 'waiting' || before.completing)
|
|
76
95
|
return report(first, {});
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
throw new ConductorError(`refused: ${check.reason}`);
|
|
96
|
+
if (request.requeue === undefined)
|
|
97
|
+
await landable();
|
|
80
98
|
const did = await host.arm(request.pr, mode);
|
|
81
99
|
// A note for each mode it lands in: a new one when the mode changed, so the PR never tells a
|
|
82
100
|
// reader a person approves after the conductor did.
|
|
@@ -87,6 +105,26 @@ export async function landPr(ctx, request) {
|
|
|
87
105
|
const after = await host.read(request.pr, { notePrefixes: prefixes });
|
|
88
106
|
return report(prVerdict(after, { autoMergeExpected: arms(mode) }), { armed: true, did, noted: true });
|
|
89
107
|
}
|
|
108
|
+
// `conduct pr status <pr> [--repo …]`: any PR's verdict, read as `land` reads the item's own, with
|
|
109
|
+
// no checkout, no ownership check and nothing armed: a PR the item didn't open, such as one a skill
|
|
110
|
+
// publish opened in the registry, and its merge commit once it merged (ATK-534). No auto-merge is
|
|
111
|
+
// expected, as `land` set none up.
|
|
112
|
+
export async function prStatusOf(hosts, profile, request) {
|
|
113
|
+
const repo = repoOf(profile, request.repo);
|
|
114
|
+
const host = hosts(repo);
|
|
115
|
+
const snapshot = await host.read(request.pr, { notePrefixes: notePrefixes(profile) });
|
|
116
|
+
const verdict = prVerdict(snapshot);
|
|
117
|
+
const report = { pr: request.pr, repo: repoKey(repo), url: snapshot.url, verdict };
|
|
118
|
+
if (verdict.outcome !== 'merged' || !verdict.mergeCommit)
|
|
119
|
+
return report;
|
|
120
|
+
return { ...report, noFastForward: await mergedWithCommit(host, verdict.mergeCommit) };
|
|
121
|
+
}
|
|
122
|
+
// Whether a merge commit has two parents: the PR landed with a merge commit, not squashed or
|
|
123
|
+
// rebased. Null when the commit can't be read: the merge is known either way.
|
|
124
|
+
async function mergedWithCommit(host, mergeCommit) {
|
|
125
|
+
const parents = await host.commit(mergeCommit).then((c) => c.parents, () => null);
|
|
126
|
+
return parents === null ? null : parents.length === 2;
|
|
127
|
+
}
|
|
90
128
|
// The mode asked for, held to the landing rules: auto only where the PR's files and the plan's tier
|
|
91
129
|
// allow it. Without a mode, the rules pick it. An unknown tier never allows auto when a tier forces
|
|
92
130
|
// review.
|
|
@@ -120,9 +158,7 @@ async function modeFor(ctx, dir, base, head, asked) {
|
|
|
120
158
|
async function reportOf(host, repo, pr, url, mode, verdict, extra) {
|
|
121
159
|
const landed = { ...extra, mode, pr, repo: repoKey(repo), url, verdict };
|
|
122
160
|
if (verdict.outcome === 'merged' && verdict.mergeCommit) {
|
|
123
|
-
|
|
124
|
-
const parents = await host.commit(verdict.mergeCommit).then((c) => c.parents, () => null);
|
|
125
|
-
return { ...landed, noFastForward: parents === null ? null : parents.length === 2 };
|
|
161
|
+
return { ...landed, noFastForward: await mergedWithCommit(host, verdict.mergeCommit) };
|
|
126
162
|
}
|
|
127
163
|
if (verdict.outcome === 'build-failed') {
|
|
128
164
|
const logs = await Promise.all(verdict.builds.flatMap((build) => build.run === null
|
|
@@ -132,4 +168,65 @@ async function reportOf(host, repo, pr, url, mode, verdict, extra) {
|
|
|
132
168
|
}
|
|
133
169
|
return landed;
|
|
134
170
|
}
|
|
171
|
+
// `conduct land --requeue <run>`: one of the PR's failed builds queued again, once per build and head
|
|
172
|
+
// commit, so two builds that flaked on one commit can each be queued again once. The Requeue note
|
|
173
|
+
// goes first and records the build and head, so a second try is refused even when queueing it
|
|
174
|
+
// failed; prVerdict reads the note to wait on the build instead of calling the old run's failure a
|
|
175
|
+
// brake.
|
|
176
|
+
async function requeueBuild(host, pr, { reason, run }, prefix) {
|
|
177
|
+
const { number } = pr;
|
|
178
|
+
const head = pr.sourceCommit?.toLowerCase();
|
|
179
|
+
if (!head)
|
|
180
|
+
throw new ConductorError(`refused: PR ${number}'s head commit isn't known yet`);
|
|
181
|
+
const name = pr.checks.find((c) => c.run === run)?.name ?? 'a build';
|
|
182
|
+
const before = requeuedBuilds(pr.threads).find((r) => r.head === head && (r.run === run || r.build === name));
|
|
183
|
+
if (before) {
|
|
184
|
+
throw new ConductorError(`refused: ${name} was queued again once already on PR ${number}'s head ${head.slice(0, 8)}`, [`for run ${before.run}: a second failure on the same commit is fixed and pushed, not queued again`]);
|
|
185
|
+
}
|
|
186
|
+
const verdict = prVerdict(pr);
|
|
187
|
+
if (verdict.outcome !== 'build-failed') {
|
|
188
|
+
throw new ConductorError(`refused: --requeue queues a failed build, and PR ${number} is ${verdict.outcome}`);
|
|
189
|
+
}
|
|
190
|
+
const build = verdict.builds.find((b) => b.run === run);
|
|
191
|
+
if (!build) {
|
|
192
|
+
const failed = verdict.builds.map((b) => `${b.run ?? '?'} (${b.name ?? 'a build'})`).join(', ');
|
|
193
|
+
throw new ConductorError(`refused: run ${run} isn't one of PR ${number}'s failed builds: ${failed}`);
|
|
194
|
+
}
|
|
195
|
+
// A failed build outranks a person's comment in the verdict, and on GitHub any note answers the
|
|
196
|
+
// comments before it: the Requeue note would close a question nobody read.
|
|
197
|
+
if (pr.threads.some(needsAnswer)) {
|
|
198
|
+
throw new ConductorError(`refused: PR ${number} has a comment waiting for an answer`, [
|
|
199
|
+
`answer it first (conduct pr threads ${number}), then queue the build again`,
|
|
200
|
+
]);
|
|
201
|
+
}
|
|
202
|
+
// A GitHub check is one job of an Actions run, and GitHub re-runs a run only once all of its jobs
|
|
203
|
+
// have ended: refused before the note, which would spend the requeue.
|
|
204
|
+
const running = pr.checks.find((c) => c.run === run && c.state === 'pending');
|
|
205
|
+
if (running) {
|
|
206
|
+
throw new ConductorError(`refused: run ${run} still runs (${running.name ?? 'a check'} is ${running.status})`, [
|
|
207
|
+
`queue it again once it ends: conduct wait pr ${number}, then conduct land ${number} --requeue ${run} again`,
|
|
208
|
+
]);
|
|
209
|
+
}
|
|
210
|
+
// Azure Repos queues a build by its policy evaluation; GitHub re-runs the check's Actions run.
|
|
211
|
+
const evaluationId = pr.checks.find((c) => c.run === run && c.state === 'failed')?.evaluationId;
|
|
212
|
+
if (host.repo.host === 'ado' && !evaluationId)
|
|
213
|
+
throw new ConductorError(`refused: run ${run} has no policy evaluation to queue again`);
|
|
214
|
+
const queued = { build: build.name, head, run };
|
|
215
|
+
await host.note(number, [
|
|
216
|
+
requeueHeading(prefix, { name: build.name, run }, head),
|
|
217
|
+
'',
|
|
218
|
+
`Why: ${reason}`,
|
|
219
|
+
'Once per build and head commit: a second failure of this build on this commit is fixed, not queued again.',
|
|
220
|
+
].join('\n'));
|
|
221
|
+
try {
|
|
222
|
+
await host.requeueBuild(number, { ...(evaluationId ? { evaluationId } : {}), run });
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
throw new ConductorError(`the Requeue note is posted, but queueing run ${run} again failed`, [
|
|
226
|
+
error instanceof Error ? error.message : String(error),
|
|
227
|
+
`the note spent this build's one requeue on head ${head.slice(0, 8)}, and the verdict waits on it for up to 15 minutes: queue it on the PR by hand, or fix it and push`,
|
|
228
|
+
]);
|
|
229
|
+
}
|
|
230
|
+
return queued;
|
|
231
|
+
}
|
|
135
232
|
//# sourceMappingURL=landing.js.map
|
package/build/landing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"landing.js","sourceRoot":"","sources":["../src/landing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"landing.js","sourceRoot":"","sources":["../src/landing.ts"],"names":[],"mappings":"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"}
|
|
@@ -219,6 +219,9 @@ export function adoThreads(threads, notePrefixes) {
|
|
|
219
219
|
const last = comments.at(-1);
|
|
220
220
|
if (!last)
|
|
221
221
|
return [];
|
|
222
|
+
const first = comments[0];
|
|
223
|
+
const opened = noteHeading(first?.content ?? '', notePrefixes);
|
|
224
|
+
const heading = (first?.content ?? '').split(/\r?\n/).find((l) => l.trim() !== '') ?? '';
|
|
222
225
|
return [
|
|
223
226
|
{
|
|
224
227
|
asks: true,
|
|
@@ -231,8 +234,9 @@ export function adoThreads(threads, notePrefixes) {
|
|
|
231
234
|
kind: 'thread',
|
|
232
235
|
lastIsNote: isNote(last.content, notePrefixes),
|
|
233
236
|
line: t.threadContext?.rightFileStart?.line ?? null,
|
|
234
|
-
notePhase:
|
|
237
|
+
notePhase: opened?.phase ?? null,
|
|
235
238
|
open: !DONE_THREAD.has(t.status ?? ''),
|
|
239
|
+
...(opened ? { opening: { at: first?.publishedDate ?? t.publishedDate ?? null, heading } } : {}),
|
|
236
240
|
url: null,
|
|
237
241
|
},
|
|
238
242
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-host.js","sourceRoot":"","sources":["../../../../src/lib/providers/ado/code-host.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-host.js","sourceRoot":"","sources":["../../../../src/lib/providers/ado/code-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// GENERATED from packages/providers by `pnpm sync-conductor`. Do not edit.
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
+
import { ProviderError } from "../errors.js";
|
|
4
|
+
import { secondsBetween } from "../timing.js";
|
|
3
5
|
import { adoRunUrl, adoUrl } from "./http.js";
|
|
4
6
|
import { parseTrigger, triggerFires } from "./trigger.js";
|
|
5
7
|
const definition = z.looseObject({
|
|
@@ -7,7 +9,7 @@ const definition = z.looseObject({
|
|
|
7
9
|
name: z.string(),
|
|
8
10
|
process: z.looseObject({ yamlFilename: z.string().optional() }).nullish(),
|
|
9
11
|
queueStatus: z.string().optional(),
|
|
10
|
-
repository: z.looseObject({ name: z.string().optional() }).nullish(),
|
|
12
|
+
repository: z.looseObject({ name: z.string().optional(), type: z.string().optional() }).nullish(),
|
|
11
13
|
triggers: z
|
|
12
14
|
.array(z.looseObject({ settingsSourceType: z.number().optional(), triggerType: z.string().optional() }))
|
|
13
15
|
.nullish(),
|
|
@@ -15,16 +17,19 @@ const definition = z.looseObject({
|
|
|
15
17
|
const build = z.looseObject({
|
|
16
18
|
_links: z.looseObject({ web: z.looseObject({ href: z.string() }).optional() }).optional(),
|
|
17
19
|
definition: z.looseObject({ id: z.number().optional(), name: z.string().optional() }),
|
|
20
|
+
finishTime: z.string().nullish(),
|
|
18
21
|
id: z.number(),
|
|
19
22
|
queueTime: z.string().nullish(),
|
|
20
23
|
reason: z.string().nullish(),
|
|
21
24
|
result: z.string().nullish(),
|
|
22
25
|
sourceVersion: z.string().nullish(),
|
|
26
|
+
startTime: z.string().nullish(),
|
|
23
27
|
status: z.string(),
|
|
24
28
|
});
|
|
25
29
|
const timeline = z
|
|
26
30
|
.looseObject({
|
|
27
31
|
records: z.array(z.looseObject({
|
|
32
|
+
finishTime: z.string().nullish(),
|
|
28
33
|
id: z.string(),
|
|
29
34
|
issues: z.array(z.looseObject({ message: z.string().optional(), type: z.string().optional() })).nullish(),
|
|
30
35
|
log: z.looseObject({ id: z.number() }).nullish(),
|
|
@@ -58,18 +63,47 @@ export function adoPipelines(http) {
|
|
|
58
63
|
...extra,
|
|
59
64
|
});
|
|
60
65
|
const records = async (repo, id) => timeline.parse(await get(repo, `build/builds/${id}/timeline`))?.records ?? [];
|
|
61
|
-
//
|
|
66
|
+
// One task log's lines. Each starts with an ISO timestamp; dropped to keep them readable.
|
|
67
|
+
const logLines = async (repo, id, log) => (await http.text(adoUrl(repo, `build/builds/${id}/logs/${log}`)))
|
|
68
|
+
.split(/\r?\n/)
|
|
69
|
+
.map((line) => line.replace(/^\d{4}-\d\d-\d\dT[\d:.]+Z /, ''))
|
|
70
|
+
.filter((line) => line.trim());
|
|
71
|
+
// The YAML pipelines that build this repository and aren't disabled, with their definitions. A
|
|
72
|
+
// GitHub repo Azure Pipelines builds is named <owner>/<repo>, of type GitHub or GitHubEnterprise
|
|
73
|
+
// (an Azure Repos name can't hold a slash).
|
|
62
74
|
const definitionsOf = async (repo) => {
|
|
63
75
|
const { value } = list(definition).parse(await get(repo, 'build/definitions?includeAllProperties=true&$top=1000'));
|
|
76
|
+
const github = repo.repository.includes('/');
|
|
64
77
|
return value.flatMap((d) => {
|
|
65
78
|
const yamlFilename = d.process?.yamlFilename;
|
|
66
|
-
// Azure Repos names are case-insensitive, and a profile may spell one differently.
|
|
67
|
-
const
|
|
79
|
+
// Azure Repos names are case-insensitive, and a profile may spell one differently; so are GitHub's.
|
|
80
|
+
const named = d.repository?.name?.toLowerCase() === repo.repository.toLowerCase();
|
|
81
|
+
const ours = named && (!github || /^github(enterprise)?$/i.test(d.repository?.type ?? ''));
|
|
68
82
|
if (!ours || !yamlFilename || d.queueStatus === 'disabled')
|
|
69
83
|
return [];
|
|
70
84
|
return [{ definition: d, pipeline: { file: yamlFilename.replace(/^\//, ''), id: d.id, name: d.name } }];
|
|
71
85
|
});
|
|
72
86
|
};
|
|
87
|
+
// A run's tasks, in the order they started (a task that never started last): the strings'
|
|
88
|
+
// fractions of a second vary in length, so they don't sort as text.
|
|
89
|
+
const tasksOf = (all) => {
|
|
90
|
+
const started = (r) => (r.startTime ? Date.parse(r.startTime) : Infinity);
|
|
91
|
+
return all.filter((r) => r.type === 'Task').sort((a, b) => started(a) - started(b));
|
|
92
|
+
};
|
|
93
|
+
// The run a batched pipeline's run for the merge queues after: its newest run on the base that
|
|
94
|
+
// doesn't carry the merge, with when it finished (null while it goes); null when it has none. No
|
|
95
|
+
// time bound: a run waiting on a prod approval can hold the batch for hours.
|
|
96
|
+
const heldBehind = async (repo, id, base, merge, git) => {
|
|
97
|
+
const query = `definitions=${id}&branchName=refs/heads/${base}&queryOrder=queueTimeDescending&$top=20`;
|
|
98
|
+
for (const b of list(build).parse(await get(repo, `build/builds?${query}`)).value) {
|
|
99
|
+
if (b.sourceVersion && (await git.isAncestor(merge.sha, b.sourceVersion)))
|
|
100
|
+
continue;
|
|
101
|
+
if (b.status !== 'completed')
|
|
102
|
+
return { finished: null, run: b.id };
|
|
103
|
+
return b.finishTime ? { finished: b.finishTime, run: b.id } : null;
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
};
|
|
73
107
|
return {
|
|
74
108
|
failureLog: async ({ id, repo }, { lines = 40 } = {}) => {
|
|
75
109
|
const b = build.parse(await get(repo, `build/builds/${id}`));
|
|
@@ -80,15 +114,7 @@ export function adoPipelines(http) {
|
|
|
80
114
|
const errors = (r) => (r.issues ?? []).filter((i) => i.type === 'error').flatMap((i) => (i.message ? [i.message] : []));
|
|
81
115
|
const tasks = failed.map((r) => ({ errors: errors(r), name: r.name ?? '?' }));
|
|
82
116
|
const logId = failed[0]?.log?.id;
|
|
83
|
-
|
|
84
|
-
if (logId !== undefined) {
|
|
85
|
-
// Each line starts with an ISO timestamp; dropped to keep the tail readable.
|
|
86
|
-
log = (await http.text(adoUrl(repo, `build/builds/${id}/logs/${logId}`)))
|
|
87
|
-
.split(/\r?\n/)
|
|
88
|
-
.map((line) => line.replace(/^\d{4}-\d\d-\d\dT[\d:.]+Z /, ''))
|
|
89
|
-
.filter((line) => line.trim())
|
|
90
|
-
.slice(-lines);
|
|
91
|
-
}
|
|
117
|
+
const log = logId === undefined ? null : (await logLines(repo, id, logId)).slice(-lines);
|
|
92
118
|
return {
|
|
93
119
|
log,
|
|
94
120
|
...(tasks.length === 0
|
|
@@ -110,6 +136,15 @@ export function adoPipelines(http) {
|
|
|
110
136
|
}
|
|
111
137
|
},
|
|
112
138
|
pipelines: async (repo) => (await definitionsOf(repo)).map(({ pipeline }) => pipeline),
|
|
139
|
+
// Finished builds, by finish time: one still running or queued has no times to measure yet.
|
|
140
|
+
recentRuns: async (repo, pipeline, { branch, count }) => {
|
|
141
|
+
if (pipeline.id === null)
|
|
142
|
+
throw new ProviderError(`${pipeline.name} has no pipeline id to list its runs by`);
|
|
143
|
+
const ref = encodeURIComponent(`refs/heads/${branch}`);
|
|
144
|
+
const query = `definitions=${pipeline.id}&branchName=${ref}&statusFilter=completed&queryOrder=finishTimeDescending&$top=${count}`;
|
|
145
|
+
const builds = list(build).parse(await get(repo, `build/builds?${query}`)).value;
|
|
146
|
+
return builds.map((b) => snapshot(repo, b, pipeline));
|
|
147
|
+
},
|
|
113
148
|
run: async ({ id, repo }) => {
|
|
114
149
|
const b = build.parse(await get(repo, `build/builds/${id}`));
|
|
115
150
|
return snapshot(repo, b, { file: null, id: b.definition.id ?? null, name: b.definition.name ?? `run ${id}` });
|
|
@@ -120,8 +155,9 @@ export function adoPipelines(http) {
|
|
|
120
155
|
const yaml = await git.show(merge.sha, pipeline.file);
|
|
121
156
|
// A trigger overridden in the pipeline's settings (settingsSourceType 1) isn't in the YAML.
|
|
122
157
|
const fromYaml = (d.triggers ?? []).every((t) => t.triggerType !== 'continuousIntegration' || t.settingsSourceType === 2);
|
|
123
|
-
const
|
|
124
|
-
|
|
158
|
+
const trigger = yaml === null || !fromYaml ? null : parseTrigger(yaml);
|
|
159
|
+
const expected = trigger === null ? null : triggerFires(trigger, base, merge.changed);
|
|
160
|
+
pipelines.push({ batch: trigger?.kind === 'filter' && trigger.batch, expected, ...pipeline });
|
|
125
161
|
}
|
|
126
162
|
if (pipelines.length === 0)
|
|
127
163
|
return [];
|
|
@@ -131,7 +167,7 @@ export function adoPipelines(http) {
|
|
|
131
167
|
const query = `definitions=${pipelines.map((p) => p.id).join(',')}&branchName=refs/heads/${base}&queryOrder=queueTimeAscending&minTime=${since}&$top=200`;
|
|
132
168
|
const builds = list(build).parse(await get(repo, `build/builds?${query}`)).value;
|
|
133
169
|
const found = [];
|
|
134
|
-
for (const { expected, ...pipeline } of pipelines) {
|
|
170
|
+
for (const { batch, expected, ...pipeline } of pipelines) {
|
|
135
171
|
const mine = builds
|
|
136
172
|
.filter((b) => b.definition.id === pipeline.id)
|
|
137
173
|
.sort((a, b) => Date.parse(a.queueTime ?? '') - Date.parse(b.queueTime ?? ''));
|
|
@@ -139,27 +175,39 @@ export function adoPipelines(http) {
|
|
|
139
175
|
// Batched CI (`batch: true`) builds the newest commit once the previous run ends, so the run
|
|
140
176
|
// that carries the merge can be built from a later commit that contains it. A later run also
|
|
141
177
|
// stands in for a cancelled one (a newer push's, or one queued again with `conduct runs
|
|
142
|
-
// --requeue`)
|
|
178
|
+
// --requeue`), and for a failed one when it was queued by hand after it (givesWay): the
|
|
179
|
+
// first that neither was cancelled nor failed carries the merge, else the newest. Once a
|
|
180
|
+
// run of the chain failed, only runs queued by hand stand in, so a newer push's pass never
|
|
181
|
+
// hides the failure, and each names it (`retryOf`).
|
|
143
182
|
let b = exact;
|
|
144
183
|
let supersedes;
|
|
145
|
-
|
|
184
|
+
let retryOf;
|
|
185
|
+
if (exact ? cancelled(exact) || failed(exact) : expected === true) {
|
|
146
186
|
for (const later of mine) {
|
|
147
187
|
if (later === exact || !later.sourceVersion)
|
|
148
188
|
continue;
|
|
189
|
+
if (b && !givesWay(b, later, retryOf !== undefined))
|
|
190
|
+
continue;
|
|
149
191
|
if (Date.parse(later.queueTime ?? '') < merge.mergedAt - BATCH_SLACK_MS)
|
|
150
192
|
continue;
|
|
151
193
|
if (!(await git.isAncestor(merge.sha, later.sourceVersion)))
|
|
152
194
|
continue;
|
|
153
|
-
if (b &&
|
|
154
|
-
|
|
195
|
+
if (b && failed(b))
|
|
196
|
+
retryOf ??= b.id;
|
|
197
|
+
if (b)
|
|
198
|
+
supersedes = retryOf ?? b.id;
|
|
155
199
|
b = later;
|
|
156
|
-
if (!cancelled(later))
|
|
200
|
+
if (!cancelled(later) && !failed(later))
|
|
157
201
|
break;
|
|
158
202
|
}
|
|
159
203
|
}
|
|
160
204
|
if (!b) {
|
|
161
205
|
const state = expected === true ? 'not-queued' : expected === null ? 'unknown' : 'not-triggered';
|
|
162
|
-
|
|
206
|
+
// ADO holds a batched pipeline's push until its running run ends (ATK-434).
|
|
207
|
+
const behind = state === 'not-queued' && batch && pipeline.id !== null
|
|
208
|
+
? await heldBehind(repo, pipeline.id, base, merge, git)
|
|
209
|
+
: null;
|
|
210
|
+
found.push({ ...(behind === null ? {} : { behind }), expected, pipeline, run: null, state, url: null });
|
|
163
211
|
continue;
|
|
164
212
|
}
|
|
165
213
|
const approvals = b.status === 'completed' ? [] : pendingApprovals(await records(repo, b.id));
|
|
@@ -169,10 +217,44 @@ export function adoPipelines(http) {
|
|
|
169
217
|
state: buildState(b, approvals),
|
|
170
218
|
...(approvals.length > 0 ? { approvalStages: approvals } : {}),
|
|
171
219
|
...(supersedes !== undefined && !cancelled(b) ? { supersedes } : {}),
|
|
220
|
+
...(retryOf === undefined ? {} : { retryOf }),
|
|
172
221
|
}));
|
|
173
222
|
}
|
|
174
223
|
return found;
|
|
175
224
|
},
|
|
225
|
+
taskLogs: async function* ({ id, repo }, { only } = {}) {
|
|
226
|
+
const all = await records(repo, id);
|
|
227
|
+
const stage = stageOf(all);
|
|
228
|
+
for (const record of tasksOf(all)) {
|
|
229
|
+
const task = record.name ?? '?';
|
|
230
|
+
if (!record.log || (only && !only(task)))
|
|
231
|
+
continue;
|
|
232
|
+
yield { lines: await logLines(repo, id, record.log.id), stage: stage(record), task };
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
timeline: async ({ id, repo }) => {
|
|
236
|
+
const [read, all] = await Promise.all([get(repo, `build/builds/${id}`), records(repo, id)]);
|
|
237
|
+
const b = build.parse(read);
|
|
238
|
+
const stage = stageOf(all);
|
|
239
|
+
const job = ancestorOf(all, 'Job');
|
|
240
|
+
const tasks = tasksOf(all).map((r) => ({
|
|
241
|
+
finished: r.finishTime ?? null,
|
|
242
|
+
job: job(r),
|
|
243
|
+
result: r.result ?? null,
|
|
244
|
+
seconds: secondsBetween(r.startTime, r.finishTime),
|
|
245
|
+
stage: stage(r),
|
|
246
|
+
started: r.startTime ?? null,
|
|
247
|
+
state: r.state ?? null,
|
|
248
|
+
task: r.name ?? '?',
|
|
249
|
+
}));
|
|
250
|
+
return {
|
|
251
|
+
finished: b.finishTime ?? null,
|
|
252
|
+
run: snapshot(repo, b, { file: null, id: b.definition.id ?? null, name: b.definition.name ?? `run ${id}` }),
|
|
253
|
+
seconds: secondsBetween(b.startTime, b.finishTime),
|
|
254
|
+
started: b.startTime ?? null,
|
|
255
|
+
tasks,
|
|
256
|
+
};
|
|
257
|
+
},
|
|
176
258
|
triggersKnown: true,
|
|
177
259
|
};
|
|
178
260
|
}
|
|
@@ -187,17 +269,47 @@ export function buildState(b, pendingApprovals = []) {
|
|
|
187
269
|
}
|
|
188
270
|
// The stages of a run's timeline that wait on an approval.
|
|
189
271
|
export function pendingApprovals(records) {
|
|
272
|
+
const stage = stageOf(records);
|
|
273
|
+
return records
|
|
274
|
+
.filter((r) => r.type === 'Checkpoint.Approval' && r.state === 'inProgress')
|
|
275
|
+
.map((r) => stage(r) ?? '?');
|
|
276
|
+
}
|
|
277
|
+
// The name of the record of a type (a Job, a Stage) that a timeline record runs under, by its
|
|
278
|
+
// parents; null when none is.
|
|
279
|
+
function ancestorOf(records, type) {
|
|
190
280
|
const byId = new Map(records.map((r) => [r.id, r]));
|
|
191
|
-
|
|
281
|
+
return (record) => {
|
|
192
282
|
let current = record;
|
|
193
|
-
while (current && current.type !==
|
|
283
|
+
while (current && current.type !== type)
|
|
194
284
|
current = current.parentId ? byId.get(current.parentId) : undefined;
|
|
195
|
-
return current?.name ??
|
|
285
|
+
return current?.name ?? null;
|
|
196
286
|
};
|
|
197
|
-
return records.filter((r) => r.type === 'Checkpoint.Approval' && r.state === 'inProgress').map(stageOf);
|
|
198
287
|
}
|
|
199
288
|
// ADO spells it canceled.
|
|
200
289
|
function cancelled(b) {
|
|
201
290
|
return b.status === 'completed' && b.result === 'canceled';
|
|
202
291
|
}
|
|
292
|
+
function failed(b) {
|
|
293
|
+
return buildState(b) === 'failed';
|
|
294
|
+
}
|
|
295
|
+
// Whether a run of the merge gives way to a later run that contains it: a cancelled one to any, a
|
|
296
|
+
// failed one, or any once a run before it failed (`afterFailure`), only to a run queued by hand after
|
|
297
|
+
// it (`conduct runs --requeue`, or a person's Run pipeline), so a newer push's run never hides a
|
|
298
|
+
// failure (ATK-638).
|
|
299
|
+
function givesWay(b, later, afterFailure) {
|
|
300
|
+
if (!cancelled(b) && !failed(b))
|
|
301
|
+
return false;
|
|
302
|
+
if (cancelled(b) && !afterFailure)
|
|
303
|
+
return true;
|
|
304
|
+
return later.reason === 'manual' && Date.parse(later.queueTime ?? '') > Date.parse(b.queueTime ?? '');
|
|
305
|
+
}
|
|
306
|
+
// The name of the stage a timeline record runs under; null when none is, or for the implicit one a
|
|
307
|
+
// pipeline with no stages runs its jobs in.
|
|
308
|
+
function stageOf(records) {
|
|
309
|
+
const stage = ancestorOf(records, 'Stage');
|
|
310
|
+
return (record) => {
|
|
311
|
+
const name = stage(record);
|
|
312
|
+
return name === '__default' ? null : name;
|
|
313
|
+
};
|
|
314
|
+
}
|
|
203
315
|
//# sourceMappingURL=pipelines.js.map
|