@structured-world/gitlab-mcp 6.8.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.
Files changed (108) hide show
  1. package/LICENSE +202 -21
  2. package/LICENSE.MIT +21 -0
  3. package/README.md +149 -1
  4. package/dist/src/config.d.ts +5 -0
  5. package/dist/src/config.js +88 -1
  6. package/dist/src/config.js.map +1 -1
  7. package/dist/src/entities/core/registry.js +68 -63
  8. package/dist/src/entities/core/registry.js.map +1 -1
  9. package/dist/src/entities/core/schema-readonly.d.ts +93 -36
  10. package/dist/src/entities/core/schema-readonly.js +146 -121
  11. package/dist/src/entities/core/schema-readonly.js.map +1 -1
  12. package/dist/src/entities/core/schema.d.ts +33 -23
  13. package/dist/src/entities/core/schema.js +65 -60
  14. package/dist/src/entities/core/schema.js.map +1 -1
  15. package/dist/src/entities/files/registry.js +14 -21
  16. package/dist/src/entities/files/registry.js.map +1 -1
  17. package/dist/src/entities/files/schema-readonly.d.ts +8 -7
  18. package/dist/src/entities/files/schema-readonly.js +20 -25
  19. package/dist/src/entities/files/schema-readonly.js.map +1 -1
  20. package/dist/src/entities/files/schema.d.ts +22 -15
  21. package/dist/src/entities/files/schema.js +32 -73
  22. package/dist/src/entities/files/schema.js.map +1 -1
  23. package/dist/src/entities/integrations/registry.js +3 -0
  24. package/dist/src/entities/integrations/registry.js.map +1 -1
  25. package/dist/src/entities/integrations/schema.d.ts +114 -8
  26. package/dist/src/entities/integrations/schema.js +27 -9
  27. package/dist/src/entities/integrations/schema.js.map +1 -1
  28. package/dist/src/entities/labels/registry.js +8 -7
  29. package/dist/src/entities/labels/registry.js.map +1 -1
  30. package/dist/src/entities/labels/schema-readonly.d.ts +8 -7
  31. package/dist/src/entities/labels/schema-readonly.js +20 -18
  32. package/dist/src/entities/labels/schema-readonly.js.map +1 -1
  33. package/dist/src/entities/labels/schema.d.ts +15 -8
  34. package/dist/src/entities/labels/schema.js +36 -27
  35. package/dist/src/entities/labels/schema.js.map +1 -1
  36. package/dist/src/entities/milestones/registry.js +7 -8
  37. package/dist/src/entities/milestones/registry.js.map +1 -1
  38. package/dist/src/entities/milestones/schema-readonly.d.ts +25 -10
  39. package/dist/src/entities/milestones/schema-readonly.js +47 -26
  40. package/dist/src/entities/milestones/schema-readonly.js.map +1 -1
  41. package/dist/src/entities/milestones/schema.d.ts +19 -9
  42. package/dist/src/entities/milestones/schema.js +31 -20
  43. package/dist/src/entities/milestones/schema.js.map +1 -1
  44. package/dist/src/entities/mrs/registry.js +75 -79
  45. package/dist/src/entities/mrs/registry.js.map +1 -1
  46. package/dist/src/entities/mrs/schema-readonly.d.ts +36 -23
  47. package/dist/src/entities/mrs/schema-readonly.js +197 -338
  48. package/dist/src/entities/mrs/schema-readonly.js.map +1 -1
  49. package/dist/src/entities/mrs/schema.d.ts +113 -37
  50. package/dist/src/entities/mrs/schema.js +140 -258
  51. package/dist/src/entities/mrs/schema.js.map +1 -1
  52. package/dist/src/entities/pipelines/registry.js +10 -4
  53. package/dist/src/entities/pipelines/registry.js.map +1 -1
  54. package/dist/src/entities/pipelines/schema-readonly.d.ts +30 -14
  55. package/dist/src/entities/pipelines/schema-readonly.js +62 -52
  56. package/dist/src/entities/pipelines/schema-readonly.js.map +1 -1
  57. package/dist/src/entities/pipelines/schema.d.ts +23 -16
  58. package/dist/src/entities/pipelines/schema.js +44 -26
  59. package/dist/src/entities/pipelines/schema.js.map +1 -1
  60. package/dist/src/entities/snippets/registry.js +79 -67
  61. package/dist/src/entities/snippets/registry.js.map +1 -1
  62. package/dist/src/entities/snippets/schema-readonly.d.ts +8 -9
  63. package/dist/src/entities/snippets/schema-readonly.js +30 -35
  64. package/dist/src/entities/snippets/schema-readonly.js.map +1 -1
  65. package/dist/src/entities/snippets/schema.d.ts +7 -11
  66. package/dist/src/entities/snippets/schema.js +31 -65
  67. package/dist/src/entities/snippets/schema.js.map +1 -1
  68. package/dist/src/entities/variables/registry.js +9 -5
  69. package/dist/src/entities/variables/registry.js.map +1 -1
  70. package/dist/src/entities/variables/schema-readonly.d.ts +9 -9
  71. package/dist/src/entities/variables/schema-readonly.js +22 -18
  72. package/dist/src/entities/variables/schema-readonly.js.map +1 -1
  73. package/dist/src/entities/variables/schema.d.ts +24 -7
  74. package/dist/src/entities/variables/schema.js +67 -38
  75. package/dist/src/entities/variables/schema.js.map +1 -1
  76. package/dist/src/entities/webhooks/registry.js +48 -46
  77. package/dist/src/entities/webhooks/registry.js.map +1 -1
  78. package/dist/src/entities/webhooks/schema-readonly.d.ts +9 -8
  79. package/dist/src/entities/webhooks/schema-readonly.js +14 -9
  80. package/dist/src/entities/webhooks/schema-readonly.js.map +1 -1
  81. package/dist/src/entities/webhooks/schema.d.ts +79 -26
  82. package/dist/src/entities/webhooks/schema.js +70 -61
  83. package/dist/src/entities/webhooks/schema.js.map +1 -1
  84. package/dist/src/entities/wiki/registry.js +7 -4
  85. package/dist/src/entities/wiki/registry.js.map +1 -1
  86. package/dist/src/entities/wiki/schema-readonly.d.ts +7 -7
  87. package/dist/src/entities/wiki/schema-readonly.js +11 -15
  88. package/dist/src/entities/wiki/schema-readonly.js.map +1 -1
  89. package/dist/src/entities/wiki/schema.d.ts +19 -8
  90. package/dist/src/entities/wiki/schema.js +32 -29
  91. package/dist/src/entities/wiki/schema.js.map +1 -1
  92. package/dist/src/entities/workitems/registry.js +7 -8
  93. package/dist/src/entities/workitems/registry.js.map +1 -1
  94. package/dist/src/entities/workitems/schema-readonly.d.ts +7 -8
  95. package/dist/src/entities/workitems/schema-readonly.js +12 -14
  96. package/dist/src/entities/workitems/schema-readonly.js.map +1 -1
  97. package/dist/src/entities/workitems/schema.d.ts +17 -11
  98. package/dist/src/entities/workitems/schema.js +25 -25
  99. package/dist/src/entities/workitems/schema.js.map +1 -1
  100. package/dist/src/registry-manager.js +22 -11
  101. package/dist/src/registry-manager.js.map +1 -1
  102. package/dist/src/utils/schema-utils.d.ts +28 -0
  103. package/dist/src/utils/schema-utils.js +244 -0
  104. package/dist/src/utils/schema-utils.js.map +1 -0
  105. package/dist/structured-world-gitlab-mcp-6.9.0.tgz +0 -0
  106. package/dist/tsconfig.build.tsbuildinfo +1 -1
  107. package/package.json +2 -2
  108. package/dist/structured-world-gitlab-mcp-6.8.0.tgz +0 -0
@@ -3,87 +3,46 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ManageFilesSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const utils_1 = require("../utils");
6
+ const projectIdField = utils_1.requiredId.describe("Project ID or URL-encoded path");
6
7
  const BatchFileActionSchema = zod_1.z.object({
7
8
  file_path: zod_1.z.string().describe("Path to the file"),
8
9
  content: zod_1.z.string().describe("File content"),
9
10
  encoding: zod_1.z.enum(["text", "base64"]).optional().describe("Content encoding"),
10
11
  execute_filemode: utils_1.flexibleBoolean.optional().describe("Set executable permission"),
11
12
  });
12
- exports.ManageFilesSchema = zod_1.z
13
- .object({
14
- action: zod_1.z.enum(["single", "batch", "upload"]).describe("Action to perform"),
15
- project_id: utils_1.requiredId.describe("Project ID or URL-encoded path"),
16
- file_path: zod_1.z.string().optional().describe("Path to the file. Required for 'single' action."),
17
- content: zod_1.z
18
- .string()
19
- .optional()
20
- .describe("File content (text or base64 encoded). Required for 'single' action."),
21
- commit_message: zod_1.z
22
- .string()
23
- .optional()
24
- .describe("Commit message. Required for 'single' and 'batch' actions."),
25
- branch: zod_1.z
26
- .string()
27
- .optional()
28
- .describe("Target branch name. Required for 'single' and 'batch' actions."),
13
+ const SingleActionSchema = zod_1.z.object({
14
+ action: zod_1.z.literal("single").describe("Create or update a single file"),
15
+ project_id: projectIdField,
16
+ file_path: zod_1.z.string().describe("Path to the file"),
17
+ content: zod_1.z.string().describe("File content (text or base64 encoded)"),
18
+ commit_message: zod_1.z.string().describe("Commit message"),
19
+ branch: zod_1.z.string().describe("Target branch name"),
29
20
  start_branch: zod_1.z.string().optional().describe("Base branch to start from"),
30
- encoding: zod_1.z
31
- .enum(["text", "base64"])
32
- .optional()
33
- .describe("Content encoding (default: text). For 'single' action."),
21
+ encoding: zod_1.z.enum(["text", "base64"]).optional().describe("Content encoding (default: text)"),
34
22
  author_email: zod_1.z.string().optional().describe("Commit author email"),
35
23
  author_name: zod_1.z.string().optional().describe("Commit author name"),
36
- last_commit_id: zod_1.z
37
- .string()
38
- .optional()
39
- .describe("Last known commit ID for conflict detection. For 'single' action."),
40
- execute_filemode: utils_1.flexibleBoolean
41
- .optional()
42
- .describe("Set executable permission. For 'single' action."),
43
- files: zod_1.z
44
- .array(BatchFileActionSchema)
45
- .optional()
46
- .describe("Files to commit. Required for 'batch' action."),
47
- file: zod_1.z
48
- .string()
49
- .optional()
50
- .describe("Base64 encoded file content. Required for 'upload' action."),
51
- filename: zod_1.z.string().optional().describe("Name of the file. Required for 'upload' action."),
52
- })
53
- .refine(data => data.action !== "single" || data.file_path !== undefined, {
54
- message: "file_path is required for 'single' action",
55
- path: ["file_path"],
56
- })
57
- .refine(data => data.action !== "single" || data.content !== undefined, {
58
- message: "content is required for 'single' action",
59
- path: ["content"],
60
- })
61
- .refine(data => data.action !== "single" || data.commit_message !== undefined, {
62
- message: "commit_message is required for 'single' action",
63
- path: ["commit_message"],
64
- })
65
- .refine(data => data.action !== "single" || data.branch !== undefined, {
66
- message: "branch is required for 'single' action",
67
- path: ["branch"],
68
- })
69
- .refine(data => data.action !== "batch" || data.branch !== undefined, {
70
- message: "branch is required for 'batch' action",
71
- path: ["branch"],
72
- })
73
- .refine(data => data.action !== "batch" || data.commit_message !== undefined, {
74
- message: "commit_message is required for 'batch' action",
75
- path: ["commit_message"],
76
- })
77
- .refine(data => data.action !== "batch" || (data.files && data.files.length > 0), {
78
- message: "files array with at least one file is required for 'batch' action",
79
- path: ["files"],
80
- })
81
- .refine(data => data.action !== "upload" || data.file !== undefined, {
82
- message: "file is required for 'upload' action",
83
- path: ["file"],
84
- })
85
- .refine(data => data.action !== "upload" || data.filename !== undefined, {
86
- message: "filename is required for 'upload' action",
87
- path: ["filename"],
24
+ last_commit_id: zod_1.z.string().optional().describe("Last known commit ID for conflict detection"),
25
+ execute_filemode: utils_1.flexibleBoolean.optional().describe("Set executable permission"),
26
+ });
27
+ const BatchActionSchema = zod_1.z.object({
28
+ action: zod_1.z.literal("batch").describe("Commit multiple files atomically"),
29
+ project_id: projectIdField,
30
+ branch: zod_1.z.string().describe("Target branch name"),
31
+ commit_message: zod_1.z.string().describe("Commit message"),
32
+ files: zod_1.z.array(BatchFileActionSchema).min(1).describe("Files to commit (at least one required)"),
33
+ start_branch: zod_1.z.string().optional().describe("Base branch to start from"),
34
+ author_email: zod_1.z.string().optional().describe("Commit author email"),
35
+ author_name: zod_1.z.string().optional().describe("Commit author name"),
36
+ });
37
+ const UploadActionSchema = zod_1.z.object({
38
+ action: zod_1.z.literal("upload").describe("Upload a file as markdown attachment"),
39
+ project_id: projectIdField,
40
+ file: zod_1.z.string().describe("Base64 encoded file content"),
41
+ filename: zod_1.z.string().describe("Name of the file"),
88
42
  });
43
+ exports.ManageFilesSchema = zod_1.z.discriminatedUnion("action", [
44
+ SingleActionSchema,
45
+ BatchActionSchema,
46
+ UploadActionSchema,
47
+ ]);
89
48
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/entities/files/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/entities/files/schema.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,9 @@ exports.integrationsToolRegistry = new Map([
68
68
  inputSchema: z.toJSONSchema(schema_1.ManageIntegrationSchema, {}),
69
69
  handler: async (args) => {
70
70
  const input = schema_1.ManageIntegrationSchema.parse(args);
71
+ if ((0, config_1.isActionDenied)("manage_integration", input.action)) {
72
+ throw new Error(`Action '${input.action}' is not allowed for manage_integration tool`);
73
+ }
71
74
  const projectId = (0, config_1.getEffectiveProjectId)(input.project_id);
72
75
  const integrationSlug = input.integration;
73
76
  const isReadOnly = process.env.GITLAB_READ_ONLY_MODE === "true";
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/entities/integrations/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/entities/integrations/registry.ts"],"names":[],"mappings":"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"}
@@ -51,13 +51,9 @@ export declare const IntegrationTypeSchema: z.ZodEnum<{
51
51
  pushover: "pushover";
52
52
  "squash-tm": "squash-tm";
53
53
  }>;
54
- export declare const ManageIntegrationSchema: z.ZodObject<{
55
- action: z.ZodEnum<{
56
- update: "update";
57
- get: "get";
58
- disable: "disable";
59
- }>;
60
- project_id: z.ZodString;
54
+ export declare const ManageIntegrationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
55
+ action: z.ZodLiteral<"get">;
56
+ project_id: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>;
61
57
  integration: z.ZodEnum<{
62
58
  slack: "slack";
63
59
  "gitlab-slack-application": "gitlab-slack-application";
@@ -110,6 +106,7 @@ export declare const ManageIntegrationSchema: z.ZodObject<{
110
106
  pushover: "pushover";
111
107
  "squash-tm": "squash-tm";
112
108
  }>;
109
+ }, z.core.$strip>, z.ZodObject<{
113
110
  active: z.ZodOptional<z.ZodPipe<z.ZodTransform<boolean, unknown>, z.ZodBoolean>>;
114
111
  push_events: z.ZodOptional<z.ZodPipe<z.ZodTransform<boolean, unknown>, z.ZodBoolean>>;
115
112
  issues_events: z.ZodOptional<z.ZodPipe<z.ZodTransform<boolean, unknown>, z.ZodBoolean>>;
@@ -124,6 +121,115 @@ export declare const ManageIntegrationSchema: z.ZodObject<{
124
121
  releases_events: z.ZodOptional<z.ZodPipe<z.ZodTransform<boolean, unknown>, z.ZodBoolean>>;
125
122
  vulnerability_events: z.ZodOptional<z.ZodPipe<z.ZodTransform<boolean, unknown>, z.ZodBoolean>>;
126
123
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
127
- }, z.core.$loose>;
124
+ action: z.ZodLiteral<"update">;
125
+ project_id: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>;
126
+ integration: z.ZodEnum<{
127
+ slack: "slack";
128
+ "gitlab-slack-application": "gitlab-slack-application";
129
+ "slack-slash-commands": "slack-slash-commands";
130
+ discord: "discord";
131
+ "microsoft-teams": "microsoft-teams";
132
+ mattermost: "mattermost";
133
+ "mattermost-slash-commands": "mattermost-slash-commands";
134
+ telegram: "telegram";
135
+ matrix: "matrix";
136
+ pumble: "pumble";
137
+ "hangouts-chat": "hangouts-chat";
138
+ "webex-teams": "webex-teams";
139
+ "unify-circuit": "unify-circuit";
140
+ campfire: "campfire";
141
+ irker: "irker";
142
+ jira: "jira";
143
+ "jira-cloud-app": "jira-cloud-app";
144
+ bugzilla: "bugzilla";
145
+ redmine: "redmine";
146
+ youtrack: "youtrack";
147
+ clickup: "clickup";
148
+ linear: "linear";
149
+ phorge: "phorge";
150
+ pivotaltracker: "pivotaltracker";
151
+ asana: "asana";
152
+ "custom-issue-tracker": "custom-issue-tracker";
153
+ ewm: "ewm";
154
+ jenkins: "jenkins";
155
+ teamcity: "teamcity";
156
+ bamboo: "bamboo";
157
+ buildkite: "buildkite";
158
+ "drone-ci": "drone-ci";
159
+ datadog: "datadog";
160
+ "mock-ci": "mock-ci";
161
+ "diffblue-cover": "diffblue-cover";
162
+ confluence: "confluence";
163
+ "external-wiki": "external-wiki";
164
+ "apple-app-store": "apple-app-store";
165
+ "google-play": "google-play";
166
+ packagist: "packagist";
167
+ "google-cloud-platform-artifact-registry": "google-cloud-platform-artifact-registry";
168
+ "google-cloud-platform-workload-identity-federation": "google-cloud-platform-workload-identity-federation";
169
+ harbor: "harbor";
170
+ "git-guardian": "git-guardian";
171
+ github: "github";
172
+ assembla: "assembla";
173
+ "emails-on-push": "emails-on-push";
174
+ "pipelines-email": "pipelines-email";
175
+ pushover: "pushover";
176
+ "squash-tm": "squash-tm";
177
+ }>;
178
+ }, z.core.$loose>, z.ZodObject<{
179
+ action: z.ZodLiteral<"disable">;
180
+ project_id: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>;
181
+ integration: z.ZodEnum<{
182
+ slack: "slack";
183
+ "gitlab-slack-application": "gitlab-slack-application";
184
+ "slack-slash-commands": "slack-slash-commands";
185
+ discord: "discord";
186
+ "microsoft-teams": "microsoft-teams";
187
+ mattermost: "mattermost";
188
+ "mattermost-slash-commands": "mattermost-slash-commands";
189
+ telegram: "telegram";
190
+ matrix: "matrix";
191
+ pumble: "pumble";
192
+ "hangouts-chat": "hangouts-chat";
193
+ "webex-teams": "webex-teams";
194
+ "unify-circuit": "unify-circuit";
195
+ campfire: "campfire";
196
+ irker: "irker";
197
+ jira: "jira";
198
+ "jira-cloud-app": "jira-cloud-app";
199
+ bugzilla: "bugzilla";
200
+ redmine: "redmine";
201
+ youtrack: "youtrack";
202
+ clickup: "clickup";
203
+ linear: "linear";
204
+ phorge: "phorge";
205
+ pivotaltracker: "pivotaltracker";
206
+ asana: "asana";
207
+ "custom-issue-tracker": "custom-issue-tracker";
208
+ ewm: "ewm";
209
+ jenkins: "jenkins";
210
+ teamcity: "teamcity";
211
+ bamboo: "bamboo";
212
+ buildkite: "buildkite";
213
+ "drone-ci": "drone-ci";
214
+ datadog: "datadog";
215
+ "mock-ci": "mock-ci";
216
+ "diffblue-cover": "diffblue-cover";
217
+ confluence: "confluence";
218
+ "external-wiki": "external-wiki";
219
+ "apple-app-store": "apple-app-store";
220
+ "google-play": "google-play";
221
+ packagist: "packagist";
222
+ "google-cloud-platform-artifact-registry": "google-cloud-platform-artifact-registry";
223
+ "google-cloud-platform-workload-identity-federation": "google-cloud-platform-workload-identity-federation";
224
+ harbor: "harbor";
225
+ "git-guardian": "git-guardian";
226
+ github: "github";
227
+ assembla: "assembla";
228
+ "emails-on-push": "emails-on-push";
229
+ "pipelines-email": "pipelines-email";
230
+ pushover: "pushover";
231
+ "squash-tm": "squash-tm";
232
+ }>;
233
+ }, z.core.$strip>], "action">;
128
234
  export type ManageIntegrationInput = z.infer<typeof ManageIntegrationSchema>;
129
235
  export type IntegrationType = z.infer<typeof IntegrationTypeSchema>;
@@ -55,14 +55,12 @@ exports.IntegrationTypeSchema = zod_1.z.enum([
55
55
  "pushover",
56
56
  "squash-tm",
57
57
  ]);
58
- exports.ManageIntegrationSchema = zod_1.z
59
- .object({
60
- action: zod_1.z.enum(["get", "update", "disable"]).describe("Action to perform"),
61
- project_id: zod_1.z.string().describe("Project ID or URL-encoded path"),
62
- integration: exports.IntegrationTypeSchema.describe("Integration type slug (e.g., slack, jira, discord). Note: gitlab-slack-application cannot be created via API - it requires OAuth installation from GitLab UI."),
58
+ const projectIdField = utils_1.requiredId.describe("Project ID or URL-encoded path");
59
+ const integrationField = exports.IntegrationTypeSchema.describe("Integration type slug (e.g., slack, jira, discord). Note: gitlab-slack-application cannot be created via API - it requires OAuth installation from GitLab UI.");
60
+ const eventFields = {
63
61
  active: utils_1.flexibleBoolean
64
62
  .optional()
65
- .describe("For 'update': Enable or disable the integration without full configuration"),
63
+ .describe("Enable or disable the integration without full configuration"),
66
64
  push_events: utils_1.flexibleBoolean.optional().describe("Trigger integration on push events"),
67
65
  issues_events: utils_1.flexibleBoolean.optional().describe("Trigger integration on issue events"),
68
66
  merge_requests_events: utils_1.flexibleBoolean
@@ -74,9 +72,7 @@ exports.ManageIntegrationSchema = zod_1.z
74
72
  .optional()
75
73
  .describe("Trigger integration on confidential issue events"),
76
74
  pipeline_events: utils_1.flexibleBoolean.optional().describe("Trigger integration on pipeline events"),
77
- wiki_page_events: utils_1.flexibleBoolean
78
- .optional()
79
- .describe("Trigger integration on wiki page events"),
75
+ wiki_page_events: utils_1.flexibleBoolean.optional().describe("Trigger integration on wiki page events"),
80
76
  job_events: utils_1.flexibleBoolean.optional().describe("Trigger integration on job events"),
81
77
  deployment_events: utils_1.flexibleBoolean
82
78
  .optional()
@@ -89,6 +85,28 @@ exports.ManageIntegrationSchema = zod_1.z
89
85
  .record(zod_1.z.string(), zod_1.z.unknown())
90
86
  .optional()
91
87
  .describe("Integration-specific configuration parameters. Pass as key-value pairs. Examples: webhook_url, token, channel, etc. See GitLab API documentation for integration-specific fields."),
88
+ };
89
+ const GetIntegrationSchema = zod_1.z.object({
90
+ action: zod_1.z.literal("get").describe("Get integration settings (read-only)"),
91
+ project_id: projectIdField,
92
+ integration: integrationField,
93
+ });
94
+ const UpdateIntegrationSchema = zod_1.z
95
+ .object({
96
+ action: zod_1.z.literal("update").describe("Update or enable integration with specific config"),
97
+ project_id: projectIdField,
98
+ integration: integrationField,
99
+ ...eventFields,
92
100
  })
93
101
  .passthrough();
102
+ const DisableIntegrationSchema = zod_1.z.object({
103
+ action: zod_1.z.literal("disable").describe("Disable and remove integration"),
104
+ project_id: projectIdField,
105
+ integration: integrationField,
106
+ });
107
+ exports.ManageIntegrationSchema = zod_1.z.discriminatedUnion("action", [
108
+ GetIntegrationSchema,
109
+ UpdateIntegrationSchema,
110
+ DisableIntegrationSchema,
111
+ ]);
94
112
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/entities/integrations/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,oCAA2C;AAM9B,QAAA,qBAAqB,GAAG,OAAC,CAAC,IAAI,CAAC;IAE1C,OAAO;IACP,0BAA0B;IAC1B,sBAAsB;IACtB,SAAS;IACT,iBAAiB;IACjB,YAAY;IACZ,2BAA2B;IAC3B,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,eAAe;IACf,aAAa;IACb,eAAe;IACf,UAAU;IACV,OAAO;IAEP,MAAM;IACN,gBAAgB;IAChB,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,gBAAgB;IAChB,OAAO;IACP,sBAAsB;IACtB,KAAK;IAEL,SAAS;IACT,UAAU;IACV,QAAQ;IACR,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,gBAAgB;IAEhB,YAAY;IACZ,eAAe;IAEf,iBAAiB;IACjB,aAAa;IACb,WAAW;IAEX,yCAAyC;IACzC,oDAAoD;IACpD,QAAQ;IAER,cAAc;IAEd,QAAQ;IACR,UAAU;IACV,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,WAAW;CACZ,CAAC,CAAC;AAOU,QAAA,uBAAuB,GAAG,OAAC;KACrC,MAAM,CAAC;IACN,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC1E,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACjE,WAAW,EAAE,6BAAqB,CAAC,QAAQ,CACzC,+JAA+J,CAChK;IAGD,MAAM,EAAE,uBAAe;SACpB,QAAQ,EAAE;SACV,QAAQ,CAAC,4EAA4E,CAAC;IAGzF,WAAW,EAAE,uBAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACtF,aAAa,EAAE,uBAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACzF,qBAAqB,EAAE,uBAAe;SACnC,QAAQ,EAAE;SACV,QAAQ,CAAC,6CAA6C,CAAC;IAC1D,eAAe,EAAE,uBAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAC9F,WAAW,EAAE,uBAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACtF,0BAA0B,EAAE,uBAAe;SACxC,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,eAAe,EAAE,uBAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAC9F,gBAAgB,EAAE,uBAAe;SAC9B,QAAQ,EAAE;SACV,QAAQ,CAAC,yCAAyC,CAAC;IACtD,UAAU,EAAE,uBAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACpF,iBAAiB,EAAE,uBAAe;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;IACvD,eAAe,EAAE,uBAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAC7F,oBAAoB,EAAE,uBAAe;SAClC,QAAQ,EAAE;SACV,QAAQ,CAAC,6CAA6C,CAAC;IAI1D,MAAM,EAAE,OAAC;SACN,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CACP,mLAAmL,CACpL;CACJ,CAAC;KACD,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/entities/integrations/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 utils_1 = require("../utils");
45
+ const config_1 = require("../../config");
46
46
  exports.labelsToolRegistry = new Map([
47
47
  [
48
48
  "browse_labels",
@@ -52,15 +52,17 @@ exports.labelsToolRegistry = new Map([
52
52
  inputSchema: z.toJSONSchema(schema_readonly_1.BrowseLabelsSchema),
53
53
  handler: async (args) => {
54
54
  const input = schema_readonly_1.BrowseLabelsSchema.parse(args);
55
+ if ((0, config_1.isActionDenied)("browse_labels", input.action)) {
56
+ throw new Error(`Action '${input.action}' is not allowed for browse_labels 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, label_id: _labelId, ...rest } = input;
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}/labels`, { query });
61
64
  }
62
65
  case "get": {
63
- (0, utils_1.assertDefined)(input.label_id, "label_id");
64
66
  const query = input.include_ancestor_groups
65
67
  ? (0, gitlab_api_1.toQuery)({ include_ancestor_groups: input.include_ancestor_groups }, [])
66
68
  : undefined;
@@ -80,11 +82,12 @@ exports.labelsToolRegistry = new Map([
80
82
  inputSchema: z.toJSONSchema(schema_1.ManageLabelSchema),
81
83
  handler: async (args) => {
82
84
  const input = schema_1.ManageLabelSchema.parse(args);
85
+ if ((0, config_1.isActionDenied)("manage_label", input.action)) {
86
+ throw new Error(`Action '${input.action}' is not allowed for manage_label tool`);
87
+ }
83
88
  const { entityType, encodedPath } = await (0, namespace_1.resolveNamespaceForAPI)(input.namespace);
84
89
  switch (input.action) {
85
90
  case "create": {
86
- (0, utils_1.assertDefined)(input.name, "name");
87
- (0, utils_1.assertDefined)(input.color, "color");
88
91
  return gitlab_api_1.gitlab.post(`${entityType}/${encodedPath}/labels`, {
89
92
  body: {
90
93
  name: input.name,
@@ -96,12 +99,10 @@ exports.labelsToolRegistry = new Map([
96
99
  });
97
100
  }
98
101
  case "update": {
99
- (0, utils_1.assertDefined)(input.label_id, "label_id");
100
102
  const { action: _action, namespace: _namespace, label_id, name: _name, ...body } = input;
101
103
  return gitlab_api_1.gitlab.put(`${entityType}/${encodedPath}/labels/${encodeURIComponent(label_id)}`, { body, contentType: "json" });
102
104
  }
103
105
  case "delete": {
104
- (0, utils_1.assertDefined)(input.label_id, "label_id");
105
106
  await gitlab_api_1.gitlab.delete(`${entityType}/${encodedPath}/labels/${encodeURIComponent(input.label_id)}`);
106
107
  return { deleted: true };
107
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/entities/labels/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/entities/labels/registry.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  import { z } from "zod";
2
- export declare const BrowseLabelsSchema: z.ZodObject<{
3
- action: z.ZodEnum<{
4
- list: "list";
5
- get: "get";
6
- }>;
2
+ export declare const BrowseLabelsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3
+ action: z.ZodLiteral<"list">;
7
4
  namespace: z.ZodString;
8
- label_id: z.ZodOptional<z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>>;
9
5
  search: z.ZodOptional<z.ZodString>;
10
6
  with_counts: z.ZodOptional<z.ZodPipe<z.ZodTransform<boolean, unknown>, z.ZodBoolean>>;
11
7
  include_ancestor_groups: z.ZodOptional<z.ZodPipe<z.ZodTransform<boolean, unknown>, z.ZodBoolean>>;
12
8
  per_page: z.ZodOptional<z.ZodNumber>;
13
9
  page: z.ZodOptional<z.ZodNumber>;
14
- }, z.core.$strip>;
10
+ }, z.core.$strip>, z.ZodObject<{
11
+ action: z.ZodLiteral<"get">;
12
+ namespace: z.ZodString;
13
+ label_id: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>;
14
+ include_ancestor_groups: z.ZodOptional<z.ZodPipe<z.ZodTransform<boolean, unknown>, z.ZodBoolean>>;
15
+ }, z.core.$strip>], "action">;
15
16
  export type BrowseLabelsInput = z.infer<typeof BrowseLabelsSchema>;
@@ -3,25 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BrowseLabelsSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const utils_1 = require("../utils");
6
- exports.BrowseLabelsSchema = zod_1.z
7
- .object({
8
- action: zod_1.z.enum(["list", "get"]).describe("Action to perform"),
9
- namespace: zod_1.z.string().describe("Namespace path (group or project)"),
10
- label_id: utils_1.requiredId
11
- .optional()
12
- .describe("The ID or title of the label. Required for 'get' action."),
13
- search: zod_1.z.string().optional().describe("For 'list': keyword to filter labels by"),
14
- with_counts: utils_1.flexibleBoolean
15
- .optional()
16
- .describe("For 'list': include issue and merge request counts"),
17
- include_ancestor_groups: utils_1.flexibleBoolean
18
- .optional()
19
- .describe("Include ancestor groups when listing or getting labels"),
6
+ const namespaceField = zod_1.z.string().describe("Namespace path (group or project)");
7
+ const includeAncestorGroupsField = utils_1.flexibleBoolean
8
+ .optional()
9
+ .describe("Include ancestor groups when listing or getting labels");
10
+ const ListLabelsSchema = zod_1.z.object({
11
+ action: zod_1.z.literal("list").describe("List labels with optional filtering"),
12
+ namespace: namespaceField,
13
+ search: zod_1.z.string().optional().describe("Keyword to filter labels by"),
14
+ with_counts: utils_1.flexibleBoolean.optional().describe("Include issue and merge request counts"),
15
+ include_ancestor_groups: includeAncestorGroupsField,
20
16
  per_page: zod_1.z.number().optional().describe("Number of items per page"),
21
17
  page: zod_1.z.number().optional().describe("Page number"),
22
- })
23
- .refine(data => data.action !== "get" || data.label_id !== undefined, {
24
- message: "label_id is required for 'get' action",
25
- path: ["label_id"],
26
18
  });
19
+ const GetLabelSchema = zod_1.z.object({
20
+ action: zod_1.z.literal("get").describe("Get a single label by ID or title"),
21
+ namespace: namespaceField,
22
+ label_id: utils_1.requiredId.describe("The ID or title of the label"),
23
+ include_ancestor_groups: includeAncestorGroupsField,
24
+ });
25
+ exports.BrowseLabelsSchema = zod_1.z.discriminatedUnion("action", [
26
+ ListLabelsSchema,
27
+ GetLabelSchema,
28
+ ]);
27
29
  //# sourceMappingURL=schema-readonly.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-readonly.js","sourceRoot":"","sources":["../../../../src/entities/labels/schema-readonly.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,oCAAuD;AAS1C,QAAA,kBAAkB,GAAG,OAAC;KAChC,MAAM,CAAC;IACN,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC7D,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAEnE,QAAQ,EAAE,kBAAU;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IAEvE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACjF,WAAW,EAAE,uBAAe;SACzB,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IACjE,uBAAuB,EAAE,uBAAe;SACrC,QAAQ,EAAE;SACV,QAAQ,CAAC,wDAAwD,CAAC;IAErE,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;KACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;IACpE,OAAO,EAAE,uCAAuC;IAChD,IAAI,EAAE,CAAC,UAAU,CAAC;CACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"schema-readonly.js","sourceRoot":"","sources":["../../../../src/entities/labels/schema-readonly.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,oCAAuD;AAUvD,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;AAChF,MAAM,0BAA0B,GAAG,uBAAe;KAC/C,QAAQ,EAAE;KACV,QAAQ,CAAC,wDAAwD,CAAC,CAAC;AAGtE,MAAM,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACzE,SAAS,EAAE,cAAc;IACzB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACrE,WAAW,EAAE,uBAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAC1F,uBAAuB,EAAE,0BAA0B;IACnD,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,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACtE,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE,kBAAU,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC7D,uBAAuB,EAAE,0BAA0B;CACpD,CAAC,CAAC;AAGU,QAAA,kBAAkB,GAAG,OAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IAC/D,gBAAgB;IAChB,cAAc;CACf,CAAC,CAAC"}
@@ -1,16 +1,23 @@
1
1
  import { z } from "zod";
2
- export declare const ManageLabelSchema: z.ZodObject<{
3
- action: z.ZodEnum<{
4
- create: "create";
5
- update: "update";
6
- delete: "delete";
7
- }>;
2
+ export declare const ManageLabelSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3
+ action: z.ZodLiteral<"create">;
8
4
  namespace: z.ZodString;
9
- label_id: z.ZodOptional<z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>>;
5
+ name: z.ZodString;
6
+ color: z.ZodString;
7
+ description: z.ZodOptional<z.ZodString>;
8
+ priority: z.ZodOptional<z.ZodNumber>;
9
+ }, z.core.$strip>, z.ZodObject<{
10
+ action: z.ZodLiteral<"update">;
11
+ namespace: z.ZodString;
12
+ label_id: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>;
10
13
  name: z.ZodOptional<z.ZodString>;
11
14
  new_name: z.ZodOptional<z.ZodString>;
12
15
  color: z.ZodOptional<z.ZodString>;
13
16
  description: z.ZodOptional<z.ZodString>;
14
17
  priority: z.ZodOptional<z.ZodNumber>;
15
- }, z.core.$strip>;
18
+ }, z.core.$strip>, z.ZodObject<{
19
+ action: z.ZodLiteral<"delete">;
20
+ namespace: z.ZodString;
21
+ label_id: z.ZodPipe<z.ZodTransform<{}, unknown>, z.ZodCoercedString<unknown>>;
22
+ }, z.core.$strip>], "action">;
16
23
  export type ManageLabelInput = z.infer<typeof ManageLabelSchema>;