@gitkraken/core-gitlens 0.5.105 → 0.5.107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -1
- package/dist/git/models/pullRequest.d.ts +47 -0
- package/dist/git/models/pullRequest.d.ts.map +1 -1
- package/dist/git/models/pullRequest.js +8 -0
- package/dist/git/models/pullRequest.js.map +1 -1
- package/dist/plus/git-github/api/github.d.ts +42 -1
- package/dist/plus/git-github/api/github.d.ts.map +1 -1
- package/dist/plus/git-github/api/github.js +194 -1
- package/dist/plus/git-github/api/github.js.map +1 -1
- package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts +16 -0
- package/dist/plus/git-github/api/pullRequestSearchQuery.d.ts.map +1 -0
- package/dist/plus/git-github/api/pullRequestSearchQuery.js +64 -0
- package/dist/plus/git-github/api/pullRequestSearchQuery.js.map +1 -0
- package/dist/plus/integrations/index.d.ts +1 -0
- package/dist/plus/integrations/index.d.ts.map +1 -1
- package/dist/plus/integrations/integrationService.d.ts +16 -2
- package/dist/plus/integrations/integrationService.d.ts.map +1 -1
- package/dist/plus/integrations/integrationService.js +21 -1
- package/dist/plus/integrations/integrationService.js.map +1 -1
- package/dist/plus/integrations/manager.d.ts +46 -4
- package/dist/plus/integrations/manager.d.ts.map +1 -1
- package/dist/plus/integrations/models/gitHostIntegration.d.ts +22 -2
- package/dist/plus/integrations/models/gitHostIntegration.d.ts.map +1 -1
- package/dist/plus/integrations/models/gitHostIntegration.js +21 -0
- package/dist/plus/integrations/models/gitHostIntegration.js.map +1 -1
- package/dist/plus/integrations/models/integration.d.ts +2 -1
- package/dist/plus/integrations/models/integration.d.ts.map +1 -1
- package/dist/plus/integrations/models/integration.js +7 -1
- package/dist/plus/integrations/models/integration.js.map +1 -1
- package/dist/plus/integrations/models/pullRequestReads.d.ts +18 -0
- package/dist/plus/integrations/models/pullRequestReads.d.ts.map +1 -0
- package/dist/plus/integrations/models/pullRequestReads.js +2 -0
- package/dist/plus/integrations/models/pullRequestReads.js.map +1 -0
- package/dist/plus/integrations/providerFilters.d.ts +7 -6
- package/dist/plus/integrations/providerFilters.d.ts.map +1 -1
- package/dist/plus/integrations/providerFilters.js +1 -7
- package/dist/plus/integrations/providerFilters.js.map +1 -1
- package/dist/plus/integrations/providers/github.d.ts +14 -2
- package/dist/plus/integrations/providers/github.d.ts.map +1 -1
- package/dist/plus/integrations/providers/github.js +15 -0
- package/dist/plus/integrations/providers/github.js.map +1 -1
- package/dist/plus/integrations/providers/models.d.ts +12 -2
- package/dist/plus/integrations/providers/models.d.ts.map +1 -1
- package/dist/plus/integrations/providers/models.js +18 -0
- package/dist/plus/integrations/providers/models.js.map +1 -1
- package/dist/plus/integrations/reads/context.d.ts +1 -1
- package/dist/plus/integrations/reads/filters.d.ts +34 -1
- package/dist/plus/integrations/reads/filters.d.ts.map +1 -1
- package/dist/plus/integrations/reads/filters.js +73 -0
- package/dist/plus/integrations/reads/filters.js.map +1 -1
- package/dist/plus/integrations/reads/searchPullRequests.d.ts +26 -0
- package/dist/plus/integrations/reads/searchPullRequests.d.ts.map +1 -0
- package/dist/plus/integrations/reads/searchPullRequests.js +108 -0
- package/dist/plus/integrations/reads/searchPullRequests.js.map +1 -0
- package/dist/plus/integrations/reads/warnings.d.ts +6 -2
- package/dist/plus/integrations/reads/warnings.d.ts.map +1 -1
- package/dist/plus/integrations/reads/warnings.js +40 -0
- package/dist/plus/integrations/reads/warnings.js.map +1 -1
- package/docs/integrations.md +53 -4
- package/package.json +1 -1
- package/src/git/models/pullRequest.ts +50 -0
- package/src/plus/git-github/api/github.ts +272 -2
- package/src/plus/git-github/api/pullRequestSearchQuery.ts +80 -0
- package/src/plus/integrations/index.ts +2 -0
- package/src/plus/integrations/integrationService.ts +48 -5
- package/src/plus/integrations/manager.ts +55 -4
- package/src/plus/integrations/models/gitHostIntegration.ts +56 -2
- package/src/plus/integrations/models/integration.ts +9 -1
- package/src/plus/integrations/models/pullRequestReads.ts +18 -0
- package/src/plus/integrations/providerFilters.ts +8 -6
- package/src/plus/integrations/providers/github.ts +37 -1
- package/src/plus/integrations/providers/models.ts +37 -2
- package/src/plus/integrations/reads/context.ts +1 -1
- package/src/plus/integrations/reads/filters.ts +105 -0
- package/src/plus/integrations/reads/searchPullRequests.ts +210 -0
- package/src/plus/integrations/reads/warnings.ts +73 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/filters.ts"],"names":[],"mappings":"
|
|
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":"AAIA,OAAO,EACN,oBAAoB,EACpB,yBAAyB,EACzB,6BAA6B,GAC7B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gCAAgC,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EACN,6BAA6B,EAC7B,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,yBAAyB,EACzB,YAAY,EACZ,iCAAiC,EACjC,iBAAiB,EACjB,2CAA2C,GAC3C,MAAM,eAAe,CAAC;AAEvB;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,GAAwB,EACxB,OAWC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,CAAC,OAAwB,EAAE,EAAE,CAAC,WAAW,CAAmB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IAEhG,IAAI,yBAAyB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,OAAO,OAAO,CACb,yBAAyB,CACxB,OAAO,CAAC,UAAU,EAClB,SAAS,EACT,OAAO,CAAC,YAAY,EACpB,8BAA8B,CAC9B,CACD,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9G,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,6BAA6B,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1G,OAAO,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,OAAO,OAAO,CACb,yBAAyB,CACxB,OAAO,CAAC,UAAU,EAClB,SAAS,EACT,OAAO,CAAC,YAAY,EACpB,8BAA8B,CAC9B,CACD,CAAC;IACH,CAAC;IAED,MAAM,GAAG,CAAC,uBAAuB,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAExF,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxG,MAAM,oBAAoB,GAAG,6BAA6B,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/F,MAAM,QAAQ,GAAG,gCAAgC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxF,IAAI,QAAQ,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QAChC,OAAO,OAAO,CACb,2CAA2C,CAC1C,OAAO,CAAC,UAAU,EAClB,MAAM,EACN,OAAO,CAAC,YAAY,EACpB,QAAQ,CAAC,SAAS,CAClB,CACD,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,6BAA6B,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9G,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;QACzB,KAAK,UAAU;YACd,OAAO,OAAO,CACb,YAAY,CACX,OAAO,CAAC,UAAU,EAClB,MAAM,EACN,OAAO,CAAC,YAAY,EACpB,gHAAgH,CAChH,CACD,CAAC;QACH,KAAK,UAAU;YACd,OAAO,OAAO,CACb,YAAY,CACX,OAAO,CAAC,UAAU,EAClB,MAAM,EACN,OAAO,CAAC,YAAY,EACpB,2HAA2H,CAC3H,CACD,CAAC;QACH,KAAK,8BAA8B,CAAC;QACpC,KAAK,gCAAgC;YACpC,OAAO,OAAO,CACb,2CAA2C,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE;gBAC7F,MAAM,EAAE,sBAAsB;gBAC9B,QAAQ,EAAE;oBACT,KAAK,CAAC,SAAS,KAAK,8BAA8B,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,mBAAmB;iBAC5F;aACD,CAAC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,MAA0B,EAAE,EAAE,CAC/C,WAAW,CACV,OAAO,CAAC,UAAU,EAClB,MAAM,EACN,OAAO,CAAC,YAAY,EACpB,GAAG,EAAE,CACJ,WAAW,CAAC,4BAA4B,CACvC;QACC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,OAAO,CAAC,YAAY;KAC9B,EACD,SAAS,EACT,OAAO,CAAC,YAAY,CACpB,EACF,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAC9C,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,IAAI,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,KAAK,EAAE;QAC1D,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,OAAO,CAAC,MAAM;QAC9B,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,CAAC,CAAC,EAAE;YACT,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;gBAC1B,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YACtD,CAAC;QACF,CAAC;KACD,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC;IAE7D,IAAI,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,OAAO,CACb,2CAA2C,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE;YAC7F,MAAM,EAAE,oBAAoB;SAC5B,CAAC,CACF,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,mBAAmB,CACvC;QACC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC;QACjE,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;QACtE,SAAS,EAAE,OAAO,CAAC,SAAS;KAC5B,EACD,SAAS,CACT,CAAC;IACF,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;IACzC,IAAI,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CACZ,iCAAiC,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC;YAC9F,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,qBAAqB,EAAE,WAAW,CAAC,CACxG,CAAC;IACH,CAAC;IAED,OAAO;QACN,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE;YACL,WAAW,EAAE,oBAAoB;gBAChC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,kBAAkB,CAAC;oBACnB,YAAY,EAAE,WAAW;oBACzB,aAAa,EAAE,IAAI;oBACnB,cAAc,EAAE,OAAO,CAAC,MAAM;oBAC9B,eAAe,EAAE,KAAK;iBACtB,CAAC;YACJ,YAAY,EAAE,KAAK,CAAC,MAAM;YAC1B,SAAS,EAAE,SAAS,IAAI,SAAS;SACjC;QACD,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS;KAC7C,CAAC;AACH,CAAC"}
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"warnings.d.ts","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/warnings.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"
|
|
1
|
+
{"version":3,"file":"warnings.js","sourceRoot":"","sources":["../../../../src/plus/integrations/reads/warnings.ts"],"names":[],"mappings":"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"}
|
package/docs/integrations.md
CHANGED
|
@@ -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
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
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.
|
|
4
|
+
"version": "0.5.107",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "GitKraken",
|
|
@@ -149,9 +149,59 @@ export interface PullRequestMember {
|
|
|
149
149
|
url?: string;
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
+
/** Provider-neutral relationship facets shared by PR listings and filtered PR search. */
|
|
153
|
+
export enum PullRequestFilter {
|
|
154
|
+
Author = 'author',
|
|
155
|
+
Assignee = 'assignee',
|
|
156
|
+
ReviewRequested = 'review-requested',
|
|
157
|
+
Mention = 'mention',
|
|
158
|
+
}
|
|
159
|
+
|
|
152
160
|
/** Selects which pull request states a read should include. `all` covers open + closed + merged. */
|
|
153
161
|
export type PullRequestStateFilter = 'open' | 'closed' | 'merged' | 'all';
|
|
154
162
|
|
|
163
|
+
/**
|
|
164
|
+
* What the filtered pull-request search narrows on.
|
|
165
|
+
*
|
|
166
|
+
* Structured rather than a provider query string so callers can send free text without giving it a qualifier
|
|
167
|
+
* channel, and can check {@link PullRequestSearchCapabilities} before issuing a read. Every requested criterion
|
|
168
|
+
* is validated all-or-nothing before the provider runs; unsupported criteria never fall through to a wider
|
|
169
|
+
* result set whose paging would no longer describe the returned items.
|
|
170
|
+
*
|
|
171
|
+
* Relationships are OR-ed, as are states. Omitting `relationships` removes the current-user constraint, which is
|
|
172
|
+
* only safe when the manager call supplies a repository or organization scope. Omitting `states` reads open PRs.
|
|
173
|
+
*/
|
|
174
|
+
export interface PullRequestSearchCriteria {
|
|
175
|
+
/**
|
|
176
|
+
* Free text matched by the provider's own relevance rules. Tokens that look like provider qualifiers are
|
|
177
|
+
* removed before the query is built, so text cannot change the search's scope or state.
|
|
178
|
+
*/
|
|
179
|
+
text?: string;
|
|
180
|
+
/** Current-user relationship facets to union. Empty/omitted means no relationship constraint. */
|
|
181
|
+
relationships?: PullRequestFilter[];
|
|
182
|
+
/** Pull request states to union. Empty/omitted reads open PRs; `all` subsumes every other member. */
|
|
183
|
+
states?: PullRequestStateFilter[];
|
|
184
|
+
/** Includes PRs from archived repositories. They are excluded by default. */
|
|
185
|
+
includeArchived?: boolean;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Which {@link PullRequestSearchCriteria} fields and manager-level scopes a provider can express server-side.
|
|
190
|
+
* An empty `relationships` means the provider has no filtered PR search at all.
|
|
191
|
+
*/
|
|
192
|
+
export interface PullRequestSearchCapabilities {
|
|
193
|
+
/** Current-user relationship facets the provider can union. Empty means the search itself is unsupported. */
|
|
194
|
+
relationships: PullRequestFilter[];
|
|
195
|
+
/** Individual state values the provider can union in one logical search. */
|
|
196
|
+
states: PullRequestStateFilter[];
|
|
197
|
+
text: boolean;
|
|
198
|
+
includeArchived: boolean;
|
|
199
|
+
/** Whether the manager's repository-descriptor scope is supported. */
|
|
200
|
+
repositoryScope: boolean;
|
|
201
|
+
/** Whether the manager's organization scope is supported. */
|
|
202
|
+
organizationScope: boolean;
|
|
203
|
+
}
|
|
204
|
+
|
|
155
205
|
export interface PullRequestRef {
|
|
156
206
|
owner: string;
|
|
157
207
|
repo: string;
|