@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
package/dist/config.js ADDED
@@ -0,0 +1,381 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = exports.ConfigManager = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * Schema de validação para configuração do servidor MCP Gitea
7
+ *
8
+ * VALIDAÇÕES:
9
+ * - giteaUrl: Deve ser uma URL válida
10
+ * - giteaToken: Deve ter pelo menos 1 caractere
11
+ * - giteaUsername: Opcional
12
+ * - debug: Padrão false
13
+ * - timeout: Deve ser positivo, padrão 30000ms
14
+ *
15
+ * RECOMENDAÇÕES:
16
+ * - Use HTTPS para produção
17
+ * - Token deve ter permissões adequadas
18
+ * - Timeout deve considerar latência da rede
19
+ */
20
+ const ConfigSchema = zod_1.z.object({
21
+ // Configuração legacy para Gitea
22
+ giteaUrl: zod_1.z.string().url().optional(),
23
+ giteaToken: zod_1.z.string().min(1).optional(),
24
+ giteaUsername: zod_1.z.string().optional(),
25
+ // Configuração para GitHub
26
+ githubToken: zod_1.z.string().min(1).optional(),
27
+ // Configuração genérica para multi-provider
28
+ provider: zod_1.z.enum(['gitea', 'github']).optional(),
29
+ apiUrl: zod_1.z.string().url().optional(),
30
+ apiToken: zod_1.z.string().min(1).optional(),
31
+ // Configuração multi-provider
32
+ defaultProvider: zod_1.z.string().optional(),
33
+ providersJson: zod_1.z.string().optional().transform(val => {
34
+ if (val) {
35
+ try {
36
+ return JSON.parse(val);
37
+ }
38
+ catch (e) {
39
+ console.error("Error parsing PROVIDERS_JSON:", e);
40
+ return undefined;
41
+ }
42
+ }
43
+ return undefined;
44
+ }),
45
+ // Configurações gerais
46
+ debug: zod_1.z.boolean().default(false),
47
+ timeout: zod_1.z.number().positive().default(30000),
48
+ }).superRefine((data, ctx) => {
49
+ // Validação: deve ter pelo menos uma configuração válida ou modo demo
50
+ const hasGiteaConfig = data.giteaUrl && data.giteaToken;
51
+ const hasGitHubConfig = data.githubToken;
52
+ const hasGenericConfig = data.apiUrl && data.apiToken;
53
+ const hasMultiProviderConfig = data.providersJson;
54
+ const isDemoMode = process.env.DEMO_MODE === 'true';
55
+ const configCount = [hasGiteaConfig, hasGitHubConfig, hasGenericConfig, hasMultiProviderConfig].filter(Boolean).length;
56
+ if (configCount === 0 && !isDemoMode) {
57
+ ctx.addIssue({
58
+ code: zod_1.z.ZodIssueCode.custom,
59
+ message: "Configuration required: At least one provider configuration must be provided (GITEA_URL+GITEA_TOKEN, GITHUB_TOKEN, API_URL+API_TOKEN, or PROVIDERS_JSON). Use DEMO_MODE=true for testing without real providers.",
60
+ path: ['giteaUrl', 'githubToken', 'apiUrl', 'providersJson'],
61
+ });
62
+ }
63
+ // Se provider é especificado, apiUrl e apiToken são obrigatórios
64
+ if (data.provider && (!data.apiUrl || !data.apiToken)) {
65
+ ctx.addIssue({
66
+ code: zod_1.z.ZodIssueCode.custom,
67
+ message: "When provider is specified, both apiUrl and apiToken are required.",
68
+ path: ['apiUrl', 'apiToken'],
69
+ });
70
+ }
71
+ });
72
+ /**
73
+ * Gerenciador de configuração usando padrão Singleton
74
+ *
75
+ * RESPONSABILIDADES:
76
+ * - Carregar configuração do ambiente
77
+ * - Validar parâmetros obrigatórios
78
+ * - Fornecer acesso centralizado à configuração
79
+ *
80
+ * USO:
81
+ * - const config = ConfigManager.getInstance();
82
+ * - const url = config.getGiteaUrl();
83
+ *
84
+ * RECOMENDAÇÕES:
85
+ * - Sempre use getInstance() para acessar
86
+ * - Configure variáveis de ambiente adequadamente
87
+ * - Valide configuração antes de usar
88
+ */
89
+ class ConfigManager {
90
+ static instance;
91
+ config;
92
+ constructor() {
93
+ this.config = this.loadConfig();
94
+ }
95
+ /**
96
+ * Obtém a instância única do ConfigManager
97
+ *
98
+ * IMPLEMENTAÇÃO:
99
+ * - Singleton pattern para configuração global
100
+ * - Thread-safe para aplicações concorrentes
101
+ *
102
+ * RETORNO:
103
+ * - Instância única do ConfigManager
104
+ */
105
+ static getInstance() {
106
+ if (!ConfigManager.instance) {
107
+ ConfigManager.instance = new ConfigManager();
108
+ }
109
+ return ConfigManager.instance;
110
+ }
111
+ /**
112
+ * Carrega e valida a configuração do ambiente
113
+ *
114
+ * FONTES DE CONFIGURAÇÃO:
115
+ * - Variáveis de ambiente (prioridade alta)
116
+ * - Valores padrão (fallback)
117
+ *
118
+ * VALIDAÇÃO:
119
+ * - Schema Zod para validação rigorosa
120
+ * - Mensagens de erro descritivas
121
+ *
122
+ * ERROS:
123
+ * - Configuração inválida gera exceção
124
+ * - Token obrigatório deve ser fornecido
125
+ */
126
+ loadConfig() {
127
+ const config = {
128
+ // Configuração legacy para Gitea
129
+ giteaUrl: process.env.GITEA_URL,
130
+ giteaToken: process.env.GITEA_TOKEN,
131
+ giteaUsername: process.env.GITEA_USERNAME,
132
+ // Configuração para GitHub
133
+ githubToken: process.env.GITHUB_TOKEN,
134
+ // Configuração genérica para multi-provider
135
+ provider: process.env.PROVIDER,
136
+ apiUrl: process.env.API_URL,
137
+ apiToken: process.env.API_TOKEN,
138
+ // Configuração multi-provider
139
+ defaultProvider: process.env.DEFAULT_PROVIDER,
140
+ providersJson: process.env.PROVIDERS_JSON,
141
+ // Configurações gerais
142
+ debug: process.env.DEBUG === 'true',
143
+ timeout: parseInt(process.env.TIMEOUT || '30000'),
144
+ };
145
+ // Auto-detectar configuração multi-provider se ambos Gitea e GitHub estão configurados
146
+ if (config.giteaUrl && config.giteaToken && config.githubToken && !config.providersJson) {
147
+ config.providersJson = JSON.stringify({
148
+ defaultProvider: 'gitea',
149
+ providers: [
150
+ {
151
+ name: 'gitea',
152
+ type: 'gitea',
153
+ apiUrl: config.giteaUrl,
154
+ token: config.giteaToken,
155
+ username: config.giteaUsername
156
+ },
157
+ {
158
+ name: 'github',
159
+ type: 'github',
160
+ apiUrl: 'https://api.github.com',
161
+ token: config.githubToken
162
+ }
163
+ ]
164
+ });
165
+ }
166
+ try {
167
+ return ConfigSchema.parse(config);
168
+ }
169
+ catch (error) {
170
+ if (error instanceof zod_1.z.ZodError) {
171
+ const issues = error.issues.map(issue => `${issue.path.join('.')}: ${issue.message}`).join(', ');
172
+ throw new Error(`Configuration validation failed: ${issues}`);
173
+ }
174
+ throw error;
175
+ }
176
+ }
177
+ /**
178
+ * Obtém a configuração completa validada
179
+ *
180
+ * RETORNO:
181
+ * - Objeto Config com todos os parâmetros
182
+ *
183
+ * USO:
184
+ * - Para acesso direto à configuração
185
+ * - Para validação de parâmetros
186
+ */
187
+ getConfig() {
188
+ return this.config;
189
+ }
190
+ /**
191
+ * Obtém a URL base do Gitea
192
+ *
193
+ * RETORNO:
194
+ * - URL completa do servidor Gitea
195
+ *
196
+ * EXEMPLO:
197
+ * - http://gitea.local:3000
198
+ * - https://gitea.company.com
199
+ */
200
+ getGiteaUrl() {
201
+ return this.config.giteaUrl;
202
+ }
203
+ /**
204
+ * Obtém o token de autenticação
205
+ *
206
+ * SEGURANÇA:
207
+ * - Token deve ser mantido seguro
208
+ * - Não logar em produção
209
+ * - Rotacionar periodicamente
210
+ *
211
+ * RETORNO:
212
+ * - Token de acesso pessoal
213
+ */
214
+ getGiteaToken() {
215
+ return this.config.giteaToken;
216
+ }
217
+ /**
218
+ * Obtém o nome de usuário configurado
219
+ *
220
+ * RETORNO:
221
+ * - Nome de usuário ou undefined
222
+ *
223
+ * USO:
224
+ * - Para operações específicas do usuário
225
+ * - Para identificação em logs
226
+ */
227
+ getGiteaUsername() {
228
+ return this.config.giteaUsername;
229
+ }
230
+ /**
231
+ * Verifica se o modo debug está ativo
232
+ *
233
+ * RETORNO:
234
+ * - true se debug ativo, false caso contrário
235
+ *
236
+ * RECOMENDAÇÕES:
237
+ * - Use apenas em desenvolvimento
238
+ * - Desative em produção
239
+ * - Configure via DEBUG=true
240
+ */
241
+ isDebug() {
242
+ return this.config.debug;
243
+ }
244
+ /**
245
+ * Obtém o timeout das requisições HTTP
246
+ *
247
+ * RETORNO:
248
+ * - Timeout em milissegundos
249
+ *
250
+ * RECOMENDAÇÕES:
251
+ * - 30000ms para redes locais
252
+ * - 60000ms para redes com latência
253
+ * - Configure via TIMEOUT=60000
254
+ */
255
+ getTimeout() {
256
+ return this.config.timeout;
257
+ }
258
+ /**
259
+ * Obtém o tipo de provider configurado
260
+ *
261
+ * RETORNO:
262
+ * - Tipo do provider ('gitea' ou 'github')
263
+ */
264
+ getProvider() {
265
+ return this.config.provider;
266
+ }
267
+ /**
268
+ * Obtém a URL da API genérica
269
+ *
270
+ * RETORNO:
271
+ * - URL da API ou undefined
272
+ */
273
+ getApiUrl() {
274
+ return this.config.apiUrl;
275
+ }
276
+ /**
277
+ * Obtém o token da API genérica
278
+ *
279
+ * RETORNO:
280
+ * - Token da API ou undefined
281
+ */
282
+ getApiToken() {
283
+ return this.config.apiToken;
284
+ }
285
+ /**
286
+ * Obtém o token do GitHub
287
+ *
288
+ * RETORNO:
289
+ * - Token do GitHub ou undefined
290
+ */
291
+ getGitHubToken() {
292
+ return this.config.githubToken;
293
+ }
294
+ /**
295
+ * Obtém o provider padrão configurado
296
+ *
297
+ * RETORNO:
298
+ * - Nome do provider padrão ou undefined
299
+ */
300
+ getDefaultProvider() {
301
+ return this.config.defaultProvider;
302
+ }
303
+ /**
304
+ * Obtém a configuração multi-provider
305
+ *
306
+ * RETORNO:
307
+ * - Configuração multi-provider parseada ou undefined
308
+ */
309
+ getProvidersJson() {
310
+ return this.config.providersJson;
311
+ }
312
+ /**
313
+ * Verifica se está usando configuração multi-provider
314
+ *
315
+ * RETORNO:
316
+ * - true se usando multi-provider, false caso contrário
317
+ */
318
+ isMultiProvider() {
319
+ return !!this.config.providersJson;
320
+ }
321
+ /**
322
+ * Verifica se está usando configuração genérica
323
+ *
324
+ * RETORNO:
325
+ * - true se usando configuração genérica, false caso contrário
326
+ */
327
+ isGenericConfig() {
328
+ return !!(this.config.apiUrl && this.config.apiToken);
329
+ }
330
+ /**
331
+ * Verifica se está usando configuração legacy do Gitea
332
+ *
333
+ * RETORNO:
334
+ * - true se usando configuração legacy, false caso contrário
335
+ */
336
+ isLegacyGitea() {
337
+ return !!(this.config.giteaUrl && this.config.giteaToken);
338
+ }
339
+ /**
340
+ * Verifica se está em modo demo
341
+ *
342
+ * RETORNO:
343
+ * - true se em modo demo, false caso contrário
344
+ */
345
+ isDemoMode() {
346
+ return process.env.DEMO_MODE === 'true';
347
+ }
348
+ /**
349
+ * Obtém configuração demo para testes
350
+ *
351
+ * RETORNO:
352
+ * - Configuração mock para modo demo
353
+ */
354
+ getDemoConfig() {
355
+ return {
356
+ defaultProvider: 'demo',
357
+ providers: [{
358
+ name: 'demo',
359
+ type: 'gitea',
360
+ apiUrl: 'https://demo.gitea.io/api/v1',
361
+ token: 'demo-token',
362
+ username: 'demo-user'
363
+ }]
364
+ };
365
+ }
366
+ }
367
+ exports.ConfigManager = ConfigManager;
368
+ /**
369
+ * Instância global do ConfigManager
370
+ *
371
+ * USO DIRETO:
372
+ * - import { config } from './config.js';
373
+ * - const url = config.getGiteaUrl();
374
+ *
375
+ * RECOMENDAÇÕES:
376
+ * - Use esta instância para acesso direto
377
+ * - Não crie novas instâncias
378
+ * - Configure antes de usar
379
+ */
380
+ exports.config = ConfigManager.getInstance();
381
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Gitea MCP Server v2.0 - Entry Point
4
+ *
5
+ * Este arquivo é o ponto de entrada principal do servidor MCP Gitea.
6
+ * Ele inicializa o servidor e gerencia o ciclo de vida da aplicação.
7
+ *
8
+ * USO:
9
+ * - Execute via: node dist/index.js
10
+ * - Ou via NPX: npx @andrebuzeli/gitea-mcp-v2
11
+ *
12
+ * CONFIGURAÇÃO:
13
+ * - Configure as variáveis de ambiente necessárias
14
+ * - GITEA_URL, GITEA_TOKEN são obrigatórias
15
+ *
16
+ * RECOMENDAÇÕES:
17
+ * - Use DEBUG=true para desenvolvimento
18
+ * - Configure timeout adequado para sua rede
19
+ * - Mantenha o token de acesso seguro
20
+ */
21
+ export {};
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;GAkBG"}
package/dist/index.js ADDED
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Gitea MCP Server v2.0 - Entry Point
5
+ *
6
+ * Este arquivo é o ponto de entrada principal do servidor MCP Gitea.
7
+ * Ele inicializa o servidor e gerencia o ciclo de vida da aplicação.
8
+ *
9
+ * USO:
10
+ * - Execute via: node dist/index.js
11
+ * - Ou via NPX: npx @andrebuzeli/gitea-mcp-v2
12
+ *
13
+ * CONFIGURAÇÃO:
14
+ * - Configure as variáveis de ambiente necessárias
15
+ * - GITEA_URL, GITEA_TOKEN são obrigatórias
16
+ *
17
+ * RECOMENDAÇÕES:
18
+ * - Use DEBUG=true para desenvolvimento
19
+ * - Configure timeout adequado para sua rede
20
+ * - Mantenha o token de acesso seguro
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ const server_js_1 = require("./server.js");
24
+ /**
25
+ * Função principal que inicializa o servidor MCP
26
+ *
27
+ * FLUXO:
28
+ * 1. Cria instância do servidor
29
+ * 2. Inicializa conexões
30
+ * 3. Gerencia erros de inicialização
31
+ *
32
+ * TRATAMENTO DE ERROS:
33
+ * - Erros de configuração: exit(1)
34
+ * - Erros de conexão: exit(1)
35
+ * - Erros fatais: exit(1)
36
+ */
37
+ async function main() {
38
+ try {
39
+ const server = new server_js_1.GiteaMCPServer();
40
+ await server.run();
41
+ }
42
+ catch (error) {
43
+ console.error('Failed to start Gitea MCP Server:', error);
44
+ process.exit(1);
45
+ }
46
+ }
47
+ // Inicializa o servidor e gerencia erros fatais
48
+ // Esta é a última linha de defesa para erros não tratados
49
+ main().catch((error) => {
50
+ console.error('Fatal error:', error);
51
+ process.exit(1);
52
+ });
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;;;GAkBG;;AAEH,2CAA6C;AAE7C;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,0BAAc,EAAE,CAAC;QACpC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,0DAA0D;AAC1D,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,139 @@
1
+ import { AxiosInstance, AxiosRequestConfig } from 'axios';
2
+ import { VcsOperations, VcsProvider } from './types.js';
3
+ /**
4
+ * Classe base abstrata para todos os providers VCS
5
+ * Implementa funcionalidades comuns e define interface unificada
6
+ */
7
+ export declare abstract class BaseVcsProvider implements VcsOperations {
8
+ protected client: AxiosInstance;
9
+ protected config: VcsProvider;
10
+ protected baseUrl: string;
11
+ constructor(config: VcsProvider);
12
+ /**
13
+ * Configura interceptors para logging e tratamento de erros
14
+ */
15
+ private setupInterceptors;
16
+ /**
17
+ * Obtém a URL base para o provider
18
+ */
19
+ protected abstract getBaseUrl(config: VcsProvider): string;
20
+ /**
21
+ * Obtém os headers específicos do provider
22
+ */
23
+ protected abstract getHeaders(config: VcsProvider): Record<string, string>;
24
+ /**
25
+ * Normaliza erros para formato unificado usando ErrorHandler padrão
26
+ */
27
+ protected normalizeError(error: any): Error;
28
+ /**
29
+ * Normaliza dados de repositório para formato unificado
30
+ */
31
+ protected abstract normalizeRepository(data: any): any;
32
+ /**
33
+ * Normaliza dados de branch para formato unificado
34
+ */
35
+ protected abstract normalizeBranch(data: any): any;
36
+ /**
37
+ * Normaliza dados de arquivo para formato unificado
38
+ */
39
+ protected abstract normalizeFile(data: any): any;
40
+ /**
41
+ * Normaliza dados de commit para formato unificado
42
+ */
43
+ protected abstract normalizeCommit(data: any): any;
44
+ /**
45
+ * Normaliza dados de issue para formato unificado
46
+ */
47
+ protected abstract normalizeIssue(data: any): any;
48
+ /**
49
+ * Normaliza dados de pull request para formato unificado
50
+ */
51
+ protected abstract normalizePullRequest(data: any): any;
52
+ /**
53
+ * Normaliza dados de release para formato unificado
54
+ */
55
+ protected abstract normalizeRelease(data: any): any;
56
+ /**
57
+ * Normaliza dados de tag para formato unificado
58
+ */
59
+ protected abstract normalizeTag(data: any): any;
60
+ /**
61
+ * Normaliza dados de usuário para formato unificado
62
+ */
63
+ protected abstract normalizeUser(data: any): any;
64
+ /**
65
+ * Normaliza dados de webhook para formato unificado
66
+ */
67
+ protected abstract normalizeWebhook(data: any): any;
68
+ /**
69
+ * Executa uma requisição HTTP com tratamento de erro
70
+ */
71
+ protected request<T>(config: AxiosRequestConfig): Promise<T>;
72
+ /**
73
+ * Executa uma requisição GET
74
+ */
75
+ protected get<T>(url: string, params?: any): Promise<T>;
76
+ /**
77
+ * Executa uma requisição POST
78
+ */
79
+ protected post<T>(url: string, data?: any): Promise<T>;
80
+ /**
81
+ * Executa uma requisição PUT
82
+ */
83
+ protected put<T>(url: string, data?: any): Promise<T>;
84
+ /**
85
+ * Executa uma requisição PATCH
86
+ */
87
+ protected patch<T>(url: string, data?: any): Promise<T>;
88
+ /**
89
+ * Executa uma requisição DELETE
90
+ */
91
+ protected delete<T>(url: string, config?: any): Promise<T>;
92
+ listRepositories(username?: string, page?: number, limit?: number): Promise<any[]>;
93
+ getRepository(owner: string, repo: string): Promise<any>;
94
+ createRepository(name: string, description?: string, privateRepo?: boolean): Promise<any>;
95
+ updateRepository(owner: string, repo: string, updates: any): Promise<any>;
96
+ deleteRepository(owner: string, repo: string): Promise<boolean>;
97
+ forkRepository(owner: string, repo: string, organization?: string): Promise<any>;
98
+ searchRepositories(query: string, page?: number, limit?: number): Promise<any[]>;
99
+ listBranches(owner: string, repo: string, page?: number, limit?: number): Promise<any[]>;
100
+ getBranch(owner: string, repo: string, branch: string): Promise<any>;
101
+ createBranch(owner: string, repo: string, branchName: string, fromBranch: string): Promise<any>;
102
+ deleteBranch(owner: string, repo: string, branch: string): Promise<boolean>;
103
+ getFile(owner: string, repo: string, path: string, ref?: string): Promise<any>;
104
+ createFile(owner: string, repo: string, path: string, content: string, message: string, branch?: string): Promise<any>;
105
+ updateFile(owner: string, repo: string, path: string, content: string, message: string, sha: string, branch?: string): Promise<any>;
106
+ deleteFile(owner: string, repo: string, path: string, message: string, sha: string, branch?: string): Promise<boolean>;
107
+ listFiles(owner: string, repo: string, path: string, ref?: string): Promise<any[]>;
108
+ listCommits(owner: string, repo: string, branch?: string, page?: number, limit?: number): Promise<any[]>;
109
+ getCommit(owner: string, repo: string, sha: string): Promise<any>;
110
+ listIssues(owner: string, repo: string, state?: 'open' | 'closed' | 'all', page?: number, limit?: number): Promise<any[]>;
111
+ getIssue(owner: string, repo: string, issueNumber: number): Promise<any>;
112
+ createIssue(owner: string, repo: string, title: string, body?: string, assignees?: string[], labels?: string[]): Promise<any>;
113
+ updateIssue(owner: string, repo: string, issueNumber: number, updates: any): Promise<any>;
114
+ closeIssue(owner: string, repo: string, issueNumber: number): Promise<any>;
115
+ listPullRequests(owner: string, repo: string, state?: 'open' | 'closed' | 'merged' | 'all', page?: number, limit?: number): Promise<any[]>;
116
+ getPullRequest(owner: string, repo: string, pullNumber: number): Promise<any>;
117
+ createPullRequest(owner: string, repo: string, title: string, body: string, head: string, base: string): Promise<any>;
118
+ updatePullRequest(owner: string, repo: string, pullNumber: number, updates: any): Promise<any>;
119
+ mergePullRequest(owner: string, repo: string, pullNumber: number, mergeMethod?: 'merge' | 'rebase' | 'squash'): Promise<boolean>;
120
+ listReleases(owner: string, repo: string, page?: number, limit?: number): Promise<any[]>;
121
+ getRelease(owner: string, repo: string, releaseId: number): Promise<any>;
122
+ createRelease(tagName: string, name: string, body?: string, draft?: boolean, prerelease?: boolean): Promise<any>;
123
+ updateRelease(releaseId: number, updates: any): Promise<any>;
124
+ deleteRelease(releaseId: number): Promise<boolean>;
125
+ listTags(owner: string, repo: string, page?: number, limit?: number): Promise<any[]>;
126
+ getTag(owner: string, repo: string, tag: string): Promise<any>;
127
+ createTag(tagName: string, message: string, target: string): Promise<any>;
128
+ deleteTag(owner: string, repo: string, tag: string): Promise<boolean>;
129
+ getUser(username: string): Promise<any>;
130
+ listUsers(page?: number, limit?: number): Promise<any[]>;
131
+ searchUsers(query: string, page?: number, limit?: number): Promise<any[]>;
132
+ listWebhooks(owner: string, repo: string, page?: number, limit?: number): Promise<any[]>;
133
+ getWebhook(owner: string, repo: string, webhookId: number): Promise<any>;
134
+ createWebhook(owner: string, repo: string, url: string, events: string[], secret?: string): Promise<any>;
135
+ updateWebhook(owner: string, repo: string, webhookId: number, updates: any): Promise<any>;
136
+ deleteWebhook(owner: string, repo: string, webhookId: number): Promise<boolean>;
137
+ createCommit(owner: string, repo: string, message: string, branch: string, changes?: any): Promise<any>;
138
+ }
139
+ //# sourceMappingURL=base-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-provider.d.ts","sourceRoot":"","sources":["../../src/providers/base-provider.ts"],"names":[],"mappings":"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"}