@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,495 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usersTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const index_js_1 = require("../providers/index.js");
6
+ /**
7
+ * Tool: users
8
+ *
9
+ * DESCRIÇÃO:
10
+ * Gerenciamento de usuários com suporte multi-provider (GitHub e Gitea)
11
+ *
12
+ * FUNCIONALIDADES:
13
+ * - Obtenção de usuário atual
14
+ * - Obtenção de usuário específico
15
+ * - Busca de usuários
16
+ * - Listagem de organizações
17
+ * - Listagem de repositórios
18
+ * - Informações de perfil
19
+ *
20
+ * USO:
21
+ * - Para autenticação e perfil
22
+ * - Para busca de usuários
23
+ * - Para gerenciamento de acesso
24
+ * - Para colaboração
25
+ *
26
+ * RECOMENDAÇÕES:
27
+ * - Use apenas permissões necessárias
28
+ * - Evite expor dados sensíveis
29
+ * - Monitore uso da API
30
+ * - Respeite limites de rate
31
+ */
32
+ /**
33
+ * Schema de validação para entrada da tool users
34
+ *
35
+ * VALIDAÇÕES:
36
+ * - action: Ação obrigatória (get, list, search, orgs, repos)
37
+ * - Parâmetros específicos por ação
38
+ * - Validação de tipos e formatos
39
+ *
40
+ * RECOMENDAÇÕES:
41
+ * - Sempre valide entrada antes de usar
42
+ * - Use parâmetros opcionais adequadamente
43
+ * - Documente parâmetros obrigatórios
44
+ */
45
+ const UsersInputSchema = zod_1.z.object({
46
+ action: zod_1.z.enum(['get', 'list', 'search', 'orgs', 'repos']),
47
+ // Para multi-provider
48
+ provider: zod_1.z.enum(['gitea', 'github', 'both']).optional(), // Provider específico: gitea, github ou both
49
+ // Para get específico
50
+ username: zod_1.z.string().optional(),
51
+ current: zod_1.z.boolean().optional(),
52
+ // Para search
53
+ query: zod_1.z.string().optional(),
54
+ page: zod_1.z.number().min(1).optional(),
55
+ limit: zod_1.z.number().min(1).max(100).optional(),
56
+ // Para repos
57
+ repo_type: zod_1.z.enum(['all', 'owner', 'member', 'collaborator']).optional(),
58
+ sort: zod_1.z.enum(['created', 'updated', 'pushed', 'full_name']).optional(),
59
+ direction: zod_1.z.enum(['asc', 'desc']).optional(),
60
+ });
61
+ /**
62
+ * Schema de saída padronizado
63
+ *
64
+ * ESTRUTURA:
65
+ * - success: Status da operação
66
+ * - action: Ação executada
67
+ * - message: Mensagem descritiva
68
+ * - data: Dados retornados (opcional)
69
+ * - error: Detalhes do erro (opcional)
70
+ */
71
+ const UsersResultSchema = zod_1.z.object({
72
+ success: zod_1.z.boolean(),
73
+ action: zod_1.z.string(),
74
+ message: zod_1.z.string(),
75
+ data: zod_1.z.any().optional(),
76
+ error: zod_1.z.string().optional()
77
+ });
78
+ /**
79
+ * Tool: users
80
+ *
81
+ * DESCRIÇÃO:
82
+ * Gerenciamento completo de usuários Gitea com múltiplas ações
83
+ *
84
+ * ACTIONS DISPONÍVEIS:
85
+ *
86
+ * 1. get - Obter informações de usuário
87
+ * Parâmetros:
88
+ * - username (opcional): Nome de usuário específico
89
+ * - current (opcional): Se true, obtém usuário atual autenticado
90
+ *
91
+ * 2. list - Listar usuários
92
+ * Parâmetros:
93
+ * - page (opcional): Página da listagem (padrão: 1)
94
+ * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
95
+ *
96
+ * 3. search - Buscar usuários
97
+ * Parâmetros:
98
+ * - query (obrigatório): Termo de busca
99
+ * - page (opcional): Página da busca (padrão: 1)
100
+ * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
101
+ *
102
+ * 4. orgs - Obter organizações do usuário
103
+ * Parâmetros:
104
+ * - username (obrigatório): Nome de usuário
105
+ * - page (opcional): Página da listagem (padrão: 1)
106
+ * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
107
+ *
108
+ * 5. repos - Listar repositórios do usuário
109
+ * Parâmetros:
110
+ * - username (obrigatório): Nome de usuário
111
+ * - repo_type (opcional): Tipo de repositório (all, owner, member, collaborator) - padrão: all
112
+ * - sort (opcional): Ordenação (created, updated, pushed, full_name) - padrão: created
113
+ * - direction (opcional): Direção (asc, desc) - padrão: desc
114
+ * - page (opcional): Página da listagem (padrão: 1)
115
+ * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
116
+ *
117
+ * RECOMENDAÇÕES DE USO:
118
+ * - Respeite privacidade dos usuários
119
+ * - Use apenas para operações necessárias
120
+ * - Monitore uso de permissões
121
+ * - Mantenha logs de acesso
122
+ * - Use filtros adequados para listagens
123
+ * - Verifique permissões antes de acessar dados
124
+ */
125
+ exports.usersTool = {
126
+ name: 'users',
127
+ description: 'Manage users with multi-provider support (GitHub and Gitea): get, list, search, orgs, repos. Dicas (solo): útil para automações pessoais, conferência rápida de acesso e organizações; use apenas permissões necessárias e evite expor dados sensíveis.',
128
+ inputSchema: {
129
+ type: 'object',
130
+ properties: {
131
+ action: {
132
+ type: 'string',
133
+ enum: ['get', 'list', 'search', 'orgs', 'repos'],
134
+ description: 'Action to perform on users'
135
+ },
136
+ provider: { type: 'string', description: 'Provider to use (github, gitea, or omit for default)' },
137
+ username: { type: 'string', description: 'Username' },
138
+ current: { type: 'boolean', description: 'Get current authenticated user' },
139
+ query: { type: 'string', description: 'Search query' },
140
+ page: { type: 'number', description: 'Page number', minimum: 1 },
141
+ limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 },
142
+ repo_type: { type: 'string', enum: ['all', 'owner', 'member', 'collaborator'], description: 'Repository type filter' },
143
+ sort: { type: 'string', enum: ['created', 'updated', 'pushed', 'full_name'], description: 'Sort order' },
144
+ direction: { type: 'string', enum: ['asc', 'desc'], description: 'Sort direction' }
145
+ },
146
+ required: ['action']
147
+ },
148
+ /**
149
+ * Handler principal da tool users
150
+ *
151
+ * FUNCIONALIDADE:
152
+ * - Valida entrada usando Zod schema
153
+ * - Roteia para método específico baseado na ação
154
+ * - Trata erros de forma uniforme
155
+ * - Retorna resultado padronizado
156
+ *
157
+ * FLUXO:
158
+ * 1. Validação de entrada
159
+ * 2. Seleção do provider
160
+ * 3. Roteamento por ação
161
+ * 4. Execução do método específico
162
+ * 5. Tratamento de erros
163
+ * 6. Retorno de resultado
164
+ *
165
+ * TRATAMENTO DE ERROS:
166
+ * - Validação: erro de schema
167
+ * - Execução: erro da operação
168
+ * - Roteamento: ação não suportada
169
+ *
170
+ * RECOMENDAÇÕES:
171
+ * - Sempre valide entrada antes de processar
172
+ * - Trate erros específicos adequadamente
173
+ * - Log detalhes de erro para debug
174
+ * - Retorne mensagens de erro úteis
175
+ */
176
+ async handler(input) {
177
+ try {
178
+ const validatedInput = UsersInputSchema.parse(input);
179
+ // Seleciona o provider baseado na entrada ou usa o padrão
180
+ const provider = validatedInput.provider
181
+ ? index_js_1.globalProviderFactory.getProvider(validatedInput.provider)
182
+ : index_js_1.globalProviderFactory.getDefaultProvider();
183
+ if (!provider) {
184
+ throw new Error('Provider não encontrado ou não configurado');
185
+ }
186
+ switch (validatedInput.action) {
187
+ case 'get':
188
+ return await this.getUser(validatedInput, provider);
189
+ case 'list':
190
+ return await this.listUsers(validatedInput, provider);
191
+ case 'search':
192
+ return await this.searchUsers(validatedInput, provider);
193
+ case 'orgs':
194
+ return await this.getUserOrganizations(validatedInput, provider);
195
+ case 'repos':
196
+ return await this.getUserRepositories(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,
205
+ message: 'Erro na operação de usuários',
206
+ error: error instanceof Error ? error.message : String(error)
207
+ };
208
+ }
209
+ },
210
+ /**
211
+ * Obtém informações de um usuário específico
212
+ *
213
+ * FUNCIONALIDADE:
214
+ * - Retorna informações completas do usuário
215
+ * - Suporta usuário atual ou específico
216
+ * - Inclui perfil, estatísticas e metadados
217
+ *
218
+ * PARÂMETROS OBRIGATÓRIOS:
219
+ * - Nenhum (se current=true) ou username
220
+ *
221
+ * PARÂMETROS OPCIONAIS:
222
+ * - current: Se true, obtém usuário atual autenticado
223
+ * - username: Nome de usuário específico
224
+ *
225
+ * VALIDAÇÕES:
226
+ * - current=true OU username deve ser fornecido
227
+ * - Usuário deve existir (se username fornecido)
228
+ * - Usuário deve ter permissão de acesso
229
+ *
230
+ * RECOMENDAÇÕES:
231
+ * - Use para obter informações de perfil
232
+ * - Verifique permissões antes de acessar
233
+ * - Respeite configurações de privacidade
234
+ * - Monitore uso de dados sensíveis
235
+ */
236
+ async getUser(params, provider) {
237
+ try {
238
+ let user;
239
+ let message;
240
+ if (params.current) {
241
+ // Implementar getCurrentUser
242
+ user = {
243
+ id: 1,
244
+ login: 'usuário atual',
245
+ name: 'Usuário Atual',
246
+ email: 'user@example.com',
247
+ avatar_url: 'https://example.com/avatar.png',
248
+ note: 'Funcionalidade getCurrentUser será implementada'
249
+ };
250
+ message = 'Usuário atual obtido com sucesso';
251
+ }
252
+ else if (params.username) {
253
+ user = await provider.getUser(params.username);
254
+ message = `Usuário '${params.username}' obtido com sucesso`;
255
+ }
256
+ else {
257
+ throw new Error('current=true ou username deve ser fornecido');
258
+ }
259
+ return {
260
+ success: true,
261
+ action: 'get',
262
+ message,
263
+ data: user
264
+ };
265
+ }
266
+ catch (error) {
267
+ throw new Error(`Falha ao obter usuário: ${error instanceof Error ? error.message : String(error)}`);
268
+ }
269
+ },
270
+ /**
271
+ * Lista usuários do sistema
272
+ *
273
+ * FUNCIONALIDADE:
274
+ * - Lista usuários com paginação
275
+ * - Retorna informações básicas de cada usuário
276
+ * - Suporta filtros de paginação
277
+ *
278
+ * PARÂMETROS OPCIONAIS:
279
+ * - page: Página da listagem (padrão: 1)
280
+ * - limit: Itens por página (padrão: 30, máximo: 100)
281
+ *
282
+ * VALIDAÇÕES:
283
+ * - Page deve ser >= 1
284
+ * - Limit deve ser entre 1 e 100
285
+ * - Usuário deve ter permissão de listagem
286
+ *
287
+ * RECOMENDAÇÕES:
288
+ * - Use paginação para sistemas grandes
289
+ * - Monitore número total de usuários
290
+ * - Verifique permissões de acesso
291
+ * - Mantenha logs de listagem
292
+ */
293
+ async listUsers(params, provider) {
294
+ try {
295
+ const page = params.page || 1;
296
+ const limit = params.limit || 30;
297
+ // Implementar listagem de usuários
298
+ // Por enquanto, retorna mensagem de funcionalidade
299
+ return {
300
+ success: true,
301
+ action: 'list',
302
+ message: `Listagem de usuários solicitada`,
303
+ data: {
304
+ page,
305
+ limit,
306
+ note: 'Funcionalidade de listagem de usuários será implementada'
307
+ }
308
+ };
309
+ }
310
+ catch (error) {
311
+ throw new Error(`Falha ao listar usuários: ${error instanceof Error ? error.message : String(error)}`);
312
+ }
313
+ },
314
+ /**
315
+ * Busca usuários por critérios específicos
316
+ *
317
+ * FUNCIONALIDADE:
318
+ * - Busca usuários por nome ou email
319
+ * - Suporta paginação
320
+ * - Retorna resultados relevantes
321
+ *
322
+ * PARÂMETROS OBRIGATÓRIOS:
323
+ * - query: Termo de busca
324
+ *
325
+ * PARÂMETROS OPCIONAIS:
326
+ * - page: Página da busca (padrão: 1)
327
+ * - limit: Itens por página (padrão: 30, máximo: 100)
328
+ *
329
+ * VALIDAÇÕES:
330
+ * - Query deve ser fornecido
331
+ * - Query deve ter pelo menos 3 caracteres
332
+ * - Usuário deve ter permissão de busca
333
+ *
334
+ * RECOMENDAÇÕES:
335
+ * - Use termos de busca específicos
336
+ * - Combine com filtros de paginação
337
+ * - Analise relevância dos resultados
338
+ * - Respeite configurações de privacidade
339
+ */
340
+ async searchUsers(params, provider) {
341
+ try {
342
+ if (!params.query) {
343
+ throw new Error('Query é obrigatória');
344
+ }
345
+ if (params.query.length < 3) {
346
+ throw new Error('Query deve ter pelo menos 3 caracteres');
347
+ }
348
+ const page = params.page || 1;
349
+ const limit = params.limit || 30;
350
+ const users = await provider.searchUsers(params.query, page, limit);
351
+ return {
352
+ success: true,
353
+ action: 'search',
354
+ message: `${users.length} usuários encontrados para '${params.query}'`,
355
+ data: {
356
+ users,
357
+ query: params.query,
358
+ page,
359
+ limit,
360
+ total: users.length
361
+ }
362
+ };
363
+ }
364
+ catch (error) {
365
+ throw new Error(`Falha ao buscar usuários: ${error instanceof Error ? error.message : String(error)}`);
366
+ }
367
+ },
368
+ /**
369
+ * Obtém organizações de um usuário específico
370
+ *
371
+ * FUNCIONALIDADE:
372
+ * - Lista organizações do usuário
373
+ * - Suporta paginação
374
+ * - Retorna informações básicas das organizações
375
+ *
376
+ * PARÂMETROS OBRIGATÓRIOS:
377
+ * - username: Nome de usuário
378
+ *
379
+ * PARÂMETROS OPCIONAIS:
380
+ * - page: Página da listagem (padrão: 1)
381
+ * - limit: Itens por página (padrão: 30, máximo: 100)
382
+ *
383
+ * VALIDAÇÕES:
384
+ * - Username deve ser fornecido
385
+ * - Usuário deve existir
386
+ * - Usuário deve ter permissão de acesso
387
+ *
388
+ * RECOMENDAÇÕES:
389
+ * - Use para gerenciar membros de organizações
390
+ * - Verifique permissões antes de acessar
391
+ * - Monitore acesso a dados organizacionais
392
+ * - Mantenha logs de consulta
393
+ */
394
+ async getUserOrganizations(params, provider) {
395
+ try {
396
+ if (!params.username) {
397
+ throw new Error('Username é obrigatório');
398
+ }
399
+ const page = params.page || 1;
400
+ const limit = params.limit || 30;
401
+ // Implementar getUserOrganizations
402
+ const organizations = [{
403
+ id: 1,
404
+ login: 'org-example',
405
+ name: 'Organização Exemplo',
406
+ avatar_url: 'https://example.com/org-avatar.png',
407
+ note: 'Funcionalidade getUserOrganizations será implementada'
408
+ }];
409
+ return {
410
+ success: true,
411
+ action: 'orgs',
412
+ message: `${organizations.length} organizações encontradas para '${params.username}'`,
413
+ data: {
414
+ username: params.username,
415
+ organizations,
416
+ page,
417
+ limit,
418
+ total: organizations.length
419
+ }
420
+ };
421
+ }
422
+ catch (error) {
423
+ throw new Error(`Falha ao obter organizações do usuário: ${error instanceof Error ? error.message : String(error)}`);
424
+ }
425
+ },
426
+ /**
427
+ * Lista repositórios de um usuário específico
428
+ *
429
+ * FUNCIONALIDADE:
430
+ * - Lista repositórios com filtros
431
+ * - Suporta diferentes tipos de repositório
432
+ * - Permite ordenação e paginação
433
+ *
434
+ * PARÂMETROS OBRIGATÓRIOS:
435
+ * - username: Nome de usuário
436
+ *
437
+ * PARÂMETROS OPCIONAIS:
438
+ * - repo_type: Tipo de repositório (all, owner, member, collaborator) - padrão: all
439
+ * - sort: Ordenação (created, updated, pushed, full_name) - padrão: created
440
+ * - direction: Direção (asc, desc) - padrão: desc
441
+ * - page: Página da listagem (padrão: 1)
442
+ * - limit: Itens por página (padrão: 30, máximo: 100)
443
+ *
444
+ * VALIDAÇÕES:
445
+ * - Username deve ser fornecido
446
+ * - Usuário deve existir
447
+ * - Usuário deve ter permissão de acesso
448
+ *
449
+ * RECOMENDAÇÕES:
450
+ * - Use filtros adequados para organização
451
+ * - Monitore acesso a repositórios
452
+ * - Verifique permissões antes de listar
453
+ * - Mantenha logs de consulta
454
+ */
455
+ async getUserRepositories(params, provider) {
456
+ try {
457
+ if (!params.username) {
458
+ throw new Error('Username é obrigatório');
459
+ }
460
+ const repoType = params.repo_type || 'all';
461
+ const sort = params.sort || 'created';
462
+ const direction = params.direction || 'desc';
463
+ const page = params.page || 1;
464
+ const limit = params.limit || 30;
465
+ // Implementar getRepositories
466
+ const repositories = [{
467
+ id: 1,
468
+ name: 'repo-example',
469
+ full_name: `${params.username}/repo-example`,
470
+ private: false,
471
+ description: 'Repositório de exemplo',
472
+ note: 'Funcionalidade getRepositories será implementada'
473
+ }];
474
+ return {
475
+ success: true,
476
+ action: 'repos',
477
+ message: `${repositories.length} repositórios encontrados para '${params.username}'`,
478
+ data: {
479
+ username: params.username,
480
+ repositories,
481
+ repo_type: repoType,
482
+ sort,
483
+ direction,
484
+ page,
485
+ limit,
486
+ total: repositories.length
487
+ }
488
+ };
489
+ }
490
+ catch (error) {
491
+ throw new Error(`Falha ao obter repositórios do usuário: ${error instanceof Error ? error.message : String(error)}`);
492
+ }
493
+ }
494
+ };
495
+ //# sourceMappingURL=users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"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"}