@cat-factory/integrations 0.103.3 → 0.105.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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/documents/GitHubDocsProvider.d.ts +2 -6
- package/dist/modules/documents/GitHubDocsProvider.d.ts.map +1 -1
- package/dist/modules/documents/GitHubDocsProvider.js +2 -2
- package/dist/modules/documents/GitHubDocsProvider.js.map +1 -1
- package/dist/modules/environments/EnvironmentHandlerSeeder.d.ts +3 -7
- package/dist/modules/environments/EnvironmentHandlerSeeder.d.ts.map +1 -1
- package/dist/modules/environments/EnvironmentHandlerSeeder.js +0 -0
- package/dist/modules/environments/EnvironmentHandlerSeeder.js.map +1 -1
- package/dist/modules/environments/EnvironmentUserHandlerService.d.ts +2 -4
- package/dist/modules/environments/EnvironmentUserHandlerService.d.ts.map +1 -1
- package/dist/modules/environments/EnvironmentUserHandlerService.js +1 -1
- package/dist/modules/environments/EnvironmentUserHandlerService.js.map +1 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts.map +1 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.js +4 -3
- package/dist/modules/kubernetes/KubernetesRunnerTransport.js.map +1 -1
- package/dist/modules/runners/HttpRunnerPoolProvider.d.ts.map +1 -1
- package/dist/modules/runners/HttpRunnerPoolProvider.js +40 -4
- package/dist/modules/runners/HttpRunnerPoolProvider.js.map +1 -1
- package/dist/modules/runners/RunnerPoolConnectionService.d.ts +13 -2
- package/dist/modules/runners/RunnerPoolConnectionService.d.ts.map +1 -1
- package/dist/modules/runners/RunnerPoolConnectionService.js +31 -4
- package/dist/modules/runners/RunnerPoolConnectionService.js.map +1 -1
- package/dist/modules/runners/runner-backends.d.ts +9 -1
- package/dist/modules/runners/runner-backends.d.ts.map +1 -1
- package/dist/modules/runners/runner-backends.js +2 -1
- package/dist/modules/runners/runner-backends.js.map +1 -1
- package/dist/modules/runners/runners.logic.d.ts +36 -7
- package/dist/modules/runners/runners.logic.d.ts.map +1 -1
- package/dist/modules/runners/runners.logic.js +123 -15
- package/dist/modules/runners/runners.logic.js.map +1 -1
- package/dist/modules/tasks/BugHuntService.d.ts +73 -0
- package/dist/modules/tasks/BugHuntService.d.ts.map +1 -0
- package/dist/modules/tasks/BugHuntService.js +175 -0
- package/dist/modules/tasks/BugHuntService.js.map +1 -0
- package/dist/modules/tasks/GitHubIssuesProvider.d.ts +27 -1
- package/dist/modules/tasks/GitHubIssuesProvider.d.ts.map +1 -1
- package/dist/modules/tasks/GitHubIssuesProvider.js +51 -12
- package/dist/modules/tasks/GitHubIssuesProvider.js.map +1 -1
- package/dist/modules/tasks/JiraProvider.d.ts +18 -1
- package/dist/modules/tasks/JiraProvider.d.ts.map +1 -1
- package/dist/modules/tasks/JiraProvider.js +47 -0
- package/dist/modules/tasks/JiraProvider.js.map +1 -1
- package/dist/modules/tasks/LinearTaskProvider.d.ts +16 -1
- package/dist/modules/tasks/LinearTaskProvider.d.ts.map +1 -1
- package/dist/modules/tasks/LinearTaskProvider.js +41 -1
- package/dist/modules/tasks/LinearTaskProvider.js.map +1 -1
- package/dist/modules/tasks/TaskLinkService.d.ts +10 -2
- package/dist/modules/tasks/TaskLinkService.d.ts.map +1 -1
- package/dist/modules/tasks/TaskLinkService.js +8 -1
- package/dist/modules/tasks/TaskLinkService.js.map +1 -1
- package/dist/modules/tasks/TrackerWebhookService.d.ts +3 -3
- package/dist/modules/tasks/TrackerWebhookService.d.ts.map +1 -1
- package/dist/modules/tasks/TrackerWebhookService.js +1 -2
- package/dist/modules/tasks/TrackerWebhookService.js.map +1 -1
- package/dist/modules/tasks/github-issues.logic.d.ts +25 -1
- package/dist/modules/tasks/github-issues.logic.d.ts.map +1 -1
- package/dist/modules/tasks/github-issues.logic.js +73 -1
- package/dist/modules/tasks/github-issues.logic.js.map +1 -1
- package/dist/modules/tasks/jira.logic.d.ts +25 -1
- package/dist/modules/tasks/jira.logic.d.ts.map +1 -1
- package/dist/modules/tasks/jira.logic.js +62 -0
- package/dist/modules/tasks/jira.logic.js.map +1 -1
- package/dist/modules/tasks/linear.logic.d.ts +53 -1
- package/dist/modules/tasks/linear.logic.d.ts.map +1 -1
- package/dist/modules/tasks/linear.logic.js +62 -0
- package/dist/modules/tasks/linear.logic.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinearTaskProvider.js","sourceRoot":"","sources":["../../../src/modules/tasks/LinearTaskProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,
|
|
1
|
+
{"version":3,"file":"LinearTaskProvider.js","sourceRoot":"","sources":["../../../src/modules/tasks/LinearTaskProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Block, Position, SourceTask, TaskSourceKind } from '@cat-factory/kernel';
|
|
1
|
+
import type { Block, CreateTaskType, Position, SourceTask, TaskSourceKind } from '@cat-factory/kernel';
|
|
2
2
|
import type { BlockRepository } from '@cat-factory/kernel';
|
|
3
3
|
import type { BoardWritePort } from '@cat-factory/kernel';
|
|
4
4
|
import type { TaskRepository } from '@cat-factory/kernel';
|
|
@@ -41,8 +41,16 @@ export declare class TaskLinkService {
|
|
|
41
41
|
* of truth (re-importing refreshes it) and is fed to every agent step via the
|
|
42
42
|
* link. Reuses BoardService.addTask so scope/placement rules stay in one place.
|
|
43
43
|
* `createdBy` (the signed-in user) flows onto the new task for notification routing.
|
|
44
|
+
*
|
|
45
|
+
* `shape` lets a caller that already KNOWS what kind of work the issue is pre-classify the
|
|
46
|
+
* new task — the bug hunt adopts a candidate as a `bug` on the bug-fix pipeline. Omitted
|
|
47
|
+
* (every pre-existing caller) leaves both to `BoardService.addTask`'s defaults, so the
|
|
48
|
+
* generic import path is unchanged.
|
|
44
49
|
*/
|
|
45
|
-
createTaskFromIssue(workspaceId: string, containerId: string, source: TaskSourceKind, externalId: string, createdBy?: string | null
|
|
50
|
+
createTaskFromIssue(workspaceId: string, containerId: string, source: TaskSourceKind, externalId: string, createdBy?: string | null, shape?: {
|
|
51
|
+
taskType?: CreateTaskType;
|
|
52
|
+
pipelineId?: string;
|
|
53
|
+
}): Promise<TaskFromIssue>;
|
|
46
54
|
/**
|
|
47
55
|
* Spawn an epic and its children onto the board. Imports the epic issue, creates an
|
|
48
56
|
* `epic`-level grouping node from it, then imports + materialises each child issue as a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskLinkService.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TaskLinkService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"TaskLinkService.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TaskLinkService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,cAAc,EACd,QAAQ,EACR,UAAU,EAEV,cAAc,EACf,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAU/D,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,cAAc,CAAA;IAC5B,eAAe,EAAE,eAAe,CAAA;IAChC,cAAc,EAAE,cAAc,CAAA;IAC9B,wFAAwF;IACxF,aAAa,EAAE,iBAAiB,CAAA;CACjC;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,qFAAqF;AACrF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,KAAK,EAAE,CAAA;CACf;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,2BAA2B,EAAI;IAElE,wEAAwE;IAClE,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CAarB;IAED;;;;;;;OAOG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CAcrB;IAED;;;;;;;;;;;;OAYG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,cAAc,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACzD,OAAO,CAAC,aAAa,CAAC,CAkCxB;IAED;;;;;;;;;OASG;IACG,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,WAAW,CAAC,CAwFtB;CACF;AAcD,mGAAmG;AACnG,KAAK,SAAS,GAAG;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAEvD;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAI7D"}
|
|
@@ -34,8 +34,13 @@ export class TaskLinkService {
|
|
|
34
34
|
* of truth (re-importing refreshes it) and is fed to every agent step via the
|
|
35
35
|
* link. Reuses BoardService.addTask so scope/placement rules stay in one place.
|
|
36
36
|
* `createdBy` (the signed-in user) flows onto the new task for notification routing.
|
|
37
|
+
*
|
|
38
|
+
* `shape` lets a caller that already KNOWS what kind of work the issue is pre-classify the
|
|
39
|
+
* new task — the bug hunt adopts a candidate as a `bug` on the bug-fix pipeline. Omitted
|
|
40
|
+
* (every pre-existing caller) leaves both to `BoardService.addTask`'s defaults, so the
|
|
41
|
+
* generic import path is unchanged.
|
|
37
42
|
*/
|
|
38
|
-
async createTaskFromIssue(workspaceId, containerId, source, externalId, createdBy) {
|
|
43
|
+
async createTaskFromIssue(workspaceId, containerId, source, externalId, createdBy, shape) {
|
|
39
44
|
const issue = assertFound(await this.deps.taskRepository.get(workspaceId, source, externalId), 'Task', externalId);
|
|
40
45
|
// An issue carries a single `linkedBlockId`, so creating a second task from it
|
|
41
46
|
// would silently re-point the link and orphan the first task's issue context.
|
|
@@ -51,6 +56,8 @@ export class TaskLinkService {
|
|
|
51
56
|
const block = await this.deps.boardService.addTask(workspaceId, containerId, {
|
|
52
57
|
title: issueTaskTitle(issue),
|
|
53
58
|
description: issueTaskDescription(issue),
|
|
59
|
+
...(shape?.taskType ? { taskType: shape.taskType } : {}),
|
|
60
|
+
...(shape?.pipelineId ? { pipelineId: shape.pipelineId } : {}),
|
|
54
61
|
}, createdBy ?? null);
|
|
55
62
|
// Link the issue to the new task so agents get the full issue (description,
|
|
56
63
|
// comments, metadata) as context — and the task carries the back-reference.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskLinkService.js","sourceRoot":"","sources":["../../../src/modules/tasks/TaskLinkService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TaskLinkService.js","sourceRoot":"","sources":["../../../src/modules/tasks/TaskLinkService.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAKhE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AA6BrD,MAAM,OAAO,eAAe;IACG,IAAI;IAAjC,YAA6B,IAAiC;oBAAjC,IAAI;IAAgC,CAAC;IAElE,wEAAwE;IACxE,KAAK,CAAC,WAAW,CACf,WAAmB,EACnB,OAAe,EACf,MAAsB,EACtB,UAAkB;QAElB,MAAM,KAAK,GAAU,WAAW,CAC9B,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,EACzD,OAAO,EACP,OAAO,CACR,CAAA;QACD,MAAM,IAAI,GAAG,WAAW,CACtB,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EACnE,MAAM,EACN,UAAU,CACX,CAAA;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QACnF,OAAO,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe,CACnB,WAAmB,EACnB,OAAe,EACf,MAAsB,EACtB,UAAkB;QAElB,MAAM,KAAK,GAAU,WAAW,CAC9B,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,EACzD,OAAO,EACP,OAAO,CACR,CAAA;QACD,MAAM,IAAI,GAAG,WAAW,CACtB,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EACnE,MAAM,EACN,UAAU,CACX,CAAA;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QACxE,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QACnF,OAAO,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,mBAAmB,CACvB,WAAmB,EACnB,WAAmB,EACnB,MAAsB,EACtB,UAAkB,EAClB,SAAyB,EACzB,KAA0D;QAE1D,MAAM,KAAK,GAAG,WAAW,CACvB,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EACnE,MAAM,EACN,UAAU,CACX,CAAA;QACD,+EAA+E;QAC/E,8EAA8E;QAC9E,gFAAgF;QAChF,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,aAAa,CACrB,SAAS,UAAU,8BAA8B,KAAK,CAAC,aAAa,mBAAmB,CACxF,CAAA;QACH,CAAC;QACD,+EAA+E;QAC/E,kFAAkF;QAClF,iFAAiF;QACjF,mFAAmF;QACnF,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QAChG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAChD,WAAW,EACX,WAAW,EACX;YACE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;YAC5B,WAAW,EAAE,oBAAoB,CAAC,KAAK,CAAC;YACxC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,EACD,SAAS,IAAI,IAAI,CAClB,CAAA;QACD,4EAA4E;QAC5E,4EAA4E;QAC5E,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QACnF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;IAC7E,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,SAAS,CACb,WAAmB,EACnB,MAAsB,EACtB,OAAe,EACf,WAAmB,EACnB,SAAyB,EACzB,QAAmB;QAEnB,4FAA4F;QAC5F,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QAEhG,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAC3E,WAAW,EACX,MAAM,EACN,OAAO,CACR,CAAA;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE;YAC7D,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC;YAC7B,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC;YACzC,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;SACvC,CAAC,CAAA;QACF,6EAA6E;QAC7E,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAE9F,8EAA8E;QAC9E,MAAM,OAAO,GAAG,IAAI,GAAG,CAAiB,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5E,oFAAoF;QACpF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAsB,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;QACtF,MAAM,KAAK,GAAY,EAAE,CAAA;QAEzB,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;YACzD,wFAAwF;YACxF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YACjF,IAAI,QAAQ,EAAE,aAAa,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;gBAC5C,SAAQ;YACV,CAAC;YACD,IAAI,OAAoB,CAAA;YACxB,IAAI,CAAC;gBACH,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;qBACnF,OAAO,CAAA;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,SAAQ,CAAC,4DAA4D;YACvE,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAChD,WAAW,EACX,WAAW,EACX;gBACE,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;gBAC9B,WAAW,EAAE,oBAAoB,CAAC,OAAO,CAAC;gBAC1C,MAAM,EAAE,IAAI,CAAC,EAAE;aAChB,EACD,SAAS,IAAI,IAAI,CAClB,CAAA;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;YAC3F,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;YACzC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YACzC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;QAED,wFAAwF;QACxF,wFAAwF;QACxF,uFAAuF;QACvF,yFAAyF;QACzF,wFAAwF;QACxF,wFAAwF;QACxF,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8C,CAAA;QACnE,KAAK,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACpC,IAAI,CAAC,IAAI;gBAAE,SAAQ;YACnB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBACvC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;oBAAE,SAAQ;gBACrC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC1C,IAAI,CAAC,KAAK;oBAAE,SAAQ,CAAC,6CAA6C;gBAClE,mFAAmF;gBACnF,sEAAsE;gBACtE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC/E,IAAI,MAAM,KAAK,MAAM;oBAAE,SAAQ;gBAC/B,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;YACtD,CAAC;QACH,CAAC;QACD,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,sFAAsF;YACtF,yFAAyF;YACzF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;YAC5E,IAAI,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,SAAQ;YACrD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;YAC5E,CAAC;YAAC,MAAM,CAAC;gBACP,6EAA6E;YAC/E,CAAC;QACH,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC;CACF;AAED,+EAA+E;AAC/E,SAAS,SAAS,CAAC,IAAiB;IAClC,OAAO,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,EAAE,CAAA;AAC5C,CAAC;AAED,kFAAkF;AAClF,SAAS,eAAe,CAAC,IAAiB;IACxC,MAAM,SAAS,GAAG,iBAAiB,IAAI,CAAC,GAAG,EAAE,CAAA;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IACpC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACrD,CAAC;AAWD,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAAC,KAAgB;IAC7C,OAAO,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,KAAK,EAAE,CAAA;AAC9C,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,oBAAoB,CAAC,KAAgB;IACnD,MAAM,SAAS,GAAG,iBAAiB,KAAK,CAAC,GAAG,EAAE,CAAA;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACrE,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACrD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Clock, type IssueWritebackProvider, type RequirementReview, type ResolveRequirementsExceededChoice, type ReviewItemStatus, type ReviewReplyAck, type TaskConnectionRepository, type TaskRepository, type TrackerCommentIngestRepository, type TrackerIssueEvent, type TrackerWebhookEvent } from '@cat-factory/kernel';
|
|
1
|
+
import { type Clock, type IssueWritebackProvider, type Logger, type RequirementReview, type ResolveRequirementsExceededChoice, type ReviewItemStatus, type ReviewReplyAck, type TaskConnectionRepository, type TaskRepository, type TrackerCommentIngestRepository, type TrackerIssueEvent, type TrackerWebhookEvent } from '@cat-factory/kernel';
|
|
2
2
|
/**
|
|
3
3
|
* The requirements-review surface, narrowed to what a ticket reply drives.
|
|
4
4
|
*
|
|
@@ -45,8 +45,8 @@ export interface TrackerWebhookServiceDependencies {
|
|
|
45
45
|
/** Resolve the run parked on a block, so the ack can name it. Absent ⇒ the ack omits the id. */
|
|
46
46
|
resolveRunId?: (workspaceId: string, blockId: string) => Promise<string | null>;
|
|
47
47
|
clock?: Clock;
|
|
48
|
-
/** Structured
|
|
49
|
-
|
|
48
|
+
/** Structured logger for the silent-drop paths (an unauthorized reply leaves no other trace). */
|
|
49
|
+
logger?: Logger;
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
52
|
* What a delivery did, for the consumer's logs. Deliberately coarse: a webhook consumer's only
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackerWebhookService.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TrackerWebhookService.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"TrackerWebhookService.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TrackerWebhookService.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,8 +59,7 @@ export class TrackerWebhookService {
|
|
|
59
59
|
const allowList = connection?.credentials?.[TRACKER_WEBHOOK_REPLY_ALLOW_KEY] ?? '';
|
|
60
60
|
if (!isAllowedReplyAuthor(event.author, allowList)) {
|
|
61
61
|
// The one path that leaves NO other trace, so it must leave a log line.
|
|
62
|
-
this.deps.
|
|
63
|
-
msg: 'tracker reply ignored: author not allowed',
|
|
62
|
+
this.deps.logger?.warn('tracker reply ignored: author not allowed', {
|
|
64
63
|
workspaceId,
|
|
65
64
|
source: event.source,
|
|
66
65
|
externalId: event.externalId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackerWebhookService.js","sourceRoot":"","sources":["../../../src/modules/tasks/TrackerWebhookService.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"TrackerWebhookService.js","sourceRoot":"","sources":["../../../src/modules/tasks/TrackerWebhookService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IssueIntakeQuery, TaskDependencyLink, TaskSearchRepoScope, TaskSourceDescriptor } from '@cat-factory/kernel';
|
|
1
|
+
import type { BugCandidate, GitHubIssueSearchHit, IssueIntakeQuery, TaskDependencyLink, TaskSearchRepoScope, TaskSourceDescriptor, TrackerBoard } from '@cat-factory/kernel';
|
|
2
2
|
/**
|
|
3
3
|
* What the connect UI renders. GitHub issues piggyback on the workspace's
|
|
4
4
|
* existing GitHub App installation, so there are NO credential fields — the
|
|
@@ -61,6 +61,10 @@ export declare function buildGitHubIssueSearchQuery(query: string, scope?: TaskS
|
|
|
61
61
|
* search API's `created-asc` order (see `GitHubClient.searchIssues`). The
|
|
62
62
|
* already-worked exclusion list is not expressible in GitHub search; the
|
|
63
63
|
* provider filters it from a bounded overscan.
|
|
64
|
+
*
|
|
65
|
+
* Every value that reaches the search text is either quoted or, for the unquotable board
|
|
66
|
+
* scope, shape-validated (see {@link assertBoardSlug}) — a caller-supplied string must never
|
|
67
|
+
* be able to add a qualifier of its own.
|
|
64
68
|
*/
|
|
65
69
|
export declare function buildGitHubIntakeQuery(query: IssueIntakeQuery): string;
|
|
66
70
|
/**
|
|
@@ -75,4 +79,24 @@ export declare function buildGitHubIntakeQuery(query: IssueIntakeQuery): string;
|
|
|
75
79
|
* Returns null when the input is neither (treat it as free-text search).
|
|
76
80
|
*/
|
|
77
81
|
export declare function detectExactGitHubIssueRef(query: string, scope?: TaskSearchRepoScope): string | null;
|
|
82
|
+
/**
|
|
83
|
+
* Project a search hit onto a {@link BugCandidate}. GitHub's `/search/issues` response carries
|
|
84
|
+
* the whole issue payload, so every field here comes from the SAME call the hunt already
|
|
85
|
+
* makes — see the optional fields on {@link GitHubIssueSearchHit} for why they may be absent
|
|
86
|
+
* (an adapter projecting another backend onto the GitHub shape).
|
|
87
|
+
*
|
|
88
|
+
* GitHub has no priority field, so `priority` is always null; `type` echoes the issue's own
|
|
89
|
+
* labels-based convention only when the org uses issue types, which the search hit doesn't
|
|
90
|
+
* report — so it stays empty rather than being guessed from a label.
|
|
91
|
+
*/
|
|
92
|
+
export declare function githubHitToBugCandidate(hit: GitHubIssueSearchHit): BugCandidate;
|
|
93
|
+
/**
|
|
94
|
+
* Map an installation's repositories onto hunt boards. A GitHub board scope is the
|
|
95
|
+
* `owner/repo` slug (what `buildGitHubIntakeQuery` puts in `repo:`), so `id` and `key` are the
|
|
96
|
+
* same value; `name` is the bare repo name, which is what a human scans a list of repos by.
|
|
97
|
+
*/
|
|
98
|
+
export declare function githubReposToBoards(repos: {
|
|
99
|
+
owner: string;
|
|
100
|
+
name: string;
|
|
101
|
+
}[]): TrackerBoard[];
|
|
78
102
|
//# sourceMappingURL=github-issues.logic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-issues.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/github-issues.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"github-issues.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/github-issues.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACb,MAAM,qBAAqB,CAAA;AAW5B;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,oBAQtC,CAAA;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,qBAAqB,GAAG,MAAM,CAEvE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAShE;AAED,qEAAqE;AACrE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAI3F;AAED,sDAAsD;AACtD,wBAAgB,cAAc,CAAC,EAAE,EAAE,qBAAqB,GAAG,MAAM,CAEhE;AAWD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,kBAAkB,EAAE,CA0CtB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAK9F;AA+BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CActE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,mBAAmB,GAC1B,MAAM,GAAG,IAAI,CAQf;AAKD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,oBAAoB,GAAG,YAAY,CAc/E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,YAAY,EAAE,CAQ5F"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ValidationError } from '@cat-factory/kernel';
|
|
1
2
|
// GitHub-issues task-source pure logic, kept out of the worker so it is
|
|
2
3
|
// unit-testable without a live API: parsing an issue reference out of user input
|
|
3
4
|
// and round-tripping the `owner/repo#number` external id the provider stores. The
|
|
@@ -150,6 +151,28 @@ export function buildGitHubIssueSearchQuery(query, scope) {
|
|
|
150
151
|
function quoteQualifierValue(value) {
|
|
151
152
|
return `"${value.replace(/"/g, '').trim()}"`;
|
|
152
153
|
}
|
|
154
|
+
/** The only shape a GitHub board scope may take: `owner/repo`, both plain path segments. */
|
|
155
|
+
const REPO_SLUG = new RegExp(`^${SEG}/${SEG}$`);
|
|
156
|
+
/**
|
|
157
|
+
* Validate a board scope before it is interpolated into the search text.
|
|
158
|
+
*
|
|
159
|
+
* The `repo:` qualifier is the ONE hole in {@link buildGitHubIntakeQuery} that cannot be quoted
|
|
160
|
+
* — GitHub's search grammar takes the slug bare — so it is validated instead. It has to be:
|
|
161
|
+
* a board reaches this from a bug hunt's request body, where a value like
|
|
162
|
+
* `owner/repo is:closed` would silently contradict the `is:open` / `no:assignee` qualifiers the
|
|
163
|
+
* whole scan rests on, and one like `owner/repo org:elsewhere` would widen it. A malformed
|
|
164
|
+
* scope is refused loudly rather than searched with a meaning nobody asked for; the recurring
|
|
165
|
+
* intake's stored board goes through the same check, where a wrong-scope search is just as
|
|
166
|
+
* wrong for being configured earlier.
|
|
167
|
+
*/
|
|
168
|
+
function assertBoardSlug(slug) {
|
|
169
|
+
if (!REPO_SLUG.test(slug)) {
|
|
170
|
+
throw new ValidationError(`'${slug}' is not a GitHub repository scope; expected owner/repo.`, {
|
|
171
|
+
reason: 'invalid_board',
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
return slug;
|
|
175
|
+
}
|
|
153
176
|
/**
|
|
154
177
|
* Build the GitHub search text for an issue-intake predicate search: open issues
|
|
155
178
|
* in the configured repo matching every present predicate. Labels become
|
|
@@ -161,12 +184,20 @@ function quoteQualifierValue(value) {
|
|
|
161
184
|
* search API's `created-asc` order (see `GitHubClient.searchIssues`). The
|
|
162
185
|
* already-worked exclusion list is not expressible in GitHub search; the
|
|
163
186
|
* provider filters it from a bounded overscan.
|
|
187
|
+
*
|
|
188
|
+
* Every value that reaches the search text is either quoted or, for the unquotable board
|
|
189
|
+
* scope, shape-validated (see {@link assertBoardSlug}) — a caller-supplied string must never
|
|
190
|
+
* be able to add a qualifier of its own.
|
|
164
191
|
*/
|
|
165
192
|
export function buildGitHubIntakeQuery(query) {
|
|
166
193
|
const parts = [];
|
|
167
194
|
if (query.board.githubRepo)
|
|
168
|
-
parts.push(`repo:${query.board.githubRepo.trim()}`);
|
|
195
|
+
parts.push(`repo:${assertBoardSlug(query.board.githubRepo.trim())}`);
|
|
169
196
|
parts.push('is:open');
|
|
197
|
+
// `no:assignee` is GitHub search's unassigned qualifier — pushed down like the rest, so a
|
|
198
|
+
// hunt never spends its overscan window on issues somebody already owns.
|
|
199
|
+
if (query.unassignedOnly)
|
|
200
|
+
parts.push('no:assignee');
|
|
170
201
|
if (query.issueType)
|
|
171
202
|
parts.push(`type:${quoteQualifierValue(query.issueType)}`);
|
|
172
203
|
for (const label of query.labels ?? [])
|
|
@@ -199,4 +230,45 @@ export function detectExactGitHubIssueRef(query, scope) {
|
|
|
199
230
|
}
|
|
200
231
|
return null;
|
|
201
232
|
}
|
|
233
|
+
/** Cap on a candidate's rendered body; the ranking judges actionability, not the full trace. */
|
|
234
|
+
const MAX_CANDIDATE_DESCRIPTION_CHARS = 1_200;
|
|
235
|
+
/**
|
|
236
|
+
* Project a search hit onto a {@link BugCandidate}. GitHub's `/search/issues` response carries
|
|
237
|
+
* the whole issue payload, so every field here comes from the SAME call the hunt already
|
|
238
|
+
* makes — see the optional fields on {@link GitHubIssueSearchHit} for why they may be absent
|
|
239
|
+
* (an adapter projecting another backend onto the GitHub shape).
|
|
240
|
+
*
|
|
241
|
+
* GitHub has no priority field, so `priority` is always null; `type` echoes the issue's own
|
|
242
|
+
* labels-based convention only when the org uses issue types, which the search hit doesn't
|
|
243
|
+
* report — so it stays empty rather than being guessed from a label.
|
|
244
|
+
*/
|
|
245
|
+
export function githubHitToBugCandidate(hit) {
|
|
246
|
+
return {
|
|
247
|
+
source: 'github',
|
|
248
|
+
externalId: githubIssueExternalId(hit),
|
|
249
|
+
title: hit.title,
|
|
250
|
+
url: hit.url,
|
|
251
|
+
status: hit.state,
|
|
252
|
+
type: '',
|
|
253
|
+
priority: null,
|
|
254
|
+
labels: hit.labels ?? [],
|
|
255
|
+
description: (hit.body ?? '').trim().slice(0, MAX_CANDIDATE_DESCRIPTION_CHARS),
|
|
256
|
+
createdAt: hit.createdAt ?? '',
|
|
257
|
+
commentCount: hit.commentCount ?? 0,
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Map an installation's repositories onto hunt boards. A GitHub board scope is the
|
|
262
|
+
* `owner/repo` slug (what `buildGitHubIntakeQuery` puts in `repo:`), so `id` and `key` are the
|
|
263
|
+
* same value; `name` is the bare repo name, which is what a human scans a list of repos by.
|
|
264
|
+
*/
|
|
265
|
+
export function githubReposToBoards(repos) {
|
|
266
|
+
return repos
|
|
267
|
+
.filter((repo) => repo.owner && repo.name)
|
|
268
|
+
.map((repo) => ({
|
|
269
|
+
id: `${repo.owner}/${repo.name}`,
|
|
270
|
+
name: repo.name,
|
|
271
|
+
key: `${repo.owner}/${repo.name}`,
|
|
272
|
+
}));
|
|
273
|
+
}
|
|
202
274
|
//# sourceMappingURL=github-issues.logic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-issues.logic.js","sourceRoot":"","sources":["../../../src/modules/tasks/github-issues.logic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"github-issues.logic.js","sourceRoot":"","sources":["../../../src/modules/tasks/github-issues.logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IssueIntakeQuery, TaskDependencyLink, TaskSearchResult, TaskSourceDescriptor } from '@cat-factory/kernel';
|
|
1
|
+
import type { BugCandidate, IssueIntakeQuery, TaskDependencyLink, TaskSearchResult, TaskSourceDescriptor, TrackerBoard } from '@cat-factory/kernel';
|
|
2
2
|
/** What the connect UI renders, and which credentials the provider needs. */
|
|
3
3
|
export declare const JIRA_DESCRIPTOR: TaskSourceDescriptor;
|
|
4
4
|
/**
|
|
@@ -17,6 +17,30 @@ export declare function buildJiraSearchJql(query: string): string;
|
|
|
17
17
|
* malformed stored id can't break — or inject into — the query.
|
|
18
18
|
*/
|
|
19
19
|
export declare function buildJiraIntakeJql(query: IssueIntakeQuery): string;
|
|
20
|
+
/**
|
|
21
|
+
* The issue fields a bug-hunt candidate needs, as ONE `fields=` selection. Everything the
|
|
22
|
+
* ranking reasons over comes back in the same search response — there is deliberately no
|
|
23
|
+
* per-issue detail fetch, which at 40 candidates would be 40 extra round trips against a
|
|
24
|
+
* rate-limited API for data the search endpoint already returns.
|
|
25
|
+
*/
|
|
26
|
+
export declare const JIRA_CANDIDATE_FIELDS = "summary,description,status,issuetype,priority,labels,created,comment";
|
|
27
|
+
/**
|
|
28
|
+
* Map a candidate search response onto {@link BugCandidate} rows. The ADF description is
|
|
29
|
+
* converted with the same {@link adfToMarkdown} the import path uses (so the ranking reads
|
|
30
|
+
* the body a human would) and then truncated.
|
|
31
|
+
*
|
|
32
|
+
* `comment.total` is Jira's own count and is preferred over the returned array's length,
|
|
33
|
+
* which is only the page the `fields` selection happened to include — reporting "2 comments"
|
|
34
|
+
* for a 40-comment argument would understate exactly the contested bugs worth flagging.
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseJiraBugCandidates(json: unknown, base: string): BugCandidate[];
|
|
37
|
+
/**
|
|
38
|
+
* Map the paginated project-search response onto boards. A Jira board scope is the project
|
|
39
|
+
* KEY (what `buildJiraIntakeJql` puts in `project = …`), so `id` and `key` are the same value
|
|
40
|
+
* here — the picker still shows both because `name` alone is ambiguous across similarly-named
|
|
41
|
+
* projects, which is the whole reason the key exists.
|
|
42
|
+
*/
|
|
43
|
+
export declare function parseJiraBoards(json: unknown): TrackerBoard[];
|
|
20
44
|
/** Map a Jira search response into lean hits; URLs are the canonical `/browse/KEY`. */
|
|
21
45
|
export declare function parseJiraSearchResults(json: unknown, base: string): TaskSearchResult[];
|
|
22
46
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jira.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/jira.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"jira.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/jira.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACb,MAAM,qBAAqB,CAAA;AAS5B,6EAA6E;AAC7E,eAAO,MAAM,eAAe,EAAE,oBAuB7B,CAAA;AAOD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAKD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAclE;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,yEACsC,CAAA;AAqBxE;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAuBlF;AAMD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,EAAE,CAQ7D;AASD,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAgBtF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWzD;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEzE;AAED,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3D,WAAW,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9B,YAAY,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAChC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,EAAE,CAgCtE;AAcD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAUnD"}
|
|
@@ -59,6 +59,10 @@ export function buildJiraIntakeJql(query) {
|
|
|
59
59
|
clauses.push('statusCategory != Done');
|
|
60
60
|
if (query.issueType)
|
|
61
61
|
clauses.push(`issuetype = "${escapeJql(query.issueType)}"`);
|
|
62
|
+
// `assignee IS EMPTY` is JQL's unassigned predicate — pushed down like every other, so a
|
|
63
|
+
// hunt never pays for (or truncates on) issues somebody already owns.
|
|
64
|
+
if (query.unassignedOnly)
|
|
65
|
+
clauses.push('assignee IS EMPTY');
|
|
62
66
|
for (const label of query.labels ?? [])
|
|
63
67
|
clauses.push(`labels = "${escapeJql(label)}"`);
|
|
64
68
|
if (query.titleFragment)
|
|
@@ -68,6 +72,64 @@ export function buildJiraIntakeJql(query) {
|
|
|
68
72
|
clauses.push(`issuekey NOT IN (${excluded.join(', ')})`);
|
|
69
73
|
return `${clauses.join(' AND ')} ORDER BY created ASC`;
|
|
70
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* The issue fields a bug-hunt candidate needs, as ONE `fields=` selection. Everything the
|
|
77
|
+
* ranking reasons over comes back in the same search response — there is deliberately no
|
|
78
|
+
* per-issue detail fetch, which at 40 candidates would be 40 extra round trips against a
|
|
79
|
+
* rate-limited API for data the search endpoint already returns.
|
|
80
|
+
*/
|
|
81
|
+
export const JIRA_CANDIDATE_FIELDS = 'summary,description,status,issuetype,priority,labels,created,comment';
|
|
82
|
+
/** Cap on a candidate's rendered body; the ranking judges actionability, not the full trace. */
|
|
83
|
+
const MAX_CANDIDATE_DESCRIPTION_CHARS = 1_200;
|
|
84
|
+
/**
|
|
85
|
+
* Map a candidate search response onto {@link BugCandidate} rows. The ADF description is
|
|
86
|
+
* converted with the same {@link adfToMarkdown} the import path uses (so the ranking reads
|
|
87
|
+
* the body a human would) and then truncated.
|
|
88
|
+
*
|
|
89
|
+
* `comment.total` is Jira's own count and is preferred over the returned array's length,
|
|
90
|
+
* which is only the page the `fields` selection happened to include — reporting "2 comments"
|
|
91
|
+
* for a 40-comment argument would understate exactly the contested bugs worth flagging.
|
|
92
|
+
*/
|
|
93
|
+
export function parseJiraBugCandidates(json, base) {
|
|
94
|
+
const body = (json ?? {});
|
|
95
|
+
const cleanBase = base.replace(/\/+$/, '');
|
|
96
|
+
const out = [];
|
|
97
|
+
for (const issue of Array.isArray(body.issues) ? body.issues : []) {
|
|
98
|
+
if (!issue.key)
|
|
99
|
+
continue;
|
|
100
|
+
const f = issue.fields ?? {};
|
|
101
|
+
out.push({
|
|
102
|
+
source: 'jira',
|
|
103
|
+
externalId: issue.key,
|
|
104
|
+
title: f.summary ?? '(untitled)',
|
|
105
|
+
url: `${cleanBase}/browse/${issue.key}`,
|
|
106
|
+
status: f.status?.name ?? '',
|
|
107
|
+
type: f.issuetype?.name ?? '',
|
|
108
|
+
priority: f.priority?.name ?? null,
|
|
109
|
+
labels: Array.isArray(f.labels) ? f.labels : [],
|
|
110
|
+
description: adfToMarkdown(f.description).trim().slice(0, MAX_CANDIDATE_DESCRIPTION_CHARS),
|
|
111
|
+
createdAt: f.created ?? '',
|
|
112
|
+
commentCount: typeof f.comment?.total === 'number' ? f.comment.total : (f.comment?.comments?.length ?? 0),
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return out;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Map the paginated project-search response onto boards. A Jira board scope is the project
|
|
119
|
+
* KEY (what `buildJiraIntakeJql` puts in `project = …`), so `id` and `key` are the same value
|
|
120
|
+
* here — the picker still shows both because `name` alone is ambiguous across similarly-named
|
|
121
|
+
* projects, which is the whole reason the key exists.
|
|
122
|
+
*/
|
|
123
|
+
export function parseJiraBoards(json) {
|
|
124
|
+
const body = (json ?? {});
|
|
125
|
+
const out = [];
|
|
126
|
+
for (const project of Array.isArray(body.values) ? body.values : []) {
|
|
127
|
+
if (!project.key)
|
|
128
|
+
continue;
|
|
129
|
+
out.push({ id: project.key, name: project.name ?? project.key, key: project.key });
|
|
130
|
+
}
|
|
131
|
+
return out;
|
|
132
|
+
}
|
|
71
133
|
/** Map a Jira search response into lean hits; URLs are the canonical `/browse/KEY`. */
|
|
72
134
|
export function parseJiraSearchResults(json, base) {
|
|
73
135
|
const body = (json ?? {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jira.logic.js","sourceRoot":"","sources":["../../../src/modules/tasks/jira.logic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jira.logic.js","sourceRoot":"","sources":["../../../src/modules/tasks/jira.logic.ts"],"names":[],"mappings":"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"}
|