@andrebuzeli/git-mcp 2.12.8 → 2.14.0

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 (132) hide show
  1. package/dist/server.d.ts.map +1 -1
  2. package/dist/server.js +109 -51
  3. package/dist/server.js.map +1 -1
  4. package/dist/tools/branches.d.ts +2 -2
  5. package/dist/tools/code-review.d.ts +4 -4
  6. package/dist/tools/commits.d.ts +2 -2
  7. package/dist/tools/deployments.d.ts +4 -4
  8. package/dist/tools/gh-actions.d.ts +272 -0
  9. package/dist/tools/gh-actions.d.ts.map +1 -0
  10. package/dist/tools/gh-actions.js +479 -0
  11. package/dist/tools/gh-actions.js.map +1 -0
  12. package/dist/tools/gh-analytics.d.ts +326 -0
  13. package/dist/tools/gh-analytics.d.ts.map +1 -0
  14. package/dist/tools/gh-analytics.js +524 -0
  15. package/dist/tools/gh-analytics.js.map +1 -0
  16. package/dist/tools/gh-code-review.d.ts +323 -0
  17. package/dist/tools/gh-code-review.d.ts.map +1 -0
  18. package/dist/tools/gh-code-review.js +577 -0
  19. package/dist/tools/gh-code-review.js.map +1 -0
  20. package/dist/tools/gh-codespaces.d.ts +154 -0
  21. package/dist/tools/gh-codespaces.d.ts.map +1 -0
  22. package/dist/tools/gh-codespaces.js +286 -0
  23. package/dist/tools/gh-codespaces.js.map +1 -0
  24. package/dist/tools/gh-deployments.d.ts +319 -0
  25. package/dist/tools/gh-deployments.d.ts.map +1 -0
  26. package/dist/tools/gh-deployments.js +384 -0
  27. package/dist/tools/gh-deployments.js.map +1 -0
  28. package/dist/tools/gh-gists.d.ts +194 -0
  29. package/dist/tools/gh-gists.d.ts.map +1 -0
  30. package/dist/tools/gh-gists.js +328 -0
  31. package/dist/tools/gh-gists.js.map +1 -0
  32. package/dist/tools/gh-projects.d.ts +225 -0
  33. package/dist/tools/gh-projects.d.ts.map +1 -0
  34. package/dist/tools/gh-projects.js +365 -0
  35. package/dist/tools/gh-projects.js.map +1 -0
  36. package/dist/tools/gh-security.d.ts +341 -0
  37. package/dist/tools/gh-security.d.ts.map +1 -0
  38. package/dist/tools/gh-security.js +427 -0
  39. package/dist/tools/gh-security.js.map +1 -0
  40. package/dist/tools/gh-sync.d.ts +229 -0
  41. package/dist/tools/gh-sync.d.ts.map +1 -0
  42. package/dist/tools/gh-sync.js +384 -0
  43. package/dist/tools/gh-sync.js.map +1 -0
  44. package/dist/tools/gh-workflows.d.ts +313 -0
  45. package/dist/tools/gh-workflows.d.ts.map +1 -0
  46. package/dist/tools/gh-workflows.js +462 -0
  47. package/dist/tools/gh-workflows.js.map +1 -0
  48. package/dist/tools/git-archive.d.ts +169 -0
  49. package/dist/tools/git-archive.d.ts.map +1 -0
  50. package/dist/tools/git-archive.js +235 -0
  51. package/dist/tools/git-archive.js.map +1 -0
  52. package/dist/tools/git-branches.d.ts +438 -0
  53. package/dist/tools/git-branches.d.ts.map +1 -0
  54. package/dist/tools/git-branches.js +525 -0
  55. package/dist/tools/git-branches.js.map +1 -0
  56. package/dist/tools/git-bundle.d.ts +175 -0
  57. package/dist/tools/git-bundle.d.ts.map +1 -0
  58. package/dist/tools/git-bundle.js +258 -0
  59. package/dist/tools/git-bundle.js.map +1 -0
  60. package/dist/tools/git-cherry-pick.d.ts +162 -0
  61. package/dist/tools/git-cherry-pick.d.ts.map +1 -0
  62. package/dist/tools/git-cherry-pick.js +241 -0
  63. package/dist/tools/git-cherry-pick.js.map +1 -0
  64. package/dist/tools/git-commits.d.ts +497 -0
  65. package/dist/tools/git-commits.d.ts.map +1 -0
  66. package/dist/tools/git-commits.js +626 -0
  67. package/dist/tools/git-commits.js.map +1 -0
  68. package/dist/tools/git-config.d.ts +144 -0
  69. package/dist/tools/git-config.d.ts.map +1 -0
  70. package/dist/tools/git-config.js +293 -0
  71. package/dist/tools/git-config.js.map +1 -0
  72. package/dist/tools/git-files.d.ts +463 -0
  73. package/dist/tools/git-files.d.ts.map +1 -0
  74. package/dist/tools/git-files.js +555 -0
  75. package/dist/tools/git-files.js.map +1 -0
  76. package/dist/tools/git-issues.d.ts +579 -0
  77. package/dist/tools/git-issues.d.ts.map +1 -0
  78. package/dist/tools/git-issues.js +694 -0
  79. package/dist/tools/git-issues.js.map +1 -0
  80. package/dist/tools/git-pulls.d.ts +702 -0
  81. package/dist/tools/git-pulls.d.ts.map +1 -0
  82. package/dist/tools/git-pulls.js +733 -0
  83. package/dist/tools/git-pulls.js.map +1 -0
  84. package/dist/tools/git-rebase.d.ts +141 -0
  85. package/dist/tools/git-rebase.d.ts.map +1 -0
  86. package/dist/tools/git-rebase.js +234 -0
  87. package/dist/tools/git-rebase.js.map +1 -0
  88. package/dist/tools/git-releases.d.ts +495 -0
  89. package/dist/tools/git-releases.d.ts.map +1 -0
  90. package/dist/tools/git-releases.js +552 -0
  91. package/dist/tools/git-releases.js.map +1 -0
  92. package/dist/tools/git-remote.d.ts +142 -0
  93. package/dist/tools/git-remote.d.ts.map +1 -0
  94. package/dist/tools/git-remote.js +303 -0
  95. package/dist/tools/git-remote.js.map +1 -0
  96. package/dist/tools/git-repositories.d.ts +422 -0
  97. package/dist/tools/git-repositories.d.ts.map +1 -0
  98. package/dist/tools/git-repositories.js +557 -0
  99. package/dist/tools/git-repositories.js.map +1 -0
  100. package/dist/tools/git-reset.d.ts +134 -0
  101. package/dist/tools/git-reset.d.ts.map +1 -0
  102. package/dist/tools/git-reset.js +236 -0
  103. package/dist/tools/git-reset.js.map +1 -0
  104. package/dist/tools/git-revert.d.ts +153 -0
  105. package/dist/tools/git-revert.d.ts.map +1 -0
  106. package/dist/tools/git-revert.js +211 -0
  107. package/dist/tools/git-revert.js.map +1 -0
  108. package/dist/tools/git-stash.d.ts +144 -0
  109. package/dist/tools/git-stash.d.ts.map +1 -0
  110. package/dist/tools/git-stash.js +298 -0
  111. package/dist/tools/git-stash.js.map +1 -0
  112. package/dist/tools/git-submodule.d.ts +156 -0
  113. package/dist/tools/git-submodule.d.ts.map +1 -0
  114. package/dist/tools/git-submodule.js +314 -0
  115. package/dist/tools/git-submodule.js.map +1 -0
  116. package/dist/tools/git-sync.d.ts +4 -4
  117. package/dist/tools/git-tags.d.ts +419 -0
  118. package/dist/tools/git-tags.d.ts.map +1 -0
  119. package/dist/tools/git-tags.js +480 -0
  120. package/dist/tools/git-tags.js.map +1 -0
  121. package/dist/tools/git-webhooks.d.ts +490 -0
  122. package/dist/tools/git-webhooks.d.ts.map +1 -0
  123. package/dist/tools/git-webhooks.js +556 -0
  124. package/dist/tools/git-webhooks.js.map +1 -0
  125. package/dist/tools/git-worktree.d.ts +163 -0
  126. package/dist/tools/git-worktree.d.ts.map +1 -0
  127. package/dist/tools/git-worktree.js +294 -0
  128. package/dist/tools/git-worktree.js.map +1 -0
  129. package/dist/tools/pulls.d.ts +2 -2
  130. package/dist/tools/users.d.ts +2 -2
  131. package/dist/tools/version-control.d.ts +4 -4
  132. package/package.json +2 -2
@@ -0,0 +1,525 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.branchesTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const index_js_1 = require("../providers/index.js");
6
+ const user_detection_js_1 = require("../utils/user-detection.js");
7
+ /**
8
+ * Tool: branches
9
+ *
10
+ * DESCRIÇÃO:
11
+ * Gerenciamento completo de branches Gitea com múltiplas ações
12
+ *
13
+ * FUNCIONALIDADES:
14
+ * - Criação de novas branches
15
+ * - Listagem e busca de branches
16
+ * - Obtenção de detalhes específicos
17
+ * - Exclusão de branches
18
+ * - Merge de branches
19
+ * - Comparação entre branches
20
+ *
21
+ * USO:
22
+ * - Para gerenciar fluxo de trabalho Git
23
+ * - Para criar branches de feature
24
+ * - Para organizar desenvolvimento
25
+ * - Para controle de versão
26
+ *
27
+ * RECOMENDAÇÕES:
28
+ * - Use convenções de nomenclatura consistentes
29
+ * - Proteja branches importantes
30
+ * - Mantenha branches limpas
31
+ * - Documente propósito das branches
32
+ */
33
+ /**
34
+ * Schema de validação para entrada da tool branches
35
+ *
36
+ * VALIDAÇÕES:
37
+ * - action: Ação obrigatória (create, list, get, delete, merge, compare)
38
+ * - Parâmetros específicos por ação
39
+ * - Validação de tipos e formatos
40
+ *
41
+ * RECOMENDAÇÕES:
42
+ * - Sempre valide entrada antes de usar
43
+ * - Use parâmetros opcionais adequadamente
44
+ * - Documente parâmetros obrigatórios
45
+ */
46
+ const BranchesInputSchema = zod_1.z.object({
47
+ action: zod_1.z.enum(['create', 'list', 'get', 'delete', 'merge', 'compare']),
48
+ // Parâmetros comuns
49
+ owner: zod_1.z.string(),
50
+ repo: zod_1.z.string(),
51
+ projectPath: zod_1.z.string().describe('Local project path for git operations'),
52
+ provider: zod_1.z.enum(['gitea', 'github']).describe('Provider to use (gitea or github)'), // Para create
53
+ branch_name: zod_1.z.string().optional(),
54
+ from_branch: zod_1.z.string().optional(),
55
+ // Para get/delete
56
+ branch: zod_1.z.string().optional(),
57
+ // Para merge
58
+ head: zod_1.z.string().optional(),
59
+ base: zod_1.z.string().optional(),
60
+ merge_method: zod_1.z.enum(['merge', 'rebase', 'squash']).optional(),
61
+ // Para list
62
+ page: zod_1.z.number().min(1).optional(),
63
+ limit: zod_1.z.number().min(1).max(100).optional(),
64
+ // Para compare
65
+ base_branch: zod_1.z.string().optional(),
66
+ head_branch: zod_1.z.string().optional(),
67
+ });
68
+ /**
69
+ * Schema de saída padronizado
70
+ *
71
+ * ESTRUTURA:
72
+ * - success: Status da operação
73
+ * - action: Ação executada
74
+ * - message: Mensagem descritiva
75
+ * - data: Dados retornados (opcional)
76
+ * - error: Detalhes do erro (opcional)
77
+ */
78
+ const BranchesResultSchema = zod_1.z.object({
79
+ success: zod_1.z.boolean(),
80
+ action: zod_1.z.string(),
81
+ message: zod_1.z.string(),
82
+ data: zod_1.z.any().optional(),
83
+ error: zod_1.z.string().optional()
84
+ });
85
+ /**
86
+ * Tool: branches
87
+ *
88
+ * DESCRIÇÃO:
89
+ * Gerenciamento completo de branches Gitea com múltiplas ações
90
+ *
91
+ * ACTIONS DISPONÍVEIS:
92
+ *
93
+ * 1. create - Criar nova branch
94
+ * Parâmetros:
95
+ * - owner (obrigatório): Proprietário do repositório
96
+ * - repo (obrigatório): Nome do repositório
97
+ * - branch_name (obrigatório): Nome da nova branch
98
+ * - from_branch (obrigatório): Branch de origem
99
+ *
100
+ * 2. list - Listar branches
101
+ * Parâmetros:
102
+ * - owner (obrigatório): Proprietário do repositório
103
+ * - repo (obrigatório): Nome do repositório
104
+ * - page (opcional): Página da listagem (padrão: 1)
105
+ * - limit (opcional): Itens por página (padrão: 30)
106
+ *
107
+ * 3. get - Obter detalhes da branch
108
+ * Parâmetros:
109
+ * - owner (obrigatório): Proprietário do repositório
110
+ * - repo (obrigatório): Nome do repositório
111
+ * - branch (obrigatório): Nome da branch
112
+ *
113
+ * 4. delete - Deletar branch
114
+ * Parâmetros:
115
+ * - owner (obrigatório): Proprietário do repositório
116
+ * - repo (obrigatório): Nome do repositório
117
+ * - branch (obrigatório): Nome da branch
118
+ *
119
+ * 5. merge - Fazer merge de branches
120
+ * Parâmetros:
121
+ * - owner (obrigatório): Proprietário do repositório
122
+ * - repo (obrigatório): Nome do repositório
123
+ * - head (obrigatório): Branch de origem
124
+ * - base (obrigatório): Branch de destino
125
+ * - merge_method (opcional): Método de merge (padrão: merge)
126
+ *
127
+ * 6. compare - Comparar branches
128
+ * Parâmetros:
129
+ * - owner (obrigatório): Proprietário do repositório
130
+ * - repo (obrigatório): Nome do repositório
131
+ * - base_branch (obrigatório): Branch base
132
+ * - head_branch (obrigatório): Branch de comparação
133
+ *
134
+ * RECOMENDAÇÕES DE USO:
135
+ * - Use nomes descritivos para branches
136
+ * - Mantenha branches principais protegidas
137
+ * - Faça merge regularmente
138
+ * - Documente propósito das branches
139
+ * - Use convenções de nomenclatura
140
+ * - Limpe branches antigas
141
+ */
142
+ exports.branchesTool = {
143
+ name: 'git-branches',
144
+ description: 'Gerenciamento completo de branches com suporte multi-provider (GitHub e Gitea). PARÂMETROS OBRIGATÓRIOS: action, owner, repo, provider, projectPath. AÇÕES: create (nova branch), list (lista branches), get (detalhes), delete (remove), merge (integra), compare (diferenças). Boas práticas: use branches para isolar trabalhos, mantenha principais protegidas, merges pequenos e frequentes.',
145
+ inputSchema: {
146
+ type: 'object',
147
+ properties: {
148
+ action: {
149
+ type: 'string',
150
+ enum: ['create', 'list', 'get', 'delete', 'merge', 'compare'],
151
+ description: 'Action to perform on branches'
152
+ },
153
+ owner: { type: 'string', description: 'Repository owner' },
154
+ repo: { type: 'string', description: 'Repository name' },
155
+ projectPath: { type: 'string', description: 'Local project path for git operations' },
156
+ provider: { type: 'string', description: 'Specific provider (github, gitea) or use default' },
157
+ branch_name: { type: 'string', description: 'Name of the new branch' },
158
+ from_branch: { type: 'string', description: 'Source branch for creation' },
159
+ branch: { type: 'string', description: 'Branch name' },
160
+ head: { type: 'string', description: 'Source branch for merge' },
161
+ base: { type: 'string', description: 'Target branch for merge' },
162
+ merge_method: {
163
+ type: 'string',
164
+ enum: ['merge', 'rebase', 'squash'],
165
+ description: 'Merge method'
166
+ },
167
+ page: { type: 'number', description: 'Page number', minimum: 1 },
168
+ limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 },
169
+ base_branch: { type: 'string', description: 'Base branch for comparison' },
170
+ head_branch: { type: 'string', description: 'Head branch for comparison' }
171
+ },
172
+ required: ['action', 'owner', 'repo', 'provider', 'projectPath']
173
+ },
174
+ /**
175
+ * Handler principal da tool branches
176
+ *
177
+ * FUNCIONALIDADE:
178
+ * - Valida entrada usando Zod schema
179
+ * - Roteia para método específico baseado na ação
180
+ * - Trata erros de forma uniforme
181
+ * - Retorna resultado padronizado
182
+ *
183
+ * FLUXO:
184
+ * 1. Validação de entrada
185
+ * 2. Roteamento por ação
186
+ * 3. Execução do método específico
187
+ * 4. Tratamento de erros
188
+ * 5. Retorno de resultado
189
+ *
190
+ * TRATAMENTO DE ERROS:
191
+ * - Validação: erro de schema
192
+ * - Execução: erro da operação
193
+ * - Roteamento: ação não suportada
194
+ *
195
+ * RECOMENDAÇÕES:
196
+ * - Sempre valide entrada antes de processar
197
+ * - Trate erros específicos adequadamente
198
+ * - Log detalhes de erro para debug
199
+ * - Retorne mensagens de erro úteis
200
+ */
201
+ async handler(input) {
202
+ try {
203
+ const validatedInput = BranchesInputSchema.parse(input);
204
+ // Aplicar auto-detecção apenas para owner dentro do provider especificado
205
+ const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.provider);
206
+ // Usar o provider especificado pelo usuário ou o padrão se não especificado
207
+ let provider;
208
+ try {
209
+ if (processedInput.provider) {
210
+ const requestedProvider = index_js_1.globalProviderFactory.getProvider(processedInput.provider);
211
+ if (!requestedProvider) {
212
+ console.warn(`[BRANCHES] Provider '${processedInput.provider}' não encontrado, usando padrão`);
213
+ provider = index_js_1.globalProviderFactory.getDefaultProvider();
214
+ }
215
+ else {
216
+ provider = requestedProvider;
217
+ }
218
+ }
219
+ else {
220
+ provider = index_js_1.globalProviderFactory.getDefaultProvider();
221
+ }
222
+ if (!provider) {
223
+ throw new Error('Nenhum provider disponível');
224
+ }
225
+ }
226
+ catch (providerError) {
227
+ console.error('[BRANCHES] Erro ao obter provider:', providerError);
228
+ throw new Error(`Erro de configuração do provider: ${providerError instanceof Error ? providerError.message : 'Provider não disponível'}`);
229
+ }
230
+ switch (processedInput.action) {
231
+ case 'create':
232
+ return await this.createBranch(processedInput, provider);
233
+ case 'list':
234
+ return await this.listBranches(processedInput, provider);
235
+ case 'get':
236
+ return await this.getBranch(processedInput, provider);
237
+ case 'delete':
238
+ return await this.deleteBranch(processedInput, provider);
239
+ case 'merge':
240
+ return await this.mergeBranches(processedInput, provider);
241
+ case 'compare':
242
+ return await this.compareBranches(processedInput, provider);
243
+ default:
244
+ throw new Error(`Ação não suportada: ${processedInput.action}`);
245
+ }
246
+ }
247
+ catch (error) {
248
+ return {
249
+ success: false,
250
+ action: input.action,
251
+ message: 'Erro na operação de branches',
252
+ error: error instanceof Error ? error.message : String(error)
253
+ };
254
+ }
255
+ },
256
+ /**
257
+ * Cria uma nova branch no repositório
258
+ *
259
+ * FUNCIONALIDADE:
260
+ * - Valida parâmetros obrigatórios
261
+ * - Cria branch a partir de branch existente
262
+ * - Retorna detalhes da nova branch
263
+ *
264
+ * PARÂMETROS OBRIGATÓRIOS:
265
+ * - owner: Proprietário do repositório
266
+ * - repo: Nome do repositório
267
+ * - branch_name: Nome da nova branch
268
+ * - from_branch: Branch de origem
269
+ *
270
+ * VALIDAÇÕES:
271
+ * - Todos os parâmetros obrigatórios
272
+ * - Branch de origem deve existir
273
+ * - Nome da nova branch deve ser único
274
+ *
275
+ * RECOMENDAÇÕES:
276
+ * - Use nomes descritivos para branches
277
+ * - Crie a partir de branches estáveis
278
+ * - Documente propósito da branch
279
+ * - Use convenções de nomenclatura
280
+ */
281
+ async createBranch(params, provider) {
282
+ try {
283
+ if (!params.owner || !params.repo || !params.branch_name || !params.from_branch) {
284
+ throw new Error('Owner, repo, branch_name e from_branch são obrigatórios');
285
+ }
286
+ const branch = await provider.createBranch(params.owner, params.repo, params.branch_name, params.from_branch);
287
+ return {
288
+ success: true,
289
+ action: 'create',
290
+ message: `Branch '${params.branch_name}' criada com sucesso a partir de '${params.from_branch}'`,
291
+ data: branch
292
+ };
293
+ }
294
+ catch (error) {
295
+ throw new Error(`Falha ao criar branch: ${error instanceof Error ? error.message : String(error)}`);
296
+ }
297
+ },
298
+ /**
299
+ * Lista todas as branches do repositório
300
+ *
301
+ * FUNCIONALIDADE:
302
+ * - Lista branches com paginação
303
+ * - Retorna informações básicas de cada branch
304
+ * - Suporta filtros de paginação
305
+ *
306
+ * PARÂMETROS OBRIGATÓRIOS:
307
+ * - owner: Proprietário do repositório
308
+ * - repo: Nome do repositório
309
+ *
310
+ * PARÂMETROS OPCIONAIS:
311
+ * - page: Página da listagem (padrão: 1)
312
+ * - limit: Itens por página (padrão: 30, máximo: 100)
313
+ *
314
+ * VALIDAÇÕES:
315
+ * - Owner e repo obrigatórios
316
+ * - Page deve ser >= 1
317
+ * - Limit deve ser entre 1 e 100
318
+ *
319
+ * RECOMENDAÇÕES:
320
+ * - Use paginação para repositórios grandes
321
+ * - Monitore número total de branches
322
+ * - Mantenha branches organizadas
323
+ */
324
+ async listBranches(params, provider) {
325
+ try {
326
+ if (!params.owner || !params.repo) {
327
+ throw new Error('Owner e repo são obrigatórios');
328
+ }
329
+ const page = params.page || 1;
330
+ const limit = params.limit || 30;
331
+ const branches = await provider.listBranches(params.owner, params.repo, page, limit);
332
+ return {
333
+ success: true,
334
+ action: 'list',
335
+ message: `${branches.length} branches encontradas`,
336
+ data: {
337
+ branches,
338
+ page,
339
+ limit,
340
+ total: branches.length
341
+ }
342
+ };
343
+ }
344
+ catch (error) {
345
+ throw new Error(`Falha ao listar branches: ${error instanceof Error ? error.message : String(error)}`);
346
+ }
347
+ },
348
+ /**
349
+ * Obtém detalhes de uma branch específica
350
+ *
351
+ * FUNCIONALIDADE:
352
+ * - Retorna informações completas da branch
353
+ * - Inclui commit mais recente
354
+ * - Informações de proteção e permissões
355
+ *
356
+ * PARÂMETROS OBRIGATÓRIOS:
357
+ * - owner: Proprietário do repositório
358
+ * - repo: Nome do repositório
359
+ * - branch: Nome da branch
360
+ *
361
+ * VALIDAÇÕES:
362
+ * - Todos os parâmetros obrigatórios
363
+ * - Branch deve existir no repositório
364
+ *
365
+ * RECOMENDAÇÕES:
366
+ * - Use para obter informações detalhadas
367
+ * - Verifique status de proteção
368
+ * - Monitore commits recentes
369
+ */
370
+ async getBranch(params, provider) {
371
+ try {
372
+ if (!params.owner || !params.repo || !params.branch) {
373
+ throw new Error('Owner, repo e branch são obrigatórios');
374
+ }
375
+ const branch = await provider.getBranch(params.owner, params.repo, params.branch);
376
+ return {
377
+ success: true,
378
+ action: 'get',
379
+ message: `Branch '${params.branch}' obtida com sucesso`,
380
+ data: branch
381
+ };
382
+ }
383
+ catch (error) {
384
+ throw new Error(`Falha ao obter branch: ${error instanceof Error ? error.message : String(error)}`);
385
+ }
386
+ },
387
+ /**
388
+ * Deleta uma branch do repositório
389
+ *
390
+ * FUNCIONALIDADE:
391
+ * - Remove branch especificada
392
+ * - Valida permissões de exclusão
393
+ * - Confirma exclusão bem-sucedida
394
+ *
395
+ * PARÂMETROS OBRIGATÓRIOS:
396
+ * - owner: Proprietário do repositório
397
+ * - repo: Nome do repositório
398
+ * - branch: Nome da branch a ser deletada
399
+ *
400
+ * VALIDAÇÕES:
401
+ * - Todos os parâmetros obrigatórios
402
+ * - Branch deve existir
403
+ * - Usuário deve ter permissão de exclusão
404
+ *
405
+ * RECOMENDAÇÕES:
406
+ * - Confirme antes de deletar
407
+ * - Verifique se branch foi mergeada
408
+ * - Mantenha backup se necessário
409
+ * - Documente motivo da exclusão
410
+ */
411
+ async deleteBranch(params, provider) {
412
+ try {
413
+ if (!params.owner || !params.repo || !params.branch) {
414
+ throw new Error('Owner, repo e branch são obrigatórios');
415
+ }
416
+ await provider.deleteBranch(params.owner, params.repo, params.branch);
417
+ return {
418
+ success: true,
419
+ action: 'delete',
420
+ message: `Branch '${params.branch}' deletada com sucesso`,
421
+ data: { deleted: true }
422
+ };
423
+ }
424
+ catch (error) {
425
+ throw new Error(`Falha ao deletar branch: ${error instanceof Error ? error.message : String(error)}`);
426
+ }
427
+ },
428
+ /**
429
+ * Faz merge de uma branch em outra
430
+ *
431
+ * FUNCIONALIDADE:
432
+ * - Merge de branch de origem em branch de destino
433
+ * - Suporta diferentes métodos de merge
434
+ * - Retorna resultado do merge
435
+ *
436
+ * PARÂMETROS OBRIGATÓRIOS:
437
+ * - owner: Proprietário do repositório
438
+ * - repo: Nome do repositório
439
+ * - head: Branch de origem (será mergeada)
440
+ * - base: Branch de destino (receberá o merge)
441
+ *
442
+ * PARÂMETROS OPCIONAIS:
443
+ * - merge_method: Método de merge (merge, rebase, squash)
444
+ *
445
+ * VALIDAÇÕES:
446
+ * - Todos os parâmetros obrigatórios
447
+ * - Branches devem existir
448
+ * - Não deve haver conflitos
449
+ *
450
+ * RECOMENDAÇÕES:
451
+ * - Resolva conflitos antes do merge
452
+ * - Escolha método de merge adequado
453
+ * - Teste após o merge
454
+ * - Documente mudanças
455
+ */
456
+ async mergeBranches(params, provider) {
457
+ try {
458
+ if (!params.owner || !params.repo || !params.head || !params.base) {
459
+ throw new Error('Owner, repo, head e base são obrigatórios');
460
+ }
461
+ // Por enquanto, retorna mensagem de funcionalidade não implementada
462
+ // TODO: Implementar merge direto de branches via provider
463
+ return {
464
+ success: true,
465
+ action: 'merge',
466
+ message: `Merge de '${params.head}' em '${params.base}' solicitado (funcionalidade será implementada)`,
467
+ data: {
468
+ head: params.head,
469
+ base: params.base,
470
+ merge_method: params.merge_method || 'merge'
471
+ }
472
+ };
473
+ }
474
+ catch (error) {
475
+ throw new Error(`Falha ao fazer merge: ${error instanceof Error ? error.message : String(error)}`);
476
+ }
477
+ },
478
+ /**
479
+ * Compara duas branches
480
+ *
481
+ * FUNCIONALIDADE:
482
+ * - Compara diferenças entre branches
483
+ * - Retorna commits diferentes
484
+ * - Mostra divergências
485
+ *
486
+ * PARÂMETROS OBRIGATÓRIOS:
487
+ * - owner: Proprietário do repositório
488
+ * - repo: Nome do repositório
489
+ * - base_branch: Branch base para comparação
490
+ * - head_branch: Branch a ser comparada
491
+ *
492
+ * VALIDAÇÕES:
493
+ * - Todos os parâmetros obrigatórios
494
+ * - Ambas as branches devem existir
495
+ *
496
+ * RECOMENDAÇÕES:
497
+ * - Use para verificar divergências
498
+ * - Compare antes de fazer merge
499
+ * - Analise commits diferentes
500
+ * - Documente diferenças importantes
501
+ */
502
+ async compareBranches(params, provider) {
503
+ try {
504
+ if (!params.owner || !params.repo || !params.base_branch || !params.head_branch) {
505
+ throw new Error('Owner, repo, base_branch e head_branch são obrigatórios');
506
+ }
507
+ // Implementar comparação de branches
508
+ // Por enquanto, retorna mensagem de funcionalidade
509
+ return {
510
+ success: true,
511
+ action: 'compare',
512
+ message: `Comparação entre '${params.base_branch}' e '${params.head_branch}' solicitada`,
513
+ data: {
514
+ base: params.base_branch,
515
+ head: params.head_branch,
516
+ comparison: 'Funcionalidade de comparação será implementada'
517
+ }
518
+ };
519
+ }
520
+ catch (error) {
521
+ throw new Error(`Falha ao comparar branches: ${error instanceof Error ? error.message : String(error)}`);
522
+ }
523
+ }
524
+ };
525
+ //# sourceMappingURL=git-branches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-branches.js","sourceRoot":"","sources":["../../src/tools/git-branches.ts"],"names":[],"mappings":"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"}