@cat-factory/integrations 0.141.2 → 0.143.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/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/runners/HttpRunnerPoolProvider.d.ts +8 -0
- package/dist/modules/runners/HttpRunnerPoolProvider.d.ts.map +1 -1
- package/dist/modules/runners/HttpRunnerPoolProvider.js +61 -0
- package/dist/modules/runners/HttpRunnerPoolProvider.js.map +1 -1
- package/dist/modules/tasks/GitHubIssuesProvider.d.ts +8 -0
- package/dist/modules/tasks/GitHubIssuesProvider.d.ts.map +1 -1
- package/dist/modules/tasks/GitHubIssuesProvider.js +5 -0
- package/dist/modules/tasks/GitHubIssuesProvider.js.map +1 -1
- package/dist/modules/tasks/GitLabIssuesProvider.d.ts +126 -0
- package/dist/modules/tasks/GitLabIssuesProvider.d.ts.map +1 -0
- package/dist/modules/tasks/GitLabIssuesProvider.js +251 -0
- package/dist/modules/tasks/GitLabIssuesProvider.js.map +1 -0
- package/dist/modules/tasks/TaskConnectionService.d.ts +8 -6
- package/dist/modules/tasks/TaskConnectionService.d.ts.map +1 -1
- package/dist/modules/tasks/TaskConnectionService.js +64 -26
- package/dist/modules/tasks/TaskConnectionService.js.map +1 -1
- package/dist/modules/tasks/TaskImportService.d.ts +10 -4
- package/dist/modules/tasks/TaskImportService.d.ts.map +1 -1
- package/dist/modules/tasks/TaskImportService.js +19 -6
- package/dist/modules/tasks/TaskImportService.js.map +1 -1
- package/dist/modules/tasks/github-issues.logic.d.ts +10 -0
- package/dist/modules/tasks/github-issues.logic.d.ts.map +1 -1
- package/dist/modules/tasks/github-issues.logic.js +13 -0
- package/dist/modules/tasks/github-issues.logic.js.map +1 -1
- package/dist/modules/tasks/gitlab-issues.logic.d.ts +106 -0
- package/dist/modules/tasks/gitlab-issues.logic.d.ts.map +1 -0
- package/dist/modules/tasks/gitlab-issues.logic.js +186 -0
- package/dist/modules/tasks/gitlab-issues.logic.js.map +1 -0
- package/dist/modules/tasks/tasks.logic.d.ts +14 -8
- package/dist/modules/tasks/tasks.logic.d.ts.map +1 -1
- package/dist/modules/tasks/tasks.logic.js +17 -15
- package/dist/modules/tasks/tasks.logic.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { ConflictError, ValidationError, } from '@cat-factory/kernel';
|
|
2
|
+
import { GITLAB_ISSUES_DESCRIPTOR } from './gitlab-issues.logic.js';
|
|
3
|
+
import * as gitlabIssuesLogic from './gitlab-issues.logic.js';
|
|
4
|
+
import { httpStatusOf } from './tasks.logic.js';
|
|
5
|
+
export class GitLabIssuesProvider {
|
|
6
|
+
deps;
|
|
7
|
+
kind = 'gitlab';
|
|
8
|
+
descriptor = GITLAB_ISSUES_DESCRIPTOR;
|
|
9
|
+
/**
|
|
10
|
+
* Repo-backed: a `group/sub/project#iid` id names its project, so this source's search
|
|
11
|
+
* requires a scope and its imported rows narrow to one. See the kernel port.
|
|
12
|
+
*/
|
|
13
|
+
repoScope = { matches: gitlabIssuesLogic.gitlabIssueInRepoScope };
|
|
14
|
+
constructor(deps) {
|
|
15
|
+
this.deps = deps;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* GitLab issues ride the workspace's VCS connection, so there is nothing to validate or
|
|
19
|
+
* persist — the connection is a marker. Any supplied fields are ignored (the connect form
|
|
20
|
+
* has none).
|
|
21
|
+
*/
|
|
22
|
+
normalizeConnection(_input) {
|
|
23
|
+
return { credentials: {}, label: 'GitLab' };
|
|
24
|
+
}
|
|
25
|
+
parseRef(input) {
|
|
26
|
+
return gitlabIssuesLogic.parseGitLabIssueRef(input);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Fetch one issue as structured content. `iid` (the project-relative number the external
|
|
30
|
+
* id carries) is what the API path takes; the URL comes from the issue's own `web_url`,
|
|
31
|
+
* falling back to one rebuilt from the deployment's web base — never a `gitlab.com`
|
|
32
|
+
* constant, which would be wrong for every self-managed instance.
|
|
33
|
+
*
|
|
34
|
+
* Two fields are STATED as empty rather than guessed, because GitLab's basic issue API
|
|
35
|
+
* has no equivalent to read them from:
|
|
36
|
+
* - `childExternalIds`: GitLab has no parent→child issue relation (the same accepted gap
|
|
37
|
+
* `listSubIssues` is on the client), so every GitLab issue imports FLAT.
|
|
38
|
+
* - `links`: GitLab models dependencies as native issue LINKS, not as body prose. Running
|
|
39
|
+
* the GitHub body-scan grammar over a GitLab body would mint ids against a project-path
|
|
40
|
+
* shape it cannot express, i.e. plausible-looking edges to issues that do not exist.
|
|
41
|
+
*/
|
|
42
|
+
async fetchTask(_credentials, externalId, workspaceId) {
|
|
43
|
+
const id = gitlabIssuesLogic.parseGitLabIssueExternalId(externalId);
|
|
44
|
+
if (!id) {
|
|
45
|
+
throw new ValidationError(`"${externalId}" is not a valid GitLab issue reference`);
|
|
46
|
+
}
|
|
47
|
+
const connection = await this.requireConnection(workspaceId);
|
|
48
|
+
const detail = await this.deps.gitlabClient.getIssue(connection.installationId, { owner: id.owner, repo: id.repo }, id.number);
|
|
49
|
+
return {
|
|
50
|
+
externalId,
|
|
51
|
+
url: detail.url || gitlabIssuesLogic.gitlabIssueUrl(id, this.deps.webBaseUrl),
|
|
52
|
+
title: detail.title,
|
|
53
|
+
// GitLab issues have no workflow status beyond opened/closed and no type field on the
|
|
54
|
+
// basic API; surface the state as the status and a constant type so the structured
|
|
55
|
+
// prompt rendering stays uniform across sources.
|
|
56
|
+
status: detail.state,
|
|
57
|
+
type: 'Issue',
|
|
58
|
+
assignee: detail.assignee,
|
|
59
|
+
priority: null,
|
|
60
|
+
labels: detail.labels,
|
|
61
|
+
description: detail.body,
|
|
62
|
+
comments: detail.comments,
|
|
63
|
+
isEpic: false,
|
|
64
|
+
parentExternalId: null,
|
|
65
|
+
childExternalIds: [],
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Search issues in ONE project: the one linked to the service frame the search runs from.
|
|
70
|
+
* `scope` is therefore REQUIRED, and a `null` one is refused rather than widened, for a
|
|
71
|
+
* reason that is sharper on GitLab than on GitHub: GitLab's `/search?scope=issues` accepts
|
|
72
|
+
* no project qualifier at all, so an unscoped search cannot be narrowed after the fact and
|
|
73
|
+
* returns every issue the PAT can read across the whole instance. The scoped read used
|
|
74
|
+
* here (`searchProjectIssues`) takes the project as an argument, so there is no unscoped
|
|
75
|
+
* spelling of it to reach by accident.
|
|
76
|
+
*
|
|
77
|
+
* Input that names one specific issue — a pasted URL, the `group/project#n` shorthand, or
|
|
78
|
+
* a bare number — resolves to that exact issue and is surfaced FIRST. A reference naming
|
|
79
|
+
* ANOTHER project is not resolved here at all (it stays linkable through the explicit
|
|
80
|
+
* attach-by-reference path, but is never dressed up as a search hit), and a miss on the
|
|
81
|
+
* exact lookup falls through to the text search rather than failing.
|
|
82
|
+
*/
|
|
83
|
+
async search(_credentials, query, workspaceId, scope) {
|
|
84
|
+
if (!scope) {
|
|
85
|
+
throw new ValidationError('A GitLab issue search must be scoped to a project. Run it from a service frame ' +
|
|
86
|
+
'linked to a repo, or paste the issue URL to link one directly.', { reason: 'repo_scope_required' });
|
|
87
|
+
}
|
|
88
|
+
const connection = await this.deps.installations.getByWorkspace(workspaceId);
|
|
89
|
+
if (!connection || connection.provider !== 'gitlab')
|
|
90
|
+
return [];
|
|
91
|
+
const searchProject = this.deps.gitlabClient.searchProjectIssues;
|
|
92
|
+
if (!searchProject)
|
|
93
|
+
return [];
|
|
94
|
+
const out = [];
|
|
95
|
+
const seen = new Set();
|
|
96
|
+
// Exact match first: a pasted URL/shorthand or a bare number resolves to one issue,
|
|
97
|
+
// which the picker offers as the top option ("point at it, don't search").
|
|
98
|
+
const exactId = gitlabIssuesLogic.detectExactGitLabIssueRef(query, scope);
|
|
99
|
+
if (exactId) {
|
|
100
|
+
const hit = await this.fetchExact(exactId, connection).catch(() => null);
|
|
101
|
+
if (hit) {
|
|
102
|
+
seen.add(exactId);
|
|
103
|
+
out.push(hit);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const hits = await searchProject
|
|
107
|
+
.call(this.deps.gitlabClient, connection.installationId, { owner: scope.owner, repo: scope.repo }, gitlabIssuesLogic.buildGitLabIssueSearchQuery(query, 20))
|
|
108
|
+
.catch(() => []);
|
|
109
|
+
for (const hit of hits) {
|
|
110
|
+
const externalId = gitlabIssuesLogic.gitlabIssueExternalId(hit);
|
|
111
|
+
if (seen.has(externalId))
|
|
112
|
+
continue;
|
|
113
|
+
seen.add(externalId);
|
|
114
|
+
out.push({
|
|
115
|
+
source: 'gitlab',
|
|
116
|
+
externalId,
|
|
117
|
+
title: hit.title,
|
|
118
|
+
url: hit.url,
|
|
119
|
+
status: hit.state,
|
|
120
|
+
excerpt: '',
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return out.slice(0, 20);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Fetch one issue by its canonical external id and project it as a lean search hit. Reads
|
|
127
|
+
* through the SEARCHING workspace's own connection, which is the whole isolation story
|
|
128
|
+
* here: a pasted URL can name any project, and the connection's token is what decides
|
|
129
|
+
* whether it is readable, so an issue outside the workspace's own GitLab access simply
|
|
130
|
+
* fails and falls through to the scoped text search.
|
|
131
|
+
*/
|
|
132
|
+
async fetchExact(externalId, connection) {
|
|
133
|
+
const id = gitlabIssuesLogic.parseGitLabIssueExternalId(externalId);
|
|
134
|
+
if (!id)
|
|
135
|
+
return null;
|
|
136
|
+
const detail = await this.deps.gitlabClient.getIssue(connection.installationId, { owner: id.owner, repo: id.repo }, id.number);
|
|
137
|
+
return {
|
|
138
|
+
source: 'gitlab',
|
|
139
|
+
externalId,
|
|
140
|
+
title: detail.title,
|
|
141
|
+
url: detail.url || gitlabIssuesLogic.gitlabIssueUrl(id, this.deps.webBaseUrl),
|
|
142
|
+
status: detail.state,
|
|
143
|
+
excerpt: '',
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Live setup check: confirm the workspace's GitLab connection can actually read issues.
|
|
148
|
+
* Two escalating probes, each isolating a distinct failure:
|
|
149
|
+
* 1. `listInstallationRepos` — lists the projects the PAT can reach, which is what a
|
|
150
|
+
* revoked or expired token fails.
|
|
151
|
+
* 2. `listIssues` on the first of them — the only call that needs the token's `read_api`
|
|
152
|
+
* reach into issues, so a 403 here pinpoints a token scoped to `read_repository` only.
|
|
153
|
+
* Credentials are ignored (the connection authenticates out-of-band, keyed on the
|
|
154
|
+
* workspace), and every failure is classified rather than thrown: the four causes a GitLab
|
|
155
|
+
* setup fails on need four different fixes.
|
|
156
|
+
*/
|
|
157
|
+
async diagnose(input) {
|
|
158
|
+
const connection = await this.deps.installations.getByWorkspace(input.workspaceId);
|
|
159
|
+
if (!connection || connection.provider !== 'gitlab') {
|
|
160
|
+
return {
|
|
161
|
+
source: 'gitlab',
|
|
162
|
+
ok: false,
|
|
163
|
+
status: 'not_installed',
|
|
164
|
+
message: 'This workspace has no GitLab connection. Connect one with a personal access token under Integrations → GitLab, then re-check.',
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
let projectCount = 0;
|
|
168
|
+
let probeRef = null;
|
|
169
|
+
try {
|
|
170
|
+
const repos = await this.deps.gitlabClient.listInstallationRepos(connection.installationId);
|
|
171
|
+
projectCount = repos.items.length;
|
|
172
|
+
const first = repos.items[0];
|
|
173
|
+
if (first)
|
|
174
|
+
probeRef = { owner: first.owner, repo: first.name };
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
return this.classifyGitLabError(err, 'listing the projects the token can access');
|
|
178
|
+
}
|
|
179
|
+
if (probeRef) {
|
|
180
|
+
try {
|
|
181
|
+
await this.deps.gitlabClient.listIssues(connection.installationId, probeRef);
|
|
182
|
+
}
|
|
183
|
+
catch (err) {
|
|
184
|
+
return this.classifyGitLabError(err, `reading issues on ${probeRef.owner}/${probeRef.repo}`, true);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
source: 'gitlab',
|
|
189
|
+
ok: true,
|
|
190
|
+
status: 'ready',
|
|
191
|
+
message: `Connected to GitLab as ${connection.accountLogin}.`,
|
|
192
|
+
detail: projectCount > 0
|
|
193
|
+
? `${projectCount} project${projectCount === 1 ? '' : 's'} accessible.`
|
|
194
|
+
: 'The token reaches no projects yet — grant it access to a project to link its issues.',
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Map a GitLab client failure onto a setup diagnostic. 401 ⇒ the token was rejected
|
|
199
|
+
* (revoked or expired); 403 ⇒ authenticated but the token's scope does not cover the call,
|
|
200
|
+
* which on the issues probe is `read_api` specifically; a missing status ⇒ the host could
|
|
201
|
+
* not be reached, which for a self-managed instance is as likely a wrong `GITLAB_API_BASE`
|
|
202
|
+
* as an outage, so the message names both.
|
|
203
|
+
*/
|
|
204
|
+
classifyGitLabError(err, whileDoing, scoped = false) {
|
|
205
|
+
const status = httpStatusOf(err);
|
|
206
|
+
const base = { source: 'gitlab', ok: false };
|
|
207
|
+
if (status === 401) {
|
|
208
|
+
return {
|
|
209
|
+
...base,
|
|
210
|
+
status: 'auth_failed',
|
|
211
|
+
message: `GitLab rejected the access token while ${whileDoing}. It has been revoked or has expired — reconnect with a fresh token, then re-check.`,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
if (status === 403) {
|
|
215
|
+
return {
|
|
216
|
+
...base,
|
|
217
|
+
status: 'forbidden',
|
|
218
|
+
message: scoped
|
|
219
|
+
? 'GitLab accepted the token but refused to read issues. Reconnect with a token carrying the `read_api` scope (`read_repository` alone cannot read issues), then re-check.'
|
|
220
|
+
: `GitLab denied access (403) while ${whileDoing}. The token is missing a required scope — reconnect with one carrying \`api\` or \`read_api\`, then re-check.`,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
if (status === null) {
|
|
224
|
+
return {
|
|
225
|
+
...base,
|
|
226
|
+
status: 'unreachable',
|
|
227
|
+
message: `Couldn't reach GitLab while ${whileDoing}. Check the deployment's GitLab API base URL and network connectivity, then re-check.`,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
return {
|
|
231
|
+
...base,
|
|
232
|
+
status: 'error',
|
|
233
|
+
message: `GitLab returned ${status} while ${whileDoing}: ${err instanceof Error ? err.message : String(err)}`,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* The workspace's own GitLab connection, or a refusal naming what is missing.
|
|
238
|
+
*
|
|
239
|
+
* A GitHub-App connection on the same workspace is refused rather than used: the two live
|
|
240
|
+
* in one table, one row per workspace, so "connected to a VCS" and "connected to GitLab"
|
|
241
|
+
* are different facts and only the second one can answer a GitLab issue read.
|
|
242
|
+
*/
|
|
243
|
+
async requireConnection(workspaceId) {
|
|
244
|
+
const connection = await this.deps.installations.getByWorkspace(workspaceId);
|
|
245
|
+
if (!connection || connection.provider !== 'gitlab') {
|
|
246
|
+
throw new ConflictError('This workspace has no GitLab connection. Connect one with a personal access token under Integrations → GitLab to link its issues.');
|
|
247
|
+
}
|
|
248
|
+
return connection;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=GitLabIssuesProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitLabIssuesProvider.js","sourceRoot":"","sources":["../../../src/modules/tasks/GitLabIssuesProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,10 +15,11 @@ export interface TaskConnectionServiceDependencies {
|
|
|
15
15
|
workspaceRepository: WorkspaceRepository;
|
|
16
16
|
clock: Clock;
|
|
17
17
|
/**
|
|
18
|
-
* Resolves the workspace's
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
18
|
+
* Resolves the workspace's ONE VCS connection, used to decide whether a credentialless
|
|
19
|
+
* VCS-backed source is available: GitHub Issues rides an installed GitHub App, GitLab Issues
|
|
20
|
+
* rides a per-workspace PAT connection, and the row's own `provider` says which. Absent when
|
|
21
|
+
* no VCS integration is wired, in which case those sources, if their providers are registered
|
|
22
|
+
* at all, are reported unavailable.
|
|
22
23
|
*/
|
|
23
24
|
installations?: GitHubInstallationRepository;
|
|
24
25
|
/**
|
|
@@ -37,8 +38,9 @@ export declare class TaskConnectionService {
|
|
|
37
38
|
* Every configured source with the workspace's live state for it (drives the
|
|
38
39
|
* settings + import UI): each source's descriptor plus whether it is available
|
|
39
40
|
* now and whether the workspace has it enabled. Availability is connection
|
|
40
|
-
* presence for credentialed
|
|
41
|
-
*
|
|
41
|
+
* presence for a credentialed source, and a matching VCS connection for a
|
|
42
|
+
* VCS-backed one (which provider it needs rides along, so the UI can name the
|
|
43
|
+
* right remedy without a per-source branch of its own).
|
|
42
44
|
*/
|
|
43
45
|
listSourceStates(workspaceId: string): Promise<TaskSourceState[]>;
|
|
44
46
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskConnectionService.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TaskConnectionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AACzF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,KAAK,EAAE,4BAA4B,
|
|
1
|
+
{"version":3,"file":"TaskConnectionService.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TaskConnectionService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,47 @@
|
|
|
1
1
|
import { ConflictError, TRACKER_WEBHOOK_REPLY_ALLOW_KEY, TRACKER_WEBHOOK_SECRET_KEY, ValidationError, trackerWebhookSecret, } from '@cat-factory/kernel';
|
|
2
2
|
import { requireWorkspace } from '@cat-factory/kernel';
|
|
3
3
|
/**
|
|
4
|
-
* A credentialless provider carries no connection to make: there are no credential
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* A credentialless provider carries no connection to make: there are no credential fields to
|
|
5
|
+
* fill in, because it authenticates out-of-band (the two VCS-backed sources ride the workspace's
|
|
6
|
+
* VCS connection). `connect()` and the import credential resolver use this to skip the
|
|
7
|
+
* connection lookup; it does NOT by itself decide availability, nor WHICH out-of-band
|
|
8
|
+
* connection is meant (see {@link ridesVcsConnection}).
|
|
9
9
|
*/
|
|
10
10
|
function isCredentialless(provider) {
|
|
11
11
|
return provider.descriptor.credentialFields.length === 0;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
|
-
* The credentialless source
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
14
|
+
* The VCS connection a credentialless source rides, or null for a source that authenticates
|
|
15
|
+
* some other way. GitHub Issues rides the workspace's installed GitHub App and GitLab Issues
|
|
16
|
+
* rides its per-workspace GitLab connection; both are rows of the same one-per-workspace
|
|
17
|
+
* connection table, told apart by the row's `provider`.
|
|
18
|
+
*
|
|
19
|
+
* Keyed on the source kind (not just "is credentialless") so a future credentialless source
|
|
20
|
+
* with a different out-of-band auth path is forced to add its own availability branch rather
|
|
21
|
+
* than silently inheriting this one. Reading the row's provider (rather than merely its
|
|
22
|
+
* existence) is what stops the two VCS sources standing in for each other: a workspace
|
|
23
|
+
* connected to GitLab would otherwise report GitHub Issues as available, and the import
|
|
24
|
+
* would then resolve an empty App projection.
|
|
18
25
|
*/
|
|
19
|
-
function
|
|
20
|
-
|
|
26
|
+
function ridesVcsConnection(provider) {
|
|
27
|
+
if (!isCredentialless(provider))
|
|
28
|
+
return null;
|
|
29
|
+
if (provider.kind === 'github')
|
|
30
|
+
return 'github';
|
|
31
|
+
if (provider.kind === 'gitlab')
|
|
32
|
+
return 'gitlab';
|
|
33
|
+
return null;
|
|
21
34
|
}
|
|
35
|
+
const VCS_CONNECT_COPY = {
|
|
36
|
+
github: {
|
|
37
|
+
rides: "this workspace's GitHub App",
|
|
38
|
+
absentRemedy: "which isn't installed yet. Install it under Integrations → GitHub",
|
|
39
|
+
},
|
|
40
|
+
gitlab: {
|
|
41
|
+
rides: "this workspace's GitLab connection",
|
|
42
|
+
absentRemedy: "which doesn't exist yet. Connect one with a personal access token under Integrations → GitLab",
|
|
43
|
+
},
|
|
44
|
+
};
|
|
22
45
|
/** Duck-type the optional `listTeams` capability (bundling-safe, unlike `instanceof`). */
|
|
23
46
|
function hasListTeams(provider) {
|
|
24
47
|
return typeof provider.listTeams === 'function';
|
|
@@ -39,8 +62,9 @@ export class TaskConnectionService {
|
|
|
39
62
|
* Every configured source with the workspace's live state for it (drives the
|
|
40
63
|
* settings + import UI): each source's descriptor plus whether it is available
|
|
41
64
|
* now and whether the workspace has it enabled. Availability is connection
|
|
42
|
-
* presence for credentialed
|
|
43
|
-
*
|
|
65
|
+
* presence for a credentialed source, and a matching VCS connection for a
|
|
66
|
+
* VCS-backed one (which provider it needs rides along, so the UI can name the
|
|
67
|
+
* right remedy without a per-source branch of its own).
|
|
44
68
|
*/
|
|
45
69
|
async listSourceStates(workspaceId) {
|
|
46
70
|
const settings = await this.deps.taskSourceSettingsRepository.getByWorkspace(workspaceId);
|
|
@@ -48,20 +72,26 @@ export class TaskConnectionService {
|
|
|
48
72
|
// Resolve availability inputs ONCE up front rather than a per-provider repository read
|
|
49
73
|
// (N+1): the App presence is workspace-wide, and the credentialed connections are one
|
|
50
74
|
// listByWorkspace indexed by source.
|
|
51
|
-
const
|
|
52
|
-
?
|
|
53
|
-
:
|
|
75
|
+
const vcsConnection = this.deps.installations
|
|
76
|
+
? await this.deps.installations.getByWorkspace(workspaceId)
|
|
77
|
+
: null;
|
|
54
78
|
const connectedSources = new Set((await this.deps.taskConnectionRepository.listByWorkspace(workspaceId)).map((c) => c.source));
|
|
55
79
|
const states = [];
|
|
56
80
|
for (const provider of this.deps.registry.list()) {
|
|
57
|
-
const
|
|
58
|
-
|
|
81
|
+
const ridesVcs = ridesVcsConnection(provider);
|
|
82
|
+
const available = ridesVcs
|
|
83
|
+
? vcsConnection?.provider === ridesVcs
|
|
59
84
|
: connectedSources.has(provider.kind);
|
|
60
85
|
states.push({
|
|
61
86
|
...provider.descriptor,
|
|
62
87
|
available,
|
|
88
|
+
ridesVcsProvider: ridesVcs,
|
|
63
89
|
// No row ⇒ default enabled, so a source is offered as soon as it's available.
|
|
64
90
|
enabled: enabledBySource.get(provider.kind) ?? true,
|
|
91
|
+
// Asked of the provider, not of its descriptor: a source with no predicate search cannot
|
|
92
|
+
// back a recurring intake, and offering it in the schedule form produces a schedule that
|
|
93
|
+
// saves and then never fires.
|
|
94
|
+
supportsIntake: typeof provider.searchIssues === 'function',
|
|
65
95
|
});
|
|
66
96
|
}
|
|
67
97
|
return states;
|
|
@@ -85,15 +115,17 @@ export class TaskConnectionService {
|
|
|
85
115
|
};
|
|
86
116
|
}
|
|
87
117
|
const label = provider.descriptor.label;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
118
|
+
const ridesVcs = ridesVcsConnection(provider);
|
|
119
|
+
if (ridesVcs) {
|
|
120
|
+
const connection = this.deps.installations
|
|
121
|
+
? await this.deps.installations.getByWorkspace(workspaceId)
|
|
122
|
+
: null;
|
|
123
|
+
if (connection?.provider !== ridesVcs) {
|
|
92
124
|
return {
|
|
93
125
|
source,
|
|
94
126
|
ok: false,
|
|
95
127
|
status: 'not_installed',
|
|
96
|
-
message: `${label} rides
|
|
128
|
+
message: `${label} rides ${VCS_CONNECT_COPY[ridesVcs].rides}, ${VCS_CONNECT_COPY[ridesVcs].absentRemedy}, then re-check.`,
|
|
97
129
|
};
|
|
98
130
|
}
|
|
99
131
|
return this.runProviderDiagnose(provider, { workspaceId, credentials: null }, label);
|
|
@@ -172,9 +204,15 @@ export class TaskConnectionService {
|
|
|
172
204
|
await requireWorkspace(this.deps.workspaceRepository, workspaceId);
|
|
173
205
|
const provider = this.requireProvider(source);
|
|
174
206
|
if (isCredentialless(provider)) {
|
|
175
|
-
// A credentialless source has no connection to make: it
|
|
176
|
-
//
|
|
177
|
-
|
|
207
|
+
// A credentialless source has no connection to make: it authenticates out-of-band and is
|
|
208
|
+
// toggled via setEnabled, not connected. WHERE it authenticates is the provider's own
|
|
209
|
+
// answer, so the refusal names the integration this source actually rides. A credentialless
|
|
210
|
+
// source riding neither VCS connection (a deployment-registered one authenticating some
|
|
211
|
+
// other way) says only what is true: there are no credentials to configure here.
|
|
212
|
+
const ridesVcs = ridesVcsConnection(provider);
|
|
213
|
+
throw new ValidationError(ridesVcs
|
|
214
|
+
? `The ${source} source has no connection to configure; it rides ${VCS_CONNECT_COPY[ridesVcs].rides}. Enable or disable it instead.`
|
|
215
|
+
: `The ${source} source has no credentials to configure. Enable or disable it instead.`);
|
|
178
216
|
}
|
|
179
217
|
const normalized = provider.normalizeConnection(credentials);
|
|
180
218
|
return this.store(workspaceId, source, normalized.credentials, normalized.label);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskConnectionService.js","sourceRoot":"","sources":["../../../src/modules/tasks/TaskConnectionService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TaskConnectionService.js","sourceRoot":"","sources":["../../../src/modules/tasks/TaskConnectionService.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,10 +53,16 @@ export declare class TaskImportService {
|
|
|
53
53
|
/**
|
|
54
54
|
* Every issue imported into the workspace, across sources, as wire shapes.
|
|
55
55
|
*
|
|
56
|
-
* `scope` (resolved by the controller from an originating block) pins
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
56
|
+
* `scope` (resolved by the controller from an originating block) pins EVERY repo-backed
|
|
57
|
+
* source to one repository: an issue from another repository is dropped so a service's
|
|
58
|
+
* quick-pick list stays in-repo, while repo-less sources (Jira, Linear) are returned in full.
|
|
59
|
+
* Which sources are repo-backed is the registry's answer, never a list restated here, so a
|
|
60
|
+
* source added to the deployment narrows on the same day it can be imported. Omitted → the
|
|
61
|
+
* whole workspace.
|
|
62
|
+
*
|
|
63
|
+
* The provider for each source is resolved ONCE (rows routinely run into the hundreds and a
|
|
64
|
+
* workspace has a handful of sources), so the filter is a map lookup per row rather than a
|
|
65
|
+
* registry walk.
|
|
60
66
|
*/
|
|
61
67
|
listTasks(workspaceId: string, scope?: TaskSearchRepoScope): Promise<SourceTask[]>;
|
|
62
68
|
/** Resolve a stored task record or throw if not imported. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskImportService.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TaskImportService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAClF,OAAO,KAAK,EAAuC,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAClG,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AASvE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,cAAc,EAAE,cAAc,CAAA;IAC9B,iBAAiB,EAAE,qBAAqB,CAAA;IACxC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,KAAK,EAAE,KAAK,CAAA;CACb;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAiB3D;AAED,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,6BAA6B,EAAI;IAEpE,OAAO,CAAC,eAAe;IAMvB;;;;;;OAMG;YACW,kBAAkB;IAahC,mFAAmF;IAC7E,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAE1F;IAED;;;;;OAKG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC,CAgCrD;IAED;;;;;;;;;;;OAWG;IACG,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,mBAAmB,GAAG,IAAI,GAChC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAQ7B;IAED
|
|
1
|
+
{"version":3,"file":"TaskImportService.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TaskImportService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAClF,OAAO,KAAK,EAAuC,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAClG,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AASvE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,cAAc,EAAE,cAAc,CAAA;IAC9B,iBAAiB,EAAE,qBAAqB,CAAA;IACxC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,KAAK,EAAE,KAAK,CAAA;CACb;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAiB3D;AAED,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,6BAA6B,EAAI;IAEpE,OAAO,CAAC,eAAe;IAMvB;;;;;;OAMG;YACW,kBAAkB;IAahC,mFAAmF;IAC7E,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAE1F;IAED;;;;;OAKG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC,CAgCrD;IAED;;;;;;;;;;;OAWG;IACG,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,mBAAmB,GAAG,IAAI,GAChC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAQ7B;IAED;;;;;;;;;;;;;OAaG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CASvF;IAED,6DAA6D;IACvD,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CAMrB;CACF"}
|
|
@@ -65,7 +65,7 @@ export class TaskImportService {
|
|
|
65
65
|
throw new ValidationError(`Could not resolve a ${source} issue key from '${ref}'`);
|
|
66
66
|
}
|
|
67
67
|
const credentials = await this.resolveCredentials(workspaceId, source, provider);
|
|
68
|
-
const content = await provider.fetchTask(credentials, externalId);
|
|
68
|
+
const content = await provider.fetchTask(credentials, externalId, workspaceId);
|
|
69
69
|
// Preserve any existing block link across a re-import.
|
|
70
70
|
const existing = await this.deps.taskRepository.get(workspaceId, source, content.externalId);
|
|
71
71
|
const record = {
|
|
@@ -113,14 +113,27 @@ export class TaskImportService {
|
|
|
113
113
|
/**
|
|
114
114
|
* Every issue imported into the workspace, across sources, as wire shapes.
|
|
115
115
|
*
|
|
116
|
-
* `scope` (resolved by the controller from an originating block) pins
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
116
|
+
* `scope` (resolved by the controller from an originating block) pins EVERY repo-backed
|
|
117
|
+
* source to one repository: an issue from another repository is dropped so a service's
|
|
118
|
+
* quick-pick list stays in-repo, while repo-less sources (Jira, Linear) are returned in full.
|
|
119
|
+
* Which sources are repo-backed is the registry's answer, never a list restated here, so a
|
|
120
|
+
* source added to the deployment narrows on the same day it can be imported. Omitted → the
|
|
121
|
+
* whole workspace.
|
|
122
|
+
*
|
|
123
|
+
* The provider for each source is resolved ONCE (rows routinely run into the hundreds and a
|
|
124
|
+
* workspace has a handful of sources), so the filter is a map lookup per row rather than a
|
|
125
|
+
* registry walk.
|
|
120
126
|
*/
|
|
121
127
|
async listTasks(workspaceId, scope) {
|
|
122
128
|
const records = await this.deps.taskRepository.listByWorkspace(workspaceId);
|
|
123
|
-
|
|
129
|
+
if (!scope)
|
|
130
|
+
return records.map(toSourceTask);
|
|
131
|
+
const providers = new Map();
|
|
132
|
+
const scoped = records.filter((r) => {
|
|
133
|
+
if (!providers.has(r.source))
|
|
134
|
+
providers.set(r.source, this.deps.registry.get(r.source));
|
|
135
|
+
return taskInRepoScope(r, scope, providers.get(r.source));
|
|
136
|
+
});
|
|
124
137
|
return scoped.map(toSourceTask);
|
|
125
138
|
}
|
|
126
139
|
/** Resolve a stored task record or throw if not imported. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskImportService.js","sourceRoot":"","sources":["../../../src/modules/tasks/TaskImportService.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAgBpE,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAA;AACH,CAAC;AAED,MAAM,OAAO,iBAAiB;IACC,IAAI;IAAjC,YAA6B,IAAmC;oBAAnC,IAAI;IAAkC,CAAC;IAE5D,eAAe,CAAC,MAAsB;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,eAAe,CAAC,wCAAwC,MAAM,GAAG,CAAC,CAAA;QAC3F,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,kBAAkB,CAC9B,WAAmB,EACnB,MAAsB,EACtB,QAA4B;QAE5B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,aAAa,CAAC,OAAO,MAAM,6CAA6C,CAAC,CAAA;QACrF,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QAChE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAC3F,OAAO,UAAU,CAAC,WAAW,CAAA;IAC/B,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,MAAsB,EAAE,GAAW;QACnE,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACnE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAClB,WAAmB,EACnB,MAAsB,EACtB,GAAW;QAEX,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAA;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,eAAe,CAAC,uBAAuB,MAAM,oBAAoB,GAAG,GAAG,CAAC,CAAA;QACpF,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAChF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"TaskImportService.js","sourceRoot":"","sources":["../../../src/modules/tasks/TaskImportService.ts"],"names":[],"mappings":"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"}
|