@gitkraken/core-gitlens 0.5.104 → 0.5.106

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 (80) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/dist/git/models/pullRequest.d.ts +47 -0
  3. package/dist/git/models/pullRequest.d.ts.map +1 -1
  4. package/dist/git/models/pullRequest.js +8 -0
  5. package/dist/git/models/pullRequest.js.map +1 -1
  6. package/dist/plus/git-github/api/github.d.ts +33 -1
  7. package/dist/plus/git-github/api/github.d.ts.map +1 -1
  8. package/dist/plus/git-github/api/github.js +176 -0
  9. package/dist/plus/git-github/api/github.js.map +1 -1
  10. package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts +16 -0
  11. package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts.map +1 -0
  12. package/dist/plus/git-github/api/pullRequestSearchQuery.js +64 -0
  13. package/dist/plus/git-github/api/pullRequestSearchQuery.js.map +1 -0
  14. package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts +1 -0
  15. package/dist/plus/integrations/authentication/configuredIntegrationService.d.ts.map +1 -1
  16. package/dist/plus/integrations/authentication/configuredIntegrationService.js +4 -1
  17. package/dist/plus/integrations/authentication/configuredIntegrationService.js.map +1 -1
  18. package/dist/plus/integrations/index.d.ts +1 -0
  19. package/dist/plus/integrations/index.d.ts.map +1 -1
  20. package/dist/plus/integrations/integrationService.d.ts +16 -2
  21. package/dist/plus/integrations/integrationService.d.ts.map +1 -1
  22. package/dist/plus/integrations/integrationService.js +34 -23
  23. package/dist/plus/integrations/integrationService.js.map +1 -1
  24. package/dist/plus/integrations/manager.d.ts +46 -4
  25. package/dist/plus/integrations/manager.d.ts.map +1 -1
  26. package/dist/plus/integrations/models/gitHostIntegration.d.ts +22 -2
  27. package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -1
  28. package/dist/plus/integrations/models/gitHostIntegration.js +21 -0
  29. package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
  30. package/dist/plus/integrations/models/integration.d.ts +2 -1
  31. package/dist/plus/integrations/models/integration.d.ts.map +1 -1
  32. package/dist/plus/integrations/models/integration.js.map +1 -1
  33. package/dist/plus/integrations/models/pullRequestReads.d.ts +18 -0
  34. package/dist/plus/integrations/models/pullRequestReads.d.ts.map +1 -0
  35. package/dist/plus/integrations/models/pullRequestReads.js +2 -0
  36. package/dist/plus/integrations/models/pullRequestReads.js.map +1 -0
  37. package/dist/plus/integrations/providerFilters.d.ts +7 -6
  38. package/dist/plus/integrations/providerFilters.d.ts.map +1 -1
  39. package/dist/plus/integrations/providerFilters.js +1 -7
  40. package/dist/plus/integrations/providerFilters.js.map +1 -1
  41. package/dist/plus/integrations/providers/github.d.ts +14 -2
  42. package/dist/plus/integrations/providers/github.d.ts.map +1 -1
  43. package/dist/plus/integrations/providers/github.js +15 -0
  44. package/dist/plus/integrations/providers/github.js.map +1 -1
  45. package/dist/plus/integrations/providers/models.d.ts +12 -2
  46. package/dist/plus/integrations/providers/models.d.ts.map +1 -1
  47. package/dist/plus/integrations/providers/models.js +18 -0
  48. package/dist/plus/integrations/providers/models.js.map +1 -1
  49. package/dist/plus/integrations/reads/context.d.ts +1 -1
  50. package/dist/plus/integrations/reads/filters.d.ts +34 -1
  51. package/dist/plus/integrations/reads/filters.d.ts.map +1 -1
  52. package/dist/plus/integrations/reads/filters.js +73 -0
  53. package/dist/plus/integrations/reads/filters.js.map +1 -1
  54. package/dist/plus/integrations/reads/searchPullRequests.d.ts +26 -0
  55. package/dist/plus/integrations/reads/searchPullRequests.d.ts.map +1 -0
  56. package/dist/plus/integrations/reads/searchPullRequests.js +108 -0
  57. package/dist/plus/integrations/reads/searchPullRequests.js.map +1 -0
  58. package/dist/plus/integrations/reads/warnings.d.ts +6 -2
  59. package/dist/plus/integrations/reads/warnings.d.ts.map +1 -1
  60. package/dist/plus/integrations/reads/warnings.js +40 -0
  61. package/dist/plus/integrations/reads/warnings.js.map +1 -1
  62. package/docs/integrations.md +53 -4
  63. package/package.json +1 -1
  64. package/src/git/models/pullRequest.ts +50 -0
  65. package/src/plus/git-github/api/github.ts +254 -1
  66. package/src/plus/git-github/api/pullRequestSearchQuery.ts +80 -0
  67. package/src/plus/integrations/authentication/configuredIntegrationService.ts +6 -1
  68. package/src/plus/integrations/index.ts +2 -0
  69. package/src/plus/integrations/integrationService.ts +108 -70
  70. package/src/plus/integrations/manager.ts +55 -4
  71. package/src/plus/integrations/models/gitHostIntegration.ts +56 -2
  72. package/src/plus/integrations/models/integration.ts +2 -0
  73. package/src/plus/integrations/models/pullRequestReads.ts +18 -0
  74. package/src/plus/integrations/providerFilters.ts +8 -6
  75. package/src/plus/integrations/providers/github.ts +37 -1
  76. package/src/plus/integrations/providers/models.ts +37 -2
  77. package/src/plus/integrations/reads/context.ts +1 -1
  78. package/src/plus/integrations/reads/filters.ts +105 -0
  79. package/src/plus/integrations/reads/searchPullRequests.ts +210 -0
  80. package/src/plus/integrations/reads/warnings.ts +73 -3
@@ -1,5 +1,5 @@
1
1
  import type { IntegrationIds } from '../constants.js';
2
- import type { IssueFilter, IssueSearchCapabilities, IssueSearchCriteria, PullRequestFilter } from '../providerFilters.js';
2
+ import type { IssueFilter, IssueSearchCapabilities, IssueSearchCriteria, PullRequestFilter, PullRequestSearchCapabilities, PullRequestSearchCriteria } from '../providerFilters.js';
3
3
  import type { ProviderRepoInput, ProviderReposInput } from '../providers/models.js';
4
4
  /**
5
5
  * Validation of a caller-supplied relationship filter set against what a provider can express server-side.
@@ -34,6 +34,35 @@ export declare function resolvePullRequestFilters(id: IntegrationIds, filters: P
34
34
  * unsupported member would change the requested OR set, so validation is all-or-nothing.
35
35
  */
36
36
  export declare function resolveAccountWidePullRequestFilters(id: IntegrationIds, filters: PullRequestFilter[] | undefined): ResolvedFilters<PullRequestFilter>;
37
+ /** Why {@link resolvePullRequestSearchCriteria} refused a criteria set. */
38
+ export type PullRequestSearchCriteriaRejection =
39
+ /** The provider has no filtered pull-request search. */
40
+ {
41
+ reason: 'unsupported-search';
42
+ }
43
+ /** The provider has one, but cannot express every requested criterion server-side. */
44
+ | {
45
+ reason: 'unsupported-criteria';
46
+ criteria: string[];
47
+ };
48
+ /**
49
+ * Validates filtered pull-request search criteria all-or-nothing. Dropping an unsupported criterion would
50
+ * widen the provider query while leaving its page and cursor describing the wider set, so the facade refuses the
51
+ * request before any upstream call instead.
52
+ */
53
+ export declare function resolvePullRequestSearchCriteria(id: IntegrationIds, criteria: PullRequestSearchCriteria | undefined): {
54
+ rejection?: PullRequestSearchCriteriaRejection;
55
+ };
56
+ /** Why a filtered pull-request search's repository/organization boundary was refused. */
57
+ export type PullRequestSearchScopeRejection = 'unscoped' | 'repo-ids' | 'unsupported-repository-scope' | 'unsupported-organization-scope';
58
+ /**
59
+ * Validates the search boundary independently from its criteria. A current-user relationship is itself a safe
60
+ * account-wide boundary; without one, a repository or organization scope is mandatory.
61
+ */
62
+ export declare function resolvePullRequestSearchScope(id: IntegrationIds, repos: ProviderReposInput | undefined, org: string | undefined, criteria: PullRequestSearchCriteria | undefined): {
63
+ rejection?: PullRequestSearchScopeRejection;
64
+ repos?: ProviderRepoInput[];
65
+ };
37
66
  /**
38
67
  * Validates a caller-provided issue filter set against what the provider's ACCOUNT-WIDE issue read can express
39
68
  * server-side (`ProviderMetadata.supportedAccountWideIssueFilters`), which is a different — usually narrower —
@@ -128,6 +157,9 @@ export declare function resolveIssueSearchScope(repos: ProviderReposInput | unde
128
157
  * rather than a list, because its criteria aren't a single kind. An empty `relationships` means the provider has
129
158
  * no filtered issue search — hide the surface, not just its chips.
130
159
  *
160
+ * `pullRequestSearch` describes the separate filtered PR search. Its table declares each criteria vocabulary
161
+ * plus repository/organization scope support; an empty relationship list means the search itself is absent.
162
+ *
131
163
  * Note this is a CAPABILITY table — "what the provider can express" — not a recommendation. A consumer
132
164
  * matching another tool's behavior may deliberately pass fewer filters than are listed here (or none, where an
133
165
  * already-scoped read would only be narrowed by them). Intersecting against this table is what keeps a
@@ -136,6 +168,7 @@ export declare function resolveIssueSearchScope(repos: ProviderReposInput | unde
136
168
  export declare function getSupportedFilters(providerId: IntegrationIds): {
137
169
  pullRequests: PullRequestFilter[];
138
170
  pullRequestsAccountWide: PullRequestFilter[];
171
+ pullRequestSearch: PullRequestSearchCapabilities;
139
172
  issues: IssueFilter[];
140
173
  issuesAccountWide: IssueFilter[];
141
174
  issueSearch: IssueSearchCapabilities;
@@ -1 +1 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/filters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACX,WAAW,EACX,uBAAuB,EACvB,mBAAmB,EAEnB,iBAAiB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGpF;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACxC,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,iBAAiB,EAAE,GAAG,SAAS,GACtC,eAAe,CAAC,iBAAiB,CAAC,CAOpC;AAED;;;GAGG;AACH,wBAAgB,oCAAoC,CACnD,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,iBAAiB,EAAE,GAAG,SAAS,GACtC,eAAe,CAAC,iBAAiB,CAAC,CAOpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC7C,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,WAAW,EAAE,GAAG,SAAS,GAChC,eAAe,CAAC,WAAW,CAAC,CAO9B;AAED,iHAAiH;AACjH,MAAM,MAAM,4BAA4B;AACvC,wDAAwD;AACtD;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE;AAClC,0EAA0E;GACxE;IAAE,MAAM,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE;AACxD,0GAA0G;GACxG;IAAE,MAAM,EAAE,6BAA6B,CAAA;CAAE,CAAC;AAE7C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACzC,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,mBAAmB,GAAG,SAAS,GACvC;IAAE,SAAS,CAAC,EAAE,4BAA4B,CAAA;CAAE,CA4C9C;AAyBD,yFAAyF;AACzF,MAAM,MAAM,yBAAyB;AACpC,8FAA8F;AAC5F,UAAU;AACZ,oGAAoG;GAClG,UAAU,CAAC;AAEd;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,kBAAkB,GAAG,SAAS,EACrC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,QAAQ,EAAE,mBAAmB,GAAG,SAAS,GACvC;IAAE,SAAS,CAAC,EAAE,yBAAyB,CAAC;IAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAYxE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,cAAc,GAAG;IAChE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,uBAAuB,EAAE,iBAAiB,EAAE,CAAC;IAC7C,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,WAAW,EAAE,uBAAuB,CAAC;CACrC,CAuBA"}
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/filters.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,60 @@ export function resolveAccountWidePullRequestFilters(id, filters) {
29
29
  return { unsupported: true };
30
30
  return { filters: [...new Set(filters)], unsupported: false };
31
31
  }
32
+ /**
33
+ * Validates filtered pull-request search criteria all-or-nothing. Dropping an unsupported criterion would
34
+ * widen the provider query while leaving its page and cursor describing the wider set, so the facade refuses the
35
+ * request before any upstream call instead.
36
+ */
37
+ export function resolvePullRequestSearchCriteria(id, criteria) {
38
+ const supported = providersMetadata[id]?.supportedPullRequestSearch;
39
+ if (supported == null || supported.relationships.length === 0) {
40
+ return { rejection: { reason: 'unsupported-search' } };
41
+ }
42
+ if (criteria == null)
43
+ return {};
44
+ const unsupported = [];
45
+ for (const relationship of criteria.relationships ?? []) {
46
+ if (!supported.relationships.includes(relationship)) {
47
+ unsupported.push(`relationships:${relationship}`);
48
+ }
49
+ }
50
+ for (const state of criteria.states ?? []) {
51
+ if (!supported.states.includes(state)) {
52
+ unsupported.push(`states:${state}`);
53
+ }
54
+ }
55
+ if (criteria.text != null && criteria.text.trim().length > 0 && !supported.text) {
56
+ unsupported.push('text');
57
+ }
58
+ if (criteria.includeArchived === true && !supported.includeArchived) {
59
+ unsupported.push('includeArchived');
60
+ }
61
+ return unsupported.length > 0 ? { rejection: { reason: 'unsupported-criteria', criteria: unsupported } } : {};
62
+ }
63
+ /**
64
+ * Validates the search boundary independently from its criteria. A current-user relationship is itself a safe
65
+ * account-wide boundary; without one, a repository or organization scope is mandatory.
66
+ */
67
+ export function resolvePullRequestSearchScope(id, repos, org, criteria) {
68
+ const supported = providersMetadata[id]?.supportedPullRequestSearch;
69
+ let resolvedRepos;
70
+ if (repos?.length) {
71
+ if (repos.some(r => typeof r === 'string' || typeof r === 'number'))
72
+ return { rejection: 'repo-ids' };
73
+ if (supported?.repositoryScope !== true)
74
+ return { rejection: 'unsupported-repository-scope' };
75
+ resolvedRepos = repos;
76
+ }
77
+ const hasOrganizationScope = org != null && org.length > 0;
78
+ if (hasOrganizationScope && supported?.organizationScope !== true) {
79
+ return { rejection: 'unsupported-organization-scope' };
80
+ }
81
+ if (resolvedRepos != null || hasOrganizationScope || (criteria?.relationships?.length ?? 0) > 0) {
82
+ return { repos: resolvedRepos };
83
+ }
84
+ return { rejection: 'unscoped' };
85
+ }
32
86
  /**
33
87
  * Validates a caller-provided issue filter set against what the provider's ACCOUNT-WIDE issue read can express
34
88
  * server-side (`ProviderMetadata.supportedAccountWideIssueFilters`), which is a different — usually narrower —
@@ -126,6 +180,15 @@ const unsupportedIssueSearchCapabilities = {
126
180
  withoutLinkedPullRequest: false,
127
181
  states: false,
128
182
  };
183
+ /** What a provider with no filtered pull-request search reports. */
184
+ const unsupportedPullRequestSearchCapabilities = {
185
+ relationships: [],
186
+ states: [],
187
+ text: false,
188
+ includeArchived: false,
189
+ repositoryScope: false,
190
+ organizationScope: false,
191
+ };
129
192
  /**
130
193
  * Validates that a filtered issue search is scoped at all, and narrows `repos` to the descriptor form the
131
194
  * provider query needs.
@@ -180,6 +243,9 @@ export function resolveIssueSearchScope(repos, org, criteria) {
180
243
  * rather than a list, because its criteria aren't a single kind. An empty `relationships` means the provider has
181
244
  * no filtered issue search — hide the surface, not just its chips.
182
245
  *
246
+ * `pullRequestSearch` describes the separate filtered PR search. Its table declares each criteria vocabulary
247
+ * plus repository/organization scope support; an empty relationship list means the search itself is absent.
248
+ *
183
249
  * Note this is a CAPABILITY table — "what the provider can express" — not a recommendation. A consumer
184
250
  * matching another tool's behavior may deliberately pass fewer filters than are listed here (or none, where an
185
251
  * already-scoped read would only be narrowed by them). Intersecting against this table is what keeps a
@@ -188,9 +254,16 @@ export function resolveIssueSearchScope(repos, org, criteria) {
188
254
  export function getSupportedFilters(providerId) {
189
255
  const metadata = providersMetadata[providerId];
190
256
  const issueSearch = metadata?.supportedIssueSearch;
257
+ const pullRequestSearch = metadata?.supportedPullRequestSearch;
191
258
  return {
192
259
  pullRequests: [...(metadata?.supportedPullRequestFilters ?? [])],
193
260
  pullRequestsAccountWide: [...(metadata?.supportedAccountWidePullRequestFilters ?? [])],
261
+ pullRequestSearch: {
262
+ ...unsupportedPullRequestSearchCapabilities,
263
+ ...pullRequestSearch,
264
+ relationships: [...(pullRequestSearch?.relationships ?? [])],
265
+ states: [...(pullRequestSearch?.states ?? [])],
266
+ },
194
267
  issues: [...(metadata?.supportedIssueFilters ?? [])],
195
268
  issuesAccountWide: [...(metadata?.supportedAccountWideIssueFilters ?? [])],
196
269
  // Always an object, never `undefined`: a provider WITHOUT a filtered issue search reports one whose
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/filters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { PullRequestSearchCriteria, PullRequestShape } from '../../../git/models/pullRequest.js';
2
+ import type { IntegrationIds } from '../constants.js';
3
+ import type { ProviderReposInput } from '../providers/models.js';
4
+ import type { ProviderPagedResult } from '../results.js';
5
+ import type { ProviderReadContext } from './context.js';
6
+ /**
7
+ * Pull requests matching structured criteria over a repository/organization or current-user relationship scope.
8
+ *
9
+ * The read is deliberately separate from `listPullRequestsPage`: the list has provider-specific "my PRs"
10
+ * semantics and no text channel, while this method promises a sanitized query, most-recently-updated-first
11
+ * ordering, one upstream request per cursor-threaded page, and a quantified omission at the provider's result
12
+ * ceiling.
13
+ */
14
+ export declare function searchPullRequestsPage(ctx: ProviderReadContext, options: {
15
+ providerId: IntegrationIds;
16
+ repos?: ProviderReposInput;
17
+ org?: string;
18
+ criteria?: PullRequestSearchCriteria;
19
+ page?: number;
20
+ cursor?: string;
21
+ itemsPerPage?: number;
22
+ forceSync?: boolean;
23
+ connectionId?: string;
24
+ domain?: string;
25
+ }): Promise<ProviderPagedResult<PullRequestShape>>;
26
+ //# sourceMappingURL=searchPullRequests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchPullRequests.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/searchPullRequests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAmB,MAAM,eAAe,CAAC;AAM1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAkBxD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC3C,GAAG,EAAE,mBAAmB,EACxB,OAAO,EAAE;IACR,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GACC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAgKhD"}
@@ -0,0 +1,108 @@
1
+ import { isGitHostIntegration, isIssuesHostIntegrationId, warnOnMissingSessionForDomain, } from '../utils/integration.utils.js';
2
+ import { runCaptured } from './drains.js';
3
+ import { resolvePullRequestSearchCriteria, resolvePullRequestSearchScope } from './filters.js';
4
+ import { drainFlatPagesToRequestedPage, refusedPage, resolveContinuation, resolveCurrentPage, usableCursor, } from './paging.js';
5
+ import { gitHostOnlySurfaceWarning, otherWarning, pullRequestSearchCapResultWarning, truncationWarning, unsupportedPullRequestSearchCriteriaWarning, } from './warnings.js';
6
+ /**
7
+ * Pull requests matching structured criteria over a repository/organization or current-user relationship scope.
8
+ *
9
+ * The read is deliberately separate from `listPullRequestsPage`: the list has provider-specific "my PRs"
10
+ * semantics and no text channel, while this method promises a sanitized query, most-recently-updated-first
11
+ * ordering, one upstream request per cursor-threaded page, and a quantified omission at the provider's result
12
+ * ceiling.
13
+ */
14
+ export async function searchPullRequestsPage(ctx, options) {
15
+ const page = Math.max(1, Math.trunc(options.page ?? 1));
16
+ const refused = (warning) => refusedPage(1, [warning], true);
17
+ if (isIssuesHostIntegrationId(options.providerId)) {
18
+ return refused(gitHostOnlySurfaceWarning(options.providerId, undefined, options.connectionId, 'Filtered pull request search'));
19
+ }
20
+ const integration = await ctx.getIntegrationForRead(options.providerId, options.connectionId, options.domain);
21
+ if (integration == null) {
22
+ const early = ctx.earlyReturnConnectionWarnings(options.providerId, options.connectionId, options.domain);
23
+ return refusedPage(1, early.warnings, early.fetchFailed);
24
+ }
25
+ if (!isGitHostIntegration(integration)) {
26
+ return refused(gitHostOnlySurfaceWarning(options.providerId, undefined, options.connectionId, 'Filtered pull request search'));
27
+ }
28
+ await ctx.forceRefreshIfRequested(integration, options.forceSync, options.connectionId);
29
+ const domain = ctx.domainForRead(integration, options.providerId, options.connectionId, options.domain);
30
+ const warnOnMissingSession = warnOnMissingSessionForDomain(options.providerId, options.domain);
31
+ const resolved = resolvePullRequestSearchCriteria(options.providerId, options.criteria);
32
+ if (resolved.rejection != null) {
33
+ return refused(unsupportedPullRequestSearchCriteriaWarning(options.providerId, domain, options.connectionId, resolved.rejection));
34
+ }
35
+ const scope = resolvePullRequestSearchScope(options.providerId, options.repos, options.org, options.criteria);
36
+ switch (scope.rejection) {
37
+ case 'unscoped':
38
+ return refused(otherWarning(options.providerId, domain, options.connectionId, 'A filtered pull request search must be scoped: pass `repos`, `org`, or at least one current-user relationship.'));
39
+ case 'repo-ids':
40
+ return refused(otherWarning(options.providerId, domain, options.connectionId, 'A filtered pull request search cannot be scoped by repository id; pass repository descriptors (namespace + name) instead.'));
41
+ case 'unsupported-repository-scope':
42
+ case 'unsupported-organization-scope':
43
+ return refused(unsupportedPullRequestSearchCriteriaWarning(options.providerId, domain, options.connectionId, {
44
+ reason: 'unsupported-criteria',
45
+ criteria: [
46
+ scope.rejection === 'unsupported-repository-scope' ? 'repositoryScope' : 'organizationScope',
47
+ ],
48
+ }));
49
+ }
50
+ const readPage = (cursor) => runCaptured(options.providerId, domain, options.connectionId, () => integration.searchPullRequestsPageResult({
51
+ repos: scope.repos,
52
+ org: options.org,
53
+ criteria: options.criteria,
54
+ cursor: cursor,
55
+ pageSize: options.itemsPerPage,
56
+ }, undefined, options.connectionId), { warnOnMissingSession: warnOnMissingSession });
57
+ const first = await readPage(options.cursor);
58
+ const warnings = first.warning != null ? [first.warning] : [];
59
+ let totalCount = first.value?.totalCount;
60
+ const drained = await drainFlatPagesToRequestedPage(first, {
61
+ requestedPage: page,
62
+ suppliedCursor: options.cursor,
63
+ warnings: warnings,
64
+ readPage: readPage,
65
+ fold: p => {
66
+ if (p.totalCount != null) {
67
+ totalCount = Math.max(totalCount ?? 0, p.totalCount);
68
+ }
69
+ },
70
+ });
71
+ const { value, currentPage, requestedPageMissing } = drained;
72
+ if (value == null && warnings.length === 0) {
73
+ return refused(unsupportedPullRequestSearchCriteriaWarning(options.providerId, domain, options.connectionId, {
74
+ reason: 'unsupported-search',
75
+ }));
76
+ }
77
+ const items = requestedPageMissing ? [] : (value?.values ?? []);
78
+ const continuation = resolveContinuation({
79
+ hasMore: requestedPageMissing ? false : (value?.hasMore ?? false),
80
+ cursor: requestedPageMissing ? undefined : usableCursor(value?.cursor),
81
+ truncated: drained.truncated,
82
+ }, undefined);
83
+ const truncated = continuation.truncated;
84
+ if (truncated && warnings.length === 0) {
85
+ warnings.push(pullRequestSearchCapResultWarning(options.providerId, domain, options.connectionId, totalCount) ??
86
+ truncationWarning(options.providerId, domain, options.connectionId, 'Pull request search', 'exhausted'));
87
+ }
88
+ return {
89
+ items: items,
90
+ warnings: warnings,
91
+ page: {
92
+ currentPage: requestedPageMissing
93
+ ? page
94
+ : resolveCurrentPage({
95
+ providerPage: currentPage,
96
+ requestedPage: page,
97
+ suppliedCursor: options.cursor,
98
+ pageAdvanceable: false,
99
+ }),
100
+ itemsPerPage: items.length,
101
+ truncated: truncated || undefined,
102
+ },
103
+ hasMore: continuation.hasMore,
104
+ cursor: continuation.cursor,
105
+ fetchFailed: drained.fetchFailed || undefined,
106
+ };
107
+ }
108
+ //# sourceMappingURL=searchPullRequests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchPullRequests.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/searchPullRequests.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { IntegrationIds } from '../constants.js';
2
2
  import type { IssueFilter, PullRequestFilter } from '../providerFilters.js';
3
3
  import type { ProviderWarning } from '../results.js';
4
- import type { IssueSearchCriteriaRejection } from './filters.js';
4
+ import type { IssueSearchCriteriaRejection, PullRequestSearchCriteriaRejection } from './filters.js';
5
5
  /**
6
6
  * The warnings the provider facade raises on its OWN terms, as opposed to the ones derived from a caught
7
7
  * provider error ({@link toProviderWarning}) or from SDK collection metadata (`collectionMetadata.ts`).
@@ -68,7 +68,7 @@ export declare function incompleteReadWarning(id: IntegrationIds, domain: string
68
68
  * Deliberately not exported: every caller passes a literal, and publishing it would invite a consumer to switch
69
69
  * on a set that exists only to word a message.
70
70
  */
71
- type TruncatedReadKind = 'Pull request' | 'Issue' | 'Repository' | 'Organization' | 'Project' | 'Account-wide issue search' | 'Issue search';
71
+ type TruncatedReadKind = 'Pull request' | 'Issue' | 'Repository' | 'Organization' | 'Project' | 'Account-wide issue search' | 'Issue search' | 'Pull request search';
72
72
  /** {@link incompleteReadWarning} for a paged or drained read, phrased per surface. */
73
73
  export declare function truncationWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined, readKind: TruncatedReadKind,
74
74
  /**
@@ -83,6 +83,8 @@ export declare function unsupportedAccountWideIssueFiltersWarning(id: Integratio
83
83
  export declare function unsupportedAccountWidePullRequestFiltersWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined, filters: PullRequestFilter[]): ProviderWarning;
84
84
  /** Warning for a repo-scoped PR read whose requested filters the provider supports none of. */
85
85
  export declare function unsupportedFiltersWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined): ProviderWarning;
86
+ /** Warning for a filtered pull-request search the provider cannot run as requested. */
87
+ export declare function unsupportedPullRequestSearchCriteriaWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined, rejection: PullRequestSearchCriteriaRejection): ProviderWarning;
86
88
  /**
87
89
  * Warning for a filtered issue search whose criteria the provider can't serve — either it has no such search at
88
90
  * all, or it can't express what was asked for, or the set contradicts itself.
@@ -106,6 +108,8 @@ export declare function unsupportedIssueSearchCriteriaWarning(id: IntegrationIds
106
108
  * rather than reporting a limit it invented.
107
109
  */
108
110
  export declare function issueSearchCapResultWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined, totalCount: number | undefined): ProviderWarning | undefined;
111
+ /** Quantified omission for a pull-request search that exceeded the provider's reachable result window. */
112
+ export declare function pullRequestSearchCapResultWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined, totalCount: number | undefined): ProviderWarning | undefined;
109
113
  /** Warning for a git host that doesn't expose issues on this surface (e.g. Bitbucket, deprecated in favor of Jira). */
110
114
  export declare function issuesUnsupportedWarning(id: IntegrationIds, domain: string | undefined, connectionId: string | undefined): ProviderWarning;
111
115
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"warnings.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/warnings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAA2B,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAErG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAEjE;;;;;;;GAOG;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC3B,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,GACb,eAAe,CASjB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAClC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,CAAC,EAAE,MAAM,GACnB,eAAe,CAYjB;AAED,6GAA6G;AAC7G,wBAAgB,yBAAyB,CACxC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,GACb,eAAe,CAOjB;AAED,gHAAgH;AAChH,wBAAgB,8BAA8B,CAC7C,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,GACb,eAAe,CAOjB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;AAE9E;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACpC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,mBAAmB,GACxB,eAAe,CAWjB;AAED;;;;;;GAMG;AACH,KAAK,iBAAiB,GACnB,cAAc,GACd,OAAO,GACP,YAAY,GACZ,cAAc,GACd,SAAS,GACT,2BAA2B,GAC3B,cAAc,CAAC;AAElB,sFAAsF;AACtF,wBAAgB,iBAAiB,CAChC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,iBAAiB;AAC3B;;;;GAIG;AACH,KAAK,EAAE,mBAAmB,GACxB,eAAe,CAEjB;AA8BD,6GAA6G;AAC7G,wBAAgB,yCAAyC,CACxD,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,WAAW,EAAE,GACpB,eAAe,CAQjB;AAED,0GAA0G;AAC1G,wBAAgB,+CAA+C,CAC9D,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,iBAAiB,EAAE,GAC1B,eAAe,CAQjB;AAED,+FAA+F;AAC/F,wBAAgB,yBAAyB,CACxC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC9B,eAAe,CAOjB;AAED;;;;;;;GAOG;AACH,wBAAgB,qCAAqC,CACpD,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,SAAS,EAAE,4BAA4B,GACrC,eAAe,CAwBjB;AAmBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAC1C,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC5B,eAAe,GAAG,SAAS,CAqB7B;AAED,uHAAuH;AACvH,wBAAgB,wBAAwB,CACvC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC9B,eAAe,CAOjB"}
1
+ {"version":3,"file":"warnings.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/warnings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACX,WAAW,EAEX,iBAAiB,EAEjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,4BAA4B,EAAE,kCAAkC,EAAE,MAAM,cAAc,CAAC;AAErG;;;;;;;GAOG;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC3B,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,GACb,eAAe,CASjB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAClC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,CAAC,EAAE,MAAM,GACnB,eAAe,CAYjB;AAED,6GAA6G;AAC7G,wBAAgB,yBAAyB,CACxC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,GACb,eAAe,CAOjB;AAED,gHAAgH;AAChH,wBAAgB,8BAA8B,CAC7C,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,GACb,eAAe,CAOjB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;AAE9E;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACpC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,mBAAmB,GACxB,eAAe,CAWjB;AAED;;;;;;GAMG;AACH,KAAK,iBAAiB,GACnB,cAAc,GACd,OAAO,GACP,YAAY,GACZ,cAAc,GACd,SAAS,GACT,2BAA2B,GAC3B,cAAc,GACd,qBAAqB,CAAC;AAEzB,sFAAsF;AACtF,wBAAgB,iBAAiB,CAChC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,iBAAiB;AAC3B;;;;GAIG;AACH,KAAK,EAAE,mBAAmB,GACxB,eAAe,CAEjB;AA8BD,6GAA6G;AAC7G,wBAAgB,yCAAyC,CACxD,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,WAAW,EAAE,GACpB,eAAe,CAQjB;AAED,0GAA0G;AAC1G,wBAAgB,+CAA+C,CAC9D,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,iBAAiB,EAAE,GAC1B,eAAe,CAQjB;AAED,+FAA+F;AAC/F,wBAAgB,yBAAyB,CACxC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC9B,eAAe,CAOjB;AAED,uFAAuF;AACvF,wBAAgB,2CAA2C,CAC1D,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,SAAS,EAAE,kCAAkC,GAC3C,eAAe,CAmBjB;AAaD;;;;;;;GAOG;AACH,wBAAgB,qCAAqC,CACpD,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,SAAS,EAAE,4BAA4B,GACrC,eAAe,CAwBjB;AAmBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAC1C,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC5B,eAAe,GAAG,SAAS,CAqB7B;AAED,0GAA0G;AAC1G,wBAAgB,iCAAiC,CAChD,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,UAAU,EAAE,MAAM,GAAG,SAAS,GAC5B,eAAe,GAAG,SAAS,CAkB7B;AAED,uHAAuH;AACvH,wBAAgB,wBAAwB,CACvC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,GAC9B,eAAe,CAOjB"}
@@ -128,6 +128,31 @@ export function unsupportedAccountWidePullRequestFiltersWarning(id, domain, conn
128
128
  export function unsupportedFiltersWarning(id, domain, connectionId) {
129
129
  return otherWarning(id, domain, connectionId, `The requested pull request filters are not supported by '${id}'; skipped to avoid returning unfiltered results.`);
130
130
  }
131
+ /** Warning for a filtered pull-request search the provider cannot run as requested. */
132
+ export function unsupportedPullRequestSearchCriteriaWarning(id, domain, connectionId, rejection) {
133
+ let message;
134
+ switch (rejection.reason) {
135
+ case 'unsupported-search':
136
+ message = `Filtered pull request search is not supported by '${id}'; use \`listPullRequestsPage\` for its own pull request reads.`;
137
+ break;
138
+ case 'unsupported-criteria': {
139
+ const supported = providersMetadata[id]?.supportedPullRequestSearch;
140
+ message = unsupportedNarrowingMessage(id, 'pull request search criteria', rejection.criteria.join(', '), supported != null ? describePullRequestSearchCapabilities(supported) : '');
141
+ break;
142
+ }
143
+ }
144
+ return otherWarning(id, domain, connectionId, message);
145
+ }
146
+ function describePullRequestSearchCapabilities(capabilities) {
147
+ return [
148
+ ...(capabilities.relationships.length ? [`relationships:${capabilities.relationships.join('|')}`] : []),
149
+ ...(capabilities.states.length ? [`states:${capabilities.states.join('|')}`] : []),
150
+ ...(capabilities.text ? ['text'] : []),
151
+ ...(capabilities.includeArchived ? ['includeArchived'] : []),
152
+ ...(capabilities.repositoryScope ? ['repository scope'] : []),
153
+ ...(capabilities.organizationScope ? ['organization scope'] : []),
154
+ ].join(', ');
155
+ }
131
156
  /**
132
157
  * Warning for a filtered issue search whose criteria the provider can't serve — either it has no such search at
133
158
  * all, or it can't express what was asked for, or the set contradicts itself.
@@ -202,6 +227,21 @@ export function issueSearchCapResultWarning(id, domain, connectionId, totalCount
202
227
  },
203
228
  };
204
229
  }
230
+ /** Quantified omission for a pull-request search that exceeded the provider's reachable result window. */
231
+ export function pullRequestSearchCapResultWarning(id, domain, connectionId, totalCount) {
232
+ const limit = providersMetadata[id]?.pullRequestSearchResultLimit;
233
+ if (limit == null || totalCount == null || totalCount <= limit)
234
+ return undefined;
235
+ return {
236
+ ...otherWarning(id, domain, connectionId, `Pull request search matched ${totalCount} results, but '${id}' serves at most ${limit}; narrow the search to read the rest.`),
237
+ omission: {
238
+ kind: 'provider-limit',
239
+ recovery: 'none',
240
+ limit: limit,
241
+ totalCount: totalCount,
242
+ },
243
+ };
244
+ }
205
245
  /** Warning for a git host that doesn't expose issues on this surface (e.g. Bitbucket, deprecated in favor of Jira). */
206
246
  export function issuesUnsupportedWarning(id, domain, connectionId) {
207
247
  return otherWarning(id, domain, connectionId, `Issues are not supported by '${id}'; use a dedicated issue integration (e.g. Jira) instead.`);
@@ -1 +1 @@
1
- {"version":3,"file":"warnings.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/warnings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warnings.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/warnings.ts"],"names":[],"mappings":"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"}
@@ -119,6 +119,7 @@ it with `page` + `hasMore` + `cursor?`. **No read throws for a provider-side fai
119
119
  | `listProjects` | `ProviderOrganization` | The project tier: Azure DevOps, and issue-tracker projects. |
120
120
  | `listRepos` | `ProviderRepositoryShape` | Repos of an `org`, or account-wide user-affiliated repos when `org` is omitted. |
121
121
  | `listPullRequestsPage` | `PullRequestShape` | With `repos`: those repos' PRs. Without: the user's PRs account-wide. |
122
+ | `searchPullRequestsPage` | `PullRequestShape` | PRs involving the user that match structured criteria, optionally repo/org-scoped. |
122
123
  | `listIssuesPage` | `IssueShape` | Same split, for a **git host**'s issues. |
123
124
  | `searchIssuesPage` | `IssueShape` | Issues matching structured criteria over a repo/org scope — **no** `@me` binding. |
124
125
  | `countIssues` | `IssueCountResult` | How many match each scope, fetching none of them. See §5.1. |
@@ -171,6 +172,43 @@ Invariants worth relying on:
171
172
  set" on `page.allPages === true`, which is false for _both_ truncation and failure — unlike
172
173
  `page.truncated`, which can be misread as a benign cap.
173
174
 
175
+ ### The filtered pull request search
176
+
177
+ `searchPullRequestsPage` pushes free text to the provider instead of filtering the already-loaded PR page. It is
178
+ bounded by repository/organization or by explicit current-user relationships. Relationship and state arrays are
179
+ OR sets, so the same read expresses both Kepler's visible scope and its terminal `closed + merged` scope. Inputs
180
+ are structured and checked all-or-nothing against the provider's capability table:
181
+
182
+ ```ts
183
+ const caps = manager.getSupportedFilters(providerId).pullRequestSearch;
184
+ if (caps.relationships.length === 0) return loadedRowsOnlyFallback();
185
+
186
+ const result = await manager.searchPullRequestsPage({
187
+ providerId: providerId,
188
+ repos: [{ namespace: 'gitkraken', name: 'vscode-gitlens' }],
189
+ criteria: {
190
+ text: 'graph performance',
191
+ relationships: [PullRequestFilter.Author, PullRequestFilter.Assignee, PullRequestFilter.ReviewRequested],
192
+ states: ['closed', 'merged'],
193
+ includeArchived: false,
194
+ },
195
+ page: page,
196
+ cursor: cursor,
197
+ });
198
+ ```
199
+
200
+ Omit `relationships` to search every PR in the supplied repo/org scope; without such a scope at least one
201
+ relationship is mandatory. This is deliberately not `involves:@me`: that GitHub shortcut excludes
202
+ `review-requested` but includes `commenter`, so it cannot match the adjacent visible-PR list.
203
+
204
+ The provider always orders this read most-recently-updated-first. A threaded `cursor` is exactly one upstream
205
+ request; GitHub puts every active relationship × state facet into aliases in that one GraphQL document. A page
206
+ number without a cursor walks from page 1. At GitHub's 1,000-result-per-facet ceiling, `page.truncated` is true and
207
+ the warning's `omission` carries `totalCount`, `limit`, and `recovery: 'none'`. `totalCount` is the largest
208
+ provider-reported pre-ceiling facet count, matching the per-search ceiling's unit; it is not the returned or
209
+ still-reachable row count. Free text is sanitized so qualifier-shaped tokens such as `org:other` are removed
210
+ rather than allowed to change the structured scope.
211
+
174
212
  ### 5.1 The filtered issue search and its count probe
175
213
 
176
214
  `searchIssuesPage` answers "every issue in this scope matching X", which no other issue read can: the
@@ -368,6 +406,9 @@ const filters = wanted.filter(f => capability.includes(f));
368
406
 
369
407
  - `pullRequests` — the repo-scoped PR read.
370
408
  - `pullRequestsAccountWide` — the optional account-wide PR capability. Treat a missing field as empty.
409
+ - `pullRequestSearch` — the filtered PR search (`searchPullRequestsPage`). Always present; empty `relationships`
410
+ means the provider has no such search. It declares the exact `relationships` and `states`, plus `text`,
411
+ `includeArchived`, `repositoryScope`, and `organizationScope`.
371
412
  - `issues` — the **repo-scoped** git-host read, **and** the issue-tracker read
372
413
  (`listIssueTrackerIssuesPage` validates against this field).
373
414
  - `issuesAccountWide` — the account-wide git-host read only. Usually narrower (GitLab can express
@@ -421,6 +462,7 @@ Derived from the provider models and `providersMetadata`. ✓ supported · ✗ r
421
462
  | PRs, repo-scoped | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ |
422
463
  | PRs, account-wide | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ |
423
464
  | PR `states` account-wide | ✓ | ✓ | ✓ | ✓ | ✓ | — | — | — |
465
+ | `searchPullRequestsPage` | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
424
466
  | Issues, repo-scoped | ✓ | ✓ | ✗ | ✗ | ✓ | — | — | — |
425
467
  | Issues, account-wide | ✓ | ✓ | ✗ | ✗ | ✓ | — | — | — |
426
468
  | `searchIssuesPage` | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
@@ -436,6 +478,10 @@ ReviewRequested`.
436
478
  Account-wide PR filters: GitHub/GHE `Author, Assignee, ReviewRequested, Mention` · GitLab
437
479
  `Author, Assignee, ReviewRequested` · Bitbucket + Bitbucket DC `Author, ReviewRequested` · Azure
438
480
  `Author, Assignee, ReviewRequested`.
481
+ PR **search** capabilities (`getSupportedFilters().pullRequestSearch`): GitHub/GHE express relationships
482
+ `Author, Assignee, ReviewRequested, Mention`, states `open, closed, merged, all`, `text`, `includeArchived`, and
483
+ repository/organization scopes. Every other provider declares empty lists and false flags, so the read is refused
484
+ rather than returning a page that did not apply a requested criterion or scope.
439
485
  Issue filters: GitHub/GHE + Azure + Jira `Author, Assignee, Mention` · GitLab `Author, Assignee` ·
440
486
  Linear + Trello `Assignee` · Bitbucket family none.
441
487
  Account-wide issue filters: GitHub/GHE `Author, Assignee, Mention` · Azure `Author, Assignee` · GitLab
@@ -454,10 +500,13 @@ free text have no equivalent on either.
454
500
 
455
501
  ## 9. Per-provider behavior worth designing around
456
502
 
457
- - **GitHub / GHE** — cursor-only everywhere. The account-wide issue read is three searches (`author:@me`,
458
- `assignee:@me`, `mentions:@me`) behind one composite cursor; a filtered account-wide PR read is one search
459
- per state × relationship facet behind a composite cursor that resumes only active facets. Each search caps
460
- at GitHub's own 1.000-result ceiling, surfaced as `page.truncated` and on `searchIssuesPage` additionally
503
+ - **GitHub / GHE** — cursor-only everywhere. The filtered PR search aliases each requested relationship × state
504
+ facet into one GraphQL request per page, dedupes facet overlap, and sorts the page most-recently-updated-first.
505
+ With no relationships it searches every PR in the required repo/org scope. The
506
+ account-wide issue read is three searches (`author:@me`, `assignee:@me`, `mentions:@me`) behind one composite
507
+ cursor; the filtered account-wide `listPullRequestsPage` read is one search per state × relationship facet
508
+ behind a composite cursor that resumes only active facets. Each search caps
509
+ at GitHub's own 1,000-result ceiling, surfaced as `page.truncated` — and on the filtered searches additionally
461
510
  as an omission carrying the total match count (§5.1). The only provider with a filtered issue search today.
462
511
  `includeAllAssignees` is refused on the **account-wide** issue read: it becomes `assignee:*`, which needs a
463
512
  scope to mean anything (unscoped it matches millions of issues across all of GitHub) and that read has none
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gitkraken/core-gitlens",
3
3
  "description": "GitLens core — shared Git / AI / GitHub primitives for internal GitKraken consumption",
4
- "version": "0.5.104",
4
+ "version": "0.5.106",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": {
7
7
  "name": "GitKraken",