@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,428 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.actionsTool = 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: actions
9
+ *
10
+ * DESCRIÇÃO:
11
+ * Gerenciamento completo de GitHub Actions com múltiplas ações
12
+ *
13
+ * FUNCIONALIDADES:
14
+ * - Listagem de execuções de actions
15
+ * - Cancelamento de execuções
16
+ * - Re-execução de actions falhadas
17
+ * - Gerenciamento de artefatos
18
+ * - Gerenciamento de secrets (read-only)
19
+ * - Monitoramento de jobs
20
+ *
21
+ * USO:
22
+ * - Para monitorar execuções de CI/CD
23
+ * - Para gerenciar artefatos de build
24
+ * - Para troubleshooting de falhas
25
+ * - Para automação de re-execuções
26
+ *
27
+ * RECOMENDAÇÕES:
28
+ * - Monitore execuções regularmente
29
+ * - Limpe artefatos antigos
30
+ * - Use re-execução apenas quando necessário
31
+ * - Mantenha secrets seguros
32
+ */
33
+ /**
34
+ * Schema de validação para entrada da tool actions
35
+ */
36
+ const ActionsInputSchema = zod_1.z.object({
37
+ action: zod_1.z.enum(['list-runs', 'cancel', 'rerun', 'artifacts', 'secrets', 'jobs', 'download-artifact']),
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 runs
46
+ run_id: validator_js_1.CommonSchemas.shortString,
47
+ workflow_id: validator_js_1.CommonSchemas.shortString,
48
+ status: zod_1.z.enum(['queued', 'in_progress', 'completed', 'cancelled', 'failure', 'success']).optional(),
49
+ branch: validator_js_1.CommonSchemas.branch,
50
+ event: validator_js_1.CommonSchemas.shortString,
51
+ // Parâmetros para jobs
52
+ job_id: validator_js_1.CommonSchemas.shortString,
53
+ // Parâmetros para artefatos
54
+ artifact_id: validator_js_1.CommonSchemas.shortString,
55
+ artifact_name: validator_js_1.CommonSchemas.shortString,
56
+ download_path: validator_js_1.CommonSchemas.mediumString,
57
+ // Parâmetros para secrets
58
+ secret_name: validator_js_1.CommonSchemas.shortString,
59
+ // Filtros de data
60
+ created_after: zod_1.z.string().optional(),
61
+ created_before: zod_1.z.string().optional()
62
+ }).refine((data) => {
63
+ // Validações específicas por ação
64
+ if (['cancel', 'rerun', 'jobs'].includes(data.action)) {
65
+ return data.owner && data.repo && data.run_id;
66
+ }
67
+ if (['download-artifact'].includes(data.action)) {
68
+ return data.owner && data.repo && (data.artifact_id || data.artifact_name);
69
+ }
70
+ return data.owner && data.repo;
71
+ }, {
72
+ message: "Parâmetros obrigatórios não fornecidos para a ação especificada"
73
+ });
74
+ /**
75
+ * Schema de validação para resultado da tool actions
76
+ */
77
+ const ActionsResultSchema = zod_1.z.object({
78
+ success: zod_1.z.boolean(),
79
+ action: zod_1.z.string(),
80
+ message: zod_1.z.string(),
81
+ data: zod_1.z.any().optional(),
82
+ error: zod_1.z.string().optional()
83
+ });
84
+ /**
85
+ * Implementação da tool actions
86
+ */
87
+ exports.actionsTool = {
88
+ name: 'actions',
89
+ description: 'Gerenciamento completo de GitHub Actions e Gitea Actions com múltiplas operações: list-runs (lista execuções), cancel (cancela execução), rerun (re-executa workflow), artifacts (gerencia artefatos), secrets (lista secrets), jobs (lista jobs). Suporte simultâneo para GitHub Actions e Gitea Actions. Boas práticas: monitore execuções regularmente, limpe artefatos antigos, use re-execução apenas quando necessário e mantenha secrets seguros. Uso eficiente: ideal para CI/CD, debugging de pipelines e automação de workflows.',
90
+ inputSchema: {
91
+ type: 'object',
92
+ properties: {
93
+ action: {
94
+ type: 'string',
95
+ enum: ['list-runs', 'cancel', 'rerun', 'artifacts', 'secrets', 'jobs', 'download-artifact'],
96
+ description: 'Ação a executar: list-runs (lista execuções), cancel (cancela), rerun (re-executa), artifacts (artefatos), secrets (lista secrets), jobs (lista jobs), download-artifact (baixa artefato)'
97
+ },
98
+ owner: {
99
+ type: 'string',
100
+ description: 'Proprietário do repositório (OBRIGATÓRIO para todas as ações)'
101
+ },
102
+ repo: {
103
+ type: 'string',
104
+ description: 'Nome do repositório (OBRIGATÓRIO para todas as ações)'
105
+ },
106
+ provider: {
107
+ type: 'string',
108
+ description: 'Provider específico (github, gitea) ou usa padrão'
109
+ },
110
+ run_id: {
111
+ type: 'string',
112
+ description: 'ID da execução do workflow (OBRIGATÓRIO para cancel, rerun, jobs)'
113
+ },
114
+ workflow_id: {
115
+ type: 'string',
116
+ description: 'ID do workflow (OPCIONAL para list-runs)'
117
+ },
118
+ status: {
119
+ type: 'string',
120
+ enum: ['queued', 'in_progress', 'completed', 'cancelled', 'failure', 'success'],
121
+ description: 'Status da execução para filtrar (OPCIONAL para list-runs)'
122
+ },
123
+ branch: {
124
+ type: 'string',
125
+ description: 'Branch para filtrar execuções (OPCIONAL para list-runs)'
126
+ },
127
+ event: {
128
+ type: 'string',
129
+ description: 'Evento que disparou a execução (OPCIONAL para list-runs)'
130
+ },
131
+ job_id: {
132
+ type: 'string',
133
+ description: 'ID do job específico (OBRIGATÓRIO para jobs)'
134
+ },
135
+ artifact_id: {
136
+ type: 'string',
137
+ description: 'ID do artefato (OBRIGATÓRIO para download-artifact se não usar artifact_name)'
138
+ },
139
+ artifact_name: {
140
+ type: 'string',
141
+ description: 'Nome do artefato (OBRIGATÓRIO para download-artifact se não usar artifact_id)'
142
+ },
143
+ download_path: {
144
+ type: 'string',
145
+ description: 'Caminho local para salvar o artefato (OBRIGATÓRIO para download-artifact)'
146
+ },
147
+ secret_name: {
148
+ type: 'string',
149
+ description: 'Nome do secret específico (OPCIONAL para secrets)'
150
+ },
151
+ created_after: {
152
+ type: 'string',
153
+ description: 'Filtrar execuções criadas após esta data (OPCIONAL para list-runs)'
154
+ },
155
+ created_before: {
156
+ type: 'string',
157
+ description: 'Filtrar execuções criadas antes desta data (OPCIONAL para list-runs)'
158
+ },
159
+ page: {
160
+ type: 'number',
161
+ description: 'Página da listagem (mínimo: 1, padrão: 1)',
162
+ minimum: 1
163
+ },
164
+ limit: {
165
+ type: 'number',
166
+ description: 'Itens por página (mínimo: 1, máximo: 100, padrão: 30)',
167
+ minimum: 1,
168
+ maximum: 100
169
+ }
170
+ },
171
+ required: ['action']
172
+ },
173
+ async handler(input) {
174
+ try {
175
+ const validatedInput = ActionsInputSchema.parse(input);
176
+ const provider = validatedInput.provider
177
+ ? index_js_1.globalProviderFactory.getProvider(validatedInput.provider)
178
+ : index_js_1.globalProviderFactory.getDefaultProvider();
179
+ if (!provider) {
180
+ throw new Error(`Provider '${validatedInput.provider}' não encontrado`);
181
+ }
182
+ switch (validatedInput.action) {
183
+ case 'list-runs':
184
+ return await this.listRuns(validatedInput, provider);
185
+ case 'cancel':
186
+ return await this.cancelRun(validatedInput, provider);
187
+ case 'rerun':
188
+ return await this.rerunWorkflow(validatedInput, provider);
189
+ case 'artifacts':
190
+ return await this.listArtifacts(validatedInput, provider);
191
+ case 'secrets':
192
+ return await this.listSecrets(validatedInput, provider);
193
+ case 'jobs':
194
+ return await this.listJobs(validatedInput, provider);
195
+ case 'download-artifact':
196
+ return await this.downloadArtifact(validatedInput, provider);
197
+ default:
198
+ throw new Error(`Ação não suportada: ${validatedInput.action}`);
199
+ }
200
+ }
201
+ catch (error) {
202
+ return {
203
+ success: false,
204
+ action: input.action || 'unknown',
205
+ message: 'Erro na operação de actions',
206
+ error: error instanceof Error ? error.message : String(error)
207
+ };
208
+ }
209
+ },
210
+ /**
211
+ * Lista execuções de workflows
212
+ */
213
+ async listRuns(params, provider) {
214
+ try {
215
+ if (!provider.listWorkflowRuns) {
216
+ return {
217
+ success: false,
218
+ action: 'list-runs',
219
+ message: 'Funcionalidade não suportada por este provider',
220
+ error: 'Provider não implementa listWorkflowRuns'
221
+ };
222
+ }
223
+ const result = await provider.listWorkflowRuns({
224
+ owner: params.owner,
225
+ repo: params.repo,
226
+ workflow_id: params.workflow_id,
227
+ status: params.status,
228
+ branch: params.branch,
229
+ event: params.event,
230
+ created_after: params.created_after,
231
+ created_before: params.created_before,
232
+ page: params.page,
233
+ limit: params.limit
234
+ });
235
+ return {
236
+ success: true,
237
+ action: 'list-runs',
238
+ message: `${result.runs?.length || 0} execuções encontradas`,
239
+ data: result
240
+ };
241
+ }
242
+ catch (error) {
243
+ throw new Error(`Falha ao listar execuções: ${error}`);
244
+ }
245
+ },
246
+ /**
247
+ * Cancela execução de workflow
248
+ */
249
+ async cancelRun(params, provider) {
250
+ try {
251
+ if (!provider.cancelWorkflowRun) {
252
+ return {
253
+ success: false,
254
+ action: 'cancel',
255
+ message: 'Funcionalidade não suportada por este provider',
256
+ error: 'Provider não implementa cancelWorkflowRun'
257
+ };
258
+ }
259
+ const result = await provider.cancelWorkflowRun({
260
+ owner: params.owner,
261
+ repo: params.repo,
262
+ run_id: params.run_id
263
+ });
264
+ return {
265
+ success: true,
266
+ action: 'cancel',
267
+ message: `Execução cancelada com sucesso`,
268
+ data: result
269
+ };
270
+ }
271
+ catch (error) {
272
+ throw new Error(`Falha ao cancelar execução: ${error}`);
273
+ }
274
+ },
275
+ /**
276
+ * Re-executa workflow
277
+ */
278
+ async rerunWorkflow(params, provider) {
279
+ try {
280
+ if (!provider.rerunWorkflow) {
281
+ return {
282
+ success: false,
283
+ action: 'rerun-workflow',
284
+ message: 'Funcionalidade não suportada por este provider',
285
+ error: 'Provider não implementa rerunWorkflow'
286
+ };
287
+ }
288
+ const result = await provider.rerunWorkflow({
289
+ owner: params.owner,
290
+ repo: params.repo,
291
+ run_id: params.run_id
292
+ });
293
+ return {
294
+ success: true,
295
+ action: 'rerun',
296
+ message: `Workflow re-executado com sucesso`,
297
+ data: result
298
+ };
299
+ }
300
+ catch (error) {
301
+ throw new Error(`Falha ao re-executar workflow: ${error}`);
302
+ }
303
+ },
304
+ /**
305
+ * Lista artefatos
306
+ */
307
+ async listArtifacts(params, provider) {
308
+ try {
309
+ if (!provider.listArtifacts) {
310
+ return {
311
+ success: false,
312
+ action: 'list-artifacts',
313
+ message: 'Funcionalidade não suportada por este provider',
314
+ error: 'Provider não implementa listArtifacts'
315
+ };
316
+ }
317
+ const result = await provider.listArtifacts({
318
+ owner: params.owner,
319
+ repo: params.repo,
320
+ run_id: params.run_id,
321
+ page: params.page,
322
+ limit: params.limit
323
+ });
324
+ return {
325
+ success: true,
326
+ action: 'artifacts',
327
+ message: `${result.artifacts?.length || 0} artefatos encontrados`,
328
+ data: result
329
+ };
330
+ }
331
+ catch (error) {
332
+ throw new Error(`Falha ao listar artefatos: ${error}`);
333
+ }
334
+ },
335
+ /**
336
+ * Lista secrets (read-only)
337
+ */
338
+ async listSecrets(params, provider) {
339
+ try {
340
+ if (!provider.listSecrets) {
341
+ return {
342
+ success: false,
343
+ action: 'list-secrets',
344
+ message: 'Funcionalidade não suportada por este provider',
345
+ error: 'Provider não implementa listSecrets'
346
+ };
347
+ }
348
+ const result = await provider.listSecrets({
349
+ owner: params.owner,
350
+ repo: params.repo,
351
+ page: params.page,
352
+ limit: params.limit
353
+ });
354
+ return {
355
+ success: true,
356
+ action: 'secrets',
357
+ message: `${result.secrets?.length || 0} secrets encontrados`,
358
+ data: result
359
+ };
360
+ }
361
+ catch (error) {
362
+ throw new Error(`Falha ao listar secrets: ${error}`);
363
+ }
364
+ },
365
+ /**
366
+ * Lista jobs de uma execução
367
+ */
368
+ async listJobs(params, provider) {
369
+ try {
370
+ if (!provider.listJobs) {
371
+ return {
372
+ success: false,
373
+ action: 'list-jobs',
374
+ message: 'Funcionalidade não suportada por este provider',
375
+ error: 'Provider não implementa listJobs'
376
+ };
377
+ }
378
+ const result = await provider.listJobs({
379
+ owner: params.owner,
380
+ repo: params.repo,
381
+ run_id: params.run_id,
382
+ page: params.page,
383
+ limit: params.limit
384
+ });
385
+ return {
386
+ success: true,
387
+ action: 'jobs',
388
+ message: `${result.jobs?.length || 0} jobs encontrados`,
389
+ data: result
390
+ };
391
+ }
392
+ catch (error) {
393
+ throw new Error(`Falha ao listar jobs: ${error}`);
394
+ }
395
+ },
396
+ /**
397
+ * Baixa artefato
398
+ */
399
+ async downloadArtifact(params, provider) {
400
+ try {
401
+ if (!provider.downloadArtifact) {
402
+ return {
403
+ success: false,
404
+ action: 'download-artifact',
405
+ message: 'Funcionalidade não suportada por este provider',
406
+ error: 'Provider não implementa downloadArtifact'
407
+ };
408
+ }
409
+ const result = await provider.downloadArtifact({
410
+ owner: params.owner,
411
+ repo: params.repo,
412
+ artifact_id: params.artifact_id,
413
+ artifact_name: params.artifact_name,
414
+ download_path: params.download_path
415
+ });
416
+ return {
417
+ success: true,
418
+ action: 'download-artifact',
419
+ message: `Artefato baixado com sucesso`,
420
+ data: result
421
+ };
422
+ }
423
+ catch (error) {
424
+ throw new Error(`Falha ao baixar artefato: ${error}`);
425
+ }
426
+ }
427
+ };
428
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/tools/actions.ts"],"names":[],"mappings":"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"}