@andrebuzeli/git-mcp 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.md +346 -0
  2. package/dist/client.d.ts +307 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +299 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/config.d.ts +299 -0
  7. package/dist/config.d.ts.map +1 -0
  8. package/dist/config.js +381 -0
  9. package/dist/config.js.map +1 -0
  10. package/dist/index.d.ts +22 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +53 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/providers/base-provider.d.ts +139 -0
  15. package/dist/providers/base-provider.d.ts.map +1 -0
  16. package/dist/providers/base-provider.js +246 -0
  17. package/dist/providers/base-provider.js.map +1 -0
  18. package/dist/providers/error-handler.d.ts +51 -0
  19. package/dist/providers/error-handler.d.ts.map +1 -0
  20. package/dist/providers/error-handler.js +170 -0
  21. package/dist/providers/error-handler.js.map +1 -0
  22. package/dist/providers/gitea-provider.d.ts +68 -0
  23. package/dist/providers/gitea-provider.d.ts.map +1 -0
  24. package/dist/providers/gitea-provider.js +515 -0
  25. package/dist/providers/gitea-provider.js.map +1 -0
  26. package/dist/providers/github-provider.d.ts +68 -0
  27. package/dist/providers/github-provider.d.ts.map +1 -0
  28. package/dist/providers/github-provider.js +518 -0
  29. package/dist/providers/github-provider.js.map +1 -0
  30. package/dist/providers/index.d.ts +13 -0
  31. package/dist/providers/index.d.ts.map +1 -0
  32. package/dist/providers/index.js +41 -0
  33. package/dist/providers/index.js.map +1 -0
  34. package/dist/providers/provider-factory.d.ts +75 -0
  35. package/dist/providers/provider-factory.d.ts.map +1 -0
  36. package/dist/providers/provider-factory.js +298 -0
  37. package/dist/providers/provider-factory.js.map +1 -0
  38. package/dist/providers/types.d.ts +276 -0
  39. package/dist/providers/types.d.ts.map +1 -0
  40. package/dist/providers/types.js +7 -0
  41. package/dist/providers/types.js.map +1 -0
  42. package/dist/server.d.ts +77 -0
  43. package/dist/server.d.ts.map +1 -0
  44. package/dist/server.js +262 -0
  45. package/dist/server.js.map +1 -0
  46. package/dist/tools/actions.d.ts +272 -0
  47. package/dist/tools/actions.d.ts.map +1 -0
  48. package/dist/tools/actions.js +428 -0
  49. package/dist/tools/actions.js.map +1 -0
  50. package/dist/tools/analytics.d.ts +326 -0
  51. package/dist/tools/analytics.d.ts.map +1 -0
  52. package/dist/tools/analytics.js +473 -0
  53. package/dist/tools/analytics.js.map +1 -0
  54. package/dist/tools/branches.d.ts +461 -0
  55. package/dist/tools/branches.d.ts.map +1 -0
  56. package/dist/tools/branches.js +525 -0
  57. package/dist/tools/branches.js.map +1 -0
  58. package/dist/tools/code-review.d.ts +323 -0
  59. package/dist/tools/code-review.d.ts.map +1 -0
  60. package/dist/tools/code-review.js +552 -0
  61. package/dist/tools/code-review.js.map +1 -0
  62. package/dist/tools/commits.d.ts +488 -0
  63. package/dist/tools/commits.d.ts.map +1 -0
  64. package/dist/tools/commits.js +578 -0
  65. package/dist/tools/commits.js.map +1 -0
  66. package/dist/tools/deployments.d.ts +319 -0
  67. package/dist/tools/deployments.d.ts.map +1 -0
  68. package/dist/tools/deployments.js +355 -0
  69. package/dist/tools/deployments.js.map +1 -0
  70. package/dist/tools/files.d.ts +456 -0
  71. package/dist/tools/files.d.ts.map +1 -0
  72. package/dist/tools/files.js +531 -0
  73. package/dist/tools/files.js.map +1 -0
  74. package/dist/tools/git-sync.d.ts +177 -0
  75. package/dist/tools/git-sync.d.ts.map +1 -0
  76. package/dist/tools/git-sync.js +112 -0
  77. package/dist/tools/git-sync.js.map +1 -0
  78. package/dist/tools/issues.d.ts +579 -0
  79. package/dist/tools/issues.d.ts.map +1 -0
  80. package/dist/tools/issues.js +631 -0
  81. package/dist/tools/issues.js.map +1 -0
  82. package/dist/tools/pulls.d.ts +702 -0
  83. package/dist/tools/pulls.d.ts.map +1 -0
  84. package/dist/tools/pulls.js +730 -0
  85. package/dist/tools/pulls.js.map +1 -0
  86. package/dist/tools/releases.d.ts +495 -0
  87. package/dist/tools/releases.d.ts.map +1 -0
  88. package/dist/tools/releases.js +551 -0
  89. package/dist/tools/releases.js.map +1 -0
  90. package/dist/tools/repositories.d.ts +513 -0
  91. package/dist/tools/repositories.d.ts.map +1 -0
  92. package/dist/tools/repositories.js +634 -0
  93. package/dist/tools/repositories.js.map +1 -0
  94. package/dist/tools/security.d.ts +341 -0
  95. package/dist/tools/security.d.ts.map +1 -0
  96. package/dist/tools/security.js +394 -0
  97. package/dist/tools/security.js.map +1 -0
  98. package/dist/tools/tags.d.ts +419 -0
  99. package/dist/tools/tags.d.ts.map +1 -0
  100. package/dist/tools/tags.js +479 -0
  101. package/dist/tools/tags.js.map +1 -0
  102. package/dist/tools/users.d.ts +376 -0
  103. package/dist/tools/users.d.ts.map +1 -0
  104. package/dist/tools/users.js +495 -0
  105. package/dist/tools/users.js.map +1 -0
  106. package/dist/tools/validator.d.ts +192 -0
  107. package/dist/tools/validator.d.ts.map +1 -0
  108. package/dist/tools/validator.js +198 -0
  109. package/dist/tools/validator.js.map +1 -0
  110. package/dist/tools/version-control.d.ts +247 -0
  111. package/dist/tools/version-control.d.ts.map +1 -0
  112. package/dist/tools/version-control.js +521 -0
  113. package/dist/tools/version-control.js.map +1 -0
  114. package/dist/tools/webhooks.d.ts +478 -0
  115. package/dist/tools/webhooks.d.ts.map +1 -0
  116. package/dist/tools/webhooks.js +541 -0
  117. package/dist/tools/webhooks.js.map +1 -0
  118. package/dist/tools/workflows.d.ts +313 -0
  119. package/dist/tools/workflows.d.ts.map +1 -0
  120. package/dist/tools/workflows.js +430 -0
  121. package/dist/tools/workflows.js.map +1 -0
  122. package/package.json +58 -0
@@ -0,0 +1,319 @@
1
+ import { z } from 'zod';
2
+ import { VcsOperations } from '../providers/index.js';
3
+ /**
4
+ * Tool: deployments
5
+ *
6
+ * DESCRIÇÃO:
7
+ * Gerenciamento completo de deployments com múltiplas ações
8
+ *
9
+ * FUNCIONALIDADES:
10
+ * - Listagem de deployments
11
+ * - Criação de deployment
12
+ * - Atualização de status de deployment
13
+ * - Gerenciamento de ambientes
14
+ * - Rollback de deployments
15
+ * - Monitoramento de status
16
+ *
17
+ * USO:
18
+ * - Para rastrear deployments em produção
19
+ * - Para gerenciar ambientes de deploy
20
+ * - Para automação de rollbacks
21
+ * - Para monitoramento de releases
22
+ *
23
+ * RECOMENDAÇÕES:
24
+ * - Use ambientes separados para staging/prod
25
+ * - Monitore status de deployments
26
+ * - Configure rollbacks automáticos
27
+ * - Mantenha histórico de deployments
28
+ */
29
+ /**
30
+ * Schema de validação para entrada da tool deployments
31
+ */
32
+ declare const DeploymentsInputSchema: z.ZodEffects<z.ZodObject<{
33
+ action: z.ZodEnum<["list", "create", "status", "environments", "rollback", "delete"]>;
34
+ owner: z.ZodString;
35
+ repo: z.ZodString;
36
+ provider: z.ZodOptional<z.ZodEnum<["gitea", "github", "both"]>>;
37
+ page: z.ZodOptional<z.ZodNumber>;
38
+ limit: z.ZodOptional<z.ZodNumber>;
39
+ deployment_id: z.ZodOptional<z.ZodString>;
40
+ ref: z.ZodOptional<z.ZodString>;
41
+ environment: z.ZodOptional<z.ZodString>;
42
+ description: z.ZodOptional<z.ZodString>;
43
+ task: z.ZodOptional<z.ZodString>;
44
+ auto_merge: z.ZodOptional<z.ZodBoolean>;
45
+ required_contexts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
46
+ payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
47
+ state: z.ZodOptional<z.ZodEnum<["pending", "success", "error", "failure", "inactive", "in_progress", "queued"]>>;
48
+ log_url: z.ZodOptional<z.ZodString>;
49
+ environment_url: z.ZodOptional<z.ZodString>;
50
+ environment_name: z.ZodOptional<z.ZodString>;
51
+ wait_timer: z.ZodOptional<z.ZodNumber>;
52
+ reviewers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
53
+ sha: z.ZodOptional<z.ZodString>;
54
+ task_filter: z.ZodOptional<z.ZodString>;
55
+ environment_filter: z.ZodOptional<z.ZodString>;
56
+ }, "strip", z.ZodTypeAny, {
57
+ owner: string;
58
+ repo: string;
59
+ action: "status" | "delete" | "create" | "list" | "rollback" | "environments";
60
+ provider?: "gitea" | "github" | "both" | undefined;
61
+ description?: string | undefined;
62
+ state?: "error" | "success" | "queued" | "in_progress" | "failure" | "pending" | "inactive" | undefined;
63
+ ref?: string | undefined;
64
+ page?: number | undefined;
65
+ limit?: number | undefined;
66
+ sha?: string | undefined;
67
+ reviewers?: string[] | undefined;
68
+ deployment_id?: string | undefined;
69
+ environment?: string | undefined;
70
+ task?: string | undefined;
71
+ auto_merge?: boolean | undefined;
72
+ required_contexts?: string[] | undefined;
73
+ payload?: Record<string, any> | undefined;
74
+ log_url?: string | undefined;
75
+ environment_url?: string | undefined;
76
+ environment_name?: string | undefined;
77
+ wait_timer?: number | undefined;
78
+ task_filter?: string | undefined;
79
+ environment_filter?: string | undefined;
80
+ }, {
81
+ owner: string;
82
+ repo: string;
83
+ action: "status" | "delete" | "create" | "list" | "rollback" | "environments";
84
+ provider?: "gitea" | "github" | "both" | undefined;
85
+ description?: string | undefined;
86
+ state?: "error" | "success" | "queued" | "in_progress" | "failure" | "pending" | "inactive" | undefined;
87
+ ref?: string | undefined;
88
+ page?: number | undefined;
89
+ limit?: number | undefined;
90
+ sha?: string | undefined;
91
+ reviewers?: string[] | undefined;
92
+ deployment_id?: string | undefined;
93
+ environment?: string | undefined;
94
+ task?: string | undefined;
95
+ auto_merge?: boolean | undefined;
96
+ required_contexts?: string[] | undefined;
97
+ payload?: Record<string, any> | undefined;
98
+ log_url?: string | undefined;
99
+ environment_url?: string | undefined;
100
+ environment_name?: string | undefined;
101
+ wait_timer?: number | undefined;
102
+ task_filter?: string | undefined;
103
+ environment_filter?: string | undefined;
104
+ }>, {
105
+ owner: string;
106
+ repo: string;
107
+ action: "status" | "delete" | "create" | "list" | "rollback" | "environments";
108
+ provider?: "gitea" | "github" | "both" | undefined;
109
+ description?: string | undefined;
110
+ state?: "error" | "success" | "queued" | "in_progress" | "failure" | "pending" | "inactive" | undefined;
111
+ ref?: string | undefined;
112
+ page?: number | undefined;
113
+ limit?: number | undefined;
114
+ sha?: string | undefined;
115
+ reviewers?: string[] | undefined;
116
+ deployment_id?: string | undefined;
117
+ environment?: string | undefined;
118
+ task?: string | undefined;
119
+ auto_merge?: boolean | undefined;
120
+ required_contexts?: string[] | undefined;
121
+ payload?: Record<string, any> | undefined;
122
+ log_url?: string | undefined;
123
+ environment_url?: string | undefined;
124
+ environment_name?: string | undefined;
125
+ wait_timer?: number | undefined;
126
+ task_filter?: string | undefined;
127
+ environment_filter?: string | undefined;
128
+ }, {
129
+ owner: string;
130
+ repo: string;
131
+ action: "status" | "delete" | "create" | "list" | "rollback" | "environments";
132
+ provider?: "gitea" | "github" | "both" | undefined;
133
+ description?: string | undefined;
134
+ state?: "error" | "success" | "queued" | "in_progress" | "failure" | "pending" | "inactive" | undefined;
135
+ ref?: string | undefined;
136
+ page?: number | undefined;
137
+ limit?: number | undefined;
138
+ sha?: string | undefined;
139
+ reviewers?: string[] | undefined;
140
+ deployment_id?: string | undefined;
141
+ environment?: string | undefined;
142
+ task?: string | undefined;
143
+ auto_merge?: boolean | undefined;
144
+ required_contexts?: string[] | undefined;
145
+ payload?: Record<string, any> | undefined;
146
+ log_url?: string | undefined;
147
+ environment_url?: string | undefined;
148
+ environment_name?: string | undefined;
149
+ wait_timer?: number | undefined;
150
+ task_filter?: string | undefined;
151
+ environment_filter?: string | undefined;
152
+ }>;
153
+ export type DeploymentsInput = z.infer<typeof DeploymentsInputSchema>;
154
+ /**
155
+ * Schema de validação para resultado da tool deployments
156
+ */
157
+ declare const DeploymentsResultSchema: z.ZodObject<{
158
+ success: z.ZodBoolean;
159
+ action: z.ZodString;
160
+ message: z.ZodString;
161
+ data: z.ZodOptional<z.ZodAny>;
162
+ error: z.ZodOptional<z.ZodString>;
163
+ }, "strip", z.ZodTypeAny, {
164
+ message: string;
165
+ action: string;
166
+ success: boolean;
167
+ error?: string | undefined;
168
+ data?: any;
169
+ }, {
170
+ message: string;
171
+ action: string;
172
+ success: boolean;
173
+ error?: string | undefined;
174
+ data?: any;
175
+ }>;
176
+ export type DeploymentsResult = z.infer<typeof DeploymentsResultSchema>;
177
+ /**
178
+ * Implementação da tool deployments
179
+ */
180
+ export declare const deploymentsTool: {
181
+ name: string;
182
+ description: string;
183
+ inputSchema: {
184
+ type: string;
185
+ properties: {
186
+ action: {
187
+ type: string;
188
+ enum: string[];
189
+ description: string;
190
+ };
191
+ owner: {
192
+ type: string;
193
+ description: string;
194
+ };
195
+ repo: {
196
+ type: string;
197
+ description: string;
198
+ };
199
+ provider: {
200
+ type: string;
201
+ description: string;
202
+ };
203
+ deployment_id: {
204
+ type: string;
205
+ description: string;
206
+ };
207
+ ref: {
208
+ type: string;
209
+ description: string;
210
+ };
211
+ environment: {
212
+ type: string;
213
+ description: string;
214
+ };
215
+ description: {
216
+ type: string;
217
+ description: string;
218
+ };
219
+ task: {
220
+ type: string;
221
+ description: string;
222
+ };
223
+ auto_merge: {
224
+ type: string;
225
+ description: string;
226
+ };
227
+ required_contexts: {
228
+ type: string;
229
+ items: {
230
+ type: string;
231
+ };
232
+ description: string;
233
+ };
234
+ payload: {
235
+ type: string;
236
+ description: string;
237
+ };
238
+ state: {
239
+ type: string;
240
+ enum: string[];
241
+ description: string;
242
+ };
243
+ log_url: {
244
+ type: string;
245
+ description: string;
246
+ };
247
+ environment_url: {
248
+ type: string;
249
+ description: string;
250
+ };
251
+ environment_name: {
252
+ type: string;
253
+ description: string;
254
+ };
255
+ wait_timer: {
256
+ type: string;
257
+ description: string;
258
+ };
259
+ reviewers: {
260
+ type: string;
261
+ items: {
262
+ type: string;
263
+ };
264
+ description: string;
265
+ };
266
+ sha: {
267
+ type: string;
268
+ description: string;
269
+ };
270
+ task_filter: {
271
+ type: string;
272
+ description: string;
273
+ };
274
+ environment_filter: {
275
+ type: string;
276
+ description: string;
277
+ };
278
+ page: {
279
+ type: string;
280
+ description: string;
281
+ minimum: number;
282
+ };
283
+ limit: {
284
+ type: string;
285
+ description: string;
286
+ minimum: number;
287
+ maximum: number;
288
+ };
289
+ };
290
+ required: string[];
291
+ };
292
+ handler(input: DeploymentsInput): Promise<DeploymentsResult>;
293
+ /**
294
+ * Lista deployments do repositório
295
+ */
296
+ listDeployments(params: DeploymentsInput, provider: VcsOperations): Promise<DeploymentsResult>;
297
+ /**
298
+ * Cria novo deployment
299
+ */
300
+ createDeployment(params: DeploymentsInput, provider: VcsOperations): Promise<DeploymentsResult>;
301
+ /**
302
+ * Atualiza status do deployment
303
+ */
304
+ updateDeploymentStatus(params: DeploymentsInput, provider: VcsOperations): Promise<DeploymentsResult>;
305
+ /**
306
+ * Lista ambientes de deployment
307
+ */
308
+ listEnvironments(params: DeploymentsInput, provider: VcsOperations): Promise<DeploymentsResult>;
309
+ /**
310
+ * Executa rollback de deployment
311
+ */
312
+ rollbackDeployment(params: DeploymentsInput, provider: VcsOperations): Promise<DeploymentsResult>;
313
+ /**
314
+ * Remove deployment
315
+ */
316
+ deleteDeployment(params: DeploymentsInput, provider: VcsOperations): Promise<DeploymentsResult>;
317
+ };
318
+ export {};
319
+ //# sourceMappingURL=deployments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../../src/tools/deployments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAyB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG7E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;GAEG;AACH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiD1B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAqCL,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqClE;;OAEG;4BAC2B,gBAAgB,YAAY,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiCpG;;OAEG;6BAC4B,gBAAgB,YAAY,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkCrG;;OAEG;mCACkC,gBAAgB,YAAY,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgC3G;;OAEG;6BAC4B,gBAAgB,YAAY,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6BrG;;OAEG;+BAC8B,gBAAgB,YAAY,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6BvG;;OAEG;6BAC4B,gBAAgB,YAAY,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA2BtG,CAAC"}
@@ -0,0 +1,355 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deploymentsTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const index_js_1 = require("../providers/index.js");
6
+ const validator_js_1 = require("./validator.js");
7
+ /**
8
+ * Tool: deployments
9
+ *
10
+ * DESCRIÇÃO:
11
+ * Gerenciamento completo de deployments com múltiplas ações
12
+ *
13
+ * FUNCIONALIDADES:
14
+ * - Listagem de deployments
15
+ * - Criação de deployment
16
+ * - Atualização de status de deployment
17
+ * - Gerenciamento de ambientes
18
+ * - Rollback de deployments
19
+ * - Monitoramento de status
20
+ *
21
+ * USO:
22
+ * - Para rastrear deployments em produção
23
+ * - Para gerenciar ambientes de deploy
24
+ * - Para automação de rollbacks
25
+ * - Para monitoramento de releases
26
+ *
27
+ * RECOMENDAÇÕES:
28
+ * - Use ambientes separados para staging/prod
29
+ * - Monitore status de deployments
30
+ * - Configure rollbacks automáticos
31
+ * - Mantenha histórico de deployments
32
+ */
33
+ /**
34
+ * Schema de validação para entrada da tool deployments
35
+ */
36
+ const DeploymentsInputSchema = zod_1.z.object({
37
+ action: zod_1.z.enum(['list', 'create', 'status', 'environments', 'rollback', 'delete']),
38
+ // Parâmetros comuns
39
+ owner: validator_js_1.CommonSchemas.owner,
40
+ repo: validator_js_1.CommonSchemas.repo,
41
+ provider: validator_js_1.CommonSchemas.provider,
42
+ // Parâmetros para listagem
43
+ page: validator_js_1.CommonSchemas.page,
44
+ limit: validator_js_1.CommonSchemas.limit,
45
+ // Parâmetros para deployment
46
+ deployment_id: validator_js_1.CommonSchemas.shortString,
47
+ ref: validator_js_1.CommonSchemas.branch,
48
+ environment: validator_js_1.CommonSchemas.shortString,
49
+ description: validator_js_1.CommonSchemas.mediumString,
50
+ // Parâmetros para criação
51
+ task: validator_js_1.CommonSchemas.shortString,
52
+ auto_merge: validator_js_1.CommonSchemas.boolean,
53
+ required_contexts: zod_1.z.array(zod_1.z.string()).optional(),
54
+ payload: zod_1.z.record(zod_1.z.any()).optional(),
55
+ // Parâmetros para status
56
+ state: zod_1.z.enum(['pending', 'success', 'error', 'failure', 'inactive', 'in_progress', 'queued']).optional(),
57
+ log_url: validator_js_1.CommonSchemas.mediumString,
58
+ environment_url: validator_js_1.CommonSchemas.mediumString,
59
+ // Parâmetros para ambientes
60
+ environment_name: validator_js_1.CommonSchemas.shortString,
61
+ wait_timer: zod_1.z.number().optional(),
62
+ reviewers: zod_1.z.array(zod_1.z.string()).optional(),
63
+ // Filtros
64
+ sha: validator_js_1.CommonSchemas.shortString,
65
+ task_filter: validator_js_1.CommonSchemas.shortString,
66
+ environment_filter: validator_js_1.CommonSchemas.shortString
67
+ }).refine((data) => {
68
+ // Validações específicas por ação
69
+ if (['create'].includes(data.action)) {
70
+ return data.owner && data.repo && data.ref && data.environment;
71
+ }
72
+ if (['status', 'rollback', 'delete'].includes(data.action)) {
73
+ return data.owner && data.repo && data.deployment_id;
74
+ }
75
+ return data.owner && data.repo;
76
+ }, {
77
+ message: "Parâmetros obrigatórios não fornecidos para a ação especificada"
78
+ });
79
+ /**
80
+ * Schema de validação para resultado da tool deployments
81
+ */
82
+ const DeploymentsResultSchema = zod_1.z.object({
83
+ success: zod_1.z.boolean(),
84
+ action: zod_1.z.string(),
85
+ message: zod_1.z.string(),
86
+ data: zod_1.z.any().optional(),
87
+ error: zod_1.z.string().optional()
88
+ });
89
+ /**
90
+ * Implementação da tool deployments
91
+ */
92
+ exports.deploymentsTool = {
93
+ name: 'deployments',
94
+ description: 'Manage deployments with multiple actions: list, create, status, environments, rollback, delete. Suporte completo a GitHub e Gitea simultaneamente. Boas práticas: use ambientes separados para staging/prod, monitore status de deployments, configure rollbacks automáticos e mantenha histórico de deployments.',
95
+ inputSchema: {
96
+ type: 'object',
97
+ properties: {
98
+ action: {
99
+ type: 'string',
100
+ enum: ['list', 'create', 'status', 'environments', 'rollback', 'delete'],
101
+ description: 'Action to perform on deployments'
102
+ },
103
+ owner: { type: 'string', description: 'Repository owner' },
104
+ repo: { type: 'string', description: 'Repository name' },
105
+ provider: { type: 'string', description: 'Specific provider (github, gitea) or use default' },
106
+ deployment_id: { type: 'string', description: 'Deployment ID' },
107
+ ref: { type: 'string', description: 'Git reference to deploy' },
108
+ environment: { type: 'string', description: 'Deployment environment' },
109
+ description: { type: 'string', description: 'Deployment description' },
110
+ task: { type: 'string', description: 'Deployment task' },
111
+ auto_merge: { type: 'boolean', description: 'Auto merge deployment' },
112
+ required_contexts: { type: 'array', items: { type: 'string' }, description: 'Required status contexts' },
113
+ payload: { type: 'object', description: 'Deployment payload' },
114
+ state: { type: 'string', enum: ['pending', 'success', 'error', 'failure', 'inactive', 'in_progress', 'queued'], description: 'Deployment state' },
115
+ log_url: { type: 'string', description: 'Log URL' },
116
+ environment_url: { type: 'string', description: 'Environment URL' },
117
+ environment_name: { type: 'string', description: 'Environment name' },
118
+ wait_timer: { type: 'number', description: 'Wait timer in minutes' },
119
+ reviewers: { type: 'array', items: { type: 'string' }, description: 'Environment reviewers' },
120
+ sha: { type: 'string', description: 'Commit SHA filter' },
121
+ task_filter: { type: 'string', description: 'Task filter' },
122
+ environment_filter: { type: 'string', description: 'Environment filter' },
123
+ page: { type: 'number', description: 'Page number', minimum: 1 },
124
+ limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 }
125
+ },
126
+ required: ['action']
127
+ },
128
+ async handler(input) {
129
+ try {
130
+ const validatedInput = DeploymentsInputSchema.parse(input);
131
+ const provider = validatedInput.provider
132
+ ? index_js_1.globalProviderFactory.getProvider(validatedInput.provider)
133
+ : index_js_1.globalProviderFactory.getDefaultProvider();
134
+ if (!provider) {
135
+ throw new Error(`Provider '${validatedInput.provider}' não encontrado`);
136
+ }
137
+ switch (validatedInput.action) {
138
+ case 'list':
139
+ return await this.listDeployments(validatedInput, provider);
140
+ case 'create':
141
+ return await this.createDeployment(validatedInput, provider);
142
+ case 'status':
143
+ return await this.updateDeploymentStatus(validatedInput, provider);
144
+ case 'environments':
145
+ return await this.listEnvironments(validatedInput, provider);
146
+ case 'rollback':
147
+ return await this.rollbackDeployment(validatedInput, provider);
148
+ case 'delete':
149
+ return await this.deleteDeployment(validatedInput, provider);
150
+ default:
151
+ throw new Error(`Ação não suportada: ${validatedInput.action}`);
152
+ }
153
+ }
154
+ catch (error) {
155
+ return {
156
+ success: false,
157
+ action: input.action || 'unknown',
158
+ message: 'Erro na operação de deployments',
159
+ error: error instanceof Error ? error.message : String(error)
160
+ };
161
+ }
162
+ },
163
+ /**
164
+ * Lista deployments do repositório
165
+ */
166
+ async listDeployments(params, provider) {
167
+ try {
168
+ if (!provider.listDeployments) {
169
+ return {
170
+ success: false,
171
+ action: 'list-deployments',
172
+ message: 'Funcionalidade não suportada por este provider',
173
+ error: 'Provider não implementa listDeployments'
174
+ };
175
+ }
176
+ const result = await provider.listDeployments({
177
+ owner: params.owner,
178
+ repo: params.repo,
179
+ sha: params.sha,
180
+ ref: params.ref,
181
+ task: params.task_filter,
182
+ environment: params.environment_filter,
183
+ page: params.page,
184
+ limit: params.limit
185
+ });
186
+ return {
187
+ success: true,
188
+ action: 'list',
189
+ message: `${result.deployments?.length || 0} deployments encontrados`,
190
+ data: result
191
+ };
192
+ }
193
+ catch (error) {
194
+ throw new Error(`Falha ao listar deployments: ${error}`);
195
+ }
196
+ },
197
+ /**
198
+ * Cria novo deployment
199
+ */
200
+ async createDeployment(params, provider) {
201
+ try {
202
+ if (!provider.createDeployment) {
203
+ return {
204
+ success: false,
205
+ action: 'create-deployment',
206
+ message: 'Funcionalidade não suportada por este provider',
207
+ error: 'Provider não implementa createDeployment'
208
+ };
209
+ }
210
+ const result = await provider.createDeployment({
211
+ owner: params.owner,
212
+ repo: params.repo,
213
+ ref: params.ref,
214
+ environment: params.environment,
215
+ description: params.description,
216
+ task: params.task || 'deploy',
217
+ auto_merge: params.auto_merge,
218
+ required_contexts: params.required_contexts,
219
+ payload: params.payload
220
+ });
221
+ return {
222
+ success: true,
223
+ action: 'create',
224
+ message: `Deployment criado com sucesso`,
225
+ data: result
226
+ };
227
+ }
228
+ catch (error) {
229
+ throw new Error(`Falha ao criar deployment: ${error}`);
230
+ }
231
+ },
232
+ /**
233
+ * Atualiza status do deployment
234
+ */
235
+ async updateDeploymentStatus(params, provider) {
236
+ try {
237
+ if (!provider.updateDeploymentStatus) {
238
+ return {
239
+ success: false,
240
+ action: 'update-deployment-status',
241
+ message: 'Funcionalidade não suportada por este provider',
242
+ error: 'Provider não implementa updateDeploymentStatus'
243
+ };
244
+ }
245
+ const result = await provider.updateDeploymentStatus({
246
+ owner: params.owner,
247
+ repo: params.repo,
248
+ deployment_id: params.deployment_id,
249
+ state: params.state || 'pending',
250
+ log_url: params.log_url,
251
+ description: params.description,
252
+ environment_url: params.environment_url
253
+ });
254
+ return {
255
+ success: true,
256
+ action: 'status',
257
+ message: `Status do deployment atualizado com sucesso`,
258
+ data: result
259
+ };
260
+ }
261
+ catch (error) {
262
+ throw new Error(`Falha ao atualizar status do deployment: ${error}`);
263
+ }
264
+ },
265
+ /**
266
+ * Lista ambientes de deployment
267
+ */
268
+ async listEnvironments(params, provider) {
269
+ try {
270
+ if (!provider.listEnvironments) {
271
+ return {
272
+ success: false,
273
+ action: 'list-environments',
274
+ message: 'Funcionalidade não suportada por este provider',
275
+ error: 'Provider não implementa listEnvironments'
276
+ };
277
+ }
278
+ const result = await provider.listEnvironments({
279
+ owner: params.owner,
280
+ repo: params.repo,
281
+ page: params.page,
282
+ limit: params.limit
283
+ });
284
+ return {
285
+ success: true,
286
+ action: 'environments',
287
+ message: `${result.environments?.length || 0} ambientes encontrados`,
288
+ data: result
289
+ };
290
+ }
291
+ catch (error) {
292
+ throw new Error(`Falha ao listar ambientes: ${error}`);
293
+ }
294
+ },
295
+ /**
296
+ * Executa rollback de deployment
297
+ */
298
+ async rollbackDeployment(params, provider) {
299
+ try {
300
+ if (!provider.rollbackDeployment) {
301
+ return {
302
+ success: false,
303
+ action: 'rollback-deployment',
304
+ message: 'Funcionalidade não suportada por este provider',
305
+ error: 'Provider não implementa rollbackDeployment'
306
+ };
307
+ }
308
+ const result = await provider.rollbackDeployment({
309
+ owner: params.owner,
310
+ repo: params.repo,
311
+ deployment_id: params.deployment_id,
312
+ description: params.description || 'Rollback automático'
313
+ });
314
+ return {
315
+ success: true,
316
+ action: 'rollback',
317
+ message: `Rollback do deployment executado com sucesso`,
318
+ data: result
319
+ };
320
+ }
321
+ catch (error) {
322
+ throw new Error(`Falha ao executar rollback: ${error}`);
323
+ }
324
+ },
325
+ /**
326
+ * Remove deployment
327
+ */
328
+ async deleteDeployment(params, provider) {
329
+ try {
330
+ if (!provider.deleteDeployment) {
331
+ return {
332
+ success: false,
333
+ action: 'delete-deployment',
334
+ message: 'Funcionalidade não suportada por este provider',
335
+ error: 'Provider não implementa deleteDeployment'
336
+ };
337
+ }
338
+ const result = await provider.deleteDeployment({
339
+ owner: params.owner,
340
+ repo: params.repo,
341
+ deployment_id: params.deployment_id
342
+ });
343
+ return {
344
+ success: true,
345
+ action: 'delete',
346
+ message: `Deployment removido com sucesso`,
347
+ data: result
348
+ };
349
+ }
350
+ catch (error) {
351
+ throw new Error(`Falha ao remover deployment: ${error}`);
352
+ }
353
+ }
354
+ };
355
+ //# sourceMappingURL=deployments.js.map