@smartbear/mcp 0.23.0 → 0.25.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/README.md +10 -2
- package/dist/bearq/client.js +12 -13
- package/dist/bearq/tool/tasks/chat-with-qa-lead.js +1 -0
- package/dist/bearq/tool/tasks/expand-application-model.js +1 -0
- package/dist/bearq/tool/tasks/get-task-status.js +1 -0
- package/dist/bearq/tool/tasks/get-task.js +1 -0
- package/dist/bearq/tool/tasks/refine-all-draft-tests.js +1 -0
- package/dist/bearq/tool/tasks/refine-test-cases.js +1 -0
- package/dist/bearq/tool/tasks/refine-tests-in-functional-areas.js +1 -0
- package/dist/bearq/tool/tasks/run-regression-tests.js +1 -0
- package/dist/bearq/tool/tasks/run-test-cases.js +1 -0
- package/dist/bearq/tool/tasks/run-tests-in-functional-areas.js +1 -0
- package/dist/bearq/tool/tasks/stop-task.js +1 -0
- package/dist/bearq/tool/tasks/wait-for-task.js +1 -0
- package/dist/bugsnag/client.js +24 -44
- package/dist/bugsnag/tool/error/get-error.js +1 -0
- package/dist/bugsnag/tool/error/list-project-errors.js +1 -0
- package/dist/bugsnag/tool/error/update-error.js +1 -0
- package/dist/bugsnag/tool/event/get-event-details-from-dashboard-url.js +1 -0
- package/dist/bugsnag/tool/event/get-event.js +1 -0
- package/dist/bugsnag/tool/event/list-error-events.js +1 -0
- package/dist/bugsnag/tool/performance/get-network-endpoint-groupings.js +1 -0
- package/dist/bugsnag/tool/performance/get-span-group.js +1 -0
- package/dist/bugsnag/tool/performance/get-trace.js +1 -0
- package/dist/bugsnag/tool/performance/list-span-groups.js +1 -0
- package/dist/bugsnag/tool/performance/list-spans.js +1 -0
- package/dist/bugsnag/tool/performance/list-trace-fields.js +1 -0
- package/dist/bugsnag/tool/performance/set-network-endpoint-groupings.js +1 -0
- package/dist/bugsnag/tool/project/get-current-project.js +1 -0
- package/dist/bugsnag/tool/project/list-project-event-filters.js +1 -0
- package/dist/bugsnag/tool/project/list-projects.js +1 -0
- package/dist/bugsnag/tool/release/get-build.js +1 -0
- package/dist/bugsnag/tool/release/get-release.js +1 -0
- package/dist/bugsnag/tool/release/list-releases.js +1 -0
- package/dist/collaborator/client.js +24 -19
- package/dist/common/client-registry.js +63 -29
- package/dist/common/server.js +57 -1
- package/dist/common/transport-http.js +90 -69
- package/dist/common/transport-stdio.js +29 -24
- package/dist/package.json.js +1 -1
- package/dist/pactflow/client/base.js +3 -3
- package/dist/pactflow/client/tools.js +102 -0
- package/dist/pactflow/client.js +30 -43
- package/dist/qmetry/client/tools/automation-tools.js +2 -0
- package/dist/qmetry/client/tools/issue-tools.js +6 -0
- package/dist/qmetry/client/tools/project-tools.js +9 -0
- package/dist/qmetry/client/tools/requirement-tools.js +5 -0
- package/dist/qmetry/client/tools/testcase-tools.js +7 -0
- package/dist/qmetry/client/tools/testsuite-tools.js +11 -0
- package/dist/qmetry/client.js +20 -18
- package/dist/qtm4j/client.js +57 -23
- package/dist/qtm4j/config/constants.js +197 -5
- package/dist/qtm4j/config/field-resolution.types.js +5 -2
- package/dist/qtm4j/http/api-client.js +90 -3
- package/dist/qtm4j/resolver/cache/cache.js +1 -1
- package/dist/qtm4j/resolver/resolver-registry.js +7 -1
- package/dist/qtm4j/resolver/resolvers/common-attribute-resolver.js +1 -0
- package/dist/qtm4j/resolver/resolvers/component-resolver.js +2 -0
- package/dist/qtm4j/resolver/resolvers/label-resolver.js +2 -0
- package/dist/qtm4j/resolver/resolvers/requirement-id-resolver.js +28 -0
- package/dist/qtm4j/resolver/resolvers/test-cycle-uid-resolver.js +28 -0
- package/dist/qtm4j/schema/automation.schema.js +107 -0
- package/dist/qtm4j/schema/linked-items.schema.js +95 -0
- package/dist/qtm4j/schema/requirements.schema.js +109 -0
- package/dist/qtm4j/schema/search-test-cycle.schema.js +133 -0
- package/dist/qtm4j/schema/test-cycle.link.schema.js +260 -0
- package/dist/qtm4j/schema/test-cycle.schema.js +39 -0
- package/dist/qtm4j/schema/update-test-cycle.schema.js +54 -0
- package/dist/qtm4j/tool/project/get-projects.js +2 -1
- package/dist/qtm4j/tool/project/set-project-context.js +2 -1
- package/dist/qtm4j/tool/requirement/get-linked-testcases.js +93 -0
- package/dist/qtm4j/tool/requirement/link-testcases.js +107 -0
- package/dist/qtm4j/tool/requirement/unlink-testcases.js +97 -0
- package/dist/qtm4j/tool/test-automation/get-automation-history.js +70 -0
- package/dist/qtm4j/tool/test-automation/upload-automation-result.js +144 -0
- package/dist/qtm4j/tool/test-case/create-test-case.js +2 -1
- package/dist/qtm4j/tool/test-case/get-linked-requirements.js +67 -0
- package/dist/qtm4j/tool/test-case/get-test-cases.js +2 -1
- package/dist/qtm4j/tool/test-case/get-test-steps.js +2 -1
- package/dist/qtm4j/tool/test-case/link-requirements.js +124 -0
- package/dist/qtm4j/tool/test-case/unlink-requirements.js +116 -0
- package/dist/qtm4j/tool/test-case/update-test-case.js +2 -1
- package/dist/qtm4j/tool/test-cycle/create-test-cycle.js +81 -0
- package/dist/qtm4j/tool/test-cycle/get-linked-requirements.js +71 -0
- package/dist/qtm4j/tool/test-cycle/link-requirements.js +91 -0
- package/dist/qtm4j/tool/test-cycle/link-testcases.js +118 -0
- package/dist/qtm4j/tool/test-cycle/search-linked-testcases.js +114 -0
- package/dist/qtm4j/tool/test-cycle/search-test-cycle.js +137 -0
- package/dist/qtm4j/tool/test-cycle/unlink-requirements.js +87 -0
- package/dist/qtm4j/tool/test-cycle/unlink-testcases.js +103 -0
- package/dist/qtm4j/tool/test-cycle/update-test-cycle.js +162 -0
- package/dist/reflect/client.js +15 -24
- package/dist/reflect/config/constants.js +0 -2
- package/dist/reflect/tool/recording/add-prompt-step.js +1 -0
- package/dist/reflect/tool/recording/add-segment.js +1 -0
- package/dist/reflect/tool/recording/connect-to-session.js +1 -0
- package/dist/reflect/tool/recording/delete-previous-step.js +1 -0
- package/dist/reflect/tool/recording/get-screenshot.js +1 -0
- package/dist/reflect/tool/suites/cancel-suite-execution.js +1 -0
- package/dist/reflect/tool/suites/execute-suite.js +1 -0
- package/dist/reflect/tool/suites/get-suite-execution-status.js +1 -0
- package/dist/reflect/tool/suites/list-suite-executions.js +1 -0
- package/dist/reflect/tool/suites/list-suites.js +1 -0
- package/dist/reflect/tool/tests/get-test-status.js +1 -0
- package/dist/reflect/tool/tests/list-segments.js +1 -0
- package/dist/reflect/tool/tests/list-tests.js +1 -0
- package/dist/reflect/tool/tests/run-test.js +1 -0
- package/dist/swagger/client/portal-types.js +1 -1
- package/dist/swagger/client/tools.js +23 -0
- package/dist/swagger/client.js +25 -28
- package/dist/zephyr/client.js +14 -21
- package/dist/zephyr/tool/environment/get-environments.js +1 -0
- package/dist/zephyr/tool/folder/create-folder.js +1 -0
- package/dist/zephyr/tool/issue-link/get-test-cases.js +1 -0
- package/dist/zephyr/tool/issue-link/get-test-cycles.js +1 -0
- package/dist/zephyr/tool/issue-link/get-test-executions.js +1 -0
- package/dist/zephyr/tool/priority/get-priorities.js +1 -0
- package/dist/zephyr/tool/project/get-project.js +1 -0
- package/dist/zephyr/tool/project/get-projects.js +1 -0
- package/dist/zephyr/tool/status/get-statuses.js +1 -0
- package/dist/zephyr/tool/test-case/create-issue-link.js +1 -0
- package/dist/zephyr/tool/test-case/create-test-case.js +1 -0
- package/dist/zephyr/tool/test-case/create-test-script.js +1 -0
- package/dist/zephyr/tool/test-case/create-test-steps.js +1 -0
- package/dist/zephyr/tool/test-case/create-web-link.js +1 -0
- package/dist/zephyr/tool/test-case/get-links.js +1 -0
- package/dist/zephyr/tool/test-case/get-test-case.js +1 -0
- package/dist/zephyr/tool/test-case/get-test-cases.js +1 -0
- package/dist/zephyr/tool/test-case/get-test-script.js +1 -0
- package/dist/zephyr/tool/test-case/get-test-steps.js +1 -0
- package/dist/zephyr/tool/test-case/update-test-case.js +1 -0
- package/dist/zephyr/tool/test-cycle/create-issue-link.js +1 -0
- package/dist/zephyr/tool/test-cycle/create-test-cycle.js +1 -0
- package/dist/zephyr/tool/test-cycle/create-web-link.js +1 -0
- package/dist/zephyr/tool/test-cycle/get-links.js +1 -0
- package/dist/zephyr/tool/test-cycle/get-test-cycle.js +1 -0
- package/dist/zephyr/tool/test-cycle/get-test-cycles.js +1 -0
- package/dist/zephyr/tool/test-cycle/update-test-cycle.js +1 -0
- package/dist/zephyr/tool/test-execution/create-issue-link.js +1 -0
- package/dist/zephyr/tool/test-execution/create-test-execution.js +1 -0
- package/dist/zephyr/tool/test-execution/get-test-execution-links.js +1 -0
- package/dist/zephyr/tool/test-execution/get-test-execution.js +1 -0
- package/dist/zephyr/tool/test-execution/get-test-executions.js +1 -0
- package/dist/zephyr/tool/test-execution/get-test-steps.js +1 -0
- package/dist/zephyr/tool/test-execution/update-test-execution.js +1 -0
- package/dist/zephyr/tool/test-execution/update-test-steps.js +1 -0
- package/package.json +1 -1
- package/dist/common/request-context.js +0 -20
package/dist/zephyr/client.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import zod__default from "zod";
|
|
2
|
-
import { getRequestHeader } from "../common/request-context.js";
|
|
3
2
|
import { ApiClient } from "./common/api-client.js";
|
|
4
3
|
import { GetEnvironments } from "./tool/environment/get-environments.js";
|
|
5
4
|
import { CreateFolder } from "./tool/folder/create-folder.js";
|
|
@@ -36,38 +35,32 @@ import { GetTestExecutions } from "./tool/test-execution/get-test-executions.js"
|
|
|
36
35
|
import { GetTestExecutionSteps } from "./tool/test-execution/get-test-steps.js";
|
|
37
36
|
import { UpdateTestExecution } from "./tool/test-execution/update-test-execution.js";
|
|
38
37
|
import { UpdateTestExecutionSteps } from "./tool/test-execution/update-test-steps.js";
|
|
39
|
-
const BASE_URL_DEFAULT = "https://api.zephyrscale.smartbear.com/v2";
|
|
40
38
|
const ConfigurationSchema = zod__default.object({
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
base_url: zod__default.url().optional().describe("Zephyr Scale API base URL").default("https://api.zephyrscale.smartbear.com/v2")
|
|
40
|
+
});
|
|
41
|
+
const AuthenticationSchema = zod__default.object({
|
|
42
|
+
api_token: zod__default.string().describe("Zephyr Scale API token for authentication").optional()
|
|
43
43
|
});
|
|
44
44
|
class ZephyrClient {
|
|
45
45
|
apiClient;
|
|
46
|
-
|
|
46
|
+
server;
|
|
47
47
|
name = "Zephyr";
|
|
48
48
|
capabilityPrefix = "zephyr";
|
|
49
49
|
configPrefix = "Zephyr";
|
|
50
50
|
config = ConfigurationSchema;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
this.
|
|
54
|
-
|
|
55
|
-
config.base_url || process.env.ZEPHYR_CUSTOM_BASE_URL || BASE_URL_DEFAULT
|
|
56
|
-
);
|
|
51
|
+
authenticationFields = AuthenticationSchema;
|
|
52
|
+
async configure(server, config) {
|
|
53
|
+
this.server = server;
|
|
54
|
+
this.apiClient = new ApiClient(() => this.getAuthToken(), config.base_url);
|
|
57
55
|
}
|
|
58
56
|
getAuthToken() {
|
|
59
|
-
|
|
60
|
-
if (contextHeader) {
|
|
61
|
-
let token = Array.isArray(contextHeader) ? contextHeader[0] : contextHeader;
|
|
62
|
-
if (token.startsWith("Bearer ")) {
|
|
63
|
-
token = token.substring(7);
|
|
64
|
-
}
|
|
65
|
-
return token;
|
|
66
|
-
}
|
|
67
|
-
return this._apiToken || null;
|
|
57
|
+
return this.server?.getEnv("api_token", this) || this.server?.getEnv("Authorization") || null;
|
|
68
58
|
}
|
|
69
59
|
isConfigured() {
|
|
70
|
-
return this.apiClient
|
|
60
|
+
return !!this.apiClient;
|
|
61
|
+
}
|
|
62
|
+
hasAuth() {
|
|
63
|
+
return this.isConfigured() && !!this.getAuthToken();
|
|
71
64
|
}
|
|
72
65
|
getApiClient() {
|
|
73
66
|
if (!this.apiClient) throw new Error("Client not configured");
|
|
@@ -3,6 +3,7 @@ import { ListEnvironments200Response, ListEnvironmentsQueryParams } from "../../
|
|
|
3
3
|
class GetEnvironments extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Environments",
|
|
6
|
+
toolset: "Environment",
|
|
6
7
|
summary: "Get environments in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { CreateFolder201Response, CreateFolderBody } from "../../common/rest-api
|
|
|
3
3
|
class CreateFolder extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Create Folder",
|
|
6
|
+
toolset: "Folders",
|
|
6
7
|
summary: "Create a folder called 'Axial Pump Tests' in the project SA for organizing test cases",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
idempotent: false,
|
|
@@ -3,6 +3,7 @@ import { GetIssueLinkTestCases200Response, GetIssueLinkTestCasesParams } from ".
|
|
|
3
3
|
class GetTestCases extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Issue Link Test Cases",
|
|
6
|
+
toolset: "Issue Links",
|
|
6
7
|
summary: "Get test cases linked to a Jira issue in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { GetIssueLinkTestCycles200Response, GetIssueLinkTestCyclesParams } from
|
|
|
3
3
|
class GetTestCycles extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Cycles linked to a Jira issue",
|
|
6
|
+
toolset: "Issue Links",
|
|
6
7
|
summary: "Get test cycles linked to a Jira issue in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { GetIssueLinkTestExecutions200Response, GetIssueLinkTestExecutionsParams
|
|
|
3
3
|
class GetTestExecutions extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get test executions linked to a Jira issue",
|
|
6
|
+
toolset: "Issue Links",
|
|
6
7
|
summary: "Get test executions linked to a Jira issue in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { ListPriorities200Response, ListPrioritiesQueryParams } from "../../comm
|
|
|
3
3
|
class GetPriorities extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get priorities",
|
|
6
|
+
toolset: "Priorities",
|
|
6
7
|
summary: "Get Zephyr Test Case priorities with optional filters",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { GetProject200Response, GetProjectParams } from "../../common/rest-api-s
|
|
|
3
3
|
class GetProject extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Project",
|
|
6
|
+
toolset: "Projects",
|
|
6
7
|
summary: "Get details of project specified by id or key in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { ListStatuses200Response, ListStatusesQueryParams } from "../../common/r
|
|
|
3
3
|
class GetStatuses extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Statuses",
|
|
6
|
+
toolset: "Statuses",
|
|
6
7
|
summary: "Get statuses of different types of test artifacts in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { CreateTestCaseIssueLink201Response, CreateTestCaseIssueLinkParams, Crea
|
|
|
3
3
|
class CreateTestCaseIssueLink extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Create Test Case Issue Link",
|
|
6
|
+
toolset: "Test Cases",
|
|
6
7
|
summary: "Create a new link between an issue in Jira and a Test Case in Zephyr",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
idempotent: false,
|
|
@@ -3,6 +3,7 @@ import { CreateTestCase201Response, CreateTestCaseBody } from "../../common/rest
|
|
|
3
3
|
class CreateTestCase extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Create Test Case",
|
|
6
|
+
toolset: "Test Cases",
|
|
6
7
|
summary: "Create a new Test Case in Zephyr specified project",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
idempotent: false,
|
|
@@ -3,6 +3,7 @@ import { CreateTestCaseTestScript201Response, CreateTestCaseTestScriptParams, Cr
|
|
|
3
3
|
class CreateTestScript extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Create Test Script",
|
|
6
|
+
toolset: "Test Cases",
|
|
6
7
|
summary: "Create a new Test Script of the types Plain Text or BDD in a Zephyr Test Case.",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
idempotent: false,
|
|
@@ -3,6 +3,7 @@ import { CreateTestCaseTestSteps201Response, CreateTestCaseTestStepsParams, Crea
|
|
|
3
3
|
class CreateTestSteps extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Create Test Case Steps",
|
|
6
|
+
toolset: "Test Cases",
|
|
6
7
|
summary: "Create steps for a Test Case in Zephyr. Supports inline step definitions or delegating execution to another test case (also known as 'call to test' via UI). Requires a mode: `APPEND` adds steps to the end of the existing list, `OVERWRITE` deletes all existing steps and replaces them with the provided ones. Always ask the user to choose between OVERWRITE or APPEND before calling this tool.",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
destructive: true,
|
|
@@ -3,6 +3,7 @@ import { CreateTestCaseWebLink201Response, CreateTestCaseWebLinkBody, CreateTest
|
|
|
3
3
|
class CreateTestCaseWebLink extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Create Test Case Web Link",
|
|
6
|
+
toolset: "Test Cases",
|
|
6
7
|
summary: "Create a new Web Link for a Test Case in Zephyr",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
idempotent: false,
|
|
@@ -3,6 +3,7 @@ import { GetTestCaseLinks200Response, GetTestCaseLinksParams } from "../../commo
|
|
|
3
3
|
class GetTestCaseLinks extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Case Links",
|
|
6
|
+
toolset: "Test Cases",
|
|
6
7
|
summary: "Get all links (issue links and web links) associated with a test case in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { GetTestCase200Response, GetTestCaseParams } from "../../common/rest-api
|
|
|
3
3
|
class GetTestCase extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Case",
|
|
6
|
+
toolset: "Test Cases",
|
|
6
7
|
summary: "Get details of test case specified by key in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { ListTestCasesCursorPaginated200Response, ListTestCasesCursorPaginatedQu
|
|
|
3
3
|
class GetTestCases extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Cases",
|
|
6
|
+
toolset: "Test Cases",
|
|
6
7
|
summary: "Get details of test cases in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { GetTestCaseTestScript200Response, GetTestCaseTestScriptParams } from ".
|
|
|
3
3
|
class GetTestScript extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Script",
|
|
6
|
+
toolset: "Test Cases",
|
|
6
7
|
summary: "Get the Test Script (Plain Text or BDD) for a given Test Case in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { GetTestCaseTestSteps200Response, GetTestCaseTestStepsParams, GetTestCas
|
|
|
3
3
|
class GetTestCaseSteps extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Case Steps",
|
|
6
|
+
toolset: "Test Cases",
|
|
6
7
|
summary: "Get details of test case steps in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -4,6 +4,7 @@ import { deepMerge } from "../../common/utils.js";
|
|
|
4
4
|
class UpdateTestCase extends Tool {
|
|
5
5
|
specification = {
|
|
6
6
|
title: "Update Test Case",
|
|
7
|
+
toolset: "Test Cases",
|
|
7
8
|
summary: 'Update an existing Test Case in Zephyr. This operation fetches the current test case and merges your updates with it to prevent accidental property deletion. Properties which are not included in the tool call will be left unchanged. To remove a property, set it to null explicitly. For fields that accept multiple values, such as `labels`, if the field is provided, it will override the previous values. For example, if `labels` is provided with the values `["label1", "label2"]`, the Test Case will now only have those two labels, and any previous labels will be removed. If you want to add a label, you would need to specify in the prompt the intention to add a label.',
|
|
8
9
|
readOnly: false,
|
|
9
10
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { CreateTestCycleIssueLinkParams, CreateTestCycleIssueLinkBody } from "..
|
|
|
3
3
|
class CreateTestCycleIssueLink extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Create Test Cycle Issue Link",
|
|
6
|
+
toolset: "Test Cycles",
|
|
6
7
|
summary: "Create a new link between an issue in Jira and a Test Cycle in Zephyr",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
idempotent: false,
|
|
@@ -3,6 +3,7 @@ import { CreateTestCycle201Response, CreateTestCycleBody } from "../../common/re
|
|
|
3
3
|
class CreateTestCycle extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Create Test Cycle",
|
|
6
|
+
toolset: "Test Cycles",
|
|
6
7
|
summary: "Create a new Test Cycle in Zephyr specified project",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
idempotent: false,
|
|
@@ -3,6 +3,7 @@ import { CreateTestCycleWebLinkParams, CreateTestCycleWebLinkBody } from "../../
|
|
|
3
3
|
class CreateTestCycleWebLink extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Create Test Cycle Web Link",
|
|
6
|
+
toolset: "Test Cycles",
|
|
6
7
|
summary: "Create a new Web Link for a Test Cycle in Zephyr",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
idempotent: false,
|
|
@@ -3,6 +3,7 @@ import { GetTestCycleLinks200Response, GetTestCycleLinksParams } from "../../com
|
|
|
3
3
|
class GetTestCycleLinks extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Cycle Links",
|
|
6
|
+
toolset: "Test Cycles",
|
|
6
7
|
summary: "Get all links (issues, web links, and test plans) associated with a test cycle in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { GetTestCycle200Response, GetTestCycleParams } from "../../common/rest-a
|
|
|
3
3
|
class GetTestCycle extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Cycle",
|
|
6
|
+
toolset: "Test Cycles",
|
|
6
7
|
summary: "Get details of test cycle specified by id or key in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { ListTestCycles200Response, ListTestCyclesQueryParams } from "../../comm
|
|
|
3
3
|
class GetTestCycles extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Cycles",
|
|
6
|
+
toolset: "Test Cycles",
|
|
6
7
|
summary: "Get details of Test Cycles in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -4,6 +4,7 @@ import { deepMerge } from "../../common/utils.js";
|
|
|
4
4
|
class UpdateTestCycle extends Tool {
|
|
5
5
|
specification = {
|
|
6
6
|
title: "Update Test Cycle",
|
|
7
|
+
toolset: "Test Cycles",
|
|
7
8
|
summary: "Update an existing Test Cycle in Zephyr. This operation fetches the current test cycle and merges your updates with it to prevent accidental property deletion. To remove a property, set it to null explicitly. The plannedStartDate and plannedEndDate fields cannot be cleared",
|
|
8
9
|
readOnly: false,
|
|
9
10
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { CreateTestExecutionIssueLinkParams, CreateTestExecutionIssueLinkBody }
|
|
|
3
3
|
class CreateTestExecutionIssueLink extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Create Test Execution Issue Link",
|
|
6
|
+
toolset: "Test Executions",
|
|
6
7
|
summary: "Create a new link between a Jira issue and a Test Execution in Zephyr",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
idempotent: false,
|
|
@@ -3,6 +3,7 @@ import { CreateTestExecution201Response, CreateTestExecutionBody } from "../../c
|
|
|
3
3
|
class CreateTestExecution extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Create Test Execution",
|
|
6
|
+
toolset: "Test Executions",
|
|
6
7
|
summary: "Create a new Test Execution for a Test Case within a specific Test Cycle",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
idempotent: false,
|
|
@@ -3,6 +3,7 @@ import { ListTestExecutionLinks200Response, ListTestExecutionLinksParams } from
|
|
|
3
3
|
class GetTestExecutionLinks extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Execution Links",
|
|
6
|
+
toolset: "Test Executions",
|
|
6
7
|
summary: "Get links for a specific test execution in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { GetTestExecution200Response, GetTestExecutionParams } from "../../commo
|
|
|
3
3
|
class GetTestExecution extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Execution",
|
|
6
|
+
toolset: "Test Executions",
|
|
6
7
|
summary: "Get details of test execution specified by id or key in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { ListTestExecutionsNextgen200Response, ListTestExecutionsNextgenQueryPar
|
|
|
3
3
|
class GetTestExecutions extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Executions",
|
|
6
|
+
toolset: "Test Executions",
|
|
6
7
|
summary: "Get test executions with optional filters",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { GetTestExecutionTestSteps200Response, GetTestExecutionTestStepsParams,
|
|
|
3
3
|
class GetTestExecutionSteps extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Get Test Execution Steps",
|
|
6
|
+
toolset: "Test Executions",
|
|
6
7
|
summary: "Get details of test execution steps in Zephyr",
|
|
7
8
|
readOnly: true,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { UpdateTestExecutionParams, UpdateTestExecutionBody } from "../../common
|
|
|
3
3
|
class UpdateTestExecution extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Update Test Execution",
|
|
6
|
+
toolset: "Test Executions",
|
|
6
7
|
summary: "Update an existing Test Execution in Zephyr. This operation only updates specified fields in the payload and ignores `null` or `undefined` values.",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
idempotent: true,
|
|
@@ -3,6 +3,7 @@ import { PutTestExecutionTestStepsParams, PutTestExecutionTestStepsBody } from "
|
|
|
3
3
|
class UpdateTestExecutionSteps extends Tool {
|
|
4
4
|
specification = {
|
|
5
5
|
title: "Update Test Execution Steps",
|
|
6
|
+
toolset: "Test Executions",
|
|
6
7
|
summary: "Update test steps for a given Test Execution in Zephyr. This operation updates the provided steps with their execution status and actual results. Only the fields included in the request will be modified.",
|
|
7
8
|
readOnly: false,
|
|
8
9
|
idempotent: true,
|
package/package.json
CHANGED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
-
const requestContextStorage = new AsyncLocalStorage();
|
|
3
|
-
function withRequestContext(req, fn) {
|
|
4
|
-
return requestContextStorage.run({ headers: req.headers }, fn);
|
|
5
|
-
}
|
|
6
|
-
function getRequestContext() {
|
|
7
|
-
return requestContextStorage.getStore();
|
|
8
|
-
}
|
|
9
|
-
function getRequestHeader(name) {
|
|
10
|
-
const context = getRequestContext();
|
|
11
|
-
if (!context?.headers) return void 0;
|
|
12
|
-
const headerValue = context.headers[name] || context.headers[name.toLowerCase()];
|
|
13
|
-
return headerValue;
|
|
14
|
-
}
|
|
15
|
-
export {
|
|
16
|
-
getRequestContext,
|
|
17
|
-
getRequestHeader,
|
|
18
|
-
requestContextStorage,
|
|
19
|
-
withRequestContext
|
|
20
|
-
};
|