@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.
Files changed (49) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +4 -0
  3. package/build/brief.js +2 -1
  4. package/build/brief.js.map +1 -1
  5. package/build/lib/providers/ado/code-host.js +230 -0
  6. package/build/lib/providers/ado/code-host.js.map +1 -0
  7. package/build/lib/providers/ado/http.js +95 -0
  8. package/build/lib/providers/ado/http.js.map +1 -0
  9. package/build/lib/providers/ado/pipelines.js +185 -0
  10. package/build/lib/providers/ado/pipelines.js.map +1 -0
  11. package/build/lib/providers/ado/trigger.js +99 -0
  12. package/build/lib/providers/ado/trigger.js.map +1 -0
  13. package/build/lib/providers/errors.js +23 -0
  14. package/build/lib/providers/errors.js.map +1 -0
  15. package/build/lib/providers/github/actions.js +86 -0
  16. package/build/lib/providers/github/actions.js.map +1 -0
  17. package/build/lib/providers/github/code-host.js +201 -0
  18. package/build/lib/providers/github/code-host.js.map +1 -0
  19. package/build/lib/providers/github/gh.js +15 -0
  20. package/build/lib/providers/github/gh.js.map +1 -0
  21. package/build/lib/providers/index.js +15 -0
  22. package/build/lib/providers/index.js.map +1 -0
  23. package/build/lib/providers/notes.js +22 -0
  24. package/build/lib/providers/notes.js.map +1 -0
  25. package/build/lib/providers/npm/stage.js +62 -0
  26. package/build/lib/providers/npm/stage.js.map +1 -0
  27. package/build/lib/providers/types.js +8 -0
  28. package/build/lib/providers/types.js.map +1 -0
  29. package/build/lib/providers/verdicts/pr.js +90 -0
  30. package/build/lib/providers/verdicts/pr.js.map +1 -0
  31. package/build/lib/providers/verdicts/runs.js +73 -0
  32. package/build/lib/providers/verdicts/runs.js.map +1 -0
  33. package/build/lib/providers/verdicts/stage.js +14 -0
  34. package/build/lib/providers/verdicts/stage.js.map +1 -0
  35. package/build/notes.js +1 -1
  36. package/build/notes.js.map +1 -1
  37. package/build/watchers/ado-api.js +2 -31
  38. package/build/watchers/ado-api.js.map +1 -1
  39. package/build/watchers/ado.js +36 -119
  40. package/build/watchers/ado.js.map +1 -1
  41. package/build/watchers/github.js +21 -48
  42. package/build/watchers/github.js.map +1 -1
  43. package/build/watchers/linear.js +2 -17
  44. package/build/watchers/linear.js.map +1 -1
  45. package/build/watchers/npm.js +1 -1
  46. package/build/watchers/npm.js.map +1 -1
  47. package/build/watchers/source.js +8 -2
  48. package/build/watchers/source.js.map +1 -1
  49. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  Releases are tagged `conductor-v<version>` and staged on npm by `atk-conductor-release` (`pipelines/release-conductor.yml`), which writes each section below. `scripts/check-changelog.mjs` fails when a tag has no section here.
4
4
 
5
+ ## [1.2.1-dev.3](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTconductor-v1.2.1-dev.2&targetVersion=GTconductor-v1.2.1-dev.3) (2026-10-14)
6
+
7
+ ### Bug Fixes
8
+
9
+ * **providers:** address review findings (ATK-452) ([298449c](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/298449c41c2163ffd5de0677fe00248163965eb9))
10
+
11
+ ### Refactoring
12
+
13
+ * **conductor:** read ADO and GitHub waits through @atk/providers (ATK-452) ([34f6caa](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/34f6caadb98a8e6ed4248b80963bae1f43be1966))
14
+
5
15
  ## [1.2.1-dev.2](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTconductor-v1.2.1-dev.1&targetVersion=GTconductor-v1.2.1-dev.2) (2026-10-14)
6
16
 
7
17
  ### Bug Fixes
package/README.md CHANGED
@@ -305,6 +305,8 @@ A worker waits by posting its note, running `conduct wait …` and ending the tu
305
305
 
306
306
  **Watchers.** One per API: Linear (GraphQL with `LINEAR_API_KEY` or the `atk-conductor-linear` credential, ported from conduct-atk), Azure DevOps (REST with the `az login` token), GitHub (`gh api`), npm (the registry's dist-tags, no cache) and `/health`. Time waits are the session manager's sweep. An API is asked nothing while no wait needs it. Otherwise it's asked once per `watchers.<api>.intervalSeconds`, within `perMinute` requests in any rolling minute shared by every project. Each pass covers all of that API's waits in as few requests as it can; Linear's is one request, filtered on `updatedAt` (with a 2-minute overlap) after the first. A pass that runs out of budget stops, and the next one starts a wait further on. A failing API waits twice as long each time (up to 10 minutes) and logs `watcher.failed` once, then `watcher.recovered`. A wait that can't be checked logs `wait.check-failed` once and stays open. Every `watchers.statsMinutes` (10) in which anything waited, a `watcher.stats` event records each API's passes, requests, budget skips, failures and waits.
307
307
 
308
+ **Providers.** The Azure DevOps and GitHub watchers read PRs and runs through `@atk/providers` (`packages/providers`): one adapter per code host, CI and release, which turns each host's answers into the same snapshots, and the verdicts that read them (`checksSettled` for a `checks` wait, `needsAnswer` for a `comment` wait, and `prVerdict`, `runsVerdict` and `stageVerdict` for the verbs to come). A note is told from a person's comment by its heading (`noteHeading`) everywhere. The package is private, so the conductor vendors it into `src/lib/providers/` (`pnpm --filter @atk/providers sync-conductor`; `check` fails on drift, and `atk-conductor-ci` runs it). Change it in `packages/providers`, never in the copy.
309
+
308
310
  **PR conflicts.** Azure DevOps runs no build on a PR that conflicts with its base branch, so its `checks` never settle and it can't merge. The ADO watcher reads the PR's `mergeStatus` and target branch with the PR itself, at no extra request, and doesn't ask a conflicted PR's build evaluations, which can only be stale. The first pass that sees `conflicts` starts a spell for each worker waiting on the PR: it logs `pr.conflicted` and resolves the worker's waits on the PR with `pr <n> conflicts with <base>: merge origin/<base> into the branch (no rebase), resolve, rerun the checks, push and wait on the PR again` (after a wait's own line when it resolved on its own, such as a comment), which wakes the worker. Later passes in the spell wake nobody, unless the PR conflicts on a new source commit: the worker pushed and the base moved again, which starts a new spell. A pass that sees a clean merge, or the PR merged or abandoned, ends it (`pr.conflict-cleared`). A spell older than `watchers.conflictMinutes` (30) whose wake hasn't reached the worker, or whose conflict a pass still sees, logs `pr.conflict-stuck` once and raises a `conflict` inbox item. Spells are kept in memory, so after a restart a PR still in conflict wakes its worker once more. `conduct wait` without a daemon returns the same line while the PR conflicts.
309
311
 
310
312
  ## ADO Boards
@@ -544,6 +546,8 @@ pnpm -C apps/conductor typecheck
544
546
  pnpm -C apps/conductor test
545
547
  pnpm -C apps/conductor build
546
548
  cd apps/conductor && node scripts/check-changelog.mjs
549
+ pnpm --filter @atk/providers check # the vendored src/lib/providers matches packages/providers
550
+ pnpm -C packages/providers test
547
551
  claude plugin validate apps/conductor/mod
548
552
  claude plugin test apps/conductor/mod
549
553
  ```
package/build/brief.js CHANGED
@@ -1,9 +1,10 @@
1
1
  import { z } from 'zod';
2
2
  import { ConductorError } from "./errors.js";
3
+ import { noteHeading } from "./lib/providers/index.js";
3
4
  import { ITEM, projectFor } from "./notes.js";
4
5
  import { notePrefixes } from "./profile.js";
5
6
  import { linearApi, LinearRequestError } from "./watchers/linear-api.js";
6
- import { approvalAfterPlan, noteHeading } from "./watchers/linear.js";
7
+ import { approvalAfterPlan } from "./watchers/linear.js";
7
8
  // `conduct brief` (design note, section 13): one item's context for a worker's orient step, read
8
9
  // by the daemon from the tracker with its own key or az login, never through an MCP. The queue's
9
10
  // snapshot holds no description, relations or comments, so the brief reads the item itself.
@@ -1 +1 @@
1
- {"version":3,"file":"brief.js","sourceRoot":"","sources":["../src/brief.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brief.js","sourceRoot":"","sources":["../src/brief.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,230 @@
1
+ // GENERATED from packages/providers by `pnpm sync-conductor`. Do not edit.
2
+ import { z } from 'zod';
3
+ import { isNote } from "../notes.js";
4
+ import { adoPrUrl, adoUrl, repoPath } from "./http.js";
5
+ // Azure DevOps' answers, as far as the adapter reads them.
6
+ const pullRequest = z.looseObject({
7
+ autoCompleteSetBy: z.looseObject({ displayName: z.string().optional() }).nullish(),
8
+ completionOptions: z.looseObject({ mergeStrategy: z.string().optional() }).nullish(),
9
+ lastMergeCommit: z.looseObject({ commitId: z.string() }).nullish(),
10
+ lastMergeSourceCommit: z.looseObject({ commitId: z.string() }).nullish(),
11
+ mergeStatus: z.string().optional(),
12
+ pullRequestId: z.number(),
13
+ repository: z.looseObject({ project: z.looseObject({ id: z.string() }) }),
14
+ reviewers: z.array(z.looseObject({ displayName: z.string().optional(), vote: z.number() })).optional(),
15
+ sourceRefName: z.string().optional(),
16
+ status: z.string(),
17
+ targetRefName: z.string().optional(),
18
+ title: z.string().optional(),
19
+ });
20
+ const evaluation = z.looseObject({
21
+ configuration: z
22
+ .looseObject({
23
+ id: z.number().optional(),
24
+ isBlocking: z.boolean().optional(),
25
+ isEnabled: z.boolean().optional(),
26
+ settings: z.looseObject({ displayName: z.string().nullish() }).nullish(),
27
+ type: z.looseObject({ displayName: z.string().optional() }).optional(),
28
+ })
29
+ .optional(),
30
+ context: z
31
+ .looseObject({
32
+ buildDefinitionName: z.string().optional(),
33
+ buildId: z.number().optional(),
34
+ buildIsNotCurrent: z.boolean().optional(),
35
+ isExpired: z.boolean().optional(),
36
+ lastMergeSourceCommitId: z.string().optional(),
37
+ })
38
+ .nullish(),
39
+ evaluationId: z.string().optional(),
40
+ status: z.string(),
41
+ });
42
+ const thread = z.looseObject({
43
+ comments: z
44
+ .array(z.looseObject({
45
+ author: z.looseObject({ displayName: z.string().optional() }).nullish(),
46
+ commentType: z.string().optional(),
47
+ content: z.string().nullish(),
48
+ isDeleted: z.boolean().optional(),
49
+ publishedDate: z.string().optional(),
50
+ }))
51
+ .optional(),
52
+ id: z.number(),
53
+ isDeleted: z.boolean().optional(),
54
+ lastUpdatedDate: z.string().optional(),
55
+ properties: z.looseObject({ CodeReviewThreadType: z.unknown().optional() }).nullish(),
56
+ publishedDate: z.string().optional(),
57
+ status: z.string().optional(),
58
+ threadContext: z
59
+ .looseObject({
60
+ filePath: z.string().optional(),
61
+ rightFileStart: z.looseObject({ line: z.number().optional() }).nullish(),
62
+ })
63
+ .nullish(),
64
+ });
65
+ const commit = z.looseObject({
66
+ commitId: z.string(),
67
+ committer: z.looseObject({ date: z.string() }),
68
+ parents: z.array(z.string()),
69
+ });
70
+ const refs = z.looseObject({ value: z.array(z.looseObject({ name: z.string(), objectId: z.string() })) });
71
+ const list = (item) => z.looseObject({ value: z.array(item) });
72
+ export const ADO_CAPABILITIES = {
73
+ autoLanding: 'vote-and-auto-complete',
74
+ descriptionLimit: 4000,
75
+ keepArmed: true,
76
+ mergeFailure: true,
77
+ threadState: true,
78
+ };
79
+ const DONE_THREAD = new Set(['byDesign', 'closed', 'fixed', 'wontFix']);
80
+ const branchOf = (ref) => (ref ? ref.replace(/^refs\/heads\//, '') : null);
81
+ // The PR's policy evaluations as checks. Blocking, enabled policies are required. A build's
82
+ // evaluation can describe an older source commit than `sourceCommit` right after a push, until the
83
+ // new build queues, so it isn't current; an expired build (ADO's build expiration) is its own state.
84
+ export function adoChecks(evaluations, sourceCommit) {
85
+ return evaluations.map((e) => {
86
+ const type = e.configuration?.type?.displayName ?? null;
87
+ const kind = type === 'Build' ? 'build' : 'policy';
88
+ const state = kind === 'build' && e.context?.isExpired
89
+ ? 'expired'
90
+ : e.status === 'approved' || e.status === 'notApplicable'
91
+ ? 'passed'
92
+ : e.status === 'rejected' || e.status === 'broken'
93
+ ? 'failed'
94
+ : 'pending';
95
+ const context = e.context?.lastMergeSourceCommitId;
96
+ return {
97
+ current: !e.context?.buildIsNotCurrent && (!sourceCommit || !context || context === sourceCommit),
98
+ kind,
99
+ // A build is named by its pipeline (null until it has one); any other policy by its type.
100
+ name: e.context?.buildDefinitionName ?? e.configuration?.settings?.displayName ?? (kind === 'build' ? null : type),
101
+ ...(e.evaluationId === undefined ? {} : { evaluationId: e.evaluationId }),
102
+ ...(e.configuration?.id === undefined ? {} : { policy: e.configuration.id }),
103
+ required: Boolean(e.configuration?.isEnabled && e.configuration.isBlocking),
104
+ run: e.context?.buildId ?? null,
105
+ state,
106
+ status: e.status,
107
+ type,
108
+ url: null,
109
+ };
110
+ });
111
+ }
112
+ // Azure Repos. Every read is one GET through `http`; checks and reviews ask for the PR again, which
113
+ // a caching `http` (the daemon's, per pass) answers without a request.
114
+ export function adoCodeHost(http) {
115
+ const rawPr = async ({ number, repo }) => pullRequest.parse(await http.json(adoUrl(repo, repoPath(repo, `pullrequests/${number}`))));
116
+ const checksOf = async (pr, repo) => {
117
+ const artifact = `vstfs:///CodeReview/CodeReviewId/${pr.repository.project.id}/${pr.pullRequestId}`;
118
+ const { value } = list(evaluation).parse(await http.json(adoUrl(repo, `policy/evaluations?artifactId=${encodeURIComponent(artifact)}`, '7.1-preview.1')));
119
+ return adoChecks(value, pr.lastMergeSourceCommit?.commitId ?? null);
120
+ };
121
+ const threadsOf = async ({ number, repo }, notePrefixes) => {
122
+ const { value } = list(thread).parse(await http.json(adoUrl(repo, repoPath(repo, `pullRequests/${number}/threads`))));
123
+ return adoThreads(value, notePrefixes);
124
+ };
125
+ const tipOf = async (repo, branch) => {
126
+ const { value } = refs.parse(await http.json(adoUrl(repo, repoPath(repo, `refs?filter=${encodeURIComponent(`heads/${branch}`)}`))));
127
+ return value.find((r) => r.name === `refs/heads/${branch}`)?.objectId ?? null;
128
+ };
129
+ return {
130
+ capabilities: () => ADO_CAPABILITIES,
131
+ checks: async (ref) => checksOf(await rawPr(ref), ref.repo),
132
+ commit: async (repo, sha) => {
133
+ const found = commit.parse(await http.json(adoUrl(repo, repoPath(repo, `commits/${sha}`))));
134
+ return { date: found.committer.date, parents: found.parents, sha: found.commitId };
135
+ },
136
+ pr: async (ref) => adoPrState(await rawPr(ref), ref.repo),
137
+ prForBranch: async (repo, branch) => {
138
+ const query = `searchCriteria.sourceRefName=${encodeURIComponent(`refs/heads/${branch}`)}&searchCriteria.status=all&$top=10`;
139
+ const { value } = list(pullRequest).parse(await http.json(adoUrl(repo, repoPath(repo, `pullrequests?${query}`))));
140
+ const newest = value.sort((a, b) => b.pullRequestId - a.pullRequestId)[0];
141
+ return newest ? summary(newest, repo) : null;
142
+ },
143
+ read: async (ref, { notePrefixes }) => {
144
+ const raw = await rawPr(ref);
145
+ const state = adoPrState(raw, ref.repo);
146
+ const reviews = adoReviews(raw);
147
+ if (state.state !== 'open')
148
+ return { ...state, branchTip: null, checks: [], reviews, threads: [] };
149
+ const checks = await checksOf(raw, ref.repo);
150
+ const threads = await threadsOf(ref, notePrefixes);
151
+ const branchTip = state.head ? await tipOf(ref.repo, state.head) : null;
152
+ return { ...state, branchTip, checks, reviews, threads };
153
+ },
154
+ reviews: async (ref) => adoReviews(await rawPr(ref)),
155
+ threads: async (ref, { notePrefixes }) => threadsOf(ref, notePrefixes),
156
+ };
157
+ }
158
+ export function adoPrState(pr, repo) {
159
+ const state = pr.status === 'completed' ? 'merged' : pr.status === 'abandoned' ? 'closed' : 'open';
160
+ const merge = pr.mergeStatus === 'conflicts'
161
+ ? 'conflicts'
162
+ : pr.mergeStatus === 'succeeded'
163
+ ? 'clean'
164
+ : pr.mergeStatus === 'failure' || pr.mergeStatus === 'rejectedByPolicy'
165
+ ? 'failed'
166
+ : 'pending';
167
+ return {
168
+ autoMerge: { armed: Boolean(pr.autoCompleteSetBy), by: pr.autoCompleteSetBy?.displayName ?? null },
169
+ base: branchOf(pr.targetRefName),
170
+ head: branchOf(pr.sourceRefName),
171
+ merge,
172
+ mergeCommit: state === 'merged' ? (pr.lastMergeCommit?.commitId ?? null) : null,
173
+ mergeFailure: merge === 'failed' ? (pr.mergeStatus ?? null) : null,
174
+ number: pr.pullRequestId,
175
+ sourceCommit: pr.lastMergeSourceCommit?.commitId ?? null,
176
+ state,
177
+ title: pr.title ?? '',
178
+ url: adoPrUrl(repo, pr.pullRequestId),
179
+ };
180
+ }
181
+ export function adoReviews(pr) {
182
+ return (pr.reviewers ?? []).map((r) => ({
183
+ at: null,
184
+ by: r.displayName ?? null,
185
+ verdict: r.vote > 0 ? 'approved' : r.vote < 0 ? 'changes-requested' : 'none',
186
+ vote: r.vote,
187
+ }));
188
+ }
189
+ // The PR's threads a person can write in: not a system update (votes, policy and status changes),
190
+ // not deleted, with at least one comment that isn't a system one.
191
+ export function adoThreads(threads, notePrefixes) {
192
+ return threads
193
+ .filter((t) => !t.isDeleted && !t.properties?.CodeReviewThreadType)
194
+ .flatMap((t) => {
195
+ const comments = (t.comments ?? []).filter((c) => !c.isDeleted && c.commentType !== 'system');
196
+ const last = comments.at(-1);
197
+ if (!last)
198
+ return [];
199
+ return [
200
+ {
201
+ asks: true,
202
+ at: last.publishedDate ?? t.lastUpdatedDate ?? t.publishedDate ?? null,
203
+ by: last.author?.displayName ?? null,
204
+ byPerson: comments.some((c) => !isNote(c.content, notePrefixes)),
205
+ excerpt: (last.content ?? '').slice(0, 500),
206
+ file: t.threadContext?.filePath ?? null,
207
+ id: t.id,
208
+ kind: 'thread',
209
+ lastIsNote: isNote(last.content, notePrefixes),
210
+ line: t.threadContext?.rightFileStart?.line ?? null,
211
+ open: !DONE_THREAD.has(t.status ?? ''),
212
+ url: null,
213
+ },
214
+ ];
215
+ });
216
+ }
217
+ function summary(pr, repo) {
218
+ const state = adoPrState(pr, repo);
219
+ return {
220
+ autoMerge: state.autoMerge.armed,
221
+ base: state.base,
222
+ mergeCommit: state.mergeCommit,
223
+ mergeStrategy: pr.completionOptions?.mergeStrategy ?? null,
224
+ number: state.number,
225
+ state: state.state,
226
+ title: state.title,
227
+ url: state.url,
228
+ };
229
+ }
230
+ //# sourceMappingURL=code-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-host.js","sourceRoot":"","sources":["../../../../src/lib/providers/ado/code-host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { NotFound, ProviderError } from "../errors.js";
2
+ const TIMEOUT_MS = 20_000;
3
+ // `<organization>/<project>`, the base every project-level URL starts from.
4
+ export function adoBase(repo) {
5
+ return `${repo.organization.replace(/\/+$/, '')}/${encodeURIComponent(repo.project)}`;
6
+ }
7
+ // GETs over adoRequest. A 404 or 400 is NotFound (the PR or run asked for doesn't exist); any other
8
+ // status but 200 is the provider failing.
9
+ export function adoHttp({ fetch: fetcher = globalThis.fetch, onRetry, token, }) {
10
+ const get = async (url) => {
11
+ const answer = await adoRequest(fetcher, token, url, { ...(onRetry ? { onRetry } : {}) });
12
+ const path = url.replace(/^.*?\/_apis\//, '').replace(/[?&]api-version=[^&]*$/, '');
13
+ const said = `Azure DevOps answered ${answer.status} for ${path}`;
14
+ if (answer.status === 404 || answer.status === 400)
15
+ throw new NotFound(said);
16
+ if (answer.status !== 200) {
17
+ throw new ProviderError(said, {
18
+ status: answer.status,
19
+ transient: answer.status >= 500 || answer.status === 429,
20
+ });
21
+ }
22
+ return answer;
23
+ };
24
+ return {
25
+ json: async (url) => (await get(url)).body,
26
+ text: async (url) => (await get(url)).text,
27
+ };
28
+ }
29
+ export function adoPrUrl(repo, id) {
30
+ return `${adoBase(repo)}/_git/${encodeURIComponent(repo.repository)}/pullrequest/${id}`;
31
+ }
32
+ // The organization, project and repository of an Azure Repos remote URL, over https
33
+ // (dev.azure.com/<org>/<project>/_git/<repo> or <org>.visualstudio.com/[DefaultCollection/]<project>/_git/<repo>)
34
+ // or ssh (ssh.dev.azure.com:v3/<org>/<project>/<repo> or vs-ssh.visualstudio.com:v3/…), or null for
35
+ // another host.
36
+ export function adoRepoFromRemote(url) {
37
+ const value = url.trim();
38
+ const https = /^https:\/\/(?:[^@/]+@)?(?:([\w-]+)\.visualstudio\.com(?:\/DefaultCollection)?|dev\.azure\.com\/([\w-]+))\/([^/]+)\/_git\/([^/]+?)\/?$/.exec(value);
39
+ const ssh = https
40
+ ? null
41
+ : /^(?:ssh:\/\/)?[^@/]+@(ssh\.dev\.azure\.com|vs-ssh\.visualstudio\.com):v3\/([\w-]+)\/([^/]+)\/([^/]+?)\/?$/.exec(value);
42
+ const org = https ? (https[1] ?? https[2]) : ssh?.[2];
43
+ const project = https ? https[3] : ssh?.[3];
44
+ const repository = https ? https[4] : ssh?.[4];
45
+ if (!org || !project || !repository)
46
+ return null;
47
+ const visualstudio = https ? Boolean(https[1]) : ssh?.[1] === 'vs-ssh.visualstudio.com';
48
+ return {
49
+ host: 'ado',
50
+ organization: visualstudio ? `https://${org}.visualstudio.com` : `https://dev.azure.com/${org}`,
51
+ project: decodeURIComponent(project),
52
+ repository: decodeURIComponent(repository),
53
+ };
54
+ }
55
+ // One request to Azure DevOps with the az token, tried again once with a renewed token when ADO
56
+ // refuses it: 401, or 203, its sign-in page for a token it doesn't take. Throws only when fetch
57
+ // does (network, timeout); every status is the caller's to read.
58
+ export async function adoRequest(fetcher, token, url, { body, contentType = 'application/json', method = 'GET', onRetry } = {}) {
59
+ for (let renewed = false;; renewed = true) {
60
+ const response = await fetcher(url, {
61
+ ...(body === undefined ? {} : { body: JSON.stringify(body) }),
62
+ cache: 'no-store',
63
+ headers: {
64
+ authorization: `Bearer ${await token(renewed)}`,
65
+ ...(body === undefined ? {} : { 'content-type': contentType }),
66
+ },
67
+ method,
68
+ signal: AbortSignal.timeout(TIMEOUT_MS),
69
+ });
70
+ if ((response.status === 401 || response.status === 203) && !renewed) {
71
+ onRetry?.();
72
+ continue;
73
+ }
74
+ const text = await response.text();
75
+ let parsed;
76
+ try {
77
+ parsed = text ? JSON.parse(text) : null;
78
+ }
79
+ catch {
80
+ parsed = null;
81
+ }
82
+ return { body: parsed, status: response.status, text };
83
+ }
84
+ }
85
+ export function adoRunUrl(repo, id) {
86
+ return `${adoBase(repo)}/_build/results?buildId=${id}`;
87
+ }
88
+ export function adoUrl(repo, path, version = '7.1') {
89
+ return `${adoBase(repo)}/_apis/${path}${path.includes('?') ? '&' : '?'}api-version=${version}`;
90
+ }
91
+ // The repository's REST path, git/repositories/<repo>/<rest>.
92
+ export function repoPath(repo, rest) {
93
+ return `git/repositories/${encodeURIComponent(repo.repository)}/${rest}`;
94
+ }
95
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../../src/lib/providers/ado/http.ts"],"names":[],"mappings":"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"}