@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/client.js ADDED
@@ -0,0 +1,299 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.giteaClient = exports.GiteaClient = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const config_js_1 = require("./config.js");
9
+ const index_js_1 = require("./providers/index.js");
10
+ /**
11
+ * Cliente principal para API Gitea
12
+ *
13
+ * RESPONSABILIDADES:
14
+ * - Configuração do cliente HTTP
15
+ * - Gerenciamento de autenticação
16
+ * - Implementação de todos os endpoints
17
+ * - Tratamento de erros e respostas
18
+ *
19
+ * ARQUITETURA:
20
+ * - Cliente Axios configurado
21
+ * - Headers de autenticação automáticos
22
+ * - Base URL configurável
23
+ * - Timeout configurável
24
+ *
25
+ * RECOMENDAÇÕES:
26
+ * - Use apenas uma instância por aplicação
27
+ * - Configure interceptors para logging
28
+ * - Trate erros de autenticação adequadamente
29
+ * - Monitore uso da API
30
+ */
31
+ class GiteaClient {
32
+ axios;
33
+ baseURL;
34
+ providerFactory;
35
+ constructor() {
36
+ // Inicializa o sistema multi-provider
37
+ try {
38
+ this.providerFactory = (0, index_js_1.initializeFactoryFromEnv)();
39
+ // Se multi-provider funcionou, usa o provider padrão
40
+ const defaultProvider = this.providerFactory.getDefaultProvider();
41
+ this.axios = defaultProvider.client;
42
+ this.baseURL = defaultProvider.baseUrl;
43
+ }
44
+ catch (error) {
45
+ // Fallback para configuração legacy
46
+ const cfg = config_js_1.config.getConfig();
47
+ if (!cfg.giteaUrl || !cfg.giteaToken) {
48
+ throw new Error('No valid VCS provider configuration found. Please configure GITEA_URL and GITEA_TOKEN, or use multi-provider configuration.');
49
+ }
50
+ this.baseURL = `${cfg.giteaUrl}/api/v1`;
51
+ // Configuração do cliente Axios com autenticação
52
+ this.axios = axios_1.default.create({
53
+ baseURL: this.baseURL,
54
+ timeout: cfg.timeout,
55
+ headers: {
56
+ 'Authorization': `token ${cfg.giteaToken}`,
57
+ 'Content-Type': 'application/json',
58
+ 'Accept': 'application/json',
59
+ },
60
+ });
61
+ }
62
+ // Configuração de interceptors para debug e logging
63
+ // Apenas ativo quando DEBUG=true
64
+ if (config_js_1.config.isDebug()) {
65
+ // Interceptor para requisições - log de método e URL
66
+ this.axios.interceptors.request.use((config) => {
67
+ // Debug: API request
68
+ return config;
69
+ }, (error) => {
70
+ console.error('[Gitea API] Request error:', error);
71
+ return Promise.reject(error);
72
+ });
73
+ // Interceptor para respostas - log de status e URL
74
+ this.axios.interceptors.response.use((response) => {
75
+ // Debug: API response
76
+ return response;
77
+ }, (error) => {
78
+ console.error('[Gitea API] Response error:', error.response?.status, error.response?.data);
79
+ return Promise.reject(error);
80
+ });
81
+ }
82
+ }
83
+ /**
84
+ * Método helper para chamadas da API
85
+ *
86
+ * FUNCIONALIDADE:
87
+ * - Executa requisições HTTP para API Gitea
88
+ * - Trata erros de forma uniforme
89
+ * - Formata mensagens de erro
90
+ * - Suporta todos os métodos HTTP
91
+ *
92
+ * PARÂMETROS:
93
+ * - method: Método HTTP (GET, POST, PUT, DELETE, PATCH)
94
+ * - url: Endpoint da API
95
+ * - data: Dados para envio (opcional)
96
+ *
97
+ * TRATAMENTO DE ERROS:
98
+ * - Erros HTTP: formata com status e mensagem
99
+ * - Erros de rede: propaga erro original
100
+ * - Timeout: captura e formata adequadamente
101
+ *
102
+ * RECOMENDAÇÕES:
103
+ * - Use para todas as chamadas da API
104
+ * - Trate erros específicos por status
105
+ * - Implemente retry para erros temporários
106
+ */
107
+ async request(method, url, data) {
108
+ try {
109
+ const response = await this.axios.request({
110
+ method,
111
+ url,
112
+ data,
113
+ });
114
+ return response.data;
115
+ }
116
+ catch (error) {
117
+ if (axios_1.default.isAxiosError(error)) {
118
+ const message = error.response?.data?.message || error.message;
119
+ throw new Error(`Gitea API Error (${error.response?.status}): ${message}`);
120
+ }
121
+ throw error;
122
+ }
123
+ }
124
+ // Repository methods
125
+ async getRepositories(username, page = 1, limit = 30) {
126
+ const url = username ? `/users/${username}/repos` : '/user/repos';
127
+ return this.request('GET', `${url}?page=${page}&limit=${limit}`);
128
+ }
129
+ async getRepository(owner, repo) {
130
+ return this.request('GET', `/repos/${owner}/${repo}`);
131
+ }
132
+ async createRepository(data) {
133
+ return this.request('POST', '/user/repos', data);
134
+ }
135
+ async updateRepository(owner, repo, data) {
136
+ return this.request('PATCH', `/repos/${owner}/${repo}`, data);
137
+ }
138
+ async deleteRepository(owner, repo) {
139
+ await this.request('DELETE', `/repos/${owner}/${repo}`);
140
+ }
141
+ async forkRepository(owner, repo, organization) {
142
+ const data = organization ? { organization } : {};
143
+ return this.request('POST', `/repos/${owner}/${repo}/forks`, data);
144
+ }
145
+ async searchRepositories(query, page = 1, limit = 30) {
146
+ return this.request('GET', `/repos/search?q=${encodeURIComponent(query)}&page=${page}&limit=${limit}`);
147
+ }
148
+ // Branch methods
149
+ async getBranches(owner, repo, page = 1, limit = 30) {
150
+ return this.request('GET', `/repos/${owner}/${repo}/branches?page=${page}&limit=${limit}`);
151
+ }
152
+ async getBranch(owner, repo, branch) {
153
+ return this.request('GET', `/repos/${owner}/${repo}/branches/${branch}`);
154
+ }
155
+ async createBranch(owner, repo, branchName, fromBranch) {
156
+ const data = { new_branch_name: branchName, old_branch_name: fromBranch };
157
+ return this.request('POST', `/repos/${owner}/${repo}/branches`, data);
158
+ }
159
+ async deleteBranch(owner, repo, branch) {
160
+ await this.request('DELETE', `/repos/${owner}/${repo}/branches/${branch}`);
161
+ }
162
+ // File methods
163
+ async getFile(owner, repo, path, ref) {
164
+ const url = `/repos/${owner}/${repo}/contents/${path}${ref ? `?ref=${ref}` : ''}`;
165
+ return this.request('GET', url);
166
+ }
167
+ async getDirectoryContents(owner, repo, path = '', ref) {
168
+ const url = `/repos/${owner}/${repo}/contents/${path}${ref ? `?ref=${ref}` : ''}`;
169
+ return this.request('GET', url);
170
+ }
171
+ async createFile(owner, repo, path, data) {
172
+ return this.request('POST', `/repos/${owner}/${repo}/contents/${path}`, data);
173
+ }
174
+ async updateFile(owner, repo, path, data) {
175
+ return this.request('PUT', `/repos/${owner}/${repo}/contents/${path}`, data);
176
+ }
177
+ async deleteFile(owner, repo, path, data) {
178
+ return this.request('DELETE', `/repos/${owner}/${repo}/contents/${path}`, data);
179
+ }
180
+ // Commit methods
181
+ async getCommits(owner, repo, page = 1, limit = 30, sha) {
182
+ const params = new URLSearchParams({ page: page.toString(), limit: limit.toString() });
183
+ if (sha)
184
+ params.append('sha', sha);
185
+ return this.request('GET', `/repos/${owner}/${repo}/commits?${params}`);
186
+ }
187
+ async getCommit(owner, repo, sha) {
188
+ return this.request('GET', `/repos/${owner}/${repo}/commits/${sha}`);
189
+ }
190
+ // Issue methods
191
+ async getIssues(owner, repo, state = 'open', page = 1, limit = 30) {
192
+ return this.request('GET', `/repos/${owner}/${repo}/issues?state=${state}&page=${page}&limit=${limit}`);
193
+ }
194
+ async getIssue(owner, repo, index) {
195
+ return this.request('GET', `/repos/${owner}/${repo}/issues/${index}`);
196
+ }
197
+ async createIssue(owner, repo, data) {
198
+ return this.request('POST', `/repos/${owner}/${repo}/issues`, data);
199
+ }
200
+ async updateIssue(owner, repo, index, data) {
201
+ return this.request('PATCH', `/repos/${owner}/${repo}/issues/${index}`, data);
202
+ }
203
+ async createIssueComment(owner, repo, index, body) {
204
+ return this.request('POST', `/repos/${owner}/${repo}/issues/${index}/comments`, { body });
205
+ }
206
+ // Pull Request methods
207
+ async getPullRequests(owner, repo, state = 'open', page = 1, limit = 30) {
208
+ return this.request('GET', `/repos/${owner}/${repo}/pulls?state=${state}&page=${page}&limit=${limit}`);
209
+ }
210
+ async getPullRequest(owner, repo, index) {
211
+ return this.request('GET', `/repos/${owner}/${repo}/pulls/${index}`);
212
+ }
213
+ async createPullRequest(owner, repo, data) {
214
+ return this.request('POST', `/repos/${owner}/${repo}/pulls`, data);
215
+ }
216
+ async updatePullRequest(owner, repo, index, data) {
217
+ return this.request('PATCH', `/repos/${owner}/${repo}/pulls/${index}`, data);
218
+ }
219
+ async mergePullRequest(owner, repo, index, data) {
220
+ return this.request('POST', `/repos/${owner}/${repo}/pulls/${index}/merge`, data);
221
+ }
222
+ // Release methods
223
+ async getReleases(owner, repo, page = 1, limit = 30) {
224
+ return this.request('GET', `/repos/${owner}/${repo}/releases?page=${page}&limit=${limit}`);
225
+ }
226
+ async getRelease(owner, repo, id) {
227
+ return this.request('GET', `/repos/${owner}/${repo}/releases/${id}`);
228
+ }
229
+ async getLatestRelease(owner, repo) {
230
+ return this.request('GET', `/repos/${owner}/${repo}/releases/latest`);
231
+ }
232
+ async createRelease(owner, repo, data) {
233
+ return this.request('POST', `/repos/${owner}/${repo}/releases`, data);
234
+ }
235
+ async updateRelease(owner, repo, id, data) {
236
+ return this.request('PATCH', `/repos/${owner}/${repo}/releases/${id}`, data);
237
+ }
238
+ async deleteRelease(owner, repo, id) {
239
+ await this.request('DELETE', `/repos/${owner}/${repo}/releases/${id}`);
240
+ }
241
+ // Tag methods
242
+ async getTags(owner, repo, page = 1, limit = 30) {
243
+ return this.request('GET', `/repos/${owner}/${repo}/tags?page=${page}&limit=${limit}`);
244
+ }
245
+ async createTag(owner, repo, data) {
246
+ return this.request('POST', `/repos/${owner}/${repo}/tags`, data);
247
+ }
248
+ async deleteTag(owner, repo, tag) {
249
+ await this.request('DELETE', `/repos/${owner}/${repo}/tags/${tag}`);
250
+ }
251
+ // User methods
252
+ async getCurrentUser() {
253
+ return this.request('GET', '/user');
254
+ }
255
+ async getUser(username) {
256
+ return this.request('GET', `/users/${username}`);
257
+ }
258
+ async searchUsers(query, page = 1, limit = 30) {
259
+ return this.request('GET', `/users/search?q=${encodeURIComponent(query)}&page=${page}&limit=${limit}`);
260
+ }
261
+ async getUserOrganizations(username) {
262
+ return this.request('GET', `/users/${username}/orgs`);
263
+ }
264
+ // Webhook methods
265
+ async getWebhooks(owner, repo) {
266
+ return this.request('GET', `/repos/${owner}/${repo}/hooks`);
267
+ }
268
+ async getWebhook(owner, repo, id) {
269
+ return this.request('GET', `/repos/${owner}/${repo}/hooks/${id}`);
270
+ }
271
+ async createWebhook(owner, repo, data) {
272
+ return this.request('POST', `/repos/${owner}/${repo}/hooks`, data);
273
+ }
274
+ async updateWebhook(owner, repo, id, data) {
275
+ return this.request('PATCH', `/repos/${owner}/${repo}/hooks/${id}`, data);
276
+ }
277
+ async deleteWebhook(owner, repo, id) {
278
+ await this.request('DELETE', `/repos/${owner}/${repo}/hooks/${id}`);
279
+ }
280
+ async testWebhook(owner, repo, id) {
281
+ return this.request('POST', `/repos/${owner}/${repo}/hooks/${id}/tests`);
282
+ }
283
+ }
284
+ exports.GiteaClient = GiteaClient;
285
+ /**
286
+ * Instância global do cliente Gitea
287
+ *
288
+ * USO:
289
+ * - import { giteaClient } from './client.js';
290
+ * - const repos = await giteaClient.getRepositories();
291
+ *
292
+ * RECOMENDAÇÕES:
293
+ * - Use esta instância para todas as operações
294
+ * - Não crie novas instâncias
295
+ * - Configure antes de usar
296
+ * - Monitore uso e performance
297
+ */
298
+ exports.giteaClient = new GiteaClient();
299
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,299 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Schema de validação para configuração do servidor MCP Gitea
4
+ *
5
+ * VALIDAÇÕES:
6
+ * - giteaUrl: Deve ser uma URL válida
7
+ * - giteaToken: Deve ter pelo menos 1 caractere
8
+ * - giteaUsername: Opcional
9
+ * - debug: Padrão false
10
+ * - timeout: Deve ser positivo, padrão 30000ms
11
+ *
12
+ * RECOMENDAÇÕES:
13
+ * - Use HTTPS para produção
14
+ * - Token deve ter permissões adequadas
15
+ * - Timeout deve considerar latência da rede
16
+ */
17
+ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
18
+ giteaUrl: z.ZodOptional<z.ZodString>;
19
+ giteaToken: z.ZodOptional<z.ZodString>;
20
+ giteaUsername: z.ZodOptional<z.ZodString>;
21
+ githubToken: z.ZodOptional<z.ZodString>;
22
+ provider: z.ZodOptional<z.ZodEnum<["gitea", "github"]>>;
23
+ apiUrl: z.ZodOptional<z.ZodString>;
24
+ apiToken: z.ZodOptional<z.ZodString>;
25
+ defaultProvider: z.ZodOptional<z.ZodString>;
26
+ providersJson: z.ZodEffects<z.ZodOptional<z.ZodString>, any, string | undefined>;
27
+ debug: z.ZodDefault<z.ZodBoolean>;
28
+ timeout: z.ZodDefault<z.ZodNumber>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ debug: boolean;
31
+ timeout: number;
32
+ giteaUrl?: string | undefined;
33
+ giteaToken?: string | undefined;
34
+ giteaUsername?: string | undefined;
35
+ githubToken?: string | undefined;
36
+ provider?: "gitea" | "github" | undefined;
37
+ apiUrl?: string | undefined;
38
+ apiToken?: string | undefined;
39
+ defaultProvider?: string | undefined;
40
+ providersJson?: any;
41
+ }, {
42
+ giteaUrl?: string | undefined;
43
+ giteaToken?: string | undefined;
44
+ giteaUsername?: string | undefined;
45
+ githubToken?: string | undefined;
46
+ provider?: "gitea" | "github" | undefined;
47
+ apiUrl?: string | undefined;
48
+ apiToken?: string | undefined;
49
+ defaultProvider?: string | undefined;
50
+ providersJson?: string | undefined;
51
+ debug?: boolean | undefined;
52
+ timeout?: number | undefined;
53
+ }>, {
54
+ debug: boolean;
55
+ timeout: number;
56
+ giteaUrl?: string | undefined;
57
+ giteaToken?: string | undefined;
58
+ giteaUsername?: string | undefined;
59
+ githubToken?: string | undefined;
60
+ provider?: "gitea" | "github" | undefined;
61
+ apiUrl?: string | undefined;
62
+ apiToken?: string | undefined;
63
+ defaultProvider?: string | undefined;
64
+ providersJson?: any;
65
+ }, {
66
+ giteaUrl?: string | undefined;
67
+ giteaToken?: string | undefined;
68
+ giteaUsername?: string | undefined;
69
+ githubToken?: string | undefined;
70
+ provider?: "gitea" | "github" | undefined;
71
+ apiUrl?: string | undefined;
72
+ apiToken?: string | undefined;
73
+ defaultProvider?: string | undefined;
74
+ providersJson?: string | undefined;
75
+ debug?: boolean | undefined;
76
+ timeout?: number | undefined;
77
+ }>;
78
+ export type Config = z.infer<typeof ConfigSchema>;
79
+ export interface ProviderConfig {
80
+ name: string;
81
+ type: 'gitea' | 'github';
82
+ apiUrl: string;
83
+ token: string;
84
+ username?: string;
85
+ }
86
+ export interface MultiProviderConfig {
87
+ defaultProvider: string;
88
+ providers: ProviderConfig[];
89
+ }
90
+ /**
91
+ * Gerenciador de configuração usando padrão Singleton
92
+ *
93
+ * RESPONSABILIDADES:
94
+ * - Carregar configuração do ambiente
95
+ * - Validar parâmetros obrigatórios
96
+ * - Fornecer acesso centralizado à configuração
97
+ *
98
+ * USO:
99
+ * - const config = ConfigManager.getInstance();
100
+ * - const url = config.getGiteaUrl();
101
+ *
102
+ * RECOMENDAÇÕES:
103
+ * - Sempre use getInstance() para acessar
104
+ * - Configure variáveis de ambiente adequadamente
105
+ * - Valide configuração antes de usar
106
+ */
107
+ export declare class ConfigManager {
108
+ private static instance;
109
+ private config;
110
+ private constructor();
111
+ /**
112
+ * Obtém a instância única do ConfigManager
113
+ *
114
+ * IMPLEMENTAÇÃO:
115
+ * - Singleton pattern para configuração global
116
+ * - Thread-safe para aplicações concorrentes
117
+ *
118
+ * RETORNO:
119
+ * - Instância única do ConfigManager
120
+ */
121
+ static getInstance(): ConfigManager;
122
+ /**
123
+ * Carrega e valida a configuração do ambiente
124
+ *
125
+ * FONTES DE CONFIGURAÇÃO:
126
+ * - Variáveis de ambiente (prioridade alta)
127
+ * - Valores padrão (fallback)
128
+ *
129
+ * VALIDAÇÃO:
130
+ * - Schema Zod para validação rigorosa
131
+ * - Mensagens de erro descritivas
132
+ *
133
+ * ERROS:
134
+ * - Configuração inválida gera exceção
135
+ * - Token obrigatório deve ser fornecido
136
+ */
137
+ private loadConfig;
138
+ /**
139
+ * Obtém a configuração completa validada
140
+ *
141
+ * RETORNO:
142
+ * - Objeto Config com todos os parâmetros
143
+ *
144
+ * USO:
145
+ * - Para acesso direto à configuração
146
+ * - Para validação de parâmetros
147
+ */
148
+ getConfig(): Config;
149
+ /**
150
+ * Obtém a URL base do Gitea
151
+ *
152
+ * RETORNO:
153
+ * - URL completa do servidor Gitea
154
+ *
155
+ * EXEMPLO:
156
+ * - http://gitea.local:3000
157
+ * - https://gitea.company.com
158
+ */
159
+ getGiteaUrl(): string | undefined;
160
+ /**
161
+ * Obtém o token de autenticação
162
+ *
163
+ * SEGURANÇA:
164
+ * - Token deve ser mantido seguro
165
+ * - Não logar em produção
166
+ * - Rotacionar periodicamente
167
+ *
168
+ * RETORNO:
169
+ * - Token de acesso pessoal
170
+ */
171
+ getGiteaToken(): string | undefined;
172
+ /**
173
+ * Obtém o nome de usuário configurado
174
+ *
175
+ * RETORNO:
176
+ * - Nome de usuário ou undefined
177
+ *
178
+ * USO:
179
+ * - Para operações específicas do usuário
180
+ * - Para identificação em logs
181
+ */
182
+ getGiteaUsername(): string | undefined;
183
+ /**
184
+ * Verifica se o modo debug está ativo
185
+ *
186
+ * RETORNO:
187
+ * - true se debug ativo, false caso contrário
188
+ *
189
+ * RECOMENDAÇÕES:
190
+ * - Use apenas em desenvolvimento
191
+ * - Desative em produção
192
+ * - Configure via DEBUG=true
193
+ */
194
+ isDebug(): boolean;
195
+ /**
196
+ * Obtém o timeout das requisições HTTP
197
+ *
198
+ * RETORNO:
199
+ * - Timeout em milissegundos
200
+ *
201
+ * RECOMENDAÇÕES:
202
+ * - 30000ms para redes locais
203
+ * - 60000ms para redes com latência
204
+ * - Configure via TIMEOUT=60000
205
+ */
206
+ getTimeout(): number;
207
+ /**
208
+ * Obtém o tipo de provider configurado
209
+ *
210
+ * RETORNO:
211
+ * - Tipo do provider ('gitea' ou 'github')
212
+ */
213
+ getProvider(): 'gitea' | 'github' | undefined;
214
+ /**
215
+ * Obtém a URL da API genérica
216
+ *
217
+ * RETORNO:
218
+ * - URL da API ou undefined
219
+ */
220
+ getApiUrl(): string | undefined;
221
+ /**
222
+ * Obtém o token da API genérica
223
+ *
224
+ * RETORNO:
225
+ * - Token da API ou undefined
226
+ */
227
+ getApiToken(): string | undefined;
228
+ /**
229
+ * Obtém o token do GitHub
230
+ *
231
+ * RETORNO:
232
+ * - Token do GitHub ou undefined
233
+ */
234
+ getGitHubToken(): string | undefined;
235
+ /**
236
+ * Obtém o provider padrão configurado
237
+ *
238
+ * RETORNO:
239
+ * - Nome do provider padrão ou undefined
240
+ */
241
+ getDefaultProvider(): string | undefined;
242
+ /**
243
+ * Obtém a configuração multi-provider
244
+ *
245
+ * RETORNO:
246
+ * - Configuração multi-provider parseada ou undefined
247
+ */
248
+ getProvidersJson(): MultiProviderConfig | undefined;
249
+ /**
250
+ * Verifica se está usando configuração multi-provider
251
+ *
252
+ * RETORNO:
253
+ * - true se usando multi-provider, false caso contrário
254
+ */
255
+ isMultiProvider(): boolean;
256
+ /**
257
+ * Verifica se está usando configuração genérica
258
+ *
259
+ * RETORNO:
260
+ * - true se usando configuração genérica, false caso contrário
261
+ */
262
+ isGenericConfig(): boolean;
263
+ /**
264
+ * Verifica se está usando configuração legacy do Gitea
265
+ *
266
+ * RETORNO:
267
+ * - true se usando configuração legacy, false caso contrário
268
+ */
269
+ isLegacyGitea(): boolean;
270
+ /**
271
+ * Verifica se está em modo demo
272
+ *
273
+ * RETORNO:
274
+ * - true se em modo demo, false caso contrário
275
+ */
276
+ isDemoMode(): boolean;
277
+ /**
278
+ * Obtém configuração demo para testes
279
+ *
280
+ * RETORNO:
281
+ * - Configuração mock para modo demo
282
+ */
283
+ getDemoConfig(): MultiProviderConfig;
284
+ }
285
+ /**
286
+ * Instância global do ConfigManager
287
+ *
288
+ * USO DIRETO:
289
+ * - import { config } from './config.js';
290
+ * - const url = config.getGiteaUrl();
291
+ *
292
+ * RECOMENDAÇÕES:
293
+ * - Use esta instância para acesso direto
294
+ * - Não crie novas instâncias
295
+ * - Configure antes de usar
296
+ */
297
+ export declare const config: ConfigManager;
298
+ export {};
299
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDhB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAGlD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO;IAIP;;;;;;;;;OASG;WACW,WAAW,IAAI,aAAa;IAO1C;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,UAAU;IAyDlB;;;;;;;;;OASG;IACI,SAAS,IAAI,MAAM;IAI1B;;;;;;;;;OASG;IACI,WAAW,IAAI,MAAM,GAAG,SAAS;IAIxC;;;;;;;;;;OAUG;IACI,aAAa,IAAI,MAAM,GAAG,SAAS;IAI1C;;;;;;;;;OASG;IACI,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAI7C;;;;;;;;;;OAUG;IACI,OAAO,IAAI,OAAO;IAIzB;;;;;;;;;;OAUG;IACI,UAAU,IAAI,MAAM;IAI3B;;;;;OAKG;IACI,WAAW,IAAI,OAAO,GAAG,QAAQ,GAAG,SAAS;IAIpD;;;;;OAKG;IACI,SAAS,IAAI,MAAM,GAAG,SAAS;IAItC;;;;;OAKG;IACI,WAAW,IAAI,MAAM,GAAG,SAAS;IAIxC;;;;;OAKG;IACI,cAAc,IAAI,MAAM,GAAG,SAAS;IAI3C;;;;;OAKG;IACI,kBAAkB,IAAI,MAAM,GAAG,SAAS;IAI/C;;;;;OAKG;IACI,gBAAgB,IAAI,mBAAmB,GAAG,SAAS;IAI1D;;;;;OAKG;IACI,eAAe,IAAI,OAAO;IAIjC;;;;;OAKG;IACI,eAAe,IAAI,OAAO;IAIjC;;;;;OAKG;IACI,aAAa,IAAI,OAAO;IAI/B;;;;;OAKG;IACI,UAAU,IAAI,OAAO;IAI5B;;;;;OAKG;IACI,aAAa,IAAI,mBAAmB;CAY5C;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,eAA8B,CAAC"}