@andrebuzeli/git-mcp 2.29.0 → 2.29.2

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 (57) hide show
  1. package/dist/providers/provider-factory.js +3 -3
  2. package/dist/providers/provider-factory.js.map +1 -1
  3. package/dist/server.js +9 -9
  4. package/dist/server.js.map +1 -1
  5. package/dist/tools/git-archive.d.ts +10 -10
  6. package/dist/tools/git-archive.js +22 -22
  7. package/dist/tools/git-archive.js.map +1 -1
  8. package/dist/tools/git-branches.d.ts +145 -145
  9. package/dist/tools/git-branches.js +172 -172
  10. package/dist/tools/git-branches.js.map +1 -1
  11. package/dist/tools/git-commits.d.ts +156 -156
  12. package/dist/tools/git-commits.js +188 -188
  13. package/dist/tools/git-commits.js.map +1 -1
  14. package/dist/tools/git-config.d.ts +15 -15
  15. package/dist/tools/git-config.js +45 -45
  16. package/dist/tools/git-config.js.map +1 -1
  17. package/dist/tools/git-files.d.ts +199 -199
  18. package/dist/tools/git-files.js +221 -221
  19. package/dist/tools/git-files.js.map +1 -1
  20. package/dist/tools/git-initialize.d.ts +41 -41
  21. package/dist/tools/git-initialize.js +73 -73
  22. package/dist/tools/git-initialize.js.map +1 -1
  23. package/dist/tools/git-issues.d.ts +190 -190
  24. package/dist/tools/git-issues.js +226 -226
  25. package/dist/tools/git-issues.js.map +1 -1
  26. package/dist/tools/git-pulls.d.ts +209 -209
  27. package/dist/tools/git-pulls.js +226 -226
  28. package/dist/tools/git-pulls.js.map +1 -1
  29. package/dist/tools/git-releases.d.ts +157 -157
  30. package/dist/tools/git-releases.js +171 -171
  31. package/dist/tools/git-releases.js.map +1 -1
  32. package/dist/tools/git-remote.d.ts +6 -6
  33. package/dist/tools/git-remote.js +14 -14
  34. package/dist/tools/git-remote.js.map +1 -1
  35. package/dist/tools/git-repositories.d.ts +176 -176
  36. package/dist/tools/git-repositories.js +218 -218
  37. package/dist/tools/git-repositories.js.map +1 -1
  38. package/dist/tools/git-reset.d.ts +10 -10
  39. package/dist/tools/git-reset.js +15 -15
  40. package/dist/tools/git-reset.js.map +1 -1
  41. package/dist/tools/git-revert.d.ts +11 -11
  42. package/dist/tools/git-revert.js +18 -18
  43. package/dist/tools/git-revert.js.map +1 -1
  44. package/dist/tools/git-stash.d.ts +7 -7
  45. package/dist/tools/git-stash.js +11 -11
  46. package/dist/tools/git-stash.js.map +1 -1
  47. package/dist/tools/git-sync.d.ts +13 -13
  48. package/dist/tools/git-sync.js +34 -34
  49. package/dist/tools/git-sync.js.map +1 -1
  50. package/dist/tools/git-tags.d.ts +134 -134
  51. package/dist/tools/git-tags.js +152 -152
  52. package/dist/tools/git-tags.js.map +1 -1
  53. package/dist/tools/git-upload-project.js +7 -7
  54. package/dist/tools/git-upload-project.js.map +1 -1
  55. package/dist/utils/terminal-controller.js +7 -7
  56. package/dist/utils/terminal-controller.js.map +1 -1
  57. package/package.json +2 -2
@@ -7,47 +7,47 @@ const user_detection_js_1 = require("../utils/user-detection.js");
7
7
  /**
8
8
  * Tool: pulls
9
9
  *
10
- * DESCRIÇÃO:
10
+ * DESCRIÇÃO:
11
11
  * Gerenciamento completo de pull requests com suporte multi-provider (GitHub e Gitea)
12
12
  *
13
13
  * FUNCIONALIDADES:
14
- * - Criação de novos pull requests
14
+ * - Criação de novos pull requests
15
15
  * - Listagem e busca de PRs
16
- * - Obtenção de detalhes específicos
17
- * - Atualização de PRs existentes
16
+ * - Obtenção de detalhes específicos
17
+ * - Atualização de PRs existentes
18
18
  * - Merge de pull requests
19
19
  * - Fechamento de PRs
20
- * - Revisão e aprovação
21
- * - Busca por conteúdo e status
20
+ * - Revisão e aprovação
21
+ * - Busca por conteúdo e status
22
22
  *
23
23
  * USO:
24
- * - Para gerenciar integração de código
25
- * - Para revisão de código
24
+ * - Para gerenciar integração de código
25
+ * - Para revisão de código
26
26
  * - Para controle de qualidade
27
- * - Para colaboração em equipe
27
+ * - Para colaboração em equipe
28
28
  *
29
- * RECOMENDAÇÕES:
30
- * - Use títulos descritivos
31
- * - Documente mudanças detalhadamente
29
+ * RECOMENDAÇÕES:
30
+ * - Use títulos descritivos
31
+ * - Documente mudanças detalhadamente
32
32
  * - Revise antes de fazer merge
33
33
  * - Mantenha PRs pequenos e focados
34
34
  */
35
35
  /**
36
- * Schema de validação para entrada da tool pulls
36
+ * Schema de validação para entrada da tool pulls
37
37
  *
38
- * VALIDAÇÕES:
39
- * - action: Ação obrigatória (create, list, get, update, merge, close, review, search)
40
- * - Parâmetros específicos por ação
41
- * - Validação de tipos e formatos
38
+ * VALIDAÇÕES:
39
+ * - action: Ação obrigatória (create, list, get, update, merge, close, review, search)
40
+ * - Parâmetros específicos por ação
41
+ * - Validação de tipos e formatos
42
42
  *
43
- * RECOMENDAÇÕES:
43
+ * RECOMENDAÇÕES:
44
44
  * - Sempre valide entrada antes de usar
45
- * - Use parâmetros opcionais adequadamente
46
- * - Documente parâmetros obrigatórios
45
+ * - Use parâmetros opcionais adequadamente
46
+ * - Documente parâmetros obrigatórios
47
47
  */
48
48
  const PullsInputSchema = zod_1.z.object({
49
49
  action: zod_1.z.enum(['create', 'list', 'get', 'update', 'merge', 'close', 'review', 'search']),
50
- // Parâmetros comuns
50
+ // Parâmetros comuns
51
51
  repo: zod_1.z.string(),
52
52
  // Para multi-provider
53
53
  provider: zod_1.z.enum(['gitea', 'github']).describe('Provider to use (gitea or github)'),
@@ -90,11 +90,11 @@ const PullsInputSchema = zod_1.z.object({
90
90
  label: zod_1.z.string().optional(),
91
91
  });
92
92
  /**
93
- * Schema de saída padronizado
93
+ * Schema de saída padronizado
94
94
  *
95
95
  * ESTRUTURA:
96
- * - success: Status da operação
97
- * - action: Ação executada
96
+ * - success: Status da operação
97
+ * - action: Ação executada
98
98
  * - message: Mensagem descritiva
99
99
  * - data: Dados retornados (opcional)
100
100
  * - error: Detalhes do erro (opcional)
@@ -109,96 +109,96 @@ const PullsResultSchema = zod_1.z.object({
109
109
  /**
110
110
  * Tool: pulls
111
111
  *
112
- * DESCRIÇÃO:
113
- * Gerenciamento completo de Pull Requests Gitea com múltiplas ações
112
+ * DESCRIÇÃO:
113
+ * Gerenciamento completo de Pull Requests Gitea com múltiplas ações
114
114
  *
115
- * ACTIONS DISPONÍVEIS:
115
+ * ACTIONS DISPONÍVEIS:
116
116
  *
117
117
  * 1. create - Criar novo Pull Request
118
- * Parâmetros:
119
- * - owner (obrigatório): Proprietário do repositório
120
- * - repo (obrigatório): Nome do repositório
121
- * - title (obrigatório): Título do PR
122
- * - body (opcional): Descrição detalhada
123
- * - head (obrigatório): Branch de origem
124
- * - base (obrigatório): Branch de destino
125
- * - draft (opcional): Se é um draft PR
118
+ * Parâmetros:
119
+ * - owner (obrigatório): Proprietário do repositório
120
+ * - repo (obrigatório): Nome do repositório
121
+ * - title (obrigatório): Título do PR
122
+ * - body (opcional): Descrição detalhada
123
+ * - head (obrigatório): Branch de origem
124
+ * - base (obrigatório): Branch de destino
125
+ * - draft (opcional): Se é um draft PR
126
126
  * - labels (opcional): Array de labels
127
- * - assignees (opcional): Array de usuários responsáveis
127
+ * - assignees (opcional): Array de usuários responsáveis
128
128
  * - reviewers (opcional): Array de revisores
129
129
  * - milestone (opcional): ID do milestone
130
130
  *
131
131
  * 2. list - Listar Pull Requests
132
- * Parâmetros:
133
- * - owner (obrigatório): Proprietário do repositório
134
- * - repo (obrigatório): Nome do repositório
135
- * - state (opcional): Estado dos PRs (open, closed, merged, all) - padrão: open
136
- * - page (opcional): Página da listagem (padrão: 1)
137
- * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
132
+ * Parâmetros:
133
+ * - owner (obrigatório): Proprietário do repositório
134
+ * - repo (obrigatório): Nome do repositório
135
+ * - state (opcional): Estado dos PRs (open, closed, merged, all) - padrão: open
136
+ * - page (opcional): Página da listagem (padrão: 1)
137
+ * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
138
138
  *
139
139
  * 3. get - Obter detalhes do Pull Request
140
- * Parâmetros:
141
- * - owner (obrigatório): Proprietário do repositório
142
- * - repo (obrigatório): Nome do repositório
143
- * - pull_number (obrigatório): Número do PR
140
+ * Parâmetros:
141
+ * - owner (obrigatório): Proprietário do repositório
142
+ * - repo (obrigatório): Nome do repositório
143
+ * - pull_number (obrigatório): Número do PR
144
144
  *
145
145
  * 4. update - Atualizar Pull Request existente
146
- * Parâmetros:
147
- * - owner (obrigatório): Proprietário do repositório
148
- * - repo (obrigatório): Nome do repositório
149
- * - pull_number (obrigatório): Número do PR
150
- * - new_title (opcional): Novo título
151
- * - new_body (opcional): Nova descrição
146
+ * Parâmetros:
147
+ * - owner (obrigatório): Proprietário do repositório
148
+ * - repo (obrigatório): Nome do repositório
149
+ * - pull_number (obrigatório): Número do PR
150
+ * - new_title (opcional): Novo título
151
+ * - new_body (opcional): Nova descrição
152
152
  * - new_base (opcional): Nova branch base
153
153
  * - new_labels (opcional): Novos labels
154
- * - new_assignees (opcional): Novos responsáveis
154
+ * - new_assignees (opcional): Novos responsáveis
155
155
  * - new_milestone (opcional): Novo milestone
156
156
  *
157
157
  * 5. merge - Fazer merge do Pull Request
158
- * Parâmetros:
159
- * - owner (obrigatório): Proprietário do repositório
160
- * - repo (obrigatório): Nome do repositório
161
- * - pull_number (obrigatório): Número do PR
162
- * - merge_method (opcional): Método de merge (merge, rebase, squash)
163
- * - merge_commit_title (opcional): Título do commit de merge
158
+ * Parâmetros:
159
+ * - owner (obrigatório): Proprietário do repositório
160
+ * - repo (obrigatório): Nome do repositório
161
+ * - pull_number (obrigatório): Número do PR
162
+ * - merge_method (opcional): Método de merge (merge, rebase, squash)
163
+ * - merge_commit_title (opcional): Título do commit de merge
164
164
  * - merge_commit_message (opcional): Mensagem do commit de merge
165
165
  *
166
166
  * 6. close - Fechar Pull Request
167
- * Parâmetros:
168
- * - owner (obrigatório): Proprietário do repositório
169
- * - repo (obrigatório): Nome do repositório
170
- * - pull_number (obrigatório): Número do PR
167
+ * Parâmetros:
168
+ * - owner (obrigatório): Proprietário do repositório
169
+ * - repo (obrigatório): Nome do repositório
170
+ * - pull_number (obrigatório): Número do PR
171
171
  *
172
172
  * 7. review - Adicionar review ao Pull Request
173
- * Parâmetros:
174
- * - owner (obrigatório): Proprietário do repositório
175
- * - repo (obrigatório): Nome do repositório
176
- * - pull_number (obrigatório): Número do PR
177
- * - review_event (obrigatório): Tipo de review (APPROVE, REQUEST_CHANGES, COMMENT)
178
- * - review_body (opcional): Comentário do review
173
+ * Parâmetros:
174
+ * - owner (obrigatório): Proprietário do repositório
175
+ * - repo (obrigatório): Nome do repositório
176
+ * - pull_number (obrigatório): Número do PR
177
+ * - review_event (obrigatório): Tipo de review (APPROVE, REQUEST_CHANGES, COMMENT)
178
+ * - review_body (opcional): Comentário do review
179
179
  *
180
180
  * 8. search - Buscar Pull Requests
181
- * Parâmetros:
182
- * - owner (obrigatório): Proprietário do repositório
183
- * - repo (obrigatório): Nome do repositório
184
- * - query (obrigatório): Termo de busca
181
+ * Parâmetros:
182
+ * - owner (obrigatório): Proprietário do repositório
183
+ * - repo (obrigatório): Nome do repositório
184
+ * - query (obrigatório): Termo de busca
185
185
  * - author (opcional): Autor dos PRs
186
- * - assignee (opcional): Responsável pelos PRs
186
+ * - assignee (opcional): Responsável pelos PRs
187
187
  * - reviewer (opcional): Revisor dos PRs
188
- * - label (opcional): Label específico
188
+ * - label (opcional): Label específico
189
189
  *
190
- * RECOMENDAÇÕES DE USO:
191
- * - Use títulos descritivos e claros
192
- * - Documente mudanças detalhadamente
190
+ * RECOMENDAÇÕES DE USO:
191
+ * - Use títulos descritivos e claros
192
+ * - Documente mudanças detalhadamente
193
193
  * - Solicite reviews adequados
194
194
  * - Mantenha PRs pequenos e focados
195
- * - Use labels para categorização
196
- * - Atribua responsáveis adequadamente
197
- * - Escolha método de merge apropriado
195
+ * - Use labels para categorização
196
+ * - Atribua responsáveis adequadamente
197
+ * - Escolha método de merge apropriado
198
198
  */
199
199
  exports.pullsTool = {
200
200
  name: 'git-pulls',
201
- description: 'tool: Gerencia pull requests Git para revisão e merge de código\n──────────────\naction create: cria novo pull request\naction create requires: repo, title, body, head, base, draft, labels, assignees, reviewers, milestone, provider\n───────────────\naction list: lista pull requests do repositório\naction list requires: repo, state, page, limit, provider\n───────────────\naction get: obtém detalhes de PR\naction get requires: repo, pull_number, provider\n───────────────\naction update: atualiza pull request\naction update requires: repo, pull_number, new_title, new_body, new_base, new_labels, new_assignees, new_milestone, provider\n───────────────\naction merge: faz merge do PR\naction merge requires: repo, pull_number, merge_method, merge_commit_title, merge_commit_message, provider\n───────────────\naction close: fecha pull request\naction close requires: repo, pull_number, provider\n───────────────\naction review: adiciona review\naction review requires: repo, pull_number, review_event, review_body, provider\n───────────────\naction search: busca PRs por critérios\naction search requires: repo, query, author, assignee, reviewer, label, provider',
201
+ description: 'tool: Gerencia pull requests Git para revisão e merge de código\n──────────────\naction create: cria novo pull request\naction create requires: repo, title, body, head, base, draft, labels, assignees, reviewers, milestone, provider\n───────────────\naction list: lista pull requests do repositório\naction list requires: repo, state, page, limit, provider\n───────────────\naction get: obtém detalhes de PR\naction get requires: repo, pull_number, provider\n───────────────\naction update: atualiza pull request\naction update requires: repo, pull_number, new_title, new_body, new_base, new_labels, new_assignees, new_milestone, provider\n───────────────\naction merge: faz merge do PR\naction merge requires: repo, pull_number, merge_method, merge_commit_title, merge_commit_message, provider\n───────────────\naction close: fecha pull request\naction close requires: repo, pull_number, provider\n───────────────\naction review: adiciona review\naction review requires: repo, pull_number, review_event, review_body, provider\n───────────────\naction search: busca PRs por critérios\naction search requires: repo, query, author, assignee, reviewer, label, provider',
202
202
  inputSchema: {
203
203
  type: 'object',
204
204
  properties: {
@@ -246,40 +246,40 @@ exports.pullsTool = {
246
246
  *
247
247
  * FUNCIONALIDADE:
248
248
  * - Valida entrada usando Zod schema
249
- * - Roteia para método específico baseado na ação
249
+ * - Roteia para método específico baseado na ação
250
250
  * - Trata erros de forma uniforme
251
251
  * - Retorna resultado padronizado
252
252
  *
253
253
  * FLUXO:
254
- * 1. Validação de entrada
255
- * 2. Seleção do provider
256
- * 3. Roteamento por ação
257
- * 4. Execução do método específico
254
+ * 1. Validação de entrada
255
+ * 2. Seleção do provider
256
+ * 3. Roteamento por ação
257
+ * 4. Execução do método específico
258
258
  * 5. Tratamento de erros
259
259
  * 6. Retorno de resultado
260
260
  *
261
261
  * TRATAMENTO DE ERROS:
262
- * - Validação: erro de schema
263
- * - Execução: erro da operação
264
- * - Roteamento: ação não suportada
262
+ * - Validação: erro de schema
263
+ * - Execução: erro da operação
264
+ * - Roteamento: ação não suportada
265
265
  *
266
- * RECOMENDAÇÕES:
266
+ * RECOMENDAÇÕES:
267
267
  * - Sempre valide entrada antes de processar
268
- * - Trate erros específicos adequadamente
268
+ * - Trate erros específicos adequadamente
269
269
  * - Log detalhes de erro para debug
270
- * - Retorne mensagens de erro úteis
270
+ * - Retorne mensagens de erro úteis
271
271
  */
272
272
  async handler(input) {
273
273
  try {
274
274
  const validatedInput = PullsInputSchema.parse(input);
275
- // Aplicar auto-detecção de usuário/owner
275
+ // Aplicar auto-detecção de usuário/owner
276
276
  const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.provider);
277
277
  // Obter o provider correto
278
278
  const provider = processedInput.provider
279
279
  ? index_js_1.globalProviderFactory.getProvider(processedInput.provider)
280
280
  : index_js_1.globalProviderFactory.getDefaultProvider();
281
281
  if (!provider) {
282
- throw new Error(`Provider '${processedInput.provider}' não encontrado`);
282
+ throw new Error(`Provider '${processedInput.provider}' não encontrado`);
283
283
  }
284
284
  // Obter o owner do provider
285
285
  const owner = (await provider.getCurrentUser()).login;
@@ -301,14 +301,14 @@ exports.pullsTool = {
301
301
  case 'search':
302
302
  return await this.searchPullRequests(validatedInput, provider, owner);
303
303
  default:
304
- throw new Error(`Ação não suportada: ${validatedInput.action}`);
304
+ throw new Error(`Ação não suportada: ${validatedInput.action}`);
305
305
  }
306
306
  }
307
307
  catch (error) {
308
308
  return {
309
309
  success: false,
310
310
  action: input.action,
311
- message: 'Erro na operação de pull requests',
311
+ message: 'Erro na operação de pull requests',
312
312
  error: error instanceof Error ? error.message : String(error)
313
313
  };
314
314
  }
@@ -317,41 +317,41 @@ exports.pullsTool = {
317
317
  * Cria um novo Pull Request
318
318
  *
319
319
  * FUNCIONALIDADE:
320
- * - Cria PR com título e descrição
321
- * - Suporta configuração de branches
322
- * - Permite configuração de draft, labels, assignees
323
- *
324
- * PARÂMETROS OBRIGATÓRIOS:
325
- * - owner: Proprietário do repositório
326
- * - repo: Nome do repositório
327
- * - title: Título do PR
320
+ * - Cria PR com título e descrição
321
+ * - Suporta configuração de branches
322
+ * - Permite configuração de draft, labels, assignees
323
+ *
324
+ * PARÂMETROS OBRIGATÓRIOS:
325
+ * - owner: Proprietário do repositório
326
+ * - repo: Nome do repositório
327
+ * - title: Título do PR
328
328
  * - head: Branch de origem
329
329
  * - base: Branch de destino
330
330
  *
331
- * PARÂMETROS OPCIONAIS:
332
- * - body: Descrição detalhada
333
- * - draft: Se é um draft PR
334
- * - labels: Array de labels para categorização
335
- * - assignees: Array de usuários responsáveis
331
+ * PARÂMETROS OPCIONAIS:
332
+ * - body: Descrição detalhada
333
+ * - draft: Se é um draft PR
334
+ * - labels: Array de labels para categorização
335
+ * - assignees: Array de usuários responsáveis
336
336
  * - reviewers: Array de revisores
337
337
  * - milestone: ID do milestone associado
338
338
  *
339
- * VALIDAÇÕES:
340
- * - Todos os parâmetros obrigatórios
339
+ * VALIDAÇÕES:
340
+ * - Todos os parâmetros obrigatórios
341
341
  * - Branches devem existir
342
342
  * - Head e base devem ser diferentes
343
- * - Usuário deve ter permissão de escrita
343
+ * - Usuário deve ter permissão de escrita
344
344
  *
345
- * RECOMENDAÇÕES:
346
- * - Use títulos descritivos e claros
347
- * - Documente mudanças detalhadamente
345
+ * RECOMENDAÇÕES:
346
+ * - Use títulos descritivos e claros
347
+ * - Documente mudanças detalhadamente
348
348
  * - Solicite reviews adequados
349
349
  * - Mantenha PRs pequenos e focados
350
350
  */
351
351
  async createPullRequest(params, provider, owner) {
352
352
  try {
353
353
  if (!!params.repo || !params.title || !params.head || !params.base) {
354
- throw new Error('repo, title, head e base são obrigatórios');
354
+ throw new Error('repo, title, head e base são obrigatórios');
355
355
  }
356
356
  const pullRequest = await provider.createPullRequest(owner, params.repo, params.title, params.body || '', params.head, params.base);
357
357
  return {
@@ -366,38 +366,38 @@ exports.pullsTool = {
366
366
  }
367
367
  },
368
368
  /**
369
- * Lista Pull Requests do repositório
369
+ * Lista Pull Requests do repositório
370
370
  *
371
371
  * FUNCIONALIDADE:
372
372
  * - Lista PRs com filtros de estado
373
- * - Suporta paginação
374
- * - Retorna informações básicas de cada PR
373
+ * - Suporta paginação
374
+ * - Retorna informações básicas de cada PR
375
375
  *
376
- * PARÂMETROS OBRIGATÓRIOS:
377
- * - owner: Proprietário do repositório
378
- * - repo: Nome do repositório
376
+ * PARÂMETROS OBRIGATÓRIOS:
377
+ * - owner: Proprietário do repositório
378
+ * - repo: Nome do repositório
379
379
  *
380
- * PARÂMETROS OPCIONAIS:
381
- * - state: Estado dos PRs (open, closed, merged, all) - padrão: open
382
- * - page: Página da listagem (padrão: 1)
383
- * - limit: Itens por página (padrão: 30, máximo: 100)
380
+ * PARÂMETROS OPCIONAIS:
381
+ * - state: Estado dos PRs (open, closed, merged, all) - padrão: open
382
+ * - page: Página da listagem (padrão: 1)
383
+ * - limit: Itens por página (padrão: 30, máximo: 100)
384
384
  *
385
- * VALIDAÇÕES:
386
- * - e repo obrigatórios
387
- * - State deve ser um dos valores válidos
385
+ * VALIDAÇÕES:
386
+ * - e repo obrigatórios
387
+ * - State deve ser um dos valores válidos
388
388
  * - Page deve ser >= 1
389
389
  * - Limit deve ser entre 1 e 100
390
390
  *
391
- * RECOMENDAÇÕES:
392
- * - Use paginação para repositórios com muitos PRs
393
- * - Monitore número total de PRs
394
- * - Filtre por estado para organização
391
+ * RECOMENDAÇÕES:
392
+ * - Use paginação para repositórios com muitos PRs
393
+ * - Monitore número total de PRs
394
+ * - Filtre por estado para organização
395
395
  * - Mantenha PRs organizados
396
396
  */
397
397
  async listPullRequests(params, provider, owner) {
398
398
  try {
399
399
  if (!params.repo) {
400
- throw new Error('e repo são obrigatórios');
400
+ throw new Error('e repo são obrigatórios');
401
401
  }
402
402
  const state = params.state || 'open';
403
403
  const page = params.page || 1;
@@ -421,33 +421,33 @@ exports.pullsTool = {
421
421
  }
422
422
  },
423
423
  /**
424
- * Obtém detalhes de um Pull Request específico
424
+ * Obtém detalhes de um Pull Request específico
425
425
  *
426
426
  * FUNCIONALIDADE:
427
- * - Retorna informações completas do PR
428
- * - Inclui título, descrição, branches, labels
427
+ * - Retorna informações completas do PR
428
+ * - Inclui título, descrição, branches, labels
429
429
  * - Mostra status de merge e conflitos
430
430
  *
431
- * PARÂMETROS OBRIGATÓRIOS:
432
- * - owner: Proprietário do repositório
433
- * - repo: Nome do repositório
434
- * - pull_number: Número do PR
431
+ * PARÂMETROS OBRIGATÓRIOS:
432
+ * - owner: Proprietário do repositório
433
+ * - repo: Nome do repositório
434
+ * - pull_number: Número do PR
435
435
  *
436
- * VALIDAÇÕES:
437
- * - Todos os parâmetros obrigatórios
438
- * - PR deve existir no repositório
439
- * - Número deve ser válido
436
+ * VALIDAÇÕES:
437
+ * - Todos os parâmetros obrigatórios
438
+ * - PR deve existir no repositório
439
+ * - Número deve ser válido
440
440
  *
441
- * RECOMENDAÇÕES:
441
+ * RECOMENDAÇÕES:
442
442
  * - Use para obter detalhes completos
443
443
  * - Verifique status de merge
444
444
  * - Analise conflitos se houver
445
- * - Monitore mudanças importantes
445
+ * - Monitore mudanças importantes
446
446
  */
447
447
  async getPullRequest(params, provider, owner) {
448
448
  try {
449
449
  if (!!params.repo || !params.pull_number) {
450
- throw new Error('repo e pull_number são obrigatórios');
450
+ throw new Error('repo e pull_number são obrigatórios');
451
451
  }
452
452
  const pullRequest = await provider.getPullRequest((await provider.getCurrentUser()).login, params.repo, params.pull_number);
453
453
  return {
@@ -466,37 +466,37 @@ exports.pullsTool = {
466
466
  *
467
467
  * FUNCIONALIDADE:
468
468
  * - Atualiza campos do PR
469
- * - Suporta mudança de branch base
470
- * - Permite alteração de labels e assignees
469
+ * - Suporta mudança de branch base
470
+ * - Permite alteração de labels e assignees
471
471
  *
472
- * PARÂMETROS OBRIGATÓRIOS:
473
- * - owner: Proprietário do repositório
474
- * - repo: Nome do repositório
475
- * - pull_number: Número do PR
472
+ * PARÂMETROS OBRIGATÓRIOS:
473
+ * - owner: Proprietário do repositório
474
+ * - repo: Nome do repositório
475
+ * - pull_number: Número do PR
476
476
  *
477
- * PARÂMETROS OPCIONAIS:
478
- * - new_title: Novo título
479
- * - new_body: Nova descrição
477
+ * PARÂMETROS OPCIONAIS:
478
+ * - new_title: Novo título
479
+ * - new_body: Nova descrição
480
480
  * - new_base: Nova branch base
481
481
  * - new_labels: Novos labels
482
- * - new_assignees: Novos responsáveis
482
+ * - new_assignees: Novos responsáveis
483
483
  * - new_milestone: Novo milestone
484
484
  *
485
- * VALIDAÇÕES:
486
- * - Todos os parâmetros obrigatórios
485
+ * VALIDAÇÕES:
486
+ * - Todos os parâmetros obrigatórios
487
487
  * - PR deve existir
488
488
  * - Pelo menos um campo deve ser atualizado
489
489
  *
490
- * RECOMENDAÇÕES:
491
- * - Atualize apenas campos necessários
490
+ * RECOMENDAÇÕES:
491
+ * - Atualize apenas campos necessários
492
492
  * - Use mensagens de commit descritivas
493
- * - Documente mudanças importantes
494
- * - Notifique responsáveis sobre mudanças
493
+ * - Documente mudanças importantes
494
+ * - Notifique responsáveis sobre mudanças
495
495
  */
496
496
  async updatePullRequest(params, provider, owner) {
497
497
  try {
498
498
  if (!!params.repo || !params.pull_number) {
499
- throw new Error('repo e pull_number são obrigatórios');
499
+ throw new Error('repo e pull_number são obrigatórios');
500
500
  }
501
501
  const updateData = {};
502
502
  if (params.new_title)
@@ -531,35 +531,35 @@ exports.pullsTool = {
531
531
  *
532
532
  * FUNCIONALIDADE:
533
533
  * - Merge do PR na branch base
534
- * - Suporta diferentes métodos de merge
535
- * - Permite customização de commit de merge
534
+ * - Suporta diferentes métodos de merge
535
+ * - Permite customização de commit de merge
536
536
  *
537
- * PARÂMETROS OBRIGATÓRIOS:
538
- * - owner: Proprietário do repositório
539
- * - repo: Nome do repositório
540
- * - pull_number: Número do PR
537
+ * PARÂMETROS OBRIGATÓRIOS:
538
+ * - owner: Proprietário do repositório
539
+ * - repo: Nome do repositório
540
+ * - pull_number: Número do PR
541
541
  *
542
- * PARÂMETROS OPCIONAIS:
543
- * - merge_method: Método de merge (merge, rebase, squash)
544
- * - merge_commit_title: Título do commit de merge
542
+ * PARÂMETROS OPCIONAIS:
543
+ * - merge_method: Método de merge (merge, rebase, squash)
544
+ * - merge_commit_title: Título do commit de merge
545
545
  * - merge_commit_message: Mensagem do commit de merge
546
546
  *
547
- * VALIDAÇÕES:
548
- * - Todos os parâmetros obrigatórios
547
+ * VALIDAÇÕES:
548
+ * - Todos os parâmetros obrigatórios
549
549
  * - PR deve existir e estar aberto
550
- * - Não deve haver conflitos
550
+ * - Não deve haver conflitos
551
551
  * - PR deve ser mergeable
552
552
  *
553
- * RECOMENDAÇÕES:
553
+ * RECOMENDAÇÕES:
554
554
  * - Resolva conflitos antes do merge
555
- * - Escolha método de merge adequado
556
- * - Use títulos e mensagens descritivas
557
- * - Teste após o merge
555
+ * - Escolha método de merge adequado
556
+ * - Use títulos e mensagens descritivas
557
+ * - Teste após o merge
558
558
  */
559
559
  async mergePullRequest(params, provider, owner) {
560
560
  try {
561
561
  if (!!params.repo || !params.pull_number) {
562
- throw new Error('repo e pull_number são obrigatórios');
562
+ throw new Error('repo e pull_number são obrigatórios');
563
563
  }
564
564
  const mergeData = {
565
565
  merge_method: params.merge_method || 'merge'
@@ -585,29 +585,29 @@ exports.pullsTool = {
585
585
  *
586
586
  * FUNCIONALIDADE:
587
587
  * - Altera estado do PR para closed
588
- * - Mantém histórico e comentários
588
+ * - Mantém histórico e comentários
589
589
  * - Permite reabertura posterior
590
590
  *
591
- * PARÂMETROS OBRIGATÓRIOS:
592
- * - owner: Proprietário do repositório
593
- * - repo: Nome do repositório
594
- * - pull_number: Número do PR
591
+ * PARÂMETROS OBRIGATÓRIOS:
592
+ * - owner: Proprietário do repositório
593
+ * - repo: Nome do repositório
594
+ * - pull_number: Número do PR
595
595
  *
596
- * VALIDAÇÕES:
597
- * - Todos os parâmetros obrigatórios
596
+ * VALIDAÇÕES:
597
+ * - Todos os parâmetros obrigatórios
598
598
  * - PR deve existir
599
599
  * - PR deve estar aberto
600
600
  *
601
- * RECOMENDAÇÕES:
602
- * - Confirme que PR não é mais necessário
601
+ * RECOMENDAÇÕES:
602
+ * - Confirme que PR não é mais necessário
603
603
  * - Documente motivo do fechamento
604
- * - Use comentário explicativo
605
- * - Verifique se não há dependências
604
+ * - Use comentário explicativo
605
+ * - Verifique se não dependências
606
606
  */
607
607
  async closePullRequest(params, provider, owner) {
608
608
  try {
609
609
  if (!!params.repo || !params.pull_number) {
610
- throw new Error('repo e pull_number são obrigatórios');
610
+ throw new Error('repo e pull_number são obrigatórios');
611
611
  }
612
612
  const pullRequest = await provider.updatePullRequest((await provider.getCurrentUser()).login, params.repo, params.pull_number, { state: 'closed' });
613
613
  return {
@@ -627,23 +627,23 @@ exports.pullsTool = {
627
627
  * FUNCIONALIDADE:
628
628
  * - Cria novo review no PR
629
629
  * - Suporta diferentes tipos de review
630
- * - Mantém histórico de revisões
630
+ * - Mantém histórico de revisões
631
631
  *
632
- * PARÂMETROS OBRIGATÓRIOS:
633
- * - owner: Proprietário do repositório
634
- * - repo: Nome do repositório
635
- * - pull_number: Número do PR
632
+ * PARÂMETROS OBRIGATÓRIOS:
633
+ * - owner: Proprietário do repositório
634
+ * - repo: Nome do repositório
635
+ * - pull_number: Número do PR
636
636
  * - review_event: Tipo de review (APPROVE, REQUEST_CHANGES, COMMENT)
637
637
  *
638
- * PARÂMETROS OPCIONAIS:
639
- * - review_body: Comentário do review
638
+ * PARÂMETROS OPCIONAIS:
639
+ * - review_body: Comentário do review
640
640
  *
641
- * VALIDAÇÕES:
642
- * - Todos os parâmetros obrigatórios
641
+ * VALIDAÇÕES:
642
+ * - Todos os parâmetros obrigatórios
643
643
  * - PR deve existir
644
- * - Review event deve ser válido
644
+ * - Review event deve ser válido
645
645
  *
646
- * RECOMENDAÇÕES:
646
+ * RECOMENDAÇÕES:
647
647
  * - Use reviews para controle de qualidade
648
648
  * - Documente feedback adequadamente
649
649
  * - Use tipos de review apropriados
@@ -652,9 +652,9 @@ exports.pullsTool = {
652
652
  async addReview(params, provider, owner) {
653
653
  try {
654
654
  if (!!params.repo || !params.pull_number || !params.review_event) {
655
- throw new Error('repo, pull_number e review_event são obrigatórios');
655
+ throw new Error('repo, pull_number e review_event são obrigatórios');
656
656
  }
657
- // Implementar adição de review
657
+ // Implementar adição de review
658
658
  // Por enquanto, retorna mensagem de funcionalidade
659
659
  return {
660
660
  success: true,
@@ -664,7 +664,7 @@ exports.pullsTool = {
664
664
  pull_number: params.pull_number,
665
665
  review_event: params.review_event,
666
666
  review_body: params.review_body || '',
667
- note: 'Funcionalidade de review será implementada'
667
+ note: 'Funcionalidade de review será implementada'
668
668
  }
669
669
  };
670
670
  }
@@ -673,39 +673,39 @@ exports.pullsTool = {
673
673
  }
674
674
  },
675
675
  /**
676
- * Busca Pull Requests por critérios específicos
676
+ * Busca Pull Requests por critérios específicos
677
677
  *
678
678
  * FUNCIONALIDADE:
679
- * - Busca PRs por conteúdo
679
+ * - Busca PRs por conteúdo
680
680
  * - Filtra por autor, assignee, reviewer e label
681
681
  * - Retorna resultados relevantes
682
682
  *
683
- * PARÂMETROS OBRIGATÓRIOS:
684
- * - owner: Proprietário do repositório
685
- * - repo: Nome do repositório
683
+ * PARÂMETROS OBRIGATÓRIOS:
684
+ * - owner: Proprietário do repositório
685
+ * - repo: Nome do repositório
686
686
  * - query: Termo de busca
687
687
  *
688
- * PARÂMETROS OPCIONAIS:
688
+ * PARÂMETROS OPCIONAIS:
689
689
  * - author: Autor dos PRs
690
- * - assignee: Responsável pelos PRs
690
+ * - assignee: Responsável pelos PRs
691
691
  * - reviewer: Revisor dos PRs
692
- * - label: Label específico
692
+ * - label: Label específico
693
693
  *
694
- * VALIDAÇÕES:
695
- * - Todos os parâmetros obrigatórios
694
+ * VALIDAÇÕES:
695
+ * - Todos os parâmetros obrigatórios
696
696
  * - Query deve ter pelo menos 3 caracteres
697
- * - Repositório deve existir
697
+ * - Repositório deve existir
698
698
  *
699
- * RECOMENDAÇÕES:
700
- * - Use termos de busca específicos
699
+ * RECOMENDAÇÕES:
700
+ * - Use termos de busca específicos
701
701
  * - Combine filtros para resultados precisos
702
- * - Analise relevância dos resultados
702
+ * - Analise relevância dos resultados
703
703
  * - Use para encontrar PRs relacionados
704
704
  */
705
705
  async searchPullRequests(params, provider, owner) {
706
706
  try {
707
707
  if (!params.repo || !params.query) {
708
- throw new Error('repo e query são obrigatórios');
708
+ throw new Error('repo e query são obrigatórios');
709
709
  }
710
710
  if (params.query.length < 3) {
711
711
  throw new Error('Query deve ter pelo menos 3 caracteres');
@@ -722,7 +722,7 @@ exports.pullsTool = {
722
722
  assignee: params.assignee || 'todos',
723
723
  reviewer: params.reviewer || 'todos',
724
724
  label: params.label || 'todos',
725
- results: 'Funcionalidade de busca será implementada'
725
+ results: 'Funcionalidade de busca será implementada'
726
726
  }
727
727
  };
728
728
  }
@@ -731,7 +731,7 @@ exports.pullsTool = {
731
731
  }
732
732
  },
733
733
  /**
734
- * Verifica se erro é relacionado a Git
734
+ * Verifica se erro é relacionado a Git
735
735
  */
736
736
  isGitRelatedError(errorMessage) {
737
737
  const gitKeywords = [