@structured-world/gitlab-mcp 4.0.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/LICENSE +21 -0
- package/README.md +486 -0
- package/dist/config.d.ts +31 -0
- package/dist/config.js +115 -0
- package/dist/config.js.map +1 -0
- package/dist/entities/core/index.d.ts +7 -0
- package/dist/entities/core/index.js +31 -0
- package/dist/entities/core/index.js.map +1 -0
- package/dist/entities/core/registry.d.ts +5 -0
- package/dist/entities/core/registry.js +584 -0
- package/dist/entities/core/registry.js.map +1 -0
- package/dist/entities/core/schema-readonly.d.ts +302 -0
- package/dist/entities/core/schema-readonly.js +364 -0
- package/dist/entities/core/schema-readonly.js.map +1 -0
- package/dist/entities/core/schema.d.ts +87 -0
- package/dist/entities/core/schema.js +143 -0
- package/dist/entities/core/schema.js.map +1 -0
- package/dist/entities/files/index.d.ts +7 -0
- package/dist/entities/files/index.js +31 -0
- package/dist/entities/files/index.js.map +1 -0
- package/dist/entities/files/registry.d.ts +5 -0
- package/dist/entities/files/registry.js +199 -0
- package/dist/entities/files/registry.js.map +1 -0
- package/dist/entities/files/schema-readonly.d.ts +78 -0
- package/dist/entities/files/schema-readonly.js +50 -0
- package/dist/entities/files/schema-readonly.js.map +1 -0
- package/dist/entities/files/schema.d.ts +42 -0
- package/dist/entities/files/schema.js +38 -0
- package/dist/entities/files/schema.js.map +1 -0
- package/dist/entities/index.d.ts +10 -0
- package/dist/entities/index.js +27 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/labels/index.d.ts +7 -0
- package/dist/entities/labels/index.js +31 -0
- package/dist/entities/labels/index.js.map +1 -0
- package/dist/entities/labels/registry.d.ts +5 -0
- package/dist/entities/labels/registry.js +186 -0
- package/dist/entities/labels/registry.js.map +1 -0
- package/dist/entities/labels/schema-readonly.d.ts +16 -0
- package/dist/entities/labels/schema-readonly.js +29 -0
- package/dist/entities/labels/schema-readonly.js.map +1 -0
- package/dist/entities/labels/schema.d.ts +26 -0
- package/dist/entities/labels/schema.js +50 -0
- package/dist/entities/labels/schema.js.map +1 -0
- package/dist/entities/milestones/index.d.ts +7 -0
- package/dist/entities/milestones/index.js +31 -0
- package/dist/entities/milestones/index.js.map +1 -0
- package/dist/entities/milestones/registry.d.ts +5 -0
- package/dist/entities/milestones/registry.js +316 -0
- package/dist/entities/milestones/registry.js.map +1 -0
- package/dist/entities/milestones/schema-readonly.d.ts +63 -0
- package/dist/entities/milestones/schema-readonly.js +68 -0
- package/dist/entities/milestones/schema-readonly.js.map +1 -0
- package/dist/entities/milestones/schema.d.ts +36 -0
- package/dist/entities/milestones/schema.js +52 -0
- package/dist/entities/milestones/schema.js.map +1 -0
- package/dist/entities/mrs/index.d.ts +7 -0
- package/dist/entities/mrs/index.js +31 -0
- package/dist/entities/mrs/index.js.map +1 -0
- package/dist/entities/mrs/registry.d.ts +5 -0
- package/dist/entities/mrs/registry.js +629 -0
- package/dist/entities/mrs/registry.js.map +1 -0
- package/dist/entities/mrs/schema-readonly.d.ts +127 -0
- package/dist/entities/mrs/schema-readonly.js +213 -0
- package/dist/entities/mrs/schema-readonly.js.map +1 -0
- package/dist/entities/mrs/schema.d.ts +285 -0
- package/dist/entities/mrs/schema.js +161 -0
- package/dist/entities/mrs/schema.js.map +1 -0
- package/dist/entities/pipelines/index.d.ts +7 -0
- package/dist/entities/pipelines/index.js +31 -0
- package/dist/entities/pipelines/index.js.map +1 -0
- package/dist/entities/pipelines/registry.d.ts +5 -0
- package/dist/entities/pipelines/registry.js +369 -0
- package/dist/entities/pipelines/registry.js.map +1 -0
- package/dist/entities/pipelines/schema-readonly.d.ts +238 -0
- package/dist/entities/pipelines/schema-readonly.js +257 -0
- package/dist/entities/pipelines/schema-readonly.js.map +1 -0
- package/dist/entities/pipelines/schema.d.ts +49 -0
- package/dist/entities/pipelines/schema.js +44 -0
- package/dist/entities/pipelines/schema.js.map +1 -0
- package/dist/entities/shared.d.ts +291 -0
- package/dist/entities/shared.js +277 -0
- package/dist/entities/shared.js.map +1 -0
- package/dist/entities/utils.d.ts +3 -0
- package/dist/entities/utils.js +22 -0
- package/dist/entities/utils.js.map +1 -0
- package/dist/entities/variables/index.d.ts +7 -0
- package/dist/entities/variables/index.js +31 -0
- package/dist/entities/variables/index.js.map +1 -0
- package/dist/entities/variables/registry.d.ts +5 -0
- package/dist/entities/variables/registry.js +192 -0
- package/dist/entities/variables/registry.js.map +1 -0
- package/dist/entities/variables/schema-readonly.d.ts +17 -0
- package/dist/entities/variables/schema-readonly.js +35 -0
- package/dist/entities/variables/schema-readonly.js.map +1 -0
- package/dist/entities/variables/schema.d.ts +45 -0
- package/dist/entities/variables/schema.js +127 -0
- package/dist/entities/variables/schema.js.map +1 -0
- package/dist/entities/wiki/index.d.ts +7 -0
- package/dist/entities/wiki/index.js +31 -0
- package/dist/entities/wiki/index.js.map +1 -0
- package/dist/entities/wiki/registry.d.ts +5 -0
- package/dist/entities/wiki/registry.js +195 -0
- package/dist/entities/wiki/registry.js.map +1 -0
- package/dist/entities/wiki/schema-readonly.d.ts +24 -0
- package/dist/entities/wiki/schema-readonly.js +34 -0
- package/dist/entities/wiki/schema-readonly.js.map +1 -0
- package/dist/entities/wiki/schema.d.ts +24 -0
- package/dist/entities/wiki/schema.js +37 -0
- package/dist/entities/wiki/schema.js.map +1 -0
- package/dist/entities/workitems/index.d.ts +7 -0
- package/dist/entities/workitems/index.js +31 -0
- package/dist/entities/workitems/index.js.map +1 -0
- package/dist/entities/workitems/registry.d.ts +5 -0
- package/dist/entities/workitems/registry.js +183 -0
- package/dist/entities/workitems/registry.js.map +1 -0
- package/dist/entities/workitems/schema-readonly.d.ts +46 -0
- package/dist/entities/workitems/schema-readonly.js +38 -0
- package/dist/entities/workitems/schema-readonly.js.map +1 -0
- package/dist/entities/workitems/schema.d.ts +37 -0
- package/dist/entities/workitems/schema.js +29 -0
- package/dist/entities/workitems/schema.js.map +1 -0
- package/dist/graphql/DynamicWorkItemsQuery.d.ts +56 -0
- package/dist/graphql/DynamicWorkItemsQuery.js +190 -0
- package/dist/graphql/DynamicWorkItemsQuery.js.map +1 -0
- package/dist/graphql/client.d.ts +15 -0
- package/dist/graphql/client.js +50 -0
- package/dist/graphql/client.js.map +1 -0
- package/dist/graphql/index.d.ts +2 -0
- package/dist/graphql/index.js +21 -0
- package/dist/graphql/index.js.map +1 -0
- package/dist/graphql/workItems.d.ts +430 -0
- package/dist/graphql/workItems.js +559 -0
- package/dist/graphql/workItems.js.map +1 -0
- package/dist/handlers.d.ts +2 -0
- package/dist/handlers.js +132 -0
- package/dist/handlers.js.map +1 -0
- package/dist/http-client.d.ts +1 -0
- package/dist/http-client.js +13 -0
- package/dist/http-client.js.map +1 -0
- package/dist/logger.d.ts +2 -0
- package/dist/logger.js +21 -0
- package/dist/logger.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.js +10 -0
- package/dist/main.js.map +1 -0
- package/dist/registry-manager.d.ts +25 -0
- package/dist/registry-manager.js +176 -0
- package/dist/registry-manager.js.map +1 -0
- package/dist/server.d.ts +25 -0
- package/dist/server.js +129 -0
- package/dist/server.js.map +1 -0
- package/dist/services/ConnectionManager.d.ts +27 -0
- package/dist/services/ConnectionManager.js +144 -0
- package/dist/services/ConnectionManager.js.map +1 -0
- package/dist/services/GitLabVersionDetector.d.ts +53 -0
- package/dist/services/GitLabVersionDetector.js +216 -0
- package/dist/services/GitLabVersionDetector.js.map +1 -0
- package/dist/services/SchemaIntrospector.d.ts +39 -0
- package/dist/services/SchemaIntrospector.js +188 -0
- package/dist/services/SchemaIntrospector.js.map +1 -0
- package/dist/services/ToolAvailability.d.ts +18 -0
- package/dist/services/ToolAvailability.js +373 -0
- package/dist/services/ToolAvailability.js.map +1 -0
- package/dist/services/WidgetAvailability.d.ts +14 -0
- package/dist/services/WidgetAvailability.js +84 -0
- package/dist/services/WidgetAvailability.js.map +1 -0
- package/dist/structured-world-gitlab-mcp-4.0.0.tgz +0 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/types.d.ts +21 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/fetch.d.ts +9 -0
- package/dist/utils/fetch.js +164 -0
- package/dist/utils/fetch.js.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.workitemsToolRegistry = void 0;
|
|
4
|
+
exports.getWorkitemsReadOnlyToolNames = getWorkitemsReadOnlyToolNames;
|
|
5
|
+
exports.getWorkitemsToolDefinitions = getWorkitemsToolDefinitions;
|
|
6
|
+
exports.getFilteredWorkitemsTools = getFilteredWorkitemsTools;
|
|
7
|
+
const zod_to_json_schema_1 = require("zod-to-json-schema");
|
|
8
|
+
const schema_readonly_1 = require("./schema-readonly");
|
|
9
|
+
const schema_1 = require("./schema");
|
|
10
|
+
const ConnectionManager_1 = require("../../services/ConnectionManager");
|
|
11
|
+
const workItems_1 = require("../../graphql/workItems");
|
|
12
|
+
exports.workitemsToolRegistry = new Map([
|
|
13
|
+
[
|
|
14
|
+
'list_work_items',
|
|
15
|
+
{
|
|
16
|
+
name: 'list_work_items',
|
|
17
|
+
description: 'List work items from a GitLab GROUP. CRITICAL GitLab Hierarchy: EPICS exist ONLY at GROUP level. ISSUES/TASKS/BUGS exist ONLY at PROJECT level. This tool queries GROUP-level work items (Epics). For Issues/Tasks, query the project they belong to, not the group.',
|
|
18
|
+
inputSchema: (0, zod_to_json_schema_1.zodToJsonSchema)(schema_readonly_1.ListWorkItemsSchema),
|
|
19
|
+
handler: async (args) => {
|
|
20
|
+
const options = schema_readonly_1.ListWorkItemsSchema.parse(args);
|
|
21
|
+
const { groupPath } = options;
|
|
22
|
+
const connectionManager = ConnectionManager_1.ConnectionManager.getInstance();
|
|
23
|
+
const client = connectionManager.getClient();
|
|
24
|
+
const response = await client.request(workItems_1.GET_WORK_ITEMS, {
|
|
25
|
+
groupPath: groupPath,
|
|
26
|
+
first: options.first || 20,
|
|
27
|
+
after: options.after,
|
|
28
|
+
});
|
|
29
|
+
return response.group?.workItems?.nodes || [];
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
[
|
|
34
|
+
'get_work_item',
|
|
35
|
+
{
|
|
36
|
+
name: 'get_work_item',
|
|
37
|
+
description: 'Get details of a specific work item by ID. Works for both GROUP-level (Epics) and PROJECT-level (Issues/Tasks) work items.',
|
|
38
|
+
inputSchema: (0, zod_to_json_schema_1.zodToJsonSchema)(schema_readonly_1.GetWorkItemSchema),
|
|
39
|
+
handler: async (args) => {
|
|
40
|
+
const options = schema_readonly_1.GetWorkItemSchema.parse(args);
|
|
41
|
+
const { id } = options;
|
|
42
|
+
const connectionManager = ConnectionManager_1.ConnectionManager.getInstance();
|
|
43
|
+
const client = connectionManager.getClient();
|
|
44
|
+
const response = await client.request(workItems_1.GET_WORK_ITEM, { id });
|
|
45
|
+
if (!response.workItem) {
|
|
46
|
+
throw new Error(`Work item with ID "${id}" not found`);
|
|
47
|
+
}
|
|
48
|
+
return response.workItem;
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
[
|
|
53
|
+
'get_work_item_types',
|
|
54
|
+
{
|
|
55
|
+
name: 'get_work_item_types',
|
|
56
|
+
description: 'Get available work item types for a GROUP. Returns Epic types and other group-level types. Note: Issue/Task/Bug types exist at project level, not group level.',
|
|
57
|
+
inputSchema: (0, zod_to_json_schema_1.zodToJsonSchema)(schema_readonly_1.GetWorkItemTypesSchema),
|
|
58
|
+
handler: async (args) => {
|
|
59
|
+
const options = schema_readonly_1.GetWorkItemTypesSchema.parse(args);
|
|
60
|
+
const { namespacePath } = options;
|
|
61
|
+
const connectionManager = ConnectionManager_1.ConnectionManager.getInstance();
|
|
62
|
+
const client = connectionManager.getClient();
|
|
63
|
+
const response = await client.request(workItems_1.GET_WORK_ITEM_TYPES, {
|
|
64
|
+
namespacePath: namespacePath,
|
|
65
|
+
});
|
|
66
|
+
return response.namespace?.workItemTypes?.nodes || [];
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
[
|
|
71
|
+
'create_work_item',
|
|
72
|
+
{
|
|
73
|
+
name: 'create_work_item',
|
|
74
|
+
description: 'Create a new work item using namespacePath (group or project). CRITICAL GitLab Hierarchy: EPICS can only be created in GROUPS, ISSUES/TASKS can only be created in PROJECTS. Use the correct namespace type for your work item type.',
|
|
75
|
+
inputSchema: (0, zod_to_json_schema_1.zodToJsonSchema)(schema_1.CreateWorkItemSchema),
|
|
76
|
+
handler: async (args) => {
|
|
77
|
+
const options = schema_1.CreateWorkItemSchema.parse(args);
|
|
78
|
+
const { namespacePath, title, workItemType, description } = options;
|
|
79
|
+
const connectionManager = ConnectionManager_1.ConnectionManager.getInstance();
|
|
80
|
+
const client = connectionManager.getClient();
|
|
81
|
+
const workItemTypesResponse = await client.request(workItems_1.GET_WORK_ITEM_TYPES, {
|
|
82
|
+
namespacePath,
|
|
83
|
+
});
|
|
84
|
+
const workItemTypes = workItemTypesResponse.namespace.workItemTypes.nodes;
|
|
85
|
+
const workItemTypeObj = workItemTypes.find((t) => t.name.toUpperCase() === workItemType);
|
|
86
|
+
if (!workItemTypeObj) {
|
|
87
|
+
throw new Error(`Work item type "${workItemType}" not found in namespace "${namespacePath}"`);
|
|
88
|
+
}
|
|
89
|
+
const response = description
|
|
90
|
+
? await client.request(workItems_1.CREATE_WORK_ITEM_WITH_DESCRIPTION, {
|
|
91
|
+
namespacePath,
|
|
92
|
+
title,
|
|
93
|
+
workItemTypeId: workItemTypeObj.id,
|
|
94
|
+
description,
|
|
95
|
+
})
|
|
96
|
+
: await client.request(workItems_1.CREATE_WORK_ITEM, {
|
|
97
|
+
namespacePath,
|
|
98
|
+
title,
|
|
99
|
+
workItemTypeId: workItemTypeObj.id,
|
|
100
|
+
});
|
|
101
|
+
if (response.workItemCreate?.errors?.length && response.workItemCreate.errors.length > 0) {
|
|
102
|
+
throw new Error(`GitLab GraphQL errors: ${response.workItemCreate.errors.join(', ')}`);
|
|
103
|
+
}
|
|
104
|
+
if (!response.workItemCreate?.workItem) {
|
|
105
|
+
throw new Error('Work item creation failed - no work item returned');
|
|
106
|
+
}
|
|
107
|
+
return response.workItemCreate.workItem;
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
[
|
|
112
|
+
'update_work_item',
|
|
113
|
+
{
|
|
114
|
+
name: 'update_work_item',
|
|
115
|
+
description: "Update an existing work item's properties",
|
|
116
|
+
inputSchema: (0, zod_to_json_schema_1.zodToJsonSchema)(schema_1.UpdateWorkItemSchema),
|
|
117
|
+
handler: async (args) => {
|
|
118
|
+
const options = schema_1.UpdateWorkItemSchema.parse(args);
|
|
119
|
+
const { id, title, description, state, assigneeIds, labelIds, milestoneId } = options;
|
|
120
|
+
const connectionManager = ConnectionManager_1.ConnectionManager.getInstance();
|
|
121
|
+
const client = connectionManager.getClient();
|
|
122
|
+
const input = { id };
|
|
123
|
+
if (title !== undefined)
|
|
124
|
+
input.title = title;
|
|
125
|
+
if (state !== undefined)
|
|
126
|
+
input.stateEvent = state;
|
|
127
|
+
if (description !== undefined) {
|
|
128
|
+
input.descriptionWidget = { description };
|
|
129
|
+
}
|
|
130
|
+
if (assigneeIds !== undefined && assigneeIds.length > 0) {
|
|
131
|
+
input.assigneesWidget = { assigneeIds };
|
|
132
|
+
}
|
|
133
|
+
if (labelIds !== undefined && labelIds.length > 0) {
|
|
134
|
+
input.labelsWidget = { addLabelIds: labelIds };
|
|
135
|
+
}
|
|
136
|
+
if (milestoneId !== undefined) {
|
|
137
|
+
input.milestoneWidget = { milestoneId };
|
|
138
|
+
}
|
|
139
|
+
const response = await client.request(workItems_1.UPDATE_WORK_ITEM, { input });
|
|
140
|
+
if (response.workItemUpdate?.errors?.length && response.workItemUpdate.errors.length > 0) {
|
|
141
|
+
throw new Error(`GitLab GraphQL errors: ${response.workItemUpdate.errors.join(', ')}`);
|
|
142
|
+
}
|
|
143
|
+
if (!response.workItemUpdate?.workItem) {
|
|
144
|
+
throw new Error('Work item update failed - no work item returned');
|
|
145
|
+
}
|
|
146
|
+
return response.workItemUpdate.workItem;
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
[
|
|
151
|
+
'delete_work_item',
|
|
152
|
+
{
|
|
153
|
+
name: 'delete_work_item',
|
|
154
|
+
description: 'Delete a work item',
|
|
155
|
+
inputSchema: (0, zod_to_json_schema_1.zodToJsonSchema)(schema_1.DeleteWorkItemSchema),
|
|
156
|
+
handler: async (args) => {
|
|
157
|
+
const options = schema_1.DeleteWorkItemSchema.parse(args);
|
|
158
|
+
const { id } = options;
|
|
159
|
+
const connectionManager = ConnectionManager_1.ConnectionManager.getInstance();
|
|
160
|
+
const client = connectionManager.getClient();
|
|
161
|
+
const response = await client.request(workItems_1.DELETE_WORK_ITEM, { id });
|
|
162
|
+
if (response.workItemDelete?.errors?.length && response.workItemDelete.errors.length > 0) {
|
|
163
|
+
throw new Error(`GitLab GraphQL errors: ${response.workItemDelete.errors.join(', ')}`);
|
|
164
|
+
}
|
|
165
|
+
return { deleted: true };
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
]);
|
|
170
|
+
function getWorkitemsReadOnlyToolNames() {
|
|
171
|
+
return ['list_work_items', 'get_work_item', 'get_work_item_types'];
|
|
172
|
+
}
|
|
173
|
+
function getWorkitemsToolDefinitions() {
|
|
174
|
+
return Array.from(exports.workitemsToolRegistry.values());
|
|
175
|
+
}
|
|
176
|
+
function getFilteredWorkitemsTools(readOnlyMode = false) {
|
|
177
|
+
if (readOnlyMode) {
|
|
178
|
+
const readOnlyNames = getWorkitemsReadOnlyToolNames();
|
|
179
|
+
return Array.from(exports.workitemsToolRegistry.values()).filter((tool) => readOnlyNames.includes(tool.name));
|
|
180
|
+
}
|
|
181
|
+
return getWorkitemsToolDefinitions();
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/entities/workitems/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const WorkItemIdSchema: z.ZodString;
|
|
3
|
+
export declare const WorkItemTypeEnumSchema: z.ZodEnum<{
|
|
4
|
+
OBJECTIVE: "OBJECTIVE";
|
|
5
|
+
KEY_RESULT: "KEY_RESULT";
|
|
6
|
+
REQUIREMENT: "REQUIREMENT";
|
|
7
|
+
ISSUE: "ISSUE";
|
|
8
|
+
INCIDENT: "INCIDENT";
|
|
9
|
+
TEST_CASE: "TEST_CASE";
|
|
10
|
+
TASK: "TASK";
|
|
11
|
+
EPIC: "EPIC";
|
|
12
|
+
}>;
|
|
13
|
+
export declare const WorkItemStateSchema: z.ZodEnum<{
|
|
14
|
+
OPEN: "OPEN";
|
|
15
|
+
CLOSED: "CLOSED";
|
|
16
|
+
}>;
|
|
17
|
+
export declare const WorkItemStateEventSchema: z.ZodEnum<{
|
|
18
|
+
CLOSE: "CLOSE";
|
|
19
|
+
REOPEN: "REOPEN";
|
|
20
|
+
}>;
|
|
21
|
+
export declare const ListWorkItemsSchema: z.ZodObject<{
|
|
22
|
+
groupPath: z.ZodString;
|
|
23
|
+
types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
24
|
+
OBJECTIVE: "OBJECTIVE";
|
|
25
|
+
KEY_RESULT: "KEY_RESULT";
|
|
26
|
+
REQUIREMENT: "REQUIREMENT";
|
|
27
|
+
ISSUE: "ISSUE";
|
|
28
|
+
INCIDENT: "INCIDENT";
|
|
29
|
+
TEST_CASE: "TEST_CASE";
|
|
30
|
+
TASK: "TASK";
|
|
31
|
+
EPIC: "EPIC";
|
|
32
|
+
}>>>;
|
|
33
|
+
first: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
34
|
+
after: z.ZodOptional<z.ZodString>;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
export declare const GetWorkItemSchema: z.ZodObject<{
|
|
37
|
+
id: z.ZodString;
|
|
38
|
+
}, z.core.$strip>;
|
|
39
|
+
export declare const GetWorkItemTypesSchema: z.ZodObject<{
|
|
40
|
+
namespacePath: z.ZodString;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
export type ListWorkItemsOptions = z.infer<typeof ListWorkItemsSchema>;
|
|
43
|
+
export type GetWorkItemOptions = z.infer<typeof GetWorkItemSchema>;
|
|
44
|
+
export type GetWorkItemTypesOptions = z.infer<typeof GetWorkItemTypesSchema>;
|
|
45
|
+
export type WorkItemTypeEnum = z.infer<typeof WorkItemTypeEnumSchema>;
|
|
46
|
+
export type WorkItemState = z.infer<typeof WorkItemStateSchema>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetWorkItemTypesSchema = exports.GetWorkItemSchema = exports.ListWorkItemsSchema = exports.WorkItemStateEventSchema = exports.WorkItemStateSchema = exports.WorkItemTypeEnumSchema = exports.WorkItemIdSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.WorkItemIdSchema = zod_1.z.string().min(1).describe('Work item ID');
|
|
6
|
+
exports.WorkItemTypeEnumSchema = zod_1.z
|
|
7
|
+
.enum([
|
|
8
|
+
'EPIC',
|
|
9
|
+
'ISSUE',
|
|
10
|
+
'TASK',
|
|
11
|
+
'INCIDENT',
|
|
12
|
+
'TEST_CASE',
|
|
13
|
+
'REQUIREMENT',
|
|
14
|
+
'OBJECTIVE',
|
|
15
|
+
'KEY_RESULT',
|
|
16
|
+
])
|
|
17
|
+
.describe('Type of work item');
|
|
18
|
+
exports.WorkItemStateSchema = zod_1.z.enum(['OPEN', 'CLOSED']).describe('State of work item');
|
|
19
|
+
exports.WorkItemStateEventSchema = zod_1.z
|
|
20
|
+
.enum(['CLOSE', 'REOPEN'])
|
|
21
|
+
.describe('State event for updating work item');
|
|
22
|
+
exports.ListWorkItemsSchema = zod_1.z.object({
|
|
23
|
+
groupPath: zod_1.z
|
|
24
|
+
.string()
|
|
25
|
+
.describe('Group path for listing work items (epics only exist at group level)'),
|
|
26
|
+
types: zod_1.z.array(exports.WorkItemTypeEnumSchema).optional().describe('Filter by work item types'),
|
|
27
|
+
first: zod_1.z.number().optional().default(20).describe('Number of items to fetch'),
|
|
28
|
+
after: zod_1.z.string().optional().describe('Cursor for pagination'),
|
|
29
|
+
});
|
|
30
|
+
exports.GetWorkItemSchema = zod_1.z.object({
|
|
31
|
+
id: exports.WorkItemIdSchema,
|
|
32
|
+
});
|
|
33
|
+
exports.GetWorkItemTypesSchema = zod_1.z.object({
|
|
34
|
+
namespacePath: zod_1.z
|
|
35
|
+
.string()
|
|
36
|
+
.describe('Namespace path (group or project) to get work item types for'),
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=schema-readonly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-readonly.js","sourceRoot":"","sources":["../../../src/entities/workitems/schema-readonly.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAGX,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAE9D,QAAA,sBAAsB,GAAG,OAAC;KACpC,IAAI,CAAC;IACJ,MAAM;IACN,OAAO;IACP,MAAM;IACN,UAAU;IACV,WAAW;IACX,aAAa;IACb,WAAW;IACX,YAAY;CACb,CAAC;KACD,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAEpB,QAAA,mBAAmB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAEhF,QAAA,wBAAwB,GAAG,OAAC;KACtC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;KACzB,QAAQ,CAAC,oCAAoC,CAAC,CAAC;AAGrC,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,OAAC;SACT,MAAM,EAAE;SACR,QAAQ,CAAC,qEAAqE,CAAC;IAClF,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,8BAAsB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACvF,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC7E,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;CAC/D,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,wBAAgB;CACrB,CAAC,CAAC;AAEU,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,aAAa,EAAE,OAAC;SACb,MAAM,EAAE;SACR,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const CreateWorkItemSchema: z.ZodObject<{
|
|
3
|
+
namespacePath: z.ZodString;
|
|
4
|
+
title: z.ZodString;
|
|
5
|
+
workItemType: z.ZodEnum<{
|
|
6
|
+
OBJECTIVE: "OBJECTIVE";
|
|
7
|
+
KEY_RESULT: "KEY_RESULT";
|
|
8
|
+
REQUIREMENT: "REQUIREMENT";
|
|
9
|
+
ISSUE: "ISSUE";
|
|
10
|
+
INCIDENT: "INCIDENT";
|
|
11
|
+
TEST_CASE: "TEST_CASE";
|
|
12
|
+
TASK: "TASK";
|
|
13
|
+
EPIC: "EPIC";
|
|
14
|
+
}>;
|
|
15
|
+
description: z.ZodOptional<z.ZodString>;
|
|
16
|
+
assigneeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
17
|
+
labelIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
18
|
+
milestoneId: z.ZodOptional<z.ZodString>;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export declare const UpdateWorkItemSchema: z.ZodObject<{
|
|
21
|
+
id: z.ZodString;
|
|
22
|
+
title: z.ZodOptional<z.ZodString>;
|
|
23
|
+
description: z.ZodOptional<z.ZodString>;
|
|
24
|
+
state: z.ZodOptional<z.ZodEnum<{
|
|
25
|
+
CLOSE: "CLOSE";
|
|
26
|
+
REOPEN: "REOPEN";
|
|
27
|
+
}>>;
|
|
28
|
+
assigneeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
29
|
+
labelIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
30
|
+
milestoneId: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
export declare const DeleteWorkItemSchema: z.ZodObject<{
|
|
33
|
+
id: z.ZodString;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
export type CreateWorkItemOptions = z.infer<typeof CreateWorkItemSchema>;
|
|
36
|
+
export type UpdateWorkItemOptions = z.infer<typeof UpdateWorkItemSchema>;
|
|
37
|
+
export type DeleteWorkItemOptions = z.infer<typeof DeleteWorkItemSchema>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeleteWorkItemSchema = exports.UpdateWorkItemSchema = exports.CreateWorkItemSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const schema_readonly_1 = require("./schema-readonly");
|
|
6
|
+
exports.CreateWorkItemSchema = zod_1.z.object({
|
|
7
|
+
namespacePath: zod_1.z
|
|
8
|
+
.string()
|
|
9
|
+
.describe('CRITICAL: Namespace path (group OR project). For Epics use GROUP path (e.g. "my-group"). For Issues/Tasks use PROJECT path (e.g. "my-group/my-project"). Wrong level will cause creation to fail.'),
|
|
10
|
+
title: zod_1.z.string().describe('Title of the work item'),
|
|
11
|
+
workItemType: schema_readonly_1.WorkItemTypeEnumSchema,
|
|
12
|
+
description: zod_1.z.string().optional().describe('Description of the work item'),
|
|
13
|
+
assigneeIds: zod_1.z.array(zod_1.z.string()).optional().describe('Array of assignee user IDs'),
|
|
14
|
+
labelIds: zod_1.z.array(zod_1.z.string()).optional().describe('Array of label IDs'),
|
|
15
|
+
milestoneId: zod_1.z.string().optional().describe('Milestone ID'),
|
|
16
|
+
});
|
|
17
|
+
exports.UpdateWorkItemSchema = zod_1.z.object({
|
|
18
|
+
id: schema_readonly_1.WorkItemIdSchema,
|
|
19
|
+
title: zod_1.z.string().optional().describe('New title for the work item'),
|
|
20
|
+
description: zod_1.z.string().optional().describe('New description for the work item'),
|
|
21
|
+
state: schema_readonly_1.WorkItemStateEventSchema.optional().describe('State event for the work item (CLOSE, REOPEN)'),
|
|
22
|
+
assigneeIds: zod_1.z.array(zod_1.z.string()).optional().describe('Array of assignee user IDs'),
|
|
23
|
+
labelIds: zod_1.z.array(zod_1.z.string()).optional().describe('Array of label IDs'),
|
|
24
|
+
milestoneId: zod_1.z.string().optional().describe('Milestone ID'),
|
|
25
|
+
});
|
|
26
|
+
exports.DeleteWorkItemSchema = zod_1.z.object({
|
|
27
|
+
id: schema_readonly_1.WorkItemIdSchema,
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/entities/workitems/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,uDAI2B;AA4Bd,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,aAAa,EAAE,OAAC;SACb,MAAM,EAAE;SACR,QAAQ,CACP,mMAAmM,CACpM;IACH,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACpD,YAAY,EAAE,wCAAsB;IACpC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC3E,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAClF,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACvE,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC5D,CAAC,CAAC;AAEU,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,kCAAgB;IACpB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACpE,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAChF,KAAK,EAAE,0CAAwB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACjD,+CAA+C,CAChD;IACD,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAClF,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACvE,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC5D,CAAC,CAAC;AAEU,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,kCAAgB;CACrB,CAAC,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { TypedDocumentNode } from '@graphql-typed-document-node/core';
|
|
2
|
+
import { SchemaIntrospector } from '../services/SchemaIntrospector';
|
|
3
|
+
export interface DynamicWorkItem {
|
|
4
|
+
id: string;
|
|
5
|
+
iid: string;
|
|
6
|
+
title: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
state: string;
|
|
9
|
+
workItemType: {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
};
|
|
13
|
+
createdAt: string;
|
|
14
|
+
updatedAt: string;
|
|
15
|
+
closedAt?: string;
|
|
16
|
+
webUrl: string;
|
|
17
|
+
widgets: Array<{
|
|
18
|
+
type: string;
|
|
19
|
+
[key: string]: unknown;
|
|
20
|
+
}>;
|
|
21
|
+
}
|
|
22
|
+
export declare class DynamicWorkItemsQueryBuilder {
|
|
23
|
+
private schemaIntrospector;
|
|
24
|
+
constructor(schemaIntrospector: SchemaIntrospector);
|
|
25
|
+
buildWorkItemsQuery(requestedWidgets?: string[]): TypedDocumentNode<{
|
|
26
|
+
group: {
|
|
27
|
+
workItems: {
|
|
28
|
+
nodes: DynamicWorkItem[];
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
}, {
|
|
32
|
+
groupPath: string;
|
|
33
|
+
types?: string[];
|
|
34
|
+
first?: number;
|
|
35
|
+
after?: string;
|
|
36
|
+
}>;
|
|
37
|
+
private buildWidgetFragments;
|
|
38
|
+
private buildWidgetFragment;
|
|
39
|
+
private getWidgetTypeName;
|
|
40
|
+
private buildSafeFields;
|
|
41
|
+
private buildAssigneesFields;
|
|
42
|
+
private buildLabelsFields;
|
|
43
|
+
private buildMilestoneFields;
|
|
44
|
+
private buildDescriptionFields;
|
|
45
|
+
buildMinimalQuery(): TypedDocumentNode<{
|
|
46
|
+
group: {
|
|
47
|
+
workItems: {
|
|
48
|
+
nodes: DynamicWorkItem[];
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
}, {
|
|
52
|
+
groupPath: string;
|
|
53
|
+
first?: number;
|
|
54
|
+
after?: string;
|
|
55
|
+
}>;
|
|
56
|
+
}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DynamicWorkItemsQueryBuilder = void 0;
|
|
4
|
+
const graphql_tag_1 = require("graphql-tag");
|
|
5
|
+
const logger_1 = require("../logger");
|
|
6
|
+
class DynamicWorkItemsQueryBuilder {
|
|
7
|
+
schemaIntrospector;
|
|
8
|
+
constructor(schemaIntrospector) {
|
|
9
|
+
this.schemaIntrospector = schemaIntrospector;
|
|
10
|
+
}
|
|
11
|
+
buildWorkItemsQuery(requestedWidgets) {
|
|
12
|
+
const widgets = requestedWidgets ?? this.schemaIntrospector.getAvailableWidgetTypes();
|
|
13
|
+
const availableWidgets = widgets.filter((widget) => this.schemaIntrospector.isWidgetTypeAvailable(widget));
|
|
14
|
+
logger_1.logger.info({
|
|
15
|
+
requested: widgets.length,
|
|
16
|
+
available: availableWidgets.length,
|
|
17
|
+
widgetTypes: availableWidgets.slice(0, 5),
|
|
18
|
+
}, 'Building dynamic WorkItems query');
|
|
19
|
+
const widgetFragments = this.buildWidgetFragments(availableWidgets);
|
|
20
|
+
const query = (0, graphql_tag_1.gql) `
|
|
21
|
+
query GetWorkItems($groupPath: ID!, $types: [IssueType!], $first: Int, $after: String) {
|
|
22
|
+
group(fullPath: $groupPath) {
|
|
23
|
+
workItems(types: $types, first: $first, after: $after) {
|
|
24
|
+
nodes {
|
|
25
|
+
id
|
|
26
|
+
iid
|
|
27
|
+
title
|
|
28
|
+
description
|
|
29
|
+
state
|
|
30
|
+
workItemType {
|
|
31
|
+
id
|
|
32
|
+
name
|
|
33
|
+
}
|
|
34
|
+
createdAt
|
|
35
|
+
updatedAt
|
|
36
|
+
closedAt
|
|
37
|
+
webUrl
|
|
38
|
+
widgets {
|
|
39
|
+
type
|
|
40
|
+
${widgetFragments}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
`;
|
|
47
|
+
return query;
|
|
48
|
+
}
|
|
49
|
+
buildWidgetFragments(widgetTypes) {
|
|
50
|
+
const fragments = [];
|
|
51
|
+
for (const widgetType of widgetTypes) {
|
|
52
|
+
const fragment = this.buildWidgetFragment(widgetType);
|
|
53
|
+
if (fragment) {
|
|
54
|
+
fragments.push(fragment);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return fragments.join('\n');
|
|
58
|
+
}
|
|
59
|
+
buildWidgetFragment(widgetType) {
|
|
60
|
+
const typeName = this.getWidgetTypeName(widgetType);
|
|
61
|
+
const fields = this.schemaIntrospector.getFieldsForType(typeName);
|
|
62
|
+
if (fields.length === 0) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const safeFields = this.buildSafeFields(widgetType, fields);
|
|
66
|
+
if (safeFields.length === 0) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
return `
|
|
70
|
+
... on ${typeName} {
|
|
71
|
+
${safeFields.join('\n ')}
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
74
|
+
}
|
|
75
|
+
getWidgetTypeName(widgetType) {
|
|
76
|
+
const pascalCase = widgetType
|
|
77
|
+
.split('_')
|
|
78
|
+
.map((part) => part.charAt(0) + part.slice(1).toLowerCase())
|
|
79
|
+
.join('');
|
|
80
|
+
return `WorkItemWidget${pascalCase}`;
|
|
81
|
+
}
|
|
82
|
+
buildSafeFields(widgetType, fields) {
|
|
83
|
+
const safeFields = [];
|
|
84
|
+
const widgetFieldMappings = {
|
|
85
|
+
ASSIGNEES: () => this.buildAssigneesFields(),
|
|
86
|
+
LABELS: () => this.buildLabelsFields(),
|
|
87
|
+
MILESTONE: () => this.buildMilestoneFields(),
|
|
88
|
+
DESCRIPTION: () => this.buildDescriptionFields(),
|
|
89
|
+
START_AND_DUE_DATE: () => ['startDate', 'dueDate'],
|
|
90
|
+
WEIGHT: () => ['weight'],
|
|
91
|
+
TIME_TRACKING: () => ['timeEstimate', 'totalTimeSpent'],
|
|
92
|
+
HEALTH_STATUS: () => ['healthStatus'],
|
|
93
|
+
COLOR: () => ['color'],
|
|
94
|
+
NOTIFICATIONS: () => ['subscribed'],
|
|
95
|
+
};
|
|
96
|
+
const mapper = widgetFieldMappings[widgetType];
|
|
97
|
+
if (mapper) {
|
|
98
|
+
return mapper();
|
|
99
|
+
}
|
|
100
|
+
for (const field of fields) {
|
|
101
|
+
if (field.name === 'type')
|
|
102
|
+
continue;
|
|
103
|
+
if (field.type?.kind === 'SCALAR' || field.type?.kind === 'ENUM') {
|
|
104
|
+
safeFields.push(field.name);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return safeFields;
|
|
108
|
+
}
|
|
109
|
+
buildAssigneesFields() {
|
|
110
|
+
if (this.schemaIntrospector.hasField('WorkItemWidgetAssignees', 'assignees')) {
|
|
111
|
+
return [
|
|
112
|
+
'assignees {',
|
|
113
|
+
' nodes {',
|
|
114
|
+
' id',
|
|
115
|
+
' username',
|
|
116
|
+
' name',
|
|
117
|
+
' avatarUrl',
|
|
118
|
+
' }',
|
|
119
|
+
'}',
|
|
120
|
+
];
|
|
121
|
+
}
|
|
122
|
+
return [];
|
|
123
|
+
}
|
|
124
|
+
buildLabelsFields() {
|
|
125
|
+
if (this.schemaIntrospector.hasField('WorkItemWidgetLabels', 'labels')) {
|
|
126
|
+
return [
|
|
127
|
+
'labels {',
|
|
128
|
+
' nodes {',
|
|
129
|
+
' id',
|
|
130
|
+
' title',
|
|
131
|
+
' color',
|
|
132
|
+
' description',
|
|
133
|
+
' }',
|
|
134
|
+
'}',
|
|
135
|
+
];
|
|
136
|
+
}
|
|
137
|
+
return [];
|
|
138
|
+
}
|
|
139
|
+
buildMilestoneFields() {
|
|
140
|
+
if (this.schemaIntrospector.hasField('WorkItemWidgetMilestone', 'milestone')) {
|
|
141
|
+
return [
|
|
142
|
+
'milestone {',
|
|
143
|
+
' id',
|
|
144
|
+
' title',
|
|
145
|
+
' state',
|
|
146
|
+
' dueDate',
|
|
147
|
+
' startDate',
|
|
148
|
+
' webPath',
|
|
149
|
+
'}',
|
|
150
|
+
];
|
|
151
|
+
}
|
|
152
|
+
return [];
|
|
153
|
+
}
|
|
154
|
+
buildDescriptionFields() {
|
|
155
|
+
const fields = ['description'];
|
|
156
|
+
if (this.schemaIntrospector.hasField('WorkItemWidgetDescription', 'descriptionHtml')) {
|
|
157
|
+
fields.push('descriptionHtml');
|
|
158
|
+
}
|
|
159
|
+
if (this.schemaIntrospector.hasField('WorkItemWidgetDescription', 'edited')) {
|
|
160
|
+
fields.push('edited');
|
|
161
|
+
}
|
|
162
|
+
return fields;
|
|
163
|
+
}
|
|
164
|
+
buildMinimalQuery() {
|
|
165
|
+
const query = (0, graphql_tag_1.gql) `
|
|
166
|
+
query GetWorkItemsMinimal($groupPath: ID!, $first: Int, $after: String) {
|
|
167
|
+
group(fullPath: $groupPath) {
|
|
168
|
+
workItems(first: $first, after: $after) {
|
|
169
|
+
nodes {
|
|
170
|
+
id
|
|
171
|
+
iid
|
|
172
|
+
title
|
|
173
|
+
state
|
|
174
|
+
workItemType {
|
|
175
|
+
id
|
|
176
|
+
name
|
|
177
|
+
}
|
|
178
|
+
widgets {
|
|
179
|
+
type
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
`;
|
|
186
|
+
return query;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
exports.DynamicWorkItemsQueryBuilder = DynamicWorkItemsQueryBuilder;
|
|
190
|
+
//# sourceMappingURL=DynamicWorkItemsQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicWorkItemsQuery.js","sourceRoot":"","sources":["../../src/graphql/DynamicWorkItemsQuery.ts"],"names":[],"mappings":";;;AAAA,6CAAkC;AAGlC,sCAAmC;AAmBnC,MAAa,4BAA4B;IAC/B,kBAAkB,CAAqB;IAE/C,YAAY,kBAAsC;QAChD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAKM,mBAAmB,CACxB,gBAA2B;QAM3B,MAAM,OAAO,GAAG,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,CAAC;QAGtF,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACjD,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CACtD,CAAC;QAEF,eAAM,CAAC,IAAI,CACT;YACE,SAAS,EAAE,OAAO,CAAC,MAAM;YACzB,SAAS,EAAE,gBAAgB,CAAC,MAAM;YAClC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SAC1C,EACD,kCAAkC,CACnC,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAEpE,MAAM,KAAK,GAAG,IAAA,iBAAG,EAAA;;;;;;;;;;;;;;;;;;;;kBAoBH,eAAe;;;;;;KAM5B,CAAC;QAEF,OAAO,KAGN,CAAC;IACJ,CAAC;IAKO,oBAAoB,CAAC,WAAqB;QAChD,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,QAAQ,EAAE,CAAC;gBACb,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAKO,mBAAmB,CAAC,UAAkB;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAElE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAGD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAE5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;eACI,QAAQ;UACb,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;;KAElC,CAAC;IACJ,CAAC;IAKO,iBAAiB,CAAC,UAAkB;QAE1C,MAAM,UAAU,GAAG,UAAU;aAC1B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,OAAO,iBAAiB,UAAU,EAAE,CAAC;IACvC,CAAC;IAKO,eAAe,CAAC,UAAkB,EAAE,MAAmB;QAC7D,MAAM,UAAU,GAAa,EAAE,CAAC;QAGhC,MAAM,mBAAmB,GAAmC;YAC1D,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5C,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACtC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5C,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAChD,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC;YAClD,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC;YACxB,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,cAAc,EAAE,gBAAgB,CAAC;YACvD,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC;YACrC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;YACtB,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC;SACpC,CAAC;QAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,EAAE,CAAC;QAClB,CAAC;QAGD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YAEpC,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,oBAAoB;QAC1B,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,yBAAyB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7E,OAAO;gBACL,aAAa;gBACb,WAAW;gBACX,QAAQ;gBACR,cAAc;gBACd,UAAU;gBACV,eAAe;gBACf,KAAK;gBACL,GAAG;aACJ,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,sBAAsB,EAAE,QAAQ,CAAC,EAAE,CAAC;YACvE,OAAO;gBACL,UAAU;gBACV,WAAW;gBACX,QAAQ;gBACR,WAAW;gBACX,WAAW;gBACX,iBAAiB;gBACjB,KAAK;gBACL,GAAG;aACJ,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,oBAAoB;QAC1B,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,yBAAyB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7E,OAAO;gBACL,aAAa;gBACb,MAAM;gBACN,SAAS;gBACT,SAAS;gBACT,WAAW;gBACX,aAAa;gBACb,WAAW;gBACX,GAAG;aACJ,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,sBAAsB;QAC5B,MAAM,MAAM,GAAG,CAAC,aAAa,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,2BAA2B,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACrF,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,2BAA2B,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC5E,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAKM,iBAAiB;QAItB,MAAM,KAAK,GAAG,IAAA,iBAAG,EAAA;;;;;;;;;;;;;;;;;;;;KAoBhB,CAAC;QAEF,OAAO,KAGN,CAAC;IACJ,CAAC;CACF;AAhQD,oEAgQC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TypedDocumentNode } from '@graphql-typed-document-node/core';
|
|
2
|
+
export interface GraphQLClientOptions {
|
|
3
|
+
endpoint: string;
|
|
4
|
+
headers?: Record<string, string>;
|
|
5
|
+
}
|
|
6
|
+
export declare class GraphQLClient {
|
|
7
|
+
readonly endpoint: string;
|
|
8
|
+
private defaultHeaders;
|
|
9
|
+
constructor(endpoint: string, options?: {
|
|
10
|
+
headers?: Record<string, string>;
|
|
11
|
+
});
|
|
12
|
+
request<TResult = unknown, TVariables = Record<string, unknown>>(document: TypedDocumentNode<TResult, TVariables>, variables?: TVariables, requestHeaders?: Record<string, string>): Promise<TResult>;
|
|
13
|
+
setHeaders(headers: Record<string, string>): void;
|
|
14
|
+
setAuthToken(token: string): void;
|
|
15
|
+
}
|