@structured-world/gitlab-mcp 6.7.0 → 6.9.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 +202 -21
- package/LICENSE.MIT +21 -0
- package/README.md +182 -3
- package/dist/src/config.d.ts +6 -0
- package/dist/src/config.js +89 -1
- package/dist/src/config.js.map +1 -1
- package/dist/src/entities/core/registry.js +68 -63
- package/dist/src/entities/core/registry.js.map +1 -1
- package/dist/src/entities/core/schema-readonly.d.ts +93 -36
- package/dist/src/entities/core/schema-readonly.js +146 -121
- package/dist/src/entities/core/schema-readonly.js.map +1 -1
- package/dist/src/entities/core/schema.d.ts +33 -23
- package/dist/src/entities/core/schema.js +65 -60
- package/dist/src/entities/core/schema.js.map +1 -1
- package/dist/src/entities/files/registry.js +14 -21
- package/dist/src/entities/files/registry.js.map +1 -1
- package/dist/src/entities/files/schema-readonly.d.ts +8 -7
- package/dist/src/entities/files/schema-readonly.js +20 -25
- package/dist/src/entities/files/schema-readonly.js.map +1 -1
- package/dist/src/entities/files/schema.d.ts +22 -15
- package/dist/src/entities/files/schema.js +32 -73
- package/dist/src/entities/files/schema.js.map +1 -1
- package/dist/src/entities/integrations/index.d.ts +7 -0
- package/dist/src/entities/integrations/index.js +31 -0
- package/dist/src/entities/integrations/index.js.map +1 -0
- package/dist/src/entities/integrations/registry.d.ts +5 -0
- package/dist/src/entities/integrations/registry.js +120 -0
- package/dist/src/entities/integrations/registry.js.map +1 -0
- package/dist/src/entities/integrations/schema-readonly.d.ts +7 -0
- package/dist/src/entities/integrations/schema-readonly.js +10 -0
- package/dist/src/entities/integrations/schema-readonly.js.map +1 -0
- package/dist/src/entities/integrations/schema.d.ts +235 -0
- package/dist/src/entities/integrations/schema.js +112 -0
- package/dist/src/entities/integrations/schema.js.map +1 -0
- package/dist/src/entities/labels/registry.js +8 -7
- package/dist/src/entities/labels/registry.js.map +1 -1
- package/dist/src/entities/labels/schema-readonly.d.ts +8 -7
- package/dist/src/entities/labels/schema-readonly.js +20 -18
- package/dist/src/entities/labels/schema-readonly.js.map +1 -1
- package/dist/src/entities/labels/schema.d.ts +15 -8
- package/dist/src/entities/labels/schema.js +36 -27
- package/dist/src/entities/labels/schema.js.map +1 -1
- package/dist/src/entities/milestones/registry.js +7 -8
- package/dist/src/entities/milestones/registry.js.map +1 -1
- package/dist/src/entities/milestones/schema-readonly.d.ts +25 -10
- package/dist/src/entities/milestones/schema-readonly.js +47 -26
- package/dist/src/entities/milestones/schema-readonly.js.map +1 -1
- package/dist/src/entities/milestones/schema.d.ts +19 -9
- package/dist/src/entities/milestones/schema.js +31 -20
- package/dist/src/entities/milestones/schema.js.map +1 -1
- package/dist/src/entities/mrs/registry.js +75 -79
- package/dist/src/entities/mrs/registry.js.map +1 -1
- package/dist/src/entities/mrs/schema-readonly.d.ts +36 -23
- package/dist/src/entities/mrs/schema-readonly.js +197 -338
- package/dist/src/entities/mrs/schema-readonly.js.map +1 -1
- package/dist/src/entities/mrs/schema.d.ts +113 -37
- package/dist/src/entities/mrs/schema.js +140 -258
- package/dist/src/entities/mrs/schema.js.map +1 -1
- package/dist/src/entities/pipelines/registry.js +10 -4
- package/dist/src/entities/pipelines/registry.js.map +1 -1
- package/dist/src/entities/pipelines/schema-readonly.d.ts +30 -14
- package/dist/src/entities/pipelines/schema-readonly.js +62 -52
- package/dist/src/entities/pipelines/schema-readonly.js.map +1 -1
- package/dist/src/entities/pipelines/schema.d.ts +23 -16
- package/dist/src/entities/pipelines/schema.js +44 -26
- package/dist/src/entities/pipelines/schema.js.map +1 -1
- package/dist/src/entities/snippets/registry.js +79 -67
- package/dist/src/entities/snippets/registry.js.map +1 -1
- package/dist/src/entities/snippets/schema-readonly.d.ts +8 -9
- package/dist/src/entities/snippets/schema-readonly.js +30 -35
- package/dist/src/entities/snippets/schema-readonly.js.map +1 -1
- package/dist/src/entities/snippets/schema.d.ts +7 -11
- package/dist/src/entities/snippets/schema.js +31 -65
- package/dist/src/entities/snippets/schema.js.map +1 -1
- package/dist/src/entities/variables/registry.js +9 -5
- package/dist/src/entities/variables/registry.js.map +1 -1
- package/dist/src/entities/variables/schema-readonly.d.ts +9 -9
- package/dist/src/entities/variables/schema-readonly.js +22 -18
- package/dist/src/entities/variables/schema-readonly.js.map +1 -1
- package/dist/src/entities/variables/schema.d.ts +24 -7
- package/dist/src/entities/variables/schema.js +67 -38
- package/dist/src/entities/variables/schema.js.map +1 -1
- package/dist/src/entities/webhooks/registry.js +48 -46
- package/dist/src/entities/webhooks/registry.js.map +1 -1
- package/dist/src/entities/webhooks/schema-readonly.d.ts +9 -8
- package/dist/src/entities/webhooks/schema-readonly.js +14 -9
- package/dist/src/entities/webhooks/schema-readonly.js.map +1 -1
- package/dist/src/entities/webhooks/schema.d.ts +79 -26
- package/dist/src/entities/webhooks/schema.js +70 -61
- package/dist/src/entities/webhooks/schema.js.map +1 -1
- package/dist/src/entities/wiki/registry.js +7 -4
- package/dist/src/entities/wiki/registry.js.map +1 -1
- package/dist/src/entities/wiki/schema-readonly.d.ts +7 -7
- package/dist/src/entities/wiki/schema-readonly.js +11 -15
- package/dist/src/entities/wiki/schema-readonly.js.map +1 -1
- package/dist/src/entities/wiki/schema.d.ts +19 -8
- package/dist/src/entities/wiki/schema.js +32 -29
- package/dist/src/entities/wiki/schema.js.map +1 -1
- package/dist/src/entities/workitems/registry.js +7 -8
- package/dist/src/entities/workitems/registry.js.map +1 -1
- package/dist/src/entities/workitems/schema-readonly.d.ts +7 -8
- package/dist/src/entities/workitems/schema-readonly.js +12 -14
- package/dist/src/entities/workitems/schema-readonly.js.map +1 -1
- package/dist/src/entities/workitems/schema.d.ts +17 -11
- package/dist/src/entities/workitems/schema.js +25 -25
- package/dist/src/entities/workitems/schema.js.map +1 -1
- package/dist/src/registry-manager.js +32 -11
- package/dist/src/registry-manager.js.map +1 -1
- package/dist/src/utils/schema-utils.d.ts +28 -0
- package/dist/src/utils/schema-utils.js +244 -0
- package/dist/src/utils/schema-utils.js.map +1 -0
- package/dist/structured-world-gitlab-mcp-6.9.0.tgz +0 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/structured-world-gitlab-mcp-6.7.0.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/entities/snippets/registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/entities/snippets/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const BrowseSnippetsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
3
|
+
action: z.ZodLiteral<"list">;
|
|
3
4
|
scope: z.ZodEnum<{
|
|
4
5
|
project: "project";
|
|
5
6
|
public: "public";
|
|
@@ -13,14 +14,12 @@ export declare const ListSnippetsSchema: z.ZodObject<{
|
|
|
13
14
|
}>>;
|
|
14
15
|
created_after: z.ZodOptional<z.ZodString>;
|
|
15
16
|
created_before: z.ZodOptional<z.ZodString>;
|
|
17
|
+
per_page: z.ZodOptional<z.ZodNumber>;
|
|
16
18
|
page: z.ZodOptional<z.ZodNumber>;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
action: z.ZodLiteral<"read">;
|
|
21
|
-
id: z.ZodNumber;
|
|
19
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
20
|
+
action: z.ZodLiteral<"get">;
|
|
21
|
+
id: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>;
|
|
22
22
|
projectId: z.ZodOptional<z.ZodString>;
|
|
23
23
|
raw: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
24
|
-
}, z.core.$strip>;
|
|
25
|
-
export type
|
|
26
|
-
export type GetSnippetOptions = z.infer<typeof GetSnippetSchema>;
|
|
24
|
+
}, z.core.$strip>], "action">;
|
|
25
|
+
export type BrowseSnippetsInput = z.infer<typeof BrowseSnippetsSchema>;
|
|
@@ -1,51 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.BrowseSnippetsSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
-
const
|
|
6
|
-
const SnippetScopeSchema = zod_1.z
|
|
7
|
-
|
|
8
|
-
.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
const SnippetScopeSchema = zod_1.z
|
|
7
|
+
.enum(["personal", "project", "public"])
|
|
8
|
+
.describe("The scope of snippets");
|
|
9
|
+
const SnippetVisibilitySchema = zod_1.z
|
|
10
|
+
.enum(["private", "internal", "public"])
|
|
11
|
+
.describe("Visibility level of snippets");
|
|
12
|
+
const projectIdField = zod_1.z
|
|
13
|
+
.string()
|
|
14
|
+
.optional()
|
|
15
|
+
.describe("Project ID or URL-encoded path (e.g., '123' or 'group/project')");
|
|
16
|
+
const ListSnippetsSchema = zod_1.z.object({
|
|
17
|
+
action: zod_1.z.literal("list").describe("List snippets with filtering by scope and visibility"),
|
|
18
|
+
scope: SnippetScopeSchema.describe('Scope of snippets: "personal" for current user, "project" for project-specific (requires projectId), "public" for all public snippets'),
|
|
19
|
+
projectId: projectIdField.describe("Project ID or URL-encoded path. Required when scope is 'project'"),
|
|
20
|
+
visibility: SnippetVisibilitySchema.optional().describe("Filter by visibility: private (author only), internal (authenticated users), public (everyone)"),
|
|
18
21
|
created_after: zod_1.z
|
|
19
22
|
.string()
|
|
20
23
|
.optional()
|
|
21
|
-
.describe("Return snippets created after this date (ISO 8601
|
|
24
|
+
.describe("Return snippets created after this date (ISO 8601). Example: '2024-01-01T00:00:00Z'"),
|
|
22
25
|
created_before: zod_1.z
|
|
23
26
|
.string()
|
|
24
27
|
.optional()
|
|
25
|
-
.describe("Return snippets created before this date (ISO 8601
|
|
26
|
-
|
|
27
|
-
.
|
|
28
|
-
.refine(data => data.scope !== "project" || data.projectId, {
|
|
29
|
-
message: "projectId is required when scope is 'project'",
|
|
30
|
-
path: ["projectId"],
|
|
28
|
+
.describe("Return snippets created before this date (ISO 8601). Example: '2024-12-31T23:59:59Z'"),
|
|
29
|
+
per_page: zod_1.z.number().optional().describe("Number of items per page"),
|
|
30
|
+
page: zod_1.z.number().optional().describe("Page number"),
|
|
31
31
|
});
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
.
|
|
35
|
-
|
|
36
|
-
id: zod_1.z.number().int().positive().describe("The ID of the snippet to retrieve"),
|
|
37
|
-
projectId: zod_1.z
|
|
38
|
-
.string()
|
|
39
|
-
.optional()
|
|
40
|
-
.describe("Project ID or URL-encoded path (required for project snippets). Leave empty for personal snippets"),
|
|
32
|
+
const GetSnippetSchema = zod_1.z.object({
|
|
33
|
+
action: zod_1.z.literal("get").describe("Get single snippet details or raw content"),
|
|
34
|
+
id: utils_1.requiredId.describe("The ID of the snippet to retrieve"),
|
|
35
|
+
projectId: projectIdField.describe("Project ID or URL-encoded path. Required for project snippets, leave empty for personal snippets"),
|
|
41
36
|
raw: zod_1.z
|
|
42
37
|
.boolean()
|
|
43
38
|
.optional()
|
|
44
39
|
.default(false)
|
|
45
|
-
.describe("Return raw content of
|
|
46
|
-
})
|
|
47
|
-
.refine(data => !data.projectId || typeof data.projectId === "string", {
|
|
48
|
-
message: "projectId must be a string when provided",
|
|
49
|
-
path: ["projectId"],
|
|
40
|
+
.describe("Return raw content of snippet files instead of metadata"),
|
|
50
41
|
});
|
|
42
|
+
exports.BrowseSnippetsSchema = zod_1.z.discriminatedUnion("action", [
|
|
43
|
+
ListSnippetsSchema,
|
|
44
|
+
GetSnippetSchema,
|
|
45
|
+
]);
|
|
51
46
|
//# sourceMappingURL=schema-readonly.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-readonly.js","sourceRoot":"","sources":["../../../../src/entities/snippets/schema-readonly.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"schema-readonly.js","sourceRoot":"","sources":["../../../../src/entities/snippets/schema-readonly.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,oCAAsC;AAStC,MAAM,kBAAkB,GAAG,OAAC;KACzB,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;KACvC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAErC,MAAM,uBAAuB,GAAG,OAAC;KAC9B,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;KACvC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AAG5C,MAAM,cAAc,GAAG,OAAC;KACrB,MAAM,EAAE;KACR,QAAQ,EAAE;KACV,QAAQ,CAAC,iEAAiE,CAAC,CAAC;AAG/E,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAC1F,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAChC,uIAAuI,CACxI;IACD,SAAS,EAAE,cAAc,CAAC,QAAQ,CAChC,kEAAkE,CACnE;IACD,UAAU,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACrD,gGAAgG,CACjG;IACD,aAAa,EAAE,OAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qFAAqF,CACtF;IACH,cAAc,EAAE,OAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sFAAsF,CACvF;IACH,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACpE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;CACpD,CAAC,CAAC;AAGH,MAAM,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IAC9E,EAAE,EAAE,kBAAU,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC5D,SAAS,EAAE,cAAc,CAAC,QAAQ,CAChC,kGAAkG,CACnG;IACD,GAAG,EAAE,OAAC;SACH,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,yDAAyD,CAAC;CACvE,CAAC,CAAC;AAGU,QAAA,oBAAoB,GAAG,OAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACjE,kBAAkB;IAClB,gBAAgB;CACjB,CAAC,CAAC"}
|
|
@@ -10,7 +10,7 @@ declare const SnippetFileSchema: z.ZodObject<{
|
|
|
10
10
|
}>>;
|
|
11
11
|
previous_path: z.ZodOptional<z.ZodString>;
|
|
12
12
|
}, z.core.$strip>;
|
|
13
|
-
export declare const
|
|
13
|
+
export declare const ManageSnippetSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
14
14
|
action: z.ZodLiteral<"create">;
|
|
15
15
|
projectId: z.ZodOptional<z.ZodString>;
|
|
16
16
|
title: z.ZodString;
|
|
@@ -24,10 +24,9 @@ export declare const CreateSnippetSchema: z.ZodObject<{
|
|
|
24
24
|
file_path: z.ZodString;
|
|
25
25
|
content: z.ZodString;
|
|
26
26
|
}, z.core.$strip>>;
|
|
27
|
-
}, z.core.$strip
|
|
28
|
-
export declare const UpdateSnippetSchema: z.ZodObject<{
|
|
27
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
29
28
|
action: z.ZodLiteral<"update">;
|
|
30
|
-
id: z.
|
|
29
|
+
id: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>;
|
|
31
30
|
projectId: z.ZodOptional<z.ZodString>;
|
|
32
31
|
title: z.ZodOptional<z.ZodString>;
|
|
33
32
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -47,14 +46,11 @@ export declare const UpdateSnippetSchema: z.ZodObject<{
|
|
|
47
46
|
}>>;
|
|
48
47
|
previous_path: z.ZodOptional<z.ZodString>;
|
|
49
48
|
}, z.core.$strip>>>;
|
|
50
|
-
}, z.core.$strip
|
|
51
|
-
export declare const DeleteSnippetSchema: z.ZodObject<{
|
|
49
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
52
50
|
action: z.ZodLiteral<"delete">;
|
|
53
|
-
id: z.
|
|
51
|
+
id: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>;
|
|
54
52
|
projectId: z.ZodOptional<z.ZodString>;
|
|
55
|
-
}, z.core.$strip>;
|
|
56
|
-
export type
|
|
57
|
-
export type UpdateSnippetOptions = z.infer<typeof UpdateSnippetSchema>;
|
|
58
|
-
export type DeleteSnippetOptions = z.infer<typeof DeleteSnippetSchema>;
|
|
53
|
+
}, z.core.$strip>], "action">;
|
|
54
|
+
export type ManageSnippetInput = z.infer<typeof ManageSnippetSchema>;
|
|
59
55
|
export type SnippetFile = z.infer<typeof SnippetFileSchema>;
|
|
60
56
|
export {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.ManageSnippetSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
5
6
|
const flexibleVisibility = zod_1.z.preprocess(val => {
|
|
6
7
|
if (typeof val === "string") {
|
|
7
8
|
const normalized = val.toLowerCase().trim();
|
|
@@ -25,7 +26,7 @@ const SnippetFileSchema = zod_1.z.object({
|
|
|
25
26
|
content: zod_1.z
|
|
26
27
|
.string()
|
|
27
28
|
.optional()
|
|
28
|
-
.describe("The content of the file. Required for 'create' and 'update' actions. Can be empty string for placeholder files
|
|
29
|
+
.describe("The content of the file. Required for 'create' and 'update' actions. Can be empty string for placeholder files"),
|
|
29
30
|
action: zod_1.z
|
|
30
31
|
.enum(["create", "update", "delete", "move"])
|
|
31
32
|
.optional()
|
|
@@ -35,89 +36,54 @@ const SnippetFileSchema = zod_1.z.object({
|
|
|
35
36
|
.optional()
|
|
36
37
|
.describe("Original file path when using 'move' action to rename a file. Must match an existing file in the snippet"),
|
|
37
38
|
});
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
.describe("Project ID or URL-encoded path to create a project snippet. Leave empty for a personal snippet"),
|
|
39
|
+
const projectIdField = zod_1.z
|
|
40
|
+
.string()
|
|
41
|
+
.optional()
|
|
42
|
+
.describe("Project ID or URL-encoded path. Leave empty for personal snippets");
|
|
43
|
+
const CreateSnippetSchema = zod_1.z.object({
|
|
44
|
+
action: zod_1.z.literal("create").describe("Create a new snippet with one or more files"),
|
|
45
|
+
projectId: projectIdField.describe("Project ID or URL-encoded path to create a project snippet. Leave empty for personal snippet"),
|
|
46
46
|
title: zod_1.z
|
|
47
47
|
.string()
|
|
48
48
|
.min(1)
|
|
49
49
|
.max(255)
|
|
50
|
-
.describe("The title of the snippet.
|
|
50
|
+
.describe("The title of the snippet. Displayed in snippet list and as page title. Max 255 chars"),
|
|
51
51
|
description: zod_1.z
|
|
52
52
|
.string()
|
|
53
53
|
.optional()
|
|
54
|
-
.describe("Optional description explaining the purpose
|
|
54
|
+
.describe("Optional description explaining the snippet purpose. Supports markdown"),
|
|
55
55
|
visibility: flexibleVisibility
|
|
56
56
|
.optional()
|
|
57
57
|
.default("private")
|
|
58
|
-
.describe("Visibility
|
|
58
|
+
.describe("Visibility: 'private' (author only), 'internal' (authenticated users), 'public' (everyone). Defaults to 'private'"),
|
|
59
59
|
files: zod_1.z
|
|
60
60
|
.array(zod_1.z.object({
|
|
61
61
|
file_path: zod_1.z.string().min(1),
|
|
62
62
|
content: zod_1.z.string(),
|
|
63
63
|
}))
|
|
64
64
|
.min(1)
|
|
65
|
-
.describe("Array of files to include
|
|
66
|
-
})
|
|
67
|
-
.refine(data => data.files.length > 0, {
|
|
68
|
-
message: "At least one file is required",
|
|
69
|
-
path: ["files"],
|
|
65
|
+
.describe("Array of files to include. At least one file required. Each needs file_path and content"),
|
|
70
66
|
});
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
.positive()
|
|
79
|
-
.describe("The ID of the snippet to update. Must be an existing snippet"),
|
|
80
|
-
projectId: zod_1.z
|
|
81
|
-
.string()
|
|
82
|
-
.optional()
|
|
83
|
-
.describe("Project ID or URL-encoded path (required for project snippets). Leave empty for personal snippets"),
|
|
84
|
-
title: zod_1.z
|
|
85
|
-
.string()
|
|
86
|
-
.min(1)
|
|
87
|
-
.max(255)
|
|
88
|
-
.optional()
|
|
89
|
-
.describe("Update the title of the snippet. Maximum 255 characters"),
|
|
90
|
-
description: zod_1.z
|
|
91
|
-
.string()
|
|
92
|
-
.optional()
|
|
93
|
-
.describe("Update the description of the snippet. Supports markdown formatting"),
|
|
94
|
-
visibility: flexibleVisibility
|
|
95
|
-
.optional()
|
|
96
|
-
.describe("Update the visibility level of the snippet"),
|
|
67
|
+
const UpdateSnippetSchema = zod_1.z.object({
|
|
68
|
+
action: zod_1.z.literal("update").describe("Update an existing snippet metadata or files"),
|
|
69
|
+
id: utils_1.requiredId.describe("The ID of the snippet to update"),
|
|
70
|
+
projectId: projectIdField.describe("Project ID or URL-encoded path. Required for project snippets, leave empty for personal"),
|
|
71
|
+
title: zod_1.z.string().min(1).max(255).optional().describe("Update the snippet title. Max 255 chars"),
|
|
72
|
+
description: zod_1.z.string().optional().describe("Update the snippet description. Supports markdown"),
|
|
73
|
+
visibility: flexibleVisibility.optional().describe("Update the visibility level"),
|
|
97
74
|
files: zod_1.z
|
|
98
75
|
.array(SnippetFileSchema)
|
|
99
76
|
.optional()
|
|
100
|
-
.describe("Array of file operations
|
|
101
|
-
})
|
|
102
|
-
.refine(data => {
|
|
103
|
-
return (data.title !== undefined ||
|
|
104
|
-
data.description !== undefined ||
|
|
105
|
-
data.visibility !== undefined ||
|
|
106
|
-
(data.files !== undefined && data.files.length > 0));
|
|
107
|
-
}, {
|
|
108
|
-
message: "At least one field must be provided to update (title, description, visibility, or files)",
|
|
77
|
+
.describe("Array of file operations. Each file must specify 'action': create/update/delete/move. Move requires previous_path"),
|
|
109
78
|
});
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
.number()
|
|
115
|
-
.int()
|
|
116
|
-
.positive()
|
|
117
|
-
.describe("The ID of the snippet to delete. This operation is permanent and cannot be undone"),
|
|
118
|
-
projectId: zod_1.z
|
|
119
|
-
.string()
|
|
120
|
-
.optional()
|
|
121
|
-
.describe("Project ID or URL-encoded path (required for project snippets). Leave empty for personal snippets"),
|
|
79
|
+
const DeleteSnippetSchema = zod_1.z.object({
|
|
80
|
+
action: zod_1.z.literal("delete").describe("Permanently delete a snippet"),
|
|
81
|
+
id: utils_1.requiredId.describe("The ID of the snippet to delete. This operation cannot be undone"),
|
|
82
|
+
projectId: projectIdField.describe("Project ID or URL-encoded path. Required for project snippets, leave empty for personal"),
|
|
122
83
|
});
|
|
84
|
+
exports.ManageSnippetSchema = zod_1.z.discriminatedUnion("action", [
|
|
85
|
+
CreateSnippetSchema,
|
|
86
|
+
UpdateSnippetSchema,
|
|
87
|
+
DeleteSnippetSchema,
|
|
88
|
+
]);
|
|
123
89
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/entities/snippets/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/entities/snippets/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ const schema_readonly_1 = require("./schema-readonly");
|
|
|
42
42
|
const schema_1 = require("./schema");
|
|
43
43
|
const gitlab_api_1 = require("../../utils/gitlab-api");
|
|
44
44
|
const namespace_1 = require("../../utils/namespace");
|
|
45
|
-
const
|
|
45
|
+
const config_1 = require("../../config");
|
|
46
46
|
exports.variablesToolRegistry = new Map([
|
|
47
47
|
[
|
|
48
48
|
"browse_variables",
|
|
@@ -52,15 +52,17 @@ exports.variablesToolRegistry = new Map([
|
|
|
52
52
|
inputSchema: z.toJSONSchema(schema_readonly_1.BrowseVariablesSchema),
|
|
53
53
|
handler: async (args) => {
|
|
54
54
|
const input = schema_readonly_1.BrowseVariablesSchema.parse(args);
|
|
55
|
+
if ((0, config_1.isActionDenied)("browse_variables", input.action)) {
|
|
56
|
+
throw new Error(`Action '${input.action}' is not allowed for browse_variables tool`);
|
|
57
|
+
}
|
|
55
58
|
const { entityType, encodedPath } = await (0, namespace_1.resolveNamespaceForAPI)(input.namespace);
|
|
56
59
|
switch (input.action) {
|
|
57
60
|
case "list": {
|
|
58
|
-
const { action: _action, namespace: _namespace,
|
|
61
|
+
const { action: _action, namespace: _namespace, ...rest } = input;
|
|
59
62
|
const query = (0, gitlab_api_1.toQuery)(rest, []);
|
|
60
63
|
return gitlab_api_1.gitlab.get(`${entityType}/${encodedPath}/variables`, { query });
|
|
61
64
|
}
|
|
62
65
|
case "get": {
|
|
63
|
-
(0, utils_1.assertDefined)(input.key, "key");
|
|
64
66
|
const query = {};
|
|
65
67
|
if (input.filter?.environment_scope) {
|
|
66
68
|
query["filter[environment_scope]"] = input.filter.environment_scope;
|
|
@@ -81,11 +83,13 @@ exports.variablesToolRegistry = new Map([
|
|
|
81
83
|
inputSchema: z.toJSONSchema(schema_1.ManageVariableSchema),
|
|
82
84
|
handler: async (args) => {
|
|
83
85
|
const input = schema_1.ManageVariableSchema.parse(args);
|
|
86
|
+
if ((0, config_1.isActionDenied)("manage_variable", input.action)) {
|
|
87
|
+
throw new Error(`Action '${input.action}' is not allowed for manage_variable tool`);
|
|
88
|
+
}
|
|
84
89
|
const { entityType, encodedPath } = await (0, namespace_1.resolveNamespaceForAPI)(input.namespace);
|
|
85
90
|
switch (input.action) {
|
|
86
91
|
case "create": {
|
|
87
|
-
|
|
88
|
-
const { action: _action, namespace: _namespace, filter: _filter, ...body } = input;
|
|
92
|
+
const { action: _action, namespace: _namespace, ...body } = input;
|
|
89
93
|
return gitlab_api_1.gitlab.post(`${entityType}/${encodedPath}/variables`, {
|
|
90
94
|
body,
|
|
91
95
|
contentType: "json",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/entities/variables/registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/entities/variables/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export declare const BrowseVariablesSchema: z.ZodObject<{
|
|
3
|
-
action: z.
|
|
4
|
-
list: "list";
|
|
5
|
-
get: "get";
|
|
6
|
-
}>;
|
|
2
|
+
export declare const BrowseVariablesSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
3
|
+
action: z.ZodLiteral<"list">;
|
|
7
4
|
namespace: z.ZodString;
|
|
8
|
-
|
|
5
|
+
per_page: z.ZodOptional<z.ZodNumber>;
|
|
6
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
7
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
8
|
+
action: z.ZodLiteral<"get">;
|
|
9
|
+
namespace: z.ZodString;
|
|
10
|
+
key: z.ZodString;
|
|
9
11
|
filter: z.ZodOptional<z.ZodObject<{
|
|
10
12
|
environment_scope: z.ZodOptional<z.ZodString>;
|
|
11
13
|
}, z.core.$strip>>;
|
|
12
|
-
|
|
13
|
-
page: z.ZodOptional<z.ZodNumber>;
|
|
14
|
-
}, z.core.$strip>;
|
|
14
|
+
}, z.core.$strip>], "action">;
|
|
15
15
|
export type BrowseVariablesInput = z.infer<typeof BrowseVariablesSchema>;
|
|
@@ -2,28 +2,32 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BrowseVariablesSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
-
|
|
5
|
+
const namespaceField = zod_1.z.string().describe("Namespace path (group or project)");
|
|
6
|
+
const filterField = zod_1.z
|
|
6
7
|
.object({
|
|
7
|
-
|
|
8
|
-
namespace: zod_1.z.string().describe("Namespace path (group or project)"),
|
|
9
|
-
key: zod_1.z
|
|
8
|
+
environment_scope: zod_1.z
|
|
10
9
|
.string()
|
|
11
10
|
.optional()
|
|
12
|
-
.describe(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
})
|
|
20
|
-
.optional()
|
|
21
|
-
.describe("Filter parameters for variable lookup (for 'get' action)"),
|
|
11
|
+
.describe('The environment scope filter. Use "*" for all environments or specific environment name like "production".'),
|
|
12
|
+
})
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("Filter parameters for variable lookup");
|
|
15
|
+
const ListVariablesSchema = zod_1.z.object({
|
|
16
|
+
action: zod_1.z.literal("list").describe("List all CI/CD variables"),
|
|
17
|
+
namespace: namespaceField,
|
|
22
18
|
per_page: zod_1.z.number().optional().describe("Number of items per page"),
|
|
23
19
|
page: zod_1.z.number().optional().describe("Page number"),
|
|
24
|
-
})
|
|
25
|
-
.refine(data => data.action !== "get" || data.key !== undefined, {
|
|
26
|
-
message: "key is required for 'get' action",
|
|
27
|
-
path: ["key"],
|
|
28
20
|
});
|
|
21
|
+
const GetVariableSchema = zod_1.z.object({
|
|
22
|
+
action: zod_1.z.literal("get").describe("Get a single CI/CD variable by key"),
|
|
23
|
+
namespace: namespaceField,
|
|
24
|
+
key: zod_1.z
|
|
25
|
+
.string()
|
|
26
|
+
.describe("The key of the CI/CD variable. Maximum 255 characters, alphanumeric and underscore only."),
|
|
27
|
+
filter: filterField,
|
|
28
|
+
});
|
|
29
|
+
exports.BrowseVariablesSchema = zod_1.z.discriminatedUnion("action", [
|
|
30
|
+
ListVariablesSchema,
|
|
31
|
+
GetVariableSchema,
|
|
32
|
+
]);
|
|
29
33
|
//# sourceMappingURL=schema-readonly.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-readonly.js","sourceRoot":"","sources":["../../../../src/entities/variables/schema-readonly.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;
|
|
1
|
+
{"version":3,"file":"schema-readonly.js","sourceRoot":"","sources":["../../../../src/entities/variables/schema-readonly.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAUxB,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;AAChF,MAAM,WAAW,GAAG,OAAC;KAClB,MAAM,CAAC;IACN,iBAAiB,EAAE,OAAC;SACjB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4GAA4G,CAC7G;CACJ,CAAC;KACD,QAAQ,EAAE;KACV,QAAQ,CAAC,uCAAuC,CAAC,CAAC;AAGrD,MAAM,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC9D,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACpE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;CACpD,CAAC,CAAC;AAGH,MAAM,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACvE,SAAS,EAAE,cAAc;IACzB,GAAG,EAAE,OAAC;SACH,MAAM,EAAE;SACR,QAAQ,CACP,0FAA0F,CAC3F;IACH,MAAM,EAAE,WAAW;CACpB,CAAC,CAAC;AAGU,QAAA,qBAAqB,GAAG,OAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IAClE,mBAAmB;IACnB,iBAAiB;CAClB,CAAC,CAAC"}
|
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export declare const ManageVariableSchema: z.ZodObject<{
|
|
3
|
-
action: z.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
export declare const ManageVariableSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
3
|
+
action: z.ZodLiteral<"create">;
|
|
4
|
+
namespace: z.ZodString;
|
|
5
|
+
key: z.ZodString;
|
|
6
|
+
value: z.ZodString;
|
|
7
|
+
variable_type: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodEnum<{
|
|
8
|
+
file: "file";
|
|
9
|
+
env_var: "env_var";
|
|
10
|
+
}>>>;
|
|
11
|
+
environment_scope: z.ZodOptional<z.ZodString>;
|
|
12
|
+
protected: z.ZodOptional<z.ZodPipe<z.ZodTransform<boolean, unknown>, z.ZodBoolean>>;
|
|
13
|
+
masked: z.ZodOptional<z.ZodPipe<z.ZodTransform<boolean, unknown>, z.ZodBoolean>>;
|
|
14
|
+
raw: z.ZodOptional<z.ZodPipe<z.ZodTransform<boolean, unknown>, z.ZodBoolean>>;
|
|
15
|
+
description: z.ZodOptional<z.ZodString>;
|
|
16
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
17
|
+
action: z.ZodLiteral<"update">;
|
|
8
18
|
namespace: z.ZodString;
|
|
9
19
|
key: z.ZodString;
|
|
10
20
|
value: z.ZodOptional<z.ZodString>;
|
|
@@ -20,5 +30,12 @@ export declare const ManageVariableSchema: z.ZodObject<{
|
|
|
20
30
|
filter: z.ZodOptional<z.ZodObject<{
|
|
21
31
|
environment_scope: z.ZodOptional<z.ZodString>;
|
|
22
32
|
}, z.core.$strip>>;
|
|
23
|
-
}, z.core.$strip
|
|
33
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
34
|
+
action: z.ZodLiteral<"delete">;
|
|
35
|
+
namespace: z.ZodString;
|
|
36
|
+
key: z.ZodString;
|
|
37
|
+
filter: z.ZodOptional<z.ZodObject<{
|
|
38
|
+
environment_scope: z.ZodOptional<z.ZodString>;
|
|
39
|
+
}, z.core.$strip>>;
|
|
40
|
+
}, z.core.$strip>], "action">;
|
|
24
41
|
export type ManageVariableInput = z.infer<typeof ManageVariableSchema>;
|