@andrebuzeli/git-mcp 2.13.0 → 2.14.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 (60) hide show
  1. package/dist/server.js +29 -29
  2. package/dist/server.js.map +1 -1
  3. package/dist/tools/gh-actions.d.ts +272 -0
  4. package/dist/tools/gh-actions.d.ts.map +1 -0
  5. package/dist/tools/gh-actions.js +479 -0
  6. package/dist/tools/gh-actions.js.map +1 -0
  7. package/dist/tools/gh-analytics.d.ts +326 -0
  8. package/dist/tools/gh-analytics.d.ts.map +1 -0
  9. package/dist/tools/gh-analytics.js +524 -0
  10. package/dist/tools/gh-analytics.js.map +1 -0
  11. package/dist/tools/gh-code-review.d.ts +323 -0
  12. package/dist/tools/gh-code-review.d.ts.map +1 -0
  13. package/dist/tools/gh-code-review.js +577 -0
  14. package/dist/tools/gh-code-review.js.map +1 -0
  15. package/dist/tools/gh-deployments.d.ts +319 -0
  16. package/dist/tools/gh-deployments.d.ts.map +1 -0
  17. package/dist/tools/gh-deployments.js +384 -0
  18. package/dist/tools/gh-deployments.js.map +1 -0
  19. package/dist/tools/gh-gists.d.ts +6 -6
  20. package/dist/tools/gh-security.d.ts +341 -0
  21. package/dist/tools/gh-security.d.ts.map +1 -0
  22. package/dist/tools/gh-security.js +427 -0
  23. package/dist/tools/gh-security.js.map +1 -0
  24. package/dist/tools/gh-workflows.d.ts +313 -0
  25. package/dist/tools/gh-workflows.d.ts.map +1 -0
  26. package/dist/tools/gh-workflows.js +462 -0
  27. package/dist/tools/gh-workflows.js.map +1 -0
  28. package/dist/tools/git-branches.d.ts +438 -0
  29. package/dist/tools/git-branches.d.ts.map +1 -0
  30. package/dist/tools/git-branches.js +525 -0
  31. package/dist/tools/git-branches.js.map +1 -0
  32. package/dist/tools/git-commits.d.ts +497 -0
  33. package/dist/tools/git-commits.d.ts.map +1 -0
  34. package/dist/tools/git-commits.js +626 -0
  35. package/dist/tools/git-commits.js.map +1 -0
  36. package/dist/tools/git-files.d.ts +463 -0
  37. package/dist/tools/git-files.d.ts.map +1 -0
  38. package/dist/tools/git-files.js +555 -0
  39. package/dist/tools/git-files.js.map +1 -0
  40. package/dist/tools/git-issues.d.ts +579 -0
  41. package/dist/tools/git-issues.d.ts.map +1 -0
  42. package/dist/tools/git-issues.js +694 -0
  43. package/dist/tools/git-issues.js.map +1 -0
  44. package/dist/tools/git-pulls.d.ts +702 -0
  45. package/dist/tools/git-pulls.d.ts.map +1 -0
  46. package/dist/tools/git-pulls.js +733 -0
  47. package/dist/tools/git-pulls.js.map +1 -0
  48. package/dist/tools/git-releases.d.ts +495 -0
  49. package/dist/tools/git-releases.d.ts.map +1 -0
  50. package/dist/tools/git-releases.js +552 -0
  51. package/dist/tools/git-releases.js.map +1 -0
  52. package/dist/tools/git-tags.d.ts +419 -0
  53. package/dist/tools/git-tags.d.ts.map +1 -0
  54. package/dist/tools/git-tags.js +480 -0
  55. package/dist/tools/git-tags.js.map +1 -0
  56. package/dist/tools/git-webhooks.d.ts +490 -0
  57. package/dist/tools/git-webhooks.d.ts.map +1 -0
  58. package/dist/tools/git-webhooks.js +556 -0
  59. package/dist/tools/git-webhooks.js.map +1 -0
  60. package/package.json +2 -2
@@ -0,0 +1,462 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.workflowsTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const index_js_1 = require("../providers/index.js");
6
+ const user_detection_js_1 = require("../utils/user-detection.js");
7
+ const validator_js_1 = require("./validator.js");
8
+ /**
9
+ * Tool: workflows
10
+ *
11
+ * DESCRIÇÃO:
12
+ * Gerenciamento completo de workflows CI/CD com múltiplas ações
13
+ *
14
+ * FUNCIONALIDADES:
15
+ * - Listagem de workflows ativos
16
+ * - Criação de novos workflows
17
+ * - Disparo manual de workflows
18
+ * - Verificação de status de execução
19
+ * - Obtenção de logs de execução
20
+ * - Controle de workflows (enable/disable)
21
+ *
22
+ * USO:
23
+ * - Para automatizar CI/CD pipelines
24
+ * - Para monitorar execuções
25
+ * - Para gerenciar workflows de desenvolvimento
26
+ * - Para integração com ferramentas de deploy
27
+ *
28
+ * RECOMENDAÇÕES:
29
+ * - Use workflows para automatizar testes
30
+ * - Configure triggers apropriados
31
+ * - Monitore logs regularmente
32
+ * - Mantenha workflows simples e focados
33
+ */
34
+ /**
35
+ * Schema de validação para entrada da tool workflows
36
+ *
37
+ * VALIDAÇÕES:
38
+ * - action: Ação obrigatória (list, create, trigger, status, logs, disable, enable)
39
+ * - Parâmetros específicos por ação
40
+ * - Validação de tipos e formatos
41
+ *
42
+ * RECOMENDAÇÕES:
43
+ * - Sempre valide entrada antes de usar
44
+ * - Use parâmetros opcionais adequadamente
45
+ * - Documente parâmetros obrigatórios
46
+ */
47
+ const WorkflowsInputSchema = zod_1.z.object({
48
+ action: zod_1.z.enum(['list', 'create', 'trigger', 'status', 'logs', 'disable', 'enable']),
49
+ // Parâmetros comuns
50
+ owner: validator_js_1.CommonSchemas.owner,
51
+ repo: validator_js_1.CommonSchemas.repo,
52
+ provider: validator_js_1.CommonSchemas.provider,
53
+ // Parâmetros para listagem
54
+ page: validator_js_1.CommonSchemas.page,
55
+ limit: validator_js_1.CommonSchemas.limit,
56
+ // Parâmetros para criação
57
+ name: validator_js_1.CommonSchemas.shortString,
58
+ description: validator_js_1.CommonSchemas.mediumString,
59
+ workflow_content: validator_js_1.CommonSchemas.longString,
60
+ branch: validator_js_1.CommonSchemas.branch,
61
+ // Parâmetros para trigger e status
62
+ workflow_id: validator_js_1.CommonSchemas.shortString,
63
+ workflow_name: validator_js_1.CommonSchemas.shortString,
64
+ run_id: validator_js_1.CommonSchemas.shortString,
65
+ // Parâmetros para logs
66
+ job_id: validator_js_1.CommonSchemas.shortString,
67
+ step_number: zod_1.z.number().optional(),
68
+ // Parâmetros para inputs do workflow
69
+ inputs: zod_1.z.record(zod_1.z.string()).optional(),
70
+ ref: validator_js_1.CommonSchemas.branch.optional()
71
+ }).refine((data) => {
72
+ // Validações específicas por ação
73
+ if (['create'].includes(data.action)) {
74
+ return data.owner && data.repo && data.name && data.workflow_content;
75
+ }
76
+ if (['trigger', 'status', 'logs', 'disable', 'enable'].includes(data.action)) {
77
+ return data.owner && data.repo && (data.workflow_id || data.workflow_name);
78
+ }
79
+ return data.owner && data.repo;
80
+ }, {
81
+ message: "Parâmetros obrigatórios não fornecidos para a ação especificada"
82
+ });
83
+ /**
84
+ * Schema de validação para resultado da tool workflows
85
+ */
86
+ const WorkflowsResultSchema = zod_1.z.object({
87
+ success: zod_1.z.boolean(),
88
+ action: zod_1.z.string(),
89
+ message: zod_1.z.string(),
90
+ data: zod_1.z.any().optional(),
91
+ error: zod_1.z.string().optional()
92
+ });
93
+ /**
94
+ * Implementação da tool workflows
95
+ *
96
+ * ESTRUTURA:
97
+ * - Validação de entrada
98
+ * - Seleção do provider
99
+ * - Execução da ação
100
+ * - Tratamento de erros
101
+ * - Formatação do resultado
102
+ *
103
+ * AÇÕES SUPORTADAS:
104
+ * - list: Lista workflows do repositório
105
+ * - create: Cria novo workflow
106
+ * - trigger: Dispara workflow manualmente
107
+ * - status: Verifica status de execução
108
+ * - logs: Obtém logs de execução
109
+ * - disable: Desabilita workflow
110
+ * - enable: Habilita workflow
111
+ *
112
+ * TRATAMENTO DE ERROS:
113
+ * - Validação de parâmetros
114
+ * - Verificação de permissões
115
+ * - Tratamento de falhas de API
116
+ * - Logs detalhados para debug
117
+ */
118
+ exports.workflowsTool = {
119
+ name: 'gh-workflows',
120
+ description: 'Gerenciamento completo de GitHub Actions workflows CI/CD (EXCLUSIVO GITHUB). PARÂMETROS OBRIGATÓRIOS: action, owner, repo, provider (deve ser github). AÇÕES: list (lista workflows), create (cria YAML), trigger (dispara), status (verifica), logs (obtém), disable/enable (controle). Boas práticas: automatize CI/CD, monitore execuções, configure triggers apropriados.',
121
+ inputSchema: {
122
+ type: 'object',
123
+ properties: {
124
+ action: {
125
+ type: 'string',
126
+ enum: ['list', 'create', 'trigger', 'status', 'logs', 'disable', 'enable'],
127
+ description: 'Action to perform on workflows'
128
+ },
129
+ owner: { type: 'string', description: 'Repository owner' },
130
+ repo: { type: 'string', description: 'Repository name' },
131
+ provider: { type: 'string', description: 'Specific provider (github, gitea) or use default' },
132
+ name: { type: 'string', description: 'Workflow name for creation' },
133
+ description: { type: 'string', description: 'Workflow description' },
134
+ workflow_content: { type: 'string', description: 'Workflow YAML content' },
135
+ branch: { type: 'string', description: 'Target branch' },
136
+ workflow_id: { type: 'string', description: 'Workflow ID' },
137
+ workflow_name: { type: 'string', description: 'Workflow name' },
138
+ run_id: { type: 'string', description: 'Workflow run ID' },
139
+ job_id: { type: 'string', description: 'Job ID for logs' },
140
+ step_number: { type: 'number', description: 'Step number for logs' },
141
+ inputs: { type: 'object', description: 'Workflow inputs' },
142
+ ref: { type: 'string', description: 'Git reference for trigger' },
143
+ page: { type: 'number', description: 'Page number', minimum: 1 },
144
+ limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 }
145
+ },
146
+ required: ['action', 'owner', 'repo', 'provider']
147
+ },
148
+ /**
149
+ * Handler principal da tool workflows
150
+ *
151
+ * FLUXO:
152
+ * 1. Validação da entrada
153
+ * 2. Seleção do provider
154
+ * 3. Execução da ação específica
155
+ * 4. Formatação e retorno do resultado
156
+ *
157
+ * PARÂMETROS:
158
+ * @param input - Dados de entrada validados
159
+ *
160
+ * RETORNO:
161
+ * @returns Promise<WorkflowsResult> - Resultado da operação
162
+ *
163
+ * ERROS:
164
+ * - Lança exceção em caso de erro de validação
165
+ * - Retorna erro formatado em caso de falha de API
166
+ */
167
+ async handler(input) {
168
+ try {
169
+ // Validação da entrada
170
+ const validatedInput = WorkflowsInputSchema.parse(input);
171
+ // Aplicar auto-detecção de usuário
172
+ const updatedParams = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.provider);
173
+ // Seleção do provider
174
+ const provider = updatedParams.provider
175
+ ? index_js_1.globalProviderFactory.getProvider(updatedParams.provider)
176
+ : index_js_1.globalProviderFactory.getDefaultProvider();
177
+ if (!provider) {
178
+ throw new Error(`Provider '${updatedParams.provider}' não encontrado`);
179
+ }
180
+ // Execução da ação específica
181
+ switch (updatedParams.action) {
182
+ case 'list':
183
+ return await this.listWorkflows(updatedParams, provider);
184
+ case 'create':
185
+ return await this.createWorkflow(updatedParams, provider);
186
+ case 'trigger':
187
+ return await this.triggerWorkflow(updatedParams, provider);
188
+ case 'status':
189
+ return await this.getWorkflowStatus(updatedParams, provider);
190
+ case 'logs':
191
+ return await this.getWorkflowLogs(updatedParams, provider);
192
+ case 'disable':
193
+ return await this.disableWorkflow(updatedParams, provider);
194
+ case 'enable':
195
+ return await this.enableWorkflow(updatedParams, provider);
196
+ default:
197
+ throw new Error(`Ação não suportada: ${updatedParams.action}`);
198
+ }
199
+ }
200
+ catch (error) {
201
+ return {
202
+ success: false,
203
+ action: input.action || 'unknown',
204
+ message: 'Erro na operação de workflows',
205
+ error: error instanceof Error ? error.message : String(error)
206
+ };
207
+ }
208
+ },
209
+ /**
210
+ * Lista workflows do repositório
211
+ */
212
+ async listWorkflows(params, provider) {
213
+ try {
214
+ // Auto-detecção de owner/username se não fornecidos
215
+ let updatedParams = { ...params };
216
+ if (!updatedParams.owner) {
217
+ try {
218
+ const currentUser = await provider.getCurrentUser();
219
+ updatedParams.owner = currentUser.login;
220
+ }
221
+ catch (error) {
222
+ console.warn('[WORKFLOWS.TS] Falha na auto-detecção de usuário');
223
+ }
224
+ }
225
+ if (!provider.listWorkflows) {
226
+ return {
227
+ success: true,
228
+ action: 'list',
229
+ message: 'Funcionalidade de workflows não suportada por este provider',
230
+ data: {
231
+ total_count: 0,
232
+ workflows: [],
233
+ note: 'Workflows não disponíveis neste provider'
234
+ }
235
+ };
236
+ }
237
+ const result = await provider.listWorkflows({
238
+ owner: params.owner,
239
+ repo: params.repo,
240
+ page: params.page,
241
+ limit: params.limit
242
+ });
243
+ return {
244
+ success: true,
245
+ action: 'list',
246
+ message: `${result.workflows?.length || 0} workflows encontrados`,
247
+ data: result
248
+ };
249
+ }
250
+ catch (error) {
251
+ throw new Error(`Falha ao listar workflows: ${error}`);
252
+ }
253
+ },
254
+ /**
255
+ * Cria novo workflow
256
+ */
257
+ async createWorkflow(params, provider) {
258
+ try {
259
+ if (!provider.createWorkflow) {
260
+ return {
261
+ success: false,
262
+ action: 'create-workflow',
263
+ message: 'Funcionalidade não suportada por este provider',
264
+ error: 'Provider não implementa createWorkflow'
265
+ };
266
+ }
267
+ const result = await provider.createWorkflow({
268
+ owner: params.owner,
269
+ repo: params.repo,
270
+ name: params.name,
271
+ description: params.description,
272
+ content: params.workflow_content,
273
+ branch: params.branch
274
+ });
275
+ return {
276
+ success: true,
277
+ action: 'create',
278
+ message: `Workflow '${params.name}' criado com sucesso`,
279
+ data: result
280
+ };
281
+ }
282
+ catch (error) {
283
+ throw new Error(`Falha ao criar workflow: ${error}`);
284
+ }
285
+ },
286
+ /**
287
+ * Dispara workflow manualmente
288
+ */
289
+ async triggerWorkflow(params, provider) {
290
+ try {
291
+ if (!provider.triggerWorkflow) {
292
+ return {
293
+ success: false,
294
+ action: 'trigger-workflow',
295
+ message: 'Funcionalidade não suportada por este provider',
296
+ error: 'Provider não implementa triggerWorkflow'
297
+ };
298
+ }
299
+ const result = await provider.triggerWorkflow({
300
+ owner: params.owner,
301
+ repo: params.repo,
302
+ workflow_id: params.workflow_id,
303
+ workflow_name: params.workflow_name,
304
+ ref: params.ref || 'main',
305
+ inputs: params.inputs
306
+ });
307
+ return {
308
+ success: true,
309
+ action: 'trigger',
310
+ message: `Workflow disparado com sucesso`,
311
+ data: result
312
+ };
313
+ }
314
+ catch (error) {
315
+ throw new Error(`Falha ao disparar workflow: ${error}`);
316
+ }
317
+ },
318
+ /**
319
+ * Verifica status de execução do workflow
320
+ */
321
+ async getWorkflowStatus(params, provider) {
322
+ try {
323
+ // Auto-detecção de owner/username se não fornecidos
324
+ let updatedParams = { ...params };
325
+ if (!updatedParams.owner) {
326
+ try {
327
+ const currentUser = await provider.getCurrentUser();
328
+ updatedParams.owner = currentUser.login;
329
+ }
330
+ catch (error) {
331
+ console.warn('[WORKFLOWS.TS] Falha na auto-detecção de usuário');
332
+ }
333
+ }
334
+ if (!provider.getWorkflowStatus) {
335
+ return {
336
+ success: false,
337
+ action: 'get-workflow-status',
338
+ message: 'Funcionalidade não suportada por este provider',
339
+ error: 'Provider não implementa getWorkflowStatus'
340
+ };
341
+ }
342
+ const result = await provider.getWorkflowStatus({
343
+ owner: params.owner,
344
+ repo: params.repo,
345
+ run_id: params.run_id,
346
+ workflow_id: params.workflow_id
347
+ });
348
+ return {
349
+ success: true,
350
+ action: 'status',
351
+ message: `Status do workflow obtido com sucesso`,
352
+ data: result
353
+ };
354
+ }
355
+ catch (error) {
356
+ throw new Error(`Falha ao obter status do workflow: ${error}`);
357
+ }
358
+ },
359
+ /**
360
+ * Obtém logs de execução do workflow
361
+ */
362
+ async getWorkflowLogs(params, provider) {
363
+ try {
364
+ // Auto-detecção de owner/username se não fornecidos
365
+ let updatedParams = { ...params };
366
+ if (!updatedParams.owner) {
367
+ try {
368
+ const currentUser = await provider.getCurrentUser();
369
+ updatedParams.owner = currentUser.login;
370
+ }
371
+ catch (error) {
372
+ console.warn('[WORKFLOWS.TS] Falha na auto-detecção de usuário');
373
+ }
374
+ }
375
+ if (!provider.getWorkflowLogs) {
376
+ return {
377
+ success: false,
378
+ action: 'get-workflow-logs',
379
+ message: 'Funcionalidade não suportada por este provider',
380
+ error: 'Provider não implementa getWorkflowLogs'
381
+ };
382
+ }
383
+ const result = await provider.getWorkflowLogs({
384
+ owner: params.owner,
385
+ repo: params.repo,
386
+ run_id: params.run_id,
387
+ job_id: params.job_id,
388
+ step_number: params.step_number
389
+ });
390
+ return {
391
+ success: true,
392
+ action: 'logs',
393
+ message: `Logs do workflow obtidos com sucesso`,
394
+ data: result
395
+ };
396
+ }
397
+ catch (error) {
398
+ throw new Error(`Falha ao obter logs do workflow: ${error}`);
399
+ }
400
+ },
401
+ /**
402
+ * Desabilita workflow
403
+ */
404
+ async disableWorkflow(params, provider) {
405
+ try {
406
+ if (!provider.disableWorkflow) {
407
+ return {
408
+ success: false,
409
+ action: 'disable-workflow',
410
+ message: 'Funcionalidade não suportada por este provider',
411
+ error: 'Provider não implementa disableWorkflow'
412
+ };
413
+ }
414
+ const result = await provider.disableWorkflow({
415
+ owner: params.owner,
416
+ repo: params.repo,
417
+ workflow_id: params.workflow_id,
418
+ workflow_name: params.workflow_name
419
+ });
420
+ return {
421
+ success: true,
422
+ action: 'disable',
423
+ message: `Workflow desabilitado com sucesso`,
424
+ data: result
425
+ };
426
+ }
427
+ catch (error) {
428
+ throw new Error(`Falha ao desabilitar workflow: ${error}`);
429
+ }
430
+ },
431
+ /**
432
+ * Habilita workflow
433
+ */
434
+ async enableWorkflow(params, provider) {
435
+ try {
436
+ if (!provider.enableWorkflow) {
437
+ return {
438
+ success: false,
439
+ action: 'enable-workflow',
440
+ message: 'Funcionalidade não suportada por este provider',
441
+ error: 'Provider não implementa enableWorkflow'
442
+ };
443
+ }
444
+ const result = await provider.enableWorkflow({
445
+ owner: params.owner,
446
+ repo: params.repo,
447
+ workflow_id: params.workflow_id,
448
+ workflow_name: params.workflow_name
449
+ });
450
+ return {
451
+ success: true,
452
+ action: 'enable',
453
+ message: `Workflow habilitado com sucesso`,
454
+ data: result
455
+ };
456
+ }
457
+ catch (error) {
458
+ throw new Error(`Falha ao habilitar workflow: ${error}`);
459
+ }
460
+ }
461
+ };
462
+ //# sourceMappingURL=gh-workflows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gh-workflows.js","sourceRoot":"","sources":["../../src/tools/gh-workflows.ts"],"names":[],"mappings":"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"}