@kud/gh 0.18.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/inbox.d.ts +78 -6
- package/dist/inbox.d.ts.map +1 -1
- package/dist/inbox.js +168 -16
- package/dist/inbox.js.map +1 -1
- package/dist/pulse.d.ts +2 -0
- package/dist/pulse.d.ts.map +1 -1
- package/dist/pulse.js +1 -1
- package/dist/pulse.js.map +1 -1
- package/package.json +1 -1
package/dist/inbox.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* axis is unchanged: the multiplication is what `minimal` exists to drop.
|
|
16
16
|
*/
|
|
17
17
|
/**
|
|
18
|
-
* How many of your own open PRs to ask for.
|
|
18
|
+
* How many of your own open PRs to ask for on the first page.
|
|
19
19
|
*
|
|
20
20
|
* This is the single biggest lever on the query's cost, because connections
|
|
21
21
|
* MULTIPLY: the health and conversation fragments hang ~60 nodes off each PR
|
|
@@ -32,11 +32,36 @@
|
|
|
32
32
|
* At 30 this search costs 2,400 nodes instead of 8,000, roughly halving the whole
|
|
33
33
|
* query.
|
|
34
34
|
*
|
|
35
|
+
* It is 100 again since 2026-10-05, and the history above is why that needs a
|
|
36
|
+
* reason rather than being a revert. The 30-row window dropped real PRs in
|
|
37
|
+
* silence for one host shape: a host hiding one org's repos client-side lost
|
|
38
|
+
* visible rows whenever the hidden org filled the window (39 open PRs, 21 in the
|
|
39
|
+
* hidden org, 30 fetched — the personal view showed 9 of 18). A server-side
|
|
40
|
+
* `-user:` exclusion was measured and rejected: GitHub search then drops the
|
|
41
|
+
* viewer's own private-repo PRs. So the window has to hold the whole set, and
|
|
42
|
+
* `fetchInbox` pages past it when it does not — see `MY_PRS_MAX_PAGES`.
|
|
43
|
+
*
|
|
44
|
+
* The cost per page rises with this, roughly back toward the 111 points the old
|
|
45
|
+
* note measured. That is visible rather than hidden: `rateLimit { cost }` rides
|
|
46
|
+
* on every document this file builds, including the follow-up pages, so a host
|
|
47
|
+
* watching the budget sees what the wider window spends.
|
|
48
|
+
*
|
|
35
49
|
* `issueCount` is fetched alongside so the cap can never drop rows in silence: a
|
|
36
50
|
* scalar costs nothing, and a host that knows the true total can say what it is
|
|
37
51
|
* not showing.
|
|
38
52
|
*/
|
|
39
|
-
export declare const MY_PRS_LIMIT =
|
|
53
|
+
export declare const MY_PRS_LIMIT = 100;
|
|
54
|
+
/**
|
|
55
|
+
* How many pages of `myPRs` one `fetchInbox` may hold, first page included.
|
|
56
|
+
*
|
|
57
|
+
* The first page covers almost every account on its own — `MY_PRS_LIMIT` is the
|
|
58
|
+
* search API's maximum — and each further page is one more full-cost request, so
|
|
59
|
+
* the loop stops at five (500 rows) with more still available rather than
|
|
60
|
+
* chasing an unbounded set. Past the ceiling the tab is still marked sampled —
|
|
61
|
+
* `sourceCoverage` reads `pageInfo.hasNextPage`, not the row count — so the
|
|
62
|
+
* dim "shown/total" note keeps describing the same situation it always did.
|
|
63
|
+
*/
|
|
64
|
+
export declare const MY_PRS_MAX_PAGES = 5;
|
|
40
65
|
/**
|
|
41
66
|
* How many rows each source asks for — the cap, as DATA rather than a literal
|
|
42
67
|
* buried in eight query strings.
|
|
@@ -81,8 +106,10 @@ export declare const MY_PRS_LIMIT = 30;
|
|
|
81
106
|
* hence 6,100 for 38 rows. A day spent with fifty PRs assigned would make this
|
|
82
107
|
* the heaviest search in the query.
|
|
83
108
|
*
|
|
84
|
-
* The PR sources keep their caps. There the outer number really does
|
|
85
|
-
* ~80 nested nodes
|
|
109
|
+
* The other PR sources keep their caps. There the outer number really does
|
|
110
|
+
* multiply ~80 nested nodes. `myPRs` is the exception since 2026-10-05: its
|
|
111
|
+
* window has to hold its whole set (see `MY_PRS_LIMIT`), and `fetchInbox`
|
|
112
|
+
* pages past the first window when it does not.
|
|
86
113
|
*/
|
|
87
114
|
export declare const SOURCE_LIMITS: Record<InboxSource, number>;
|
|
88
115
|
export type InboxShape = "full" | "minimal";
|
|
@@ -94,6 +121,12 @@ export declare const INBOX_SOURCES: readonly InboxSource[];
|
|
|
94
121
|
export type InboxQueryOptions = {
|
|
95
122
|
/** `owner/name`. Scopes every search to one repository. */
|
|
96
123
|
repo?: string;
|
|
124
|
+
/**
|
|
125
|
+
* `owner/name` repositories no search may return, applied as `-repo:`
|
|
126
|
+
* qualifiers on every source. See `inboxScope` for why it lives in the query
|
|
127
|
+
* rather than in a filter over the rows.
|
|
128
|
+
*/
|
|
129
|
+
excludeRepos?: readonly string[];
|
|
97
130
|
/** How far back `recentlyDone` looks. Defaults to 14 days. */
|
|
98
131
|
doneWithinDays?: number;
|
|
99
132
|
/**
|
|
@@ -172,8 +205,20 @@ export declare const limitsFor: (options?: InboxQueryOptions) => Record<InboxSou
|
|
|
172
205
|
* that watched a different set of repos would report calm while the board went
|
|
173
206
|
* stale. One function, so the two cannot drift into two spellings of the rule
|
|
174
207
|
* that `repo:` REPLACES `user:@me` (see `buildInboxQuery`).
|
|
208
|
+
*
|
|
209
|
+
* `excludeRepos` rides in `scope` because `scope` is the one prefix EVERY
|
|
210
|
+
* source and every pulse alias already carries, so a repo hidden here is hidden
|
|
211
|
+
* from all of them at once. It is a query qualifier rather than a filter over
|
|
212
|
+
* the returned rows on purpose: a row filter leaves `issueCount` counting the
|
|
213
|
+
* hidden repo, so a capped tab's fraction claims rows nobody can see, and the
|
|
214
|
+
* hidden rows still occupy slots in the window and push real ones out of it.
|
|
215
|
+
*
|
|
216
|
+
* Names are checked rather than trusted, because they are interpolated into a
|
|
217
|
+
* quoted GraphQL string: one stray `"` costs the whole document. A bad name
|
|
218
|
+
* throws instead of being dropped, since a repo that silently stays visible is
|
|
219
|
+
* exactly the failure this option exists to prevent.
|
|
175
220
|
*/
|
|
176
|
-
export declare const inboxScope: (repo?: string) => {
|
|
221
|
+
export declare const inboxScope: (repo?: string, excludeRepos?: readonly string[]) => {
|
|
177
222
|
scope: string;
|
|
178
223
|
owned: string;
|
|
179
224
|
};
|
|
@@ -225,6 +270,30 @@ export declare const buildInboxQueries: (options?: InboxQueryOptions & {
|
|
|
225
270
|
* moment.
|
|
226
271
|
*/
|
|
227
272
|
export declare const mergeInboxData: (parts: any[]) => any;
|
|
273
|
+
/** What runs one inbox document against GitHub. Defaults to the live CLI. */
|
|
274
|
+
export type InboxRunner = (query: string) => Promise<any>;
|
|
275
|
+
/**
|
|
276
|
+
* Fetch the whole inbox: every source in parallel, merged, with `myPRs`
|
|
277
|
+
* paged to its `issueCount`.
|
|
278
|
+
*
|
|
279
|
+
* This is the function a host should call to get the paginated inbox. Building
|
|
280
|
+
* documents with `buildInboxQueries` and merging them with `mergeInboxData`
|
|
281
|
+
* still works, but it leaves `myPRs` at its first window — this is the only
|
|
282
|
+
* entry point that follows `pageInfo` past it, so every host fetching through
|
|
283
|
+
* here gets the fix with no change at its own layer.
|
|
284
|
+
*
|
|
285
|
+
* Only `myPRs` pages. The other sources keep their caps as cost decisions (see
|
|
286
|
+
* `SOURCE_LIMITS`): their windows are priced, and `sourceCoverage` already tells
|
|
287
|
+
* a host what they are not showing. `myPRs` is different — its window has to
|
|
288
|
+
* hold its whole set, because a host filtering repos client-side cannot tell a
|
|
289
|
+
* row outside the window from a row that does not exist.
|
|
290
|
+
*
|
|
291
|
+
* `run` is the seam tests hold: pass a fake returning canned pages, read the
|
|
292
|
+
* real `gh api graphql` by passing nothing.
|
|
293
|
+
*/
|
|
294
|
+
export declare const fetchInbox: (options?: InboxQueryOptions & {
|
|
295
|
+
sourcesPerQuery?: number;
|
|
296
|
+
}, run?: InboxRunner) => Promise<any>;
|
|
228
297
|
/**
|
|
229
298
|
* What a source matched, against what it was allowed to return.
|
|
230
299
|
*
|
|
@@ -248,7 +317,10 @@ export type SourceCoverage = {
|
|
|
248
317
|
* We asked for N and got N, so the rows are a sample of the set.
|
|
249
318
|
*
|
|
250
319
|
* Derived from our own request rather than from `total`, which is the entire
|
|
251
|
-
* point: a cap is a fact we hold, and it cannot be wrong about itself.
|
|
320
|
+
* point: a cap is a fact we hold, and it cannot be wrong about itself. Where
|
|
321
|
+
* the source selected `pageInfo`, `hasNextPage` answers instead — a paged
|
|
322
|
+
* fetch holds more than any one window asked for, so the window is the wrong
|
|
323
|
+
* thing to measure against.
|
|
252
324
|
*/
|
|
253
325
|
capped: boolean;
|
|
254
326
|
/**
|
package/dist/inbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"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"}
|
package/dist/inbox.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// Query-only by design. Assembling the result into sections is the surface's
|
|
6
6
|
// own vocabulary — cockpit splits home from work, a web dashboard may group by
|
|
7
7
|
// project — so nothing here decides what a section is.
|
|
8
|
+
import { ghGraphql } from "./gh.js";
|
|
8
9
|
/**
|
|
9
10
|
* How much of each row to ask for.
|
|
10
11
|
*
|
|
@@ -22,7 +23,7 @@
|
|
|
22
23
|
* axis is unchanged: the multiplication is what `minimal` exists to drop.
|
|
23
24
|
*/
|
|
24
25
|
/**
|
|
25
|
-
* How many of your own open PRs to ask for.
|
|
26
|
+
* How many of your own open PRs to ask for on the first page.
|
|
26
27
|
*
|
|
27
28
|
* This is the single biggest lever on the query's cost, because connections
|
|
28
29
|
* MULTIPLY: the health and conversation fragments hang ~60 nodes off each PR
|
|
@@ -39,11 +40,36 @@
|
|
|
39
40
|
* At 30 this search costs 2,400 nodes instead of 8,000, roughly halving the whole
|
|
40
41
|
* query.
|
|
41
42
|
*
|
|
43
|
+
* It is 100 again since 2026-10-05, and the history above is why that needs a
|
|
44
|
+
* reason rather than being a revert. The 30-row window dropped real PRs in
|
|
45
|
+
* silence for one host shape: a host hiding one org's repos client-side lost
|
|
46
|
+
* visible rows whenever the hidden org filled the window (39 open PRs, 21 in the
|
|
47
|
+
* hidden org, 30 fetched — the personal view showed 9 of 18). A server-side
|
|
48
|
+
* `-user:` exclusion was measured and rejected: GitHub search then drops the
|
|
49
|
+
* viewer's own private-repo PRs. So the window has to hold the whole set, and
|
|
50
|
+
* `fetchInbox` pages past it when it does not — see `MY_PRS_MAX_PAGES`.
|
|
51
|
+
*
|
|
52
|
+
* The cost per page rises with this, roughly back toward the 111 points the old
|
|
53
|
+
* note measured. That is visible rather than hidden: `rateLimit { cost }` rides
|
|
54
|
+
* on every document this file builds, including the follow-up pages, so a host
|
|
55
|
+
* watching the budget sees what the wider window spends.
|
|
56
|
+
*
|
|
42
57
|
* `issueCount` is fetched alongside so the cap can never drop rows in silence: a
|
|
43
58
|
* scalar costs nothing, and a host that knows the true total can say what it is
|
|
44
59
|
* not showing.
|
|
45
60
|
*/
|
|
46
|
-
export const MY_PRS_LIMIT =
|
|
61
|
+
export const MY_PRS_LIMIT = 100;
|
|
62
|
+
/**
|
|
63
|
+
* How many pages of `myPRs` one `fetchInbox` may hold, first page included.
|
|
64
|
+
*
|
|
65
|
+
* The first page covers almost every account on its own — `MY_PRS_LIMIT` is the
|
|
66
|
+
* search API's maximum — and each further page is one more full-cost request, so
|
|
67
|
+
* the loop stops at five (500 rows) with more still available rather than
|
|
68
|
+
* chasing an unbounded set. Past the ceiling the tab is still marked sampled —
|
|
69
|
+
* `sourceCoverage` reads `pageInfo.hasNextPage`, not the row count — so the
|
|
70
|
+
* dim "shown/total" note keeps describing the same situation it always did.
|
|
71
|
+
*/
|
|
72
|
+
export const MY_PRS_MAX_PAGES = 5;
|
|
47
73
|
/**
|
|
48
74
|
* How many rows each source asks for — the cap, as DATA rather than a literal
|
|
49
75
|
* buried in eight query strings.
|
|
@@ -88,8 +114,10 @@ export const MY_PRS_LIMIT = 30;
|
|
|
88
114
|
* hence 6,100 for 38 rows. A day spent with fifty PRs assigned would make this
|
|
89
115
|
* the heaviest search in the query.
|
|
90
116
|
*
|
|
91
|
-
* The PR sources keep their caps. There the outer number really does
|
|
92
|
-
* ~80 nested nodes
|
|
117
|
+
* The other PR sources keep their caps. There the outer number really does
|
|
118
|
+
* multiply ~80 nested nodes. `myPRs` is the exception since 2026-10-05: its
|
|
119
|
+
* window has to hold its whole set (see `MY_PRS_LIMIT`), and `fetchInbox`
|
|
120
|
+
* pages past the first window when it does not.
|
|
93
121
|
*/
|
|
94
122
|
export const SOURCE_LIMITS = {
|
|
95
123
|
myPRs: MY_PRS_LIMIT,
|
|
@@ -283,6 +311,19 @@ const ISSUE_CONVERSATION = `
|
|
|
283
311
|
// what a delegated session gets handed. Nothing here renders labels.
|
|
284
312
|
const ISSUE_LABELS = `
|
|
285
313
|
labels(first: 10) { nodes { name } }`;
|
|
314
|
+
// The same selection on PR nodes, and it is not a copy that drifted — it is
|
|
315
|
+
// the same ten names for the same reason, plus one a host cannot get any other
|
|
316
|
+
// way. A host deciding "does this PR need a decision from the viewer" reads a
|
|
317
|
+
// `decision-needed` label off the row, and the row only carries what the query
|
|
318
|
+
// selected: without this, a host filtering PRs by label would have to fire one
|
|
319
|
+
// `gh pr view --json labels` per row, which is exactly the per-row round trip
|
|
320
|
+
// the inbox query exists to avoid. Agents reading the raw payload get the same
|
|
321
|
+
// benefit issues already had — labels on PRs as they have on issues — rather
|
|
322
|
+
// than a payload where half the rows answer "what am I" and the other half do
|
|
323
|
+
// not. Absent from `recentlyDone` on purpose: a merged row is never triaged by
|
|
324
|
+
// label.
|
|
325
|
+
const PR_LABELS = `
|
|
326
|
+
labels(first: 10) { nodes { name } }`;
|
|
286
327
|
/*
|
|
287
328
|
* Computed per call, never at module scope. A CLI process is short-lived and
|
|
288
329
|
* would not notice, but a long-running server imports this once and keeps it
|
|
@@ -295,10 +336,18 @@ const sinceDay = (days) => new Date(Date.now() - days * 86400 * 1000).toISOStrin
|
|
|
295
336
|
* ask for any subset without this file growing a second copy of the query text.
|
|
296
337
|
* Each value is the whole `alias: search(…) { … }` selection, indented as it
|
|
297
338
|
* appears in the document.
|
|
339
|
+
*
|
|
340
|
+
* `after` is how `fetchInbox` pages `myPRs` past its first window, and only
|
|
341
|
+
* `myPRs` takes it — it is the one source whose window has to hold its whole
|
|
342
|
+
* set (see `MY_PRS_LIMIT`), so it is the one source that selects `pageInfo`.
|
|
343
|
+
* The other entries ignore the parameter; giving every entry its own cursor
|
|
344
|
+
* would invite paging a source whose cap is a cost decision rather than a
|
|
345
|
+
* completeness one.
|
|
298
346
|
*/
|
|
299
347
|
const SOURCES = {
|
|
300
|
-
myPRs: ({ scope, health, size, conversation }, first) => ` myPRs: search(query: "${scope}is:pr is:open author:@me", type: ISSUE, first: ${first}) {
|
|
348
|
+
myPRs: ({ scope, health, size, conversation, prLabels }, first, after) => ` myPRs: search(query: "${scope}is:pr is:open author:@me", type: ISSUE, first: ${first}${after ? `, after: ${JSON.stringify(after)}` : ""}) {
|
|
301
349
|
issueCount
|
|
350
|
+
pageInfo { hasNextPage endCursor }
|
|
302
351
|
nodes { __typename ... on PullRequest {
|
|
303
352
|
id number title createdAt url headRefName isDraft
|
|
304
353
|
repository { nameWithOwner }
|
|
@@ -306,9 +355,10 @@ const SOURCES = {
|
|
|
306
355
|
${size}
|
|
307
356
|
${health}
|
|
308
357
|
${conversation}
|
|
358
|
+
${prLabels}
|
|
309
359
|
}}
|
|
310
360
|
}`,
|
|
311
|
-
reviewRequests: ({ scope, health, size, conversation }, first) => ` reviewRequests: search(query: "${scope}is:pr is:open review-requested:@me", type: ISSUE, first: ${first}) {
|
|
361
|
+
reviewRequests: ({ scope, health, size, conversation, prLabels }, first) => ` reviewRequests: search(query: "${scope}is:pr is:open review-requested:@me", type: ISSUE, first: ${first}) {
|
|
312
362
|
issueCount
|
|
313
363
|
nodes { __typename ... on PullRequest {
|
|
314
364
|
id number title createdAt url headRefName isDraft
|
|
@@ -317,9 +367,10 @@ const SOURCES = {
|
|
|
317
367
|
${size}
|
|
318
368
|
${health}
|
|
319
369
|
${conversation}
|
|
370
|
+
${prLabels}
|
|
320
371
|
}}
|
|
321
372
|
}`,
|
|
322
|
-
reviewed: ({ scope, health, size, conversation }, first) => ` reviewed: search(query: "${scope}is:pr is:open reviewed-by:@me -author:@me -review-requested:@me", type: ISSUE, first: ${first}) {
|
|
373
|
+
reviewed: ({ scope, health, size, conversation, prLabels }, first) => ` reviewed: search(query: "${scope}is:pr is:open reviewed-by:@me -author:@me -review-requested:@me", type: ISSUE, first: ${first}) {
|
|
323
374
|
issueCount
|
|
324
375
|
nodes { __typename ... on PullRequest {
|
|
325
376
|
id number title createdAt url headRefName isDraft
|
|
@@ -328,9 +379,10 @@ const SOURCES = {
|
|
|
328
379
|
${size}
|
|
329
380
|
${health}
|
|
330
381
|
${conversation}
|
|
382
|
+
${prLabels}
|
|
331
383
|
}}
|
|
332
384
|
}`,
|
|
333
|
-
assigned: ({ scope, health, size, conversation, issueConversation, issueLabels }, first) => ` assigned: search(query: "${scope}is:open assignee:@me", type: ISSUE, first: ${first}) {
|
|
385
|
+
assigned: ({ scope, health, size, conversation, issueConversation, issueLabels, prLabels, }, first) => ` assigned: search(query: "${scope}is:open assignee:@me", type: ISSUE, first: ${first}) {
|
|
334
386
|
issueCount
|
|
335
387
|
nodes {
|
|
336
388
|
__typename
|
|
@@ -344,6 +396,7 @@ const SOURCES = {
|
|
|
344
396
|
${size}
|
|
345
397
|
${health}
|
|
346
398
|
${conversation}
|
|
399
|
+
${prLabels}
|
|
347
400
|
}
|
|
348
401
|
}
|
|
349
402
|
}`,
|
|
@@ -395,7 +448,7 @@ const SOURCES = {
|
|
|
395
448
|
${issueLabels}
|
|
396
449
|
}}
|
|
397
450
|
}`,
|
|
398
|
-
repoPRs: ({ scope, owned, health, size, conversation }, first) => ` repoPRs: search(query: "${scope}${owned}is:pr is:open -author:@me archived:false", type: ISSUE, first: ${first}) {
|
|
451
|
+
repoPRs: ({ scope, owned, health, size, conversation, prLabels }, first) => ` repoPRs: search(query: "${scope}${owned}is:pr is:open -author:@me archived:false", type: ISSUE, first: ${first}) {
|
|
399
452
|
issueCount
|
|
400
453
|
nodes { __typename ... on PullRequest {
|
|
401
454
|
id number title createdAt url headRefName isDraft
|
|
@@ -404,6 +457,7 @@ const SOURCES = {
|
|
|
404
457
|
${size}
|
|
405
458
|
${health}
|
|
406
459
|
${conversation}
|
|
460
|
+
${prLabels}
|
|
407
461
|
}}
|
|
408
462
|
}`,
|
|
409
463
|
recentlyDone: ({ scope, doneSince }, first) => ` recentlyDone: search(query: "${scope}is:pr author:@me -is:open closed:>=${doneSince}", type: ISSUE, first: ${first}) {
|
|
@@ -414,6 +468,7 @@ const SOURCES = {
|
|
|
414
468
|
}}
|
|
415
469
|
}`,
|
|
416
470
|
};
|
|
471
|
+
const REPO_SLUG = /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/;
|
|
417
472
|
/**
|
|
418
473
|
* The two scope qualifiers every search is built from, resolved from `repo`.
|
|
419
474
|
*
|
|
@@ -422,23 +477,42 @@ const SOURCES = {
|
|
|
422
477
|
* that watched a different set of repos would report calm while the board went
|
|
423
478
|
* stale. One function, so the two cannot drift into two spellings of the rule
|
|
424
479
|
* that `repo:` REPLACES `user:@me` (see `buildInboxQuery`).
|
|
480
|
+
*
|
|
481
|
+
* `excludeRepos` rides in `scope` because `scope` is the one prefix EVERY
|
|
482
|
+
* source and every pulse alias already carries, so a repo hidden here is hidden
|
|
483
|
+
* from all of them at once. It is a query qualifier rather than a filter over
|
|
484
|
+
* the returned rows on purpose: a row filter leaves `issueCount` counting the
|
|
485
|
+
* hidden repo, so a capped tab's fraction claims rows nobody can see, and the
|
|
486
|
+
* hidden rows still occupy slots in the window and push real ones out of it.
|
|
487
|
+
*
|
|
488
|
+
* Names are checked rather than trusted, because they are interpolated into a
|
|
489
|
+
* quoted GraphQL string: one stray `"` costs the whole document. A bad name
|
|
490
|
+
* throws instead of being dropped, since a repo that silently stays visible is
|
|
491
|
+
* exactly the failure this option exists to prevent.
|
|
425
492
|
*/
|
|
426
|
-
export const inboxScope = (repo) =>
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
});
|
|
430
|
-
const
|
|
493
|
+
export const inboxScope = (repo, excludeRepos = []) => {
|
|
494
|
+
const bad = excludeRepos.find((r) => !REPO_SLUG.test(r));
|
|
495
|
+
if (bad !== undefined)
|
|
496
|
+
throw new Error(`excludeRepos: "${bad}" is not an owner/name slug`);
|
|
497
|
+
const hidden = excludeRepos.map((r) => `-repo:${r} `).join("");
|
|
498
|
+
return {
|
|
499
|
+
scope: `${repo ? `repo:${repo} ` : ""}${hidden}`,
|
|
500
|
+
owned: repo ? "" : "user:@me ",
|
|
501
|
+
};
|
|
502
|
+
};
|
|
503
|
+
const selectionsFor = ({ repo, excludeRepos, doneWithinDays = 14, shape = "full", }) => {
|
|
431
504
|
/* Interpolated as empty strings rather than branching the query text, so the
|
|
432
505
|
two shapes cannot drift into two separately-maintained queries. */
|
|
433
506
|
const full = shape === "full";
|
|
434
507
|
return {
|
|
435
|
-
...inboxScope(repo),
|
|
508
|
+
...inboxScope(repo, excludeRepos),
|
|
436
509
|
doneSince: sinceDay(doneWithinDays),
|
|
437
510
|
health: full ? PR_HEALTH : "",
|
|
438
511
|
size: PR_SIZE,
|
|
439
512
|
conversation: full ? PR_CONVERSATION : "",
|
|
440
513
|
issueConversation: full ? ISSUE_CONVERSATION : "",
|
|
441
514
|
issueLabels: full ? ISSUE_LABELS : "",
|
|
515
|
+
prLabels: full ? PR_LABELS : "",
|
|
442
516
|
};
|
|
443
517
|
};
|
|
444
518
|
/**
|
|
@@ -567,6 +641,71 @@ export const mergeInboxData = (parts) => {
|
|
|
567
641
|
: {}),
|
|
568
642
|
};
|
|
569
643
|
};
|
|
644
|
+
/*
|
|
645
|
+
* One further page of `myPRs` alone, past the cursor the last page ended on.
|
|
646
|
+
*
|
|
647
|
+
* Built from the same `SOURCES.myPRs` entry as the first page rather than a
|
|
648
|
+
* second copy of its text, so the two cannot drift — a field added to one is on
|
|
649
|
+
* both. `rateLimit` and `viewer` ride along for the same reason they do on every
|
|
650
|
+
* subset `buildInboxQuery` emits: the parts are merged with `mergeInboxData`,
|
|
651
|
+
* which needs the envelope on each one to keep the cost honest.
|
|
652
|
+
*/
|
|
653
|
+
const buildMyPRsPageQuery = (options, first, after) => `{
|
|
654
|
+
rateLimit { cost nodeCount remaining resetAt }
|
|
655
|
+
viewer { login }
|
|
656
|
+
${SOURCES.myPRs(selectionsFor(options), first, after)}
|
|
657
|
+
}
|
|
658
|
+
`;
|
|
659
|
+
/**
|
|
660
|
+
* Fetch the whole inbox: every source in parallel, merged, with `myPRs`
|
|
661
|
+
* paged to its `issueCount`.
|
|
662
|
+
*
|
|
663
|
+
* This is the function a host should call to get the paginated inbox. Building
|
|
664
|
+
* documents with `buildInboxQueries` and merging them with `mergeInboxData`
|
|
665
|
+
* still works, but it leaves `myPRs` at its first window — this is the only
|
|
666
|
+
* entry point that follows `pageInfo` past it, so every host fetching through
|
|
667
|
+
* here gets the fix with no change at its own layer.
|
|
668
|
+
*
|
|
669
|
+
* Only `myPRs` pages. The other sources keep their caps as cost decisions (see
|
|
670
|
+
* `SOURCE_LIMITS`): their windows are priced, and `sourceCoverage` already tells
|
|
671
|
+
* a host what they are not showing. `myPRs` is different — its window has to
|
|
672
|
+
* hold its whole set, because a host filtering repos client-side cannot tell a
|
|
673
|
+
* row outside the window from a row that does not exist.
|
|
674
|
+
*
|
|
675
|
+
* `run` is the seam tests hold: pass a fake returning canned pages, read the
|
|
676
|
+
* real `gh api graphql` by passing nothing.
|
|
677
|
+
*/
|
|
678
|
+
export const fetchInbox = async (options = {}, run = ghGraphql) => {
|
|
679
|
+
const parts = await Promise.all(buildInboxQueries(options).map(run));
|
|
680
|
+
let data = mergeInboxData(parts);
|
|
681
|
+
if (!data || !sourcesFor(options).includes("myPRs"))
|
|
682
|
+
return data;
|
|
683
|
+
const pageSize = limitsFor(options).myPRs;
|
|
684
|
+
let pages = 1;
|
|
685
|
+
let cursor = data.myPRs?.pageInfo;
|
|
686
|
+
while (pages < MY_PRS_MAX_PAGES &&
|
|
687
|
+
cursor?.hasNextPage === true &&
|
|
688
|
+
typeof cursor?.endCursor === "string") {
|
|
689
|
+
const page = await run(buildMyPRsPageQuery(options, pageSize, cursor.endCursor));
|
|
690
|
+
if (!page?.myPRs)
|
|
691
|
+
break;
|
|
692
|
+
const envelope = mergeInboxData([data, page]);
|
|
693
|
+
data = {
|
|
694
|
+
...envelope,
|
|
695
|
+
myPRs: {
|
|
696
|
+
...page.myPRs,
|
|
697
|
+
issueCount: typeof page.myPRs.issueCount === "number"
|
|
698
|
+
? page.myPRs.issueCount
|
|
699
|
+
: data.myPRs?.issueCount,
|
|
700
|
+
pageInfo: page.myPRs.pageInfo,
|
|
701
|
+
nodes: [...(data.myPRs?.nodes ?? []), ...(page.myPRs.nodes ?? [])],
|
|
702
|
+
},
|
|
703
|
+
};
|
|
704
|
+
pages += 1;
|
|
705
|
+
cursor = data.myPRs?.pageInfo;
|
|
706
|
+
}
|
|
707
|
+
return data;
|
|
708
|
+
};
|
|
570
709
|
/**
|
|
571
710
|
* What each source could see, against what it was allowed to show.
|
|
572
711
|
*
|
|
@@ -629,11 +768,24 @@ export const sourceCoverage = (data, limits = {}) => {
|
|
|
629
768
|
const shown = answered.nodes?.length ?? 0;
|
|
630
769
|
const total = typeof answered.issueCount === "number" ? answered.issueCount : shown;
|
|
631
770
|
const cap = caps[source];
|
|
771
|
+
/*
|
|
772
|
+
* A source carrying `pageInfo` answers the cap question itself, and its
|
|
773
|
+
* answer wins over the row count. `fetchInbox` pages `myPRs` to its whole
|
|
774
|
+
* set, so a complete fetch holds MORE rows than the first page asked for —
|
|
775
|
+
* and measuring those against the first page's cap would call every large
|
|
776
|
+
* account sampled forever. `hasNextPage: false` means the set is whole
|
|
777
|
+
* whatever the count says; `true` means rows exist past what is held, which
|
|
778
|
+
* is exactly what `capped` claims. Sources without it keep the old rule.
|
|
779
|
+
*/
|
|
780
|
+
const paging = answered.pageInfo;
|
|
781
|
+
const capped = typeof paging?.hasNextPage === "boolean"
|
|
782
|
+
? paging.hasNextPage
|
|
783
|
+
: shown >= cap;
|
|
632
784
|
out[source] = {
|
|
633
785
|
total,
|
|
634
786
|
shown,
|
|
635
787
|
cap,
|
|
636
|
-
capped
|
|
788
|
+
capped,
|
|
637
789
|
partial: shown < cap && total > shown,
|
|
638
790
|
};
|
|
639
791
|
}
|
package/dist/inbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"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"}
|
package/dist/pulse.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export type PulseQueryOptions = {
|
|
2
2
|
/** `owner/name`. Watches one repository, exactly as a scoped inbox reads it. */
|
|
3
3
|
repo?: string;
|
|
4
|
+
/** `owner/name` repositories the pulse must not watch, as the inbox hides them. */
|
|
5
|
+
excludeRepos?: readonly string[];
|
|
4
6
|
};
|
|
5
7
|
/**
|
|
6
8
|
* Build the pulse query.
|
package/dist/pulse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../src/pulse.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../src/pulse.ts"],"names":[],"mappings":"AAeA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mFAAmF;IACnF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,eAAe,GAAI,UAAS,iBAAsB,WAsB9D,CAAA;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,GAAG,KAAG,MAmB5C,CAAA"}
|
package/dist/pulse.js
CHANGED
|
@@ -37,7 +37,7 @@ import { MY_PRS_LIMIT, inboxScope } from "./inbox.js";
|
|
|
37
37
|
* pulse down before the budget runs dry rather than after.
|
|
38
38
|
*/
|
|
39
39
|
export const buildPulseQuery = (options = {}) => {
|
|
40
|
-
const { scope, owned } = inboxScope(options.repo);
|
|
40
|
+
const { scope, owned } = inboxScope(options.repo, options.excludeRepos);
|
|
41
41
|
const latest = (alias, qualifiers) => ` ${alias}: search(query: "${scope}${qualifiers} sort:updated-desc", type: ISSUE, first: 1) {
|
|
42
42
|
nodes { ... on Issue { updatedAt } ... on PullRequest { updatedAt } }
|
|
43
43
|
}`;
|
package/dist/pulse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pulse.js","sourceRoot":"","sources":["../src/pulse.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,qFAAqF;AACrF,+EAA+E;AAC/E,2EAA2E;AAC3E,iFAAiF;AACjF,+EAA+E;AAC/E,8BAA8B;AAC9B,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,4EAA4E;AAE5E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"pulse.js","sourceRoot":"","sources":["../src/pulse.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,qFAAqF;AACrF,+EAA+E;AAC/E,2EAA2E;AAC3E,iFAAiF;AACjF,+EAA+E;AAC/E,8BAA8B;AAC9B,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,4EAA4E;AAE5E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AASrD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAA6B,EAAE,EAAE,EAAE;IACjE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACvE,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAE,EAAE,CACnD,KAAK,KAAK,oBAAoB,KAAK,GAAG,UAAU;;IAEhD,CAAA;IAEF,OAAO;;;EAGP,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC;EAClC,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,gBAAgB,CAAC,IAAI,EAAE,CAAC;EAChD,MAAM,CAAC,gBAAgB,EAAE,oCAAoC,CAAC;0BACtC,KAAK,kDAAkD,YAAY;;;;;;;;CAQ5F,CAAA;AACD,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,gBAAgB,CAAU,CAAA;AAE1E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAS,EAAU,EAAE;IACpD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CACtC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE,CACtC;SACE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;SACnC,MAAM,CAAC,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;SACtE,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IAE1D,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;SACpC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;SAC9D,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,IAAI,EAAE,CAAA;QACjD,MAAM,MAAM,GACV,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAA;QAClE,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,IAAI,MAAM,EAAE,CAAA;IACnE,CAAC,CAAC;SACD,IAAI,EAAE,CAAA;IAET,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;AACtC,CAAC,CAAA"}
|