@qase/mcp-server 2.3.1 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/build/operations-v2/composites/ci-report.js +68 -14
- package/build/operations-v2/composites/ci-report.js.map +1 -1
- package/build/operations-v2/composites/regression-run.js +8 -3
- package/build/operations-v2/composites/regression-run.js.map +1 -1
- package/build/operations-v2/composites/triage-defect.js +15 -5
- package/build/operations-v2/composites/triage-defect.js.map +1 -1
- package/build/operations-v2/escape/api.js +27 -5
- package/build/operations-v2/escape/api.js.map +1 -1
- package/build/operations-v2/index.d.ts +2 -0
- package/build/operations-v2/index.d.ts.map +1 -1
- package/build/operations-v2/index.js +2 -0
- package/build/operations-v2/index.js.map +1 -1
- package/build/operations-v2/meta/discover.js +8 -3
- package/build/operations-v2/meta/discover.js.map +1 -1
- package/build/operations-v2/qql/index.js +19 -6
- package/build/operations-v2/qql/index.js.map +1 -1
- package/build/operations-v2/read/get.js +10 -4
- package/build/operations-v2/read/get.js.map +1 -1
- package/build/operations-v2/read/project-context.js +11 -7
- package/build/operations-v2/read/project-context.js.map +1 -1
- package/build/operations-v2/write/attachments.js +17 -8
- package/build/operations-v2/write/attachments.js.map +1 -1
- package/build/operations-v2/write/cases-bulk.js +9 -5
- package/build/operations-v2/write/cases-bulk.js.map +1 -1
- package/build/operations-v2/write/cases.js +16 -6
- package/build/operations-v2/write/cases.js.map +1 -1
- package/build/operations-v2/write/custom-fields.d.ts +2 -0
- package/build/operations-v2/write/custom-fields.d.ts.map +1 -0
- package/build/operations-v2/write/custom-fields.js +226 -0
- package/build/operations-v2/write/custom-fields.js.map +1 -0
- package/build/operations-v2/write/defects.js +26 -4
- package/build/operations-v2/write/defects.js.map +1 -1
- package/build/operations-v2/write/environments.js +11 -3
- package/build/operations-v2/write/environments.js.map +1 -1
- package/build/operations-v2/write/external-issues.js +7 -5
- package/build/operations-v2/write/external-issues.js.map +1 -1
- package/build/operations-v2/write/milestones.js +10 -3
- package/build/operations-v2/write/milestones.js.map +1 -1
- package/build/operations-v2/write/plans.js +11 -3
- package/build/operations-v2/write/plans.js.map +1 -1
- package/build/operations-v2/write/projects.d.ts +2 -0
- package/build/operations-v2/write/projects.d.ts.map +1 -0
- package/build/operations-v2/write/projects.js +77 -0
- package/build/operations-v2/write/projects.js.map +1 -0
- package/build/operations-v2/write/results.js +48 -10
- package/build/operations-v2/write/results.js.map +1 -1
- package/build/operations-v2/write/reviews.js +28 -13
- package/build/operations-v2/write/reviews.js.map +1 -1
- package/build/operations-v2/write/runs.js +20 -3
- package/build/operations-v2/write/runs.js.map +1 -1
- package/build/operations-v2/write/shared-steps.js +11 -3
- package/build/operations-v2/write/shared-steps.js.map +1 -1
- package/build/operations-v2/write/suites.js +17 -5
- package/build/operations-v2/write/suites.js.map +1 -1
- package/build/server-instructions.d.ts +9 -0
- package/build/server-instructions.d.ts.map +1 -0
- package/build/server-instructions.js +21 -0
- package/build/server-instructions.js.map +1 -0
- package/build/server.d.ts.map +1 -1
- package/build/server.js +2 -0
- package/build/server.js.map +1 -1
- package/build/utils/case-enums.d.ts +6 -0
- package/build/utils/case-enums.d.ts.map +1 -1
- package/build/utils/case-enums.js +11 -3
- package/build/utils/case-enums.js.map +1 -1
- package/build/utils/registry.d.ts.map +1 -1
- package/build/utils/registry.js +11 -3
- package/build/utils/registry.js.map +1 -1
- package/build/version.d.ts +1 -1
- package/build/version.js +1 -1
- package/docs/tools.md +2 -2
- package/package.json +2 -2
- package/server.json +2 -2
|
@@ -177,13 +177,17 @@ async function handler(args) {
|
|
|
177
177
|
}
|
|
178
178
|
toolRegistry.register({
|
|
179
179
|
name: 'qase_project_context',
|
|
180
|
-
description: '
|
|
181
|
-
'environments, custom fields, and users.
|
|
182
|
-
'
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
'collection, so check it before assuming a list is complete
|
|
186
|
-
'through everything.'
|
|
180
|
+
description: 'Seed everything about a project in one call: project details, the full suite tree, ' +
|
|
181
|
+
'milestones, environments, custom fields, and users. This is the first call to make when ' +
|
|
182
|
+
'starting work on a project — it replaces six separate list calls and gives the model the ' +
|
|
183
|
+
'metadata it needs to build any later query. Each collection returns its first ' +
|
|
184
|
+
`${PAGE_SIZE} entities; the \`coverage\` field reports { total, loaded, truncated } per ` +
|
|
185
|
+
'collection, so check it before assuming a list is complete, and pass `full: true` to page ' +
|
|
186
|
+
'through everything. For a single record you already have the ID for, qase_get is cheaper; ' +
|
|
187
|
+
'for filtered or cross-project questions, use qql_search. Cost: six API calls behind one ' +
|
|
188
|
+
'tool call, 0.5-1.3s cold, and 16-48KB of response depending on project size. Cached for ' +
|
|
189
|
+
'5 minutes, so repeat calls inside that window return in about 5ms. `full: true` costs one ' +
|
|
190
|
+
'extra call per 100 entities and can return thousands of items.',
|
|
187
191
|
schema: Schema,
|
|
188
192
|
handler,
|
|
189
193
|
annotations: ReadAnnotation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-context.js","sourceRoot":"","sources":["../../../src/operations-v2/read/project-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project-context.js","sourceRoot":"","sources":["../../../src/operations-v2/read/project-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,13 +91,18 @@ async function del(args) {
|
|
|
91
91
|
}
|
|
92
92
|
toolRegistry.register({
|
|
93
93
|
name: 'qase_attachment_upload',
|
|
94
|
-
description: 'Upload a file
|
|
95
|
-
'
|
|
96
|
-
'
|
|
97
|
-
'
|
|
98
|
-
'
|
|
99
|
-
'
|
|
100
|
-
'
|
|
94
|
+
description: 'Upload a file and get back the hash that other tools reference it by — screenshots, logs, ' +
|
|
95
|
+
'HAR files, videos. Pass `file_base64` with the base64-encoded bytes, or `file_path` with an ' +
|
|
96
|
+
'absolute path; `filename` with its extension is always required. Use `file_base64` unless ' +
|
|
97
|
+
'the server runs on the same machine as the file: a remote server, the hosted connector ' +
|
|
98
|
+
'included, cannot see your filesystem, and `file_path` will simply not find the file. The ' +
|
|
99
|
+
'returned hash is what goes in the `attachments` field of qase_case_upsert, ' +
|
|
100
|
+
'qase_result_record, qase_defect_upsert or qase_triage_defect — uploading alone attaches ' +
|
|
101
|
+
'nothing, the hash has to be passed on. This is the only tool that sends ' +
|
|
102
|
+
'multipart/form-data, which is why qase_api cannot send them. Upload once and reuse the ' +
|
|
103
|
+
'hash rather than re-uploading the same evidence per case. Cost: one API call per file, ' +
|
|
104
|
+
'dominated by file size rather than round trip — well under a second for a screenshot, ' +
|
|
105
|
+
'seconds for a video. Base64 inflates the payload by about a third.',
|
|
101
106
|
schema: UploadSchema,
|
|
102
107
|
handler: upload,
|
|
103
108
|
annotations: CreateAnnotation,
|
|
@@ -107,7 +112,11 @@ toolRegistry.register({
|
|
|
107
112
|
});
|
|
108
113
|
toolRegistry.register({
|
|
109
114
|
name: 'qase_attachment_delete',
|
|
110
|
-
description: 'Delete an attachment by its hash.'
|
|
115
|
+
description: 'Delete an attachment by its hash. Anything referencing it — a case, a result, a defect — ' +
|
|
116
|
+
'keeps the reference but the file is gone, so screenshots and logs attached to a failure ' +
|
|
117
|
+
'disappear from the evidence trail. This cannot be undone. Attachments are addressed by hash, ' +
|
|
118
|
+
'not numeric ID; the hash comes back from qase_attachment_upload. Deletion asks the user for ' +
|
|
119
|
+
'confirmation and does not proceed without it. Cost: one API call, about 0.4s.',
|
|
111
120
|
schema: DeleteSchema,
|
|
112
121
|
handler: del,
|
|
113
122
|
annotations: DeleteAnnotation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../../src/operations-v2/write/attachments.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../../src/operations-v2/write/attachments.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,11 +47,15 @@ async function handler(rawArgs) {
|
|
|
47
47
|
}
|
|
48
48
|
toolRegistry.register({
|
|
49
49
|
name: 'qase_case_bulk_create',
|
|
50
|
-
description: `Create up to ${MAX_CASES} test cases in
|
|
51
|
-
'
|
|
52
|
-
'
|
|
53
|
-
'numeric IDs
|
|
54
|
-
'
|
|
50
|
+
description: `Create up to ${MAX_CASES} test cases in one request — the batch form of qase_case_upsert, ` +
|
|
51
|
+
'and the right tool whenever more than one case is being written. Takes a list of cases ' +
|
|
52
|
+
'with the same fields and the same enum handling as qase_case_upsert: labels ("high", ' +
|
|
53
|
+
'"blocker") or numeric IDs both work, steps classic or Gherkin. The batch is validated as ' +
|
|
54
|
+
'a whole, so an invalid item means nothing is created, and each item is then reported ' +
|
|
55
|
+
'individually. Returns the IDs in the order submitted. This creates only; to change an ' +
|
|
56
|
+
'existing case use qase_case_upsert with its `id`. Cost: one API call regardless of batch ' +
|
|
57
|
+
'size. Ten cases measured 1.2s here against 5.6s as ten separate qase_case_upsert calls — ' +
|
|
58
|
+
'four times faster and one tenth of the calls. Split larger imports across several calls.',
|
|
55
59
|
schema: Schema,
|
|
56
60
|
handler,
|
|
57
61
|
annotations: CreateAnnotation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cases-bulk.js","sourceRoot":"","sources":["../../../src/operations-v2/write/cases-bulk.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cases-bulk.js","sourceRoot":"","sources":["../../../src/operations-v2/write/cases-bulk.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,18 +37,28 @@ async function del(args) {
|
|
|
37
37
|
}
|
|
38
38
|
toolRegistry.register({
|
|
39
39
|
name: 'qase_case_upsert',
|
|
40
|
-
description: 'Create or update a test case.
|
|
41
|
-
'
|
|
42
|
-
'
|
|
43
|
-
'
|
|
44
|
-
'
|
|
40
|
+
description: 'Create or update a single test case. With `id` it updates that case, without `id` it creates ' +
|
|
41
|
+
'a new one. Enum fields (priority, severity, type, layer, behavior, automation) accept either ' +
|
|
42
|
+
'a label such as "high" or "blocker" or the project\'s numeric ID — the server normalizes ' +
|
|
43
|
+
'both. Steps can be classic action/expected pairs or Gherkin, and may reference shared steps ' +
|
|
44
|
+
'by hash. Writing more than one case? Use qase_case_bulk_create instead: it takes a list and ' +
|
|
45
|
+
'sends one request. If the project has "Test case review" enabled, direct writes may need to ' +
|
|
46
|
+
'go through a review — run qase_discover_tools with "review" for those tools. Cost: one API ' +
|
|
47
|
+
'call, about 0.6s to create and 0.4s to update. Ten sequential calls measured 5.6s against ' +
|
|
48
|
+
'1.2s for one qase_case_bulk_create writing the same ten, so a loop is roughly four times ' +
|
|
49
|
+
'slower.',
|
|
45
50
|
schema: UpsertSchema,
|
|
46
51
|
handler: upsert,
|
|
47
52
|
annotations: CreateAnnotation,
|
|
48
53
|
});
|
|
49
54
|
toolRegistry.register({
|
|
50
55
|
name: 'qase_case_delete',
|
|
51
|
-
description: 'Delete a test case by project code and case ID.'
|
|
56
|
+
description: 'Delete a test case by project code and case ID. The case goes, and so does its execution ' +
|
|
57
|
+
'history — every result recorded against it stops being reachable. This cannot be undone. ' +
|
|
58
|
+
'Before deleting a case that has simply become obsolete, consider marking it deprecated ' +
|
|
59
|
+
'through qase_case_upsert instead, which keeps the history intact. There is no bulk delete: ' +
|
|
60
|
+
'removing many cases means one call each, and each one asks for confirmation. Deletion asks ' +
|
|
61
|
+
'the user for confirmation and does not proceed without it. Cost: one API call, about 0.4s.',
|
|
52
62
|
schema: DeleteSchema,
|
|
53
63
|
handler: del,
|
|
54
64
|
annotations: DeleteAnnotation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cases.js","sourceRoot":"","sources":["../../../src/operations-v2/write/cases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEnG,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC9B,wEAAwE,CACzE;IACD,GAAG,gBAAgB,CAAC,KAAK;CAC1B,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,QAAQ;CACb,CAAC,CAAC;AAEH,KAAK,UAAU,MAAM,CAAC,IAAkC;IACtD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACnC,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACnC,UAAU,CAAC,KAAK,GAAG,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,EAAE;QACA,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,UAAiB,CAAC;QACtD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,UAAiB,CAAC,CACrD,CAAC;IAEF,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EACpB,CAAC,CAAC,EAAE,EAAE;QACJ,MAAM,eAAe,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC7C,CAAC,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,IAAkC;IACnD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,OAAO,MAAM,CAAC,KAAK,CACjB,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,EACtC,CAAC,CAAC,EAAE,EAAE;QACJ,MAAM,eAAe,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC7C,CAAC,CACF,CAAC;AACJ,CAAC;AAED,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"cases.js","sourceRoot":"","sources":["../../../src/operations-v2/write/cases.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-fields.d.ts","sourceRoot":"","sources":["../../../src/operations-v2/write/custom-fields.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getApiClient } from '../../client/index.js';
|
|
3
|
+
import { toolRegistry, CreateAnnotation, DeleteAnnotation } from '../../utils/registry.js';
|
|
4
|
+
import { toResultAsync, createToolError } from '../../utils/errors.js';
|
|
5
|
+
import { IdSchema, ProjectCodeSchema } from '../../utils/validation.js';
|
|
6
|
+
const CONTEXT = 'custom field operation';
|
|
7
|
+
/** The API takes numbers here; the tool takes labels and maps them. */
|
|
8
|
+
const ENTITY_CODES = { case: 0, run: 1, defect: 2 };
|
|
9
|
+
const TYPE_CODES = {
|
|
10
|
+
number: 0,
|
|
11
|
+
string: 1,
|
|
12
|
+
text: 2,
|
|
13
|
+
selectbox: 3,
|
|
14
|
+
checkbox: 4,
|
|
15
|
+
radio: 5,
|
|
16
|
+
multiselect: 6,
|
|
17
|
+
url: 7,
|
|
18
|
+
user: 8,
|
|
19
|
+
datetime: 9,
|
|
20
|
+
};
|
|
21
|
+
/** Types whose whole point is a list of options to pick from. */
|
|
22
|
+
const TYPES_NEEDING_OPTIONS = ['selectbox', 'radio', 'multiselect'];
|
|
23
|
+
const UpsertSchema = z.object({
|
|
24
|
+
id: IdSchema.optional().describe('Custom field ID — if provided, updates; if omitted, creates'),
|
|
25
|
+
title: z.string().min(1).max(255).describe('Field title'),
|
|
26
|
+
entity: z
|
|
27
|
+
.enum(['case', 'run', 'defect'])
|
|
28
|
+
.optional()
|
|
29
|
+
.describe('What the field is attached to. Required when creating; cannot be changed later'),
|
|
30
|
+
type: z
|
|
31
|
+
.enum(Object.keys(TYPE_CODES))
|
|
32
|
+
.optional()
|
|
33
|
+
.describe('Field type. Required when creating; cannot be changed later'),
|
|
34
|
+
value: z
|
|
35
|
+
.array(z.string())
|
|
36
|
+
.optional()
|
|
37
|
+
.describe('Option titles — required for selectbox, radio and multiselect'),
|
|
38
|
+
placeholder: z.string().optional(),
|
|
39
|
+
default_value: z.string().optional(),
|
|
40
|
+
is_filterable: z.boolean().optional(),
|
|
41
|
+
is_visible: z.boolean().optional(),
|
|
42
|
+
is_required: z.boolean().optional(),
|
|
43
|
+
is_enabled_for_all_projects: z.boolean().optional(),
|
|
44
|
+
projects_codes: z
|
|
45
|
+
.array(ProjectCodeSchema)
|
|
46
|
+
.optional()
|
|
47
|
+
.describe('Projects the field applies to. Ignored when is_enabled_for_all_projects is true'),
|
|
48
|
+
});
|
|
49
|
+
const DeleteSchema = z.object({
|
|
50
|
+
id: IdSchema,
|
|
51
|
+
});
|
|
52
|
+
function parseArgs(rawArgs) {
|
|
53
|
+
const parsed = UpsertSchema.safeParse(rawArgs);
|
|
54
|
+
if (!parsed.success) {
|
|
55
|
+
const details = parsed.error.issues
|
|
56
|
+
.map((issue) => `${issue.path.join('.') || 'arguments'}: ${issue.message}`)
|
|
57
|
+
.join('; ');
|
|
58
|
+
throw createToolError(`Invalid arguments — ${details}`, CONTEXT);
|
|
59
|
+
}
|
|
60
|
+
return parsed.data;
|
|
61
|
+
}
|
|
62
|
+
async function upsert(rawArgs) {
|
|
63
|
+
const args = parseArgs(rawArgs);
|
|
64
|
+
const { id, entity, type, value, ...rest } = args;
|
|
65
|
+
const client = getApiClient();
|
|
66
|
+
// Option titles travel as objects, so a caller can pass a plain list of strings.
|
|
67
|
+
const options = value?.map((title) => ({ title }));
|
|
68
|
+
if (id) {
|
|
69
|
+
const current = await readField(id);
|
|
70
|
+
// `entity` and `type` are fixed at creation — the update endpoint has no
|
|
71
|
+
// field for either. Accepting them silently would let a caller believe a
|
|
72
|
+
// field changed shape when it did not, so say what was ignored.
|
|
73
|
+
const warning = describeIgnoredShape(current, type);
|
|
74
|
+
// The endpoint replaces the record instead of patching it, so everything
|
|
75
|
+
// the caller left out has to be sent back as it stands. Renaming a field
|
|
76
|
+
// otherwise empties its projects_codes and unscopes it from every project.
|
|
77
|
+
// A select-type field additionally rejects an update carrying no options,
|
|
78
|
+
// with nothing but "Data is invalid" to explain itself; the option ids come
|
|
79
|
+
// along too, since dropping them recreates the options and orphans the
|
|
80
|
+
// values already chosen on cases.
|
|
81
|
+
const optionsToSend = options ?? existingOptions(current);
|
|
82
|
+
const body = {
|
|
83
|
+
...carriedOver(current, rest),
|
|
84
|
+
...rest,
|
|
85
|
+
...(optionsToSend && { value: optionsToSend }),
|
|
86
|
+
};
|
|
87
|
+
const result = await toResultAsync(client.customFields.updateCustomField(id, body));
|
|
88
|
+
return result.match(() => ({ id, ...(warning && { warning }) }), (e) => {
|
|
89
|
+
throw createToolError(e, CONTEXT);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
if (entity === undefined || type === undefined) {
|
|
93
|
+
throw createToolError('Invalid arguments — entity and type are required when creating a custom field', CONTEXT);
|
|
94
|
+
}
|
|
95
|
+
if (TYPES_NEEDING_OPTIONS.includes(type) && !options) {
|
|
96
|
+
throw createToolError(`Invalid arguments — value is required for a ${type} field: it has nothing to offer without options`, CONTEXT);
|
|
97
|
+
}
|
|
98
|
+
const body = {
|
|
99
|
+
...rest,
|
|
100
|
+
entity: ENTITY_CODES[entity],
|
|
101
|
+
type: TYPE_CODES[type],
|
|
102
|
+
...(options && { value: options }),
|
|
103
|
+
};
|
|
104
|
+
const result = await toResultAsync(client.customFields.createCustomField(body));
|
|
105
|
+
return result.match((r) => r.data.result, (e) => {
|
|
106
|
+
throw createToolError(e, CONTEXT);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Settings the update endpoint replaces rather than patches: anything omitted
|
|
111
|
+
* comes back empty. Carried over so an update only changes what was asked for.
|
|
112
|
+
*/
|
|
113
|
+
const CARRIED_OVER = [
|
|
114
|
+
'placeholder',
|
|
115
|
+
'default_value',
|
|
116
|
+
'is_filterable',
|
|
117
|
+
'is_visible',
|
|
118
|
+
'is_required',
|
|
119
|
+
'is_enabled_for_all_projects',
|
|
120
|
+
'projects_codes',
|
|
121
|
+
];
|
|
122
|
+
async function readField(id) {
|
|
123
|
+
const client = getApiClient();
|
|
124
|
+
const result = await toResultAsync(client.customFields.getCustomField(id));
|
|
125
|
+
return result.match((r) => r.data.result, () => undefined);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The options a select-type field already has, ready to be sent back.
|
|
129
|
+
* Undefined for types that have none, or when they cannot be read — the update
|
|
130
|
+
* should still go out and let the API speak for itself.
|
|
131
|
+
*/
|
|
132
|
+
function existingOptions(current) {
|
|
133
|
+
const label = currentTypeLabel(current);
|
|
134
|
+
if (label === undefined)
|
|
135
|
+
return undefined;
|
|
136
|
+
if (!TYPES_NEEDING_OPTIONS.includes(label)) {
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
// The API hands options back as a JSON string, not as an array.
|
|
140
|
+
const raw = current?.value;
|
|
141
|
+
const parsed = typeof raw === 'string' ? safeParseJson(raw) : raw;
|
|
142
|
+
return Array.isArray(parsed) ? parsed : undefined;
|
|
143
|
+
}
|
|
144
|
+
/** Current settings the caller did not mention, ready to be sent back. */
|
|
145
|
+
function carriedOver(current, given) {
|
|
146
|
+
if (!current)
|
|
147
|
+
return {};
|
|
148
|
+
const source = current;
|
|
149
|
+
const carried = {};
|
|
150
|
+
for (const key of CARRIED_OVER) {
|
|
151
|
+
if (given[key] === undefined && source[key] !== undefined && source[key] !== null) {
|
|
152
|
+
carried[key] = source[key];
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return carried;
|
|
156
|
+
}
|
|
157
|
+
/** The field's type as a label, whichever form the API used to report it. */
|
|
158
|
+
function currentTypeLabel(current) {
|
|
159
|
+
const raw = current?.type;
|
|
160
|
+
if (raw === undefined)
|
|
161
|
+
return undefined;
|
|
162
|
+
if (typeof raw === 'string') {
|
|
163
|
+
return Object.keys(TYPE_CODES).find((k) => k === raw);
|
|
164
|
+
}
|
|
165
|
+
return Object.keys(TYPE_CODES).find((k) => TYPE_CODES[k] === raw);
|
|
166
|
+
}
|
|
167
|
+
function safeParseJson(raw) {
|
|
168
|
+
try {
|
|
169
|
+
return JSON.parse(raw);
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Report a type the caller asked for that the field cannot be given. Returns
|
|
177
|
+
* undefined when nothing was asked for, when it matches, or when the current
|
|
178
|
+
* shape cannot be read — a warning is a courtesy, never a reason to fail.
|
|
179
|
+
*/
|
|
180
|
+
function describeIgnoredShape(current, type) {
|
|
181
|
+
if (type === undefined)
|
|
182
|
+
return undefined;
|
|
183
|
+
const currentLabel = currentTypeLabel(current);
|
|
184
|
+
if (currentLabel === undefined || currentLabel === type)
|
|
185
|
+
return undefined;
|
|
186
|
+
return (`The field stays a ${currentLabel}: a custom field's type is fixed when it is created, ` +
|
|
187
|
+
`so "${type}" was ignored. Delete and recreate the field to change its type.`);
|
|
188
|
+
}
|
|
189
|
+
async function del(args) {
|
|
190
|
+
const client = getApiClient();
|
|
191
|
+
const result = await toResultAsync(client.customFields.deleteCustomField(args.id));
|
|
192
|
+
return result.match(() => ({ success: true, id: args.id }), (e) => {
|
|
193
|
+
throw createToolError(e, CONTEXT);
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
toolRegistry.register({
|
|
197
|
+
name: 'qase_custom_field_upsert',
|
|
198
|
+
description: 'Create or update a custom field. With `id` it updates that field, without `id` it creates ' +
|
|
199
|
+
'one, and `entity` ("case", "run" or "defect") and `type` ("number", "string", "text", ' +
|
|
200
|
+
'"selectbox", "checkbox", "radio", "multiselect", "url", "user", "datetime") are then ' +
|
|
201
|
+
'required. Both are fixed at creation: the update endpoint cannot change them, and passing a ' +
|
|
202
|
+
'different `type` to an update returns a warning rather than silently doing nothing. Options ' +
|
|
203
|
+
'for selectbox, radio and multiselect are given as a plain list of titles. Custom fields are ' +
|
|
204
|
+
'workspace-wide, not per-project: scope them with `projects_codes` or set ' +
|
|
205
|
+
'is_enabled_for_all_projects. Anything left out of an update is carried over from the current ' +
|
|
206
|
+
'field, so a rename does not empty the rest. Read existing fields with qase_project_context ' +
|
|
207
|
+
'or qase_get. Cost: one API call to create, two to update (the current field is read first), ' +
|
|
208
|
+
'about 0.5-0.9s.',
|
|
209
|
+
schema: UpsertSchema,
|
|
210
|
+
handler: upsert,
|
|
211
|
+
annotations: CreateAnnotation,
|
|
212
|
+
visibility: 'discoverable',
|
|
213
|
+
});
|
|
214
|
+
toolRegistry.register({
|
|
215
|
+
name: 'qase_custom_field_delete',
|
|
216
|
+
description: 'Delete a custom field by ID. The field disappears from every project it applies to, and the ' +
|
|
217
|
+
'values entered for it on cases, runs or defects go with it — the reach is workspace-wide, ' +
|
|
218
|
+
'not project-wide. This cannot be undone. To take a field out of one project only, use ' +
|
|
219
|
+
'qase_custom_field_upsert and remove that code from `projects_codes` instead. Deletion asks ' +
|
|
220
|
+
'the user for confirmation and does not proceed without it. Cost: one API call, about 0.4s.',
|
|
221
|
+
schema: DeleteSchema,
|
|
222
|
+
handler: del,
|
|
223
|
+
annotations: DeleteAnnotation,
|
|
224
|
+
visibility: 'discoverable',
|
|
225
|
+
});
|
|
226
|
+
//# sourceMappingURL=custom-fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-fields.js","sourceRoot":"","sources":["../../../src/operations-v2/write/custom-fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,14 @@ import { getApiClient } from '../../client/index.js';
|
|
|
3
3
|
import { toolRegistry, CreateAnnotation, DeleteAnnotation } from '../../utils/registry.js';
|
|
4
4
|
import { toResultAsync, createToolError } from '../../utils/errors.js';
|
|
5
5
|
import { ProjectCodeSchema, IdSchema } from '../../utils/validation.js';
|
|
6
|
+
import { normalizeEnumFields } from '../../utils/case-enums.js';
|
|
7
|
+
/**
|
|
8
|
+
* The defect API takes severity as the numeric ID from the workspace's
|
|
9
|
+
* `severity` system field and rejects the label with a bare "Data is invalid",
|
|
10
|
+
* so a label has to be mapped before it goes out. Status is left alone: the API
|
|
11
|
+
* takes that one as the label it is.
|
|
12
|
+
*/
|
|
13
|
+
const DEFECT_ENUM_FIELDS = ['severity'];
|
|
6
14
|
const DefectFieldsSchema = z.object({
|
|
7
15
|
title: z.string().min(1).max(255).describe('Defect title'),
|
|
8
16
|
actual_result: z.string().optional(),
|
|
@@ -31,7 +39,8 @@ const DeleteSchema = z.object({
|
|
|
31
39
|
});
|
|
32
40
|
async function upsert(args) {
|
|
33
41
|
const client = getApiClient();
|
|
34
|
-
const { code, id, status, ...
|
|
42
|
+
const { code, id, status, ...rest } = args;
|
|
43
|
+
const data = await normalizeEnumFields(rest, DEFECT_ENUM_FIELDS);
|
|
35
44
|
if (id) {
|
|
36
45
|
// Update path: handle status changes
|
|
37
46
|
if (status === 'resolved') {
|
|
@@ -67,15 +76,28 @@ async function del(args) {
|
|
|
67
76
|
}
|
|
68
77
|
toolRegistry.register({
|
|
69
78
|
name: 'qase_defect_upsert',
|
|
70
|
-
description: 'Create or update a defect
|
|
71
|
-
'
|
|
79
|
+
description: 'Create or update a defect — a tracked problem found by testing. Without `id` it creates, ' +
|
|
80
|
+
'with `id` it updates. Creating one requires `title`, `actual_result` and `severity`; the ' +
|
|
81
|
+
'API rejects a defect missing any of the three. Severity is given as a label ("blocker", ' +
|
|
82
|
+
'"critical", "major", "normal", "minor", "trivial") and the server maps it to the ' +
|
|
83
|
+
'workspace\'s numeric ID, custom options included. Status is a label too ("open", ' +
|
|
84
|
+
'"in_progress", "resolved", "invalid") and passes through as written; setting it to ' +
|
|
85
|
+
'"resolved" on an existing defect goes through the dedicated resolve endpoint. When the ' +
|
|
86
|
+
'defect comes from a specific test failure, use qase_triage_defect instead. The API has no ' +
|
|
87
|
+
'way to attach runs or results to a defect, so reference the failing results in the text ' +
|
|
88
|
+
'rather than expecting a link. Find existing defects with qql_search before filing a ' +
|
|
89
|
+
'duplicate. Cost: one API call, about 0.5s, plus a cached lookup of the severity options.',
|
|
72
90
|
schema: UpsertSchema,
|
|
73
91
|
handler: upsert,
|
|
74
92
|
annotations: CreateAnnotation,
|
|
75
93
|
});
|
|
76
94
|
toolRegistry.register({
|
|
77
95
|
name: 'qase_defect_delete',
|
|
78
|
-
description: 'Delete a defect by project code and defect ID.'
|
|
96
|
+
description: 'Delete a defect by project code and defect ID. The defect and its links to results ' +
|
|
97
|
+
'disappear, and the failure history stops pointing anywhere. This cannot be undone. Usually ' +
|
|
98
|
+
'the right move is to resolve or reopen the defect through qase_defect_upsert with its `id` ' +
|
|
99
|
+
'rather than delete it, so the record of what was found survives. Deletion asks the user for ' +
|
|
100
|
+
'confirmation and does not proceed without it. Cost: one API call, about 0.4s.',
|
|
79
101
|
schema: DeleteSchema,
|
|
80
102
|
handler: del,
|
|
81
103
|
annotations: DeleteAnnotation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defects.js","sourceRoot":"","sources":["../../../src/operations-v2/write/defects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"defects.js","sourceRoot":"","sources":["../../../src/operations-v2/write/defects.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,8 +38,12 @@ async function del(args) {
|
|
|
38
38
|
}
|
|
39
39
|
toolRegistry.register({
|
|
40
40
|
name: 'qase_environment_upsert',
|
|
41
|
-
description: 'Create or update a
|
|
42
|
-
'
|
|
41
|
+
description: 'Create or update an environment — a named target that runs can be attributed to, such as ' +
|
|
42
|
+
'staging or production. Without `id` it creates, with `id` it updates; `slug` and `host` are ' +
|
|
43
|
+
'optional. Attach the environment ID when opening a run so results can later be filtered by ' +
|
|
44
|
+
'where they ran, which is how "did this fail only on staging" gets answered through ' +
|
|
45
|
+
'qql_search. Existing environments come back from qase_project_context. Cost: one API call, ' +
|
|
46
|
+
'about 0.5s.',
|
|
43
47
|
schema: UpsertSchema,
|
|
44
48
|
handler: upsert,
|
|
45
49
|
annotations: CreateAnnotation,
|
|
@@ -47,7 +51,11 @@ toolRegistry.register({
|
|
|
47
51
|
});
|
|
48
52
|
toolRegistry.register({
|
|
49
53
|
name: 'qase_environment_delete',
|
|
50
|
-
description: 'Delete
|
|
54
|
+
description: 'Delete an environment by project code and environment ID. Runs that referenced it are not ' +
|
|
55
|
+
'deleted but lose the attribution, so "where did this run" becomes unanswerable for that ' +
|
|
56
|
+
'history, and queries filtering by that environment stop matching. This cannot be undone. ' +
|
|
57
|
+
'Deletion asks the user for confirmation and does not proceed without it. Cost: one API call, ' +
|
|
58
|
+
'about 0.4s.',
|
|
51
59
|
schema: DeleteSchema,
|
|
52
60
|
handler: del,
|
|
53
61
|
annotations: DeleteAnnotation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.js","sourceRoot":"","sources":["../../../src/operations-v2/write/environments.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"environments.js","sourceRoot":"","sources":["../../../src/operations-v2/write/environments.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,11 +83,13 @@ async function handler(rawArgs) {
|
|
|
83
83
|
}
|
|
84
84
|
toolRegistry.register({
|
|
85
85
|
name: 'qase_external_issue_link',
|
|
86
|
-
description: 'Link or unlink test cases and test runs to issues in an external tracker
|
|
87
|
-
'Jira Server
|
|
88
|
-
'detach. A test case can be linked to several issues; a test run can
|
|
89
|
-
'and attaching a new issue replaces the previous one. Read
|
|
90
|
-
'
|
|
86
|
+
description: 'Link or unlink test cases and test runs to issues in an external tracker — Jira Cloud or ' +
|
|
87
|
+
'Jira Server, the only two supported. Use `entity` to choose between cases and runs and ' +
|
|
88
|
+
'`action` to attach or detach. A test case can be linked to several issues; a test run can ' +
|
|
89
|
+
'have only one link, and attaching a new issue replaces the previous one. Read the links back ' +
|
|
90
|
+
'with qase_get (entity "case" or "run"). Note this covers cases and runs, not defects — a ' +
|
|
91
|
+
'defect tracked elsewhere has no link field here. Cost: one API call for the whole set of ' +
|
|
92
|
+
'links, about 0.5s, so link several entities in one call rather than one call each.',
|
|
91
93
|
schema: Schema,
|
|
92
94
|
handler,
|
|
93
95
|
annotations: UpdateAnnotation,
|