@andrebuzeli/git-mcp 2.16.1 → 2.17.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 (190) hide show
  1. package/dist/tools/gh-actions.d.ts +0 -9
  2. package/dist/tools/gh-actions.d.ts.map +1 -1
  3. package/dist/tools/gh-actions.js +6 -10
  4. package/dist/tools/gh-actions.js.map +1 -1
  5. package/dist/tools/gh-analytics.d.ts +0 -4
  6. package/dist/tools/gh-analytics.d.ts.map +1 -1
  7. package/dist/tools/gh-analytics.js +6 -12
  8. package/dist/tools/gh-analytics.js.map +1 -1
  9. package/dist/tools/gh-code-review.d.ts +0 -4
  10. package/dist/tools/gh-code-review.d.ts.map +1 -1
  11. package/dist/tools/gh-code-review.js +11 -27
  12. package/dist/tools/gh-code-review.js.map +1 -1
  13. package/dist/tools/gh-codespaces.d.ts +0 -12
  14. package/dist/tools/gh-codespaces.d.ts.map +1 -1
  15. package/dist/tools/gh-codespaces.js +9 -11
  16. package/dist/tools/gh-codespaces.js.map +1 -1
  17. package/dist/tools/gh-deployments.d.ts +0 -8
  18. package/dist/tools/gh-deployments.d.ts.map +1 -1
  19. package/dist/tools/gh-deployments.js +6 -10
  20. package/dist/tools/gh-deployments.js.map +1 -1
  21. package/dist/tools/gh-gists.d.ts +0 -16
  22. package/dist/tools/gh-gists.d.ts.map +1 -1
  23. package/dist/tools/gh-gists.js +4 -9
  24. package/dist/tools/gh-gists.js.map +1 -1
  25. package/dist/tools/gh-projects.d.ts +0 -16
  26. package/dist/tools/gh-projects.d.ts.map +1 -1
  27. package/dist/tools/gh-projects.js +4 -9
  28. package/dist/tools/gh-projects.js.map +1 -1
  29. package/dist/tools/gh-security.d.ts +0 -4
  30. package/dist/tools/gh-security.d.ts.map +1 -1
  31. package/dist/tools/gh-security.js +6 -9
  32. package/dist/tools/gh-security.js.map +1 -1
  33. package/dist/tools/gh-sync.d.ts +0 -12
  34. package/dist/tools/gh-sync.d.ts.map +1 -1
  35. package/dist/tools/gh-sync.js +4 -8
  36. package/dist/tools/gh-sync.js.map +1 -1
  37. package/dist/tools/gh-workflows.d.ts +0 -4
  38. package/dist/tools/gh-workflows.d.ts.map +1 -1
  39. package/dist/tools/gh-workflows.js +6 -10
  40. package/dist/tools/gh-workflows.js.map +1 -1
  41. package/dist/tools/git-archive.d.ts +0 -3
  42. package/dist/tools/git-archive.d.ts.map +1 -1
  43. package/dist/tools/git-archive.js +1 -1
  44. package/dist/tools/git-archive.js.map +1 -1
  45. package/dist/tools/git-branches.d.ts +1 -1
  46. package/dist/tools/git-branches.js +4 -4
  47. package/dist/tools/git-branches.js.map +1 -1
  48. package/dist/tools/git-bundle.d.ts +0 -3
  49. package/dist/tools/git-bundle.d.ts.map +1 -1
  50. package/dist/tools/git-bundle.js +1 -1
  51. package/dist/tools/git-bundle.js.map +1 -1
  52. package/dist/tools/git-cherry-pick.d.ts +0 -3
  53. package/dist/tools/git-cherry-pick.d.ts.map +1 -1
  54. package/dist/tools/git-cherry-pick.js +1 -1
  55. package/dist/tools/git-cherry-pick.js.map +1 -1
  56. package/dist/tools/git-commits.d.ts +6 -9
  57. package/dist/tools/git-commits.d.ts.map +1 -1
  58. package/dist/tools/git-commits.js +30 -28
  59. package/dist/tools/git-commits.js.map +1 -1
  60. package/dist/tools/git-config.d.ts +0 -3
  61. package/dist/tools/git-config.d.ts.map +1 -1
  62. package/dist/tools/git-config.js +1 -1
  63. package/dist/tools/git-config.js.map +1 -1
  64. package/dist/tools/git-files.d.ts +8 -11
  65. package/dist/tools/git-files.d.ts.map +1 -1
  66. package/dist/tools/git-files.js +40 -38
  67. package/dist/tools/git-files.js.map +1 -1
  68. package/dist/tools/git-issues.d.ts +8 -15
  69. package/dist/tools/git-issues.d.ts.map +1 -1
  70. package/dist/tools/git-issues.js +36 -36
  71. package/dist/tools/git-issues.js.map +1 -1
  72. package/dist/tools/git-pulls.d.ts +9 -16
  73. package/dist/tools/git-pulls.d.ts.map +1 -1
  74. package/dist/tools/git-pulls.js +41 -41
  75. package/dist/tools/git-pulls.js.map +1 -1
  76. package/dist/tools/git-rebase.d.ts +0 -3
  77. package/dist/tools/git-rebase.d.ts.map +1 -1
  78. package/dist/tools/git-rebase.js +1 -1
  79. package/dist/tools/git-rebase.js.map +1 -1
  80. package/dist/tools/git-releases.d.ts +1 -8
  81. package/dist/tools/git-releases.d.ts.map +1 -1
  82. package/dist/tools/git-releases.js +15 -17
  83. package/dist/tools/git-releases.js.map +1 -1
  84. package/dist/tools/git-remote.d.ts +0 -3
  85. package/dist/tools/git-remote.d.ts.map +1 -1
  86. package/dist/tools/git-remote.js +1 -1
  87. package/dist/tools/git-remote.js.map +1 -1
  88. package/dist/tools/git-repositories.d.ts +6 -9
  89. package/dist/tools/git-repositories.d.ts.map +1 -1
  90. package/dist/tools/git-repositories.js +40 -29
  91. package/dist/tools/git-repositories.js.map +1 -1
  92. package/dist/tools/git-reset.d.ts +0 -3
  93. package/dist/tools/git-reset.d.ts.map +1 -1
  94. package/dist/tools/git-reset.js +1 -1
  95. package/dist/tools/git-reset.js.map +1 -1
  96. package/dist/tools/git-revert.d.ts +0 -3
  97. package/dist/tools/git-revert.d.ts.map +1 -1
  98. package/dist/tools/git-revert.js +1 -1
  99. package/dist/tools/git-revert.js.map +1 -1
  100. package/dist/tools/git-stash.d.ts +0 -3
  101. package/dist/tools/git-stash.d.ts.map +1 -1
  102. package/dist/tools/git-stash.js +1 -1
  103. package/dist/tools/git-stash.js.map +1 -1
  104. package/dist/tools/git-submodule.d.ts +0 -3
  105. package/dist/tools/git-submodule.d.ts.map +1 -1
  106. package/dist/tools/git-submodule.js +1 -1
  107. package/dist/tools/git-submodule.js.map +1 -1
  108. package/dist/tools/git-sync.d.ts +0 -10
  109. package/dist/tools/git-sync.d.ts.map +1 -1
  110. package/dist/tools/git-sync.js +8 -2
  111. package/dist/tools/git-sync.js.map +1 -1
  112. package/dist/tools/git-tags.d.ts +2 -2
  113. package/dist/tools/git-tags.js +5 -5
  114. package/dist/tools/git-tags.js.map +1 -1
  115. package/dist/tools/git-webhooks.d.ts +7 -14
  116. package/dist/tools/git-webhooks.d.ts.map +1 -1
  117. package/dist/tools/git-webhooks.js +33 -33
  118. package/dist/tools/git-webhooks.js.map +1 -1
  119. package/dist/tools/git-worktree.d.ts +0 -3
  120. package/dist/tools/git-worktree.d.ts.map +1 -1
  121. package/dist/tools/git-worktree.js +1 -1
  122. package/dist/tools/git-worktree.js.map +1 -1
  123. package/dist/tools/repositories.d.ts +9 -12
  124. package/dist/tools/repositories.d.ts.map +1 -1
  125. package/dist/tools/repositories.js +46 -44
  126. package/dist/tools/repositories.js.map +1 -1
  127. package/dist/tools/validator.d.ts +0 -22
  128. package/dist/tools/validator.d.ts.map +1 -1
  129. package/dist/tools/validator.js +0 -4
  130. package/dist/tools/validator.js.map +1 -1
  131. package/dist/utils/user-detection.d.ts.map +1 -1
  132. package/dist/utils/user-detection.js +2 -17
  133. package/dist/utils/user-detection.js.map +1 -1
  134. package/package.json +59 -59
  135. package/dist/tools/actions.d.ts +0 -272
  136. package/dist/tools/actions.d.ts.map +0 -1
  137. package/dist/tools/actions.js +0 -479
  138. package/dist/tools/actions.js.map +0 -1
  139. package/dist/tools/analytics.d.ts +0 -326
  140. package/dist/tools/analytics.d.ts.map +0 -1
  141. package/dist/tools/analytics.js +0 -524
  142. package/dist/tools/analytics.js.map +0 -1
  143. package/dist/tools/branches.d.ts +0 -438
  144. package/dist/tools/branches.d.ts.map +0 -1
  145. package/dist/tools/branches.js +0 -525
  146. package/dist/tools/branches.js.map +0 -1
  147. package/dist/tools/code-review.d.ts +0 -323
  148. package/dist/tools/code-review.d.ts.map +0 -1
  149. package/dist/tools/code-review.js +0 -577
  150. package/dist/tools/code-review.js.map +0 -1
  151. package/dist/tools/commits.d.ts +0 -497
  152. package/dist/tools/commits.d.ts.map +0 -1
  153. package/dist/tools/commits.js +0 -626
  154. package/dist/tools/commits.js.map +0 -1
  155. package/dist/tools/deployments.d.ts +0 -319
  156. package/dist/tools/deployments.d.ts.map +0 -1
  157. package/dist/tools/deployments.js +0 -384
  158. package/dist/tools/deployments.js.map +0 -1
  159. package/dist/tools/files.d.ts +0 -463
  160. package/dist/tools/files.d.ts.map +0 -1
  161. package/dist/tools/files.js +0 -555
  162. package/dist/tools/files.js.map +0 -1
  163. package/dist/tools/issues.d.ts +0 -579
  164. package/dist/tools/issues.d.ts.map +0 -1
  165. package/dist/tools/issues.js +0 -694
  166. package/dist/tools/issues.js.map +0 -1
  167. package/dist/tools/pulls.d.ts +0 -702
  168. package/dist/tools/pulls.d.ts.map +0 -1
  169. package/dist/tools/pulls.js +0 -733
  170. package/dist/tools/pulls.js.map +0 -1
  171. package/dist/tools/releases.d.ts +0 -495
  172. package/dist/tools/releases.d.ts.map +0 -1
  173. package/dist/tools/releases.js +0 -552
  174. package/dist/tools/releases.js.map +0 -1
  175. package/dist/tools/security.d.ts +0 -341
  176. package/dist/tools/security.d.ts.map +0 -1
  177. package/dist/tools/security.js +0 -427
  178. package/dist/tools/security.js.map +0 -1
  179. package/dist/tools/tags.d.ts +0 -419
  180. package/dist/tools/tags.d.ts.map +0 -1
  181. package/dist/tools/tags.js +0 -480
  182. package/dist/tools/tags.js.map +0 -1
  183. package/dist/tools/webhooks.d.ts +0 -490
  184. package/dist/tools/webhooks.d.ts.map +0 -1
  185. package/dist/tools/webhooks.js +0 -556
  186. package/dist/tools/webhooks.js.map +0 -1
  187. package/dist/tools/workflows.d.ts +0 -313
  188. package/dist/tools/workflows.d.ts.map +0 -1
  189. package/dist/tools/workflows.js +0 -462
  190. package/dist/tools/workflows.js.map +0 -1
@@ -1,626 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.commitsTool = 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
- const terminal_controller_js_1 = require("../utils/terminal-controller.js");
8
- /**
9
- * Tool: commits
10
- *
11
- * DESCRIÇÃO:
12
- * Gerenciamento completo de commits com suporte multi-provider (GitHub e Gitea)
13
- *
14
- * FUNCIONALIDADES:
15
- * - Listagem de histórico de commits
16
- * - Obtenção de detalhes específicos
17
- * - Criação de novos commits
18
- * - Comparação entre commits
19
- * - Busca por mensagens e conteúdo
20
- * - Análise de mudanças
21
- *
22
- * USO:
23
- * - Para acompanhar histórico de mudanças
24
- * - Para analisar evolução do código
25
- * - Para criar commits programaticamente
26
- * - Para auditoria de mudanças
27
- *
28
- * RECOMENDAÇÕES:
29
- * - Use mensagens de commit descritivas
30
- * - Mantenha commits atômicos
31
- * - Documente mudanças importantes
32
- * - Revise histórico regularmente
33
- */
34
- /**
35
- * Schema de validação para entrada da tool commits
36
- *
37
- * VALIDAÇÕES:
38
- * - action: Ação obrigatória (list, get, create, compare, search)
39
- * - Parâmetros específicos por ação
40
- * - Validação de tipos e formatos
41
- *
42
- * RECOMENDAÇÕES:
43
- * - Sempre valide entrada antes de usar
44
- * - Use parâmetros opcionais adequadamente
45
- * - Documente parâmetros obrigatórios
46
- */
47
- const CommitsInputSchema = zod_1.z.object({
48
- action: zod_1.z.enum(['list', 'get', 'create', 'compare', 'search', 'push', 'pull']),
49
- // Parâmetros comuns
50
- owner: zod_1.z.string(),
51
- repo: zod_1.z.string(),
52
- projectPath: zod_1.z.string().describe('Local project path for git operations'),
53
- // Para multi-provider
54
- provider: zod_1.z.enum(['gitea', 'github']).describe('Provider to use (gitea or github)'), // Provider específico: gitea, github ou both
55
- // Para list
56
- sha: zod_1.z.string().optional(),
57
- page: zod_1.z.number().min(1).optional(),
58
- limit: zod_1.z.number().min(1).max(100).optional(),
59
- // Para get
60
- commit_sha: zod_1.z.string().optional(),
61
- // Para create
62
- message: zod_1.z.string().optional(),
63
- branch: zod_1.z.string().optional(),
64
- author_name: zod_1.z.string().optional(),
65
- author_email: zod_1.z.string().optional(),
66
- committer_name: zod_1.z.string().optional(),
67
- committer_email: zod_1.z.string().optional(),
68
- // Para compare
69
- base: zod_1.z.string().optional(),
70
- head: zod_1.z.string().optional(),
71
- // Para search
72
- query: zod_1.z.string().optional(),
73
- author: zod_1.z.string().optional(),
74
- });
75
- /**
76
- * Schema de saída padronizado
77
- *
78
- * ESTRUTURA:
79
- * - success: Status da operação
80
- * - action: Ação executada
81
- * - message: Mensagem descritiva
82
- * - data: Dados retornados (opcional)
83
- * - error: Detalhes do erro (opcional)
84
- */
85
- const CommitsResultSchema = zod_1.z.object({
86
- success: zod_1.z.boolean(),
87
- action: zod_1.z.string(),
88
- message: zod_1.z.string(),
89
- data: zod_1.z.any().optional(),
90
- error: zod_1.z.string().optional()
91
- });
92
- /**
93
- * Tool: commits
94
- *
95
- * DESCRIÇÃO:
96
- * Gerenciamento completo de commits Gitea com múltiplas ações
97
- *
98
- * ACTIONS DISPONÍVEIS:
99
- *
100
- * 1. list - Listar commits
101
- * Parâmetros:
102
- * - owner (obrigatório): Proprietário do repositório
103
- * - repo (obrigatório): Nome do repositório
104
- * - sha (opcional): Branch ou commit específico (padrão: branch padrão)
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
- * 2. get - Obter detalhes do commit
109
- * Parâmetros:
110
- * - owner (obrigatório): Proprietário do repositório
111
- * - repo (obrigatório): Nome do repositório
112
- * - commit_sha (obrigatório): SHA do commit
113
- *
114
- * 3. create - Criar novo commit
115
- * Parâmetros:
116
- * - owner (obrigatório): Proprietário do repositório
117
- * - repo (obrigatório): Nome do repositório
118
- * - message (obrigatório): Mensagem do commit
119
- * - branch (obrigatório): Branch de destino
120
- * - author_name (opcional): Nome do autor
121
- * - author_email (opcional): Email do autor
122
- * - committer_name (opcional): Nome do committer
123
- * - committer_email (opcional): Email do committer
124
- *
125
- * 4. compare - Comparar commits
126
- * Parâmetros:
127
- * - owner (obrigatório): Proprietário do repositório
128
- * - repo (obrigatório): Nome do repositório
129
- * - base (obrigatório): Commit base para comparação
130
- * - head (obrigatório): Commit para comparar
131
- *
132
- * 5. search - Buscar commits
133
- * Parâmetros:
134
- * - owner (obrigatório): Proprietário do repositório
135
- * - repo (obrigatório): Nome do repositório
136
- * - query (obrigatório): Termo de busca
137
- * - author (opcional): Autor dos commits
138
- * - page (opcional): Página da busca (padrão: 1)
139
- * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
140
- *
141
- * RECOMENDAÇÕES DE USO:
142
- * - Use mensagens de commit descritivas
143
- * - Mantenha commits atômicos
144
- * - Documente mudanças importantes
145
- * - Revise histórico regularmente
146
- * - Use branches para features
147
- * - Mantenha histórico limpo
148
- */
149
- exports.commitsTool = {
150
- name: 'commits',
151
- description: 'Manage commits with multi-provider support (GitHub and Gitea): list, get, create, compare, search. Boas práticas (solo): faça commits pequenos e atômicos com mensagens claras; use compare para auditoria; documente mudanças relevantes no corpo da mensagem.',
152
- inputSchema: {
153
- type: 'object',
154
- properties: {
155
- action: {
156
- type: 'string',
157
- enum: ['list', 'get', 'create', 'compare', 'search', 'push', 'pull'],
158
- description: 'Action to perform on commits'
159
- },
160
- owner: { type: 'string', description: 'Repository owner' },
161
- repo: { type: 'string', description: 'Repository name' },
162
- provider: { type: 'string', description: 'Provider to use (github, gitea, or omit for default)' },
163
- projectPath: { type: 'string', description: 'Local project path for git operations' },
164
- sha: { type: 'string', description: 'Branch, tag or commit SHA' },
165
- page: { type: 'number', description: 'Page number', minimum: 1 },
166
- limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 },
167
- commit_sha: { type: 'string', description: 'Specific commit SHA' },
168
- message: { type: 'string', description: 'Commit message' },
169
- branch: { type: 'string', description: 'Target branch' },
170
- author_name: { type: 'string', description: 'Author name' },
171
- author_email: { type: 'string', description: 'Author email' },
172
- committer_name: { type: 'string', description: 'Committer name' },
173
- committer_email: { type: 'string', description: 'Committer email' },
174
- base: { type: 'string', description: 'Base commit/branch for comparison' },
175
- head: { type: 'string', description: 'Head commit/branch for comparison' },
176
- query: { type: 'string', description: 'Search query' },
177
- author: { type: 'string', description: 'Author filter for search' }
178
- },
179
- required: ['action', 'owner', 'repo', 'provider', 'projectPath']
180
- },
181
- /**
182
- * Handler principal da tool commits
183
- *
184
- * FUNCIONALIDADE:
185
- * - Valida entrada usando Zod schema
186
- * - Roteia para método específico baseado na ação
187
- * - Trata erros de forma uniforme
188
- * - Retorna resultado padronizado
189
- *
190
- * FLUXO:
191
- * 1. Validação de entrada
192
- * 2. Seleção do provider
193
- * 3. Roteamento por ação
194
- * 4. Execução do método específico
195
- * 5. Tratamento de erros
196
- * 6. Retorno de resultado
197
- *
198
- * TRATAMENTO DE ERROS:
199
- * - Validação: erro de schema
200
- * - Execução: erro da operação
201
- * - Roteamento: ação não suportada
202
- *
203
- * RECOMENDAÇÕES:
204
- * - Sempre valide entrada antes de processar
205
- * - Trate erros específicos adequadamente
206
- * - Log detalhes de erro para debug
207
- * - Retorne mensagens de erro úteis
208
- */
209
- async handler(input) {
210
- try {
211
- const validatedInput = CommitsInputSchema.parse(input);
212
- // Aplicar auto-detecção de usuário/owner
213
- const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.provider);
214
- // Obter o provider correto
215
- const provider = processedInput.provider
216
- ? index_js_1.globalProviderFactory.getProvider(processedInput.provider)
217
- : index_js_1.globalProviderFactory.getDefaultProvider();
218
- if (!provider) {
219
- throw new Error(`Provider '${processedInput.provider}' não encontrado`);
220
- }
221
- // Para ações que precisam de owner, verificar se foi determinado
222
- if (!processedInput.owner && ['list', 'get', 'create', 'compare', 'search'].includes(processedInput.action)) {
223
- throw new Error('Não foi possível determinar o owner automaticamente. Verifique se o token está configurado corretamente.');
224
- }
225
- switch (processedInput.action) {
226
- case 'list':
227
- return await this.listCommits(processedInput, provider);
228
- case 'get':
229
- return await this.getCommit(processedInput, provider);
230
- case 'create':
231
- return await this.createCommit(processedInput, provider);
232
- case 'compare':
233
- return await this.compareCommits(processedInput, provider);
234
- case 'search':
235
- return await this.searchCommits(processedInput, provider);
236
- case 'push':
237
- return await this.pushCommits(processedInput, provider);
238
- case 'pull':
239
- return await this.pullCommits(processedInput, provider);
240
- default:
241
- throw new Error(`Ação não suportada: ${processedInput.action}`);
242
- }
243
- }
244
- catch (error) {
245
- return {
246
- success: false,
247
- action: input.action,
248
- message: 'Erro na operação de commits',
249
- error: error instanceof Error ? error.message : String(error)
250
- };
251
- }
252
- },
253
- /**
254
- * Lista commits do repositório
255
- *
256
- * FUNCIONALIDADE:
257
- * - Lista commits com paginação
258
- * - Suporta filtro por branch ou commit
259
- * - Retorna informações básicas de cada commit
260
- *
261
- * PARÂMETROS OBRIGATÓRIOS:
262
- * - owner: Proprietário do repositório
263
- * - repo: Nome do repositório
264
- *
265
- * PARÂMETROS OPCIONAIS:
266
- * - sha: Branch, tag ou commit específico (padrão: branch padrão)
267
- * - page: Página da listagem (padrão: 1)
268
- * - limit: Itens por página (padrão: 30, máximo: 100)
269
- *
270
- * VALIDAÇÕES:
271
- * - Owner e repo obrigatórios
272
- * - SHA deve ser válido se fornecido
273
- * - Page deve ser >= 1
274
- * - Limit deve ser entre 1 e 100
275
- *
276
- * RECOMENDAÇÕES:
277
- * - Use paginação para repositórios grandes
278
- * - Monitore número total de commits
279
- * - Use SHA específico para análise
280
- * - Mantenha histórico organizado
281
- */
282
- async listCommits(params, provider) {
283
- try {
284
- if (!params.owner || !params.repo) {
285
- throw new Error('Owner e repo são obrigatórios');
286
- }
287
- const page = params.page || 1;
288
- const limit = params.limit || 30;
289
- const commits = await provider.listCommits(params.owner, params.repo, params.sha, page, limit);
290
- return {
291
- success: true,
292
- action: 'list',
293
- message: `${commits.length} commits encontrados`,
294
- data: {
295
- commits,
296
- page,
297
- limit,
298
- total: commits.length,
299
- sha: params.sha || 'branch padrão'
300
- }
301
- };
302
- }
303
- catch (error) {
304
- throw new Error(`Falha ao listar commits: ${error instanceof Error ? error.message : String(error)}`);
305
- }
306
- },
307
- /**
308
- * Obtém detalhes de um commit específico
309
- *
310
- * FUNCIONALIDADE:
311
- * - Obtém informações completas do commit
312
- * - Inclui detalhes de autor e committer
313
- * - Mostra arquivos modificados
314
- * - Retorna hash e mensagem
315
- *
316
- * PARÂMETROS OBRIGATÓRIOS:
317
- * - owner: Proprietário do repositório
318
- * - repo: Nome do repositório
319
- * - commit_sha: SHA do commit
320
- *
321
- * VALIDAÇÕES:
322
- * - Todos os parâmetros obrigatórios
323
- * - SHA deve ser válido
324
- * - Commit deve existir
325
- *
326
- * RECOMENDAÇÕES:
327
- * - Use para análise detalhada
328
- * - Verifique arquivos modificados
329
- * - Analise mensagem e autor
330
- * - Documente mudanças importantes
331
- */
332
- async getCommit(params, provider) {
333
- try {
334
- if (!params.owner || !params.repo) {
335
- throw new Error('Owner e repo são obrigatórios');
336
- }
337
- // Se não foi fornecido commit_sha, usa o SHA da branch padrão
338
- let commitSha = params.commit_sha;
339
- if (!commitSha) {
340
- try {
341
- const branchInfo = await provider.getBranch(params.owner, params.repo, 'main');
342
- commitSha = branchInfo.commit.sha;
343
- }
344
- catch (error) {
345
- // Se não conseguir obter o branch main, tenta master
346
- try {
347
- const branchInfo = await provider.getBranch(params.owner, params.repo, 'master');
348
- commitSha = branchInfo.commit.sha;
349
- }
350
- catch (masterError) {
351
- throw new Error('Não foi possível obter SHA do commit. Forneça commit_sha ou verifique se a branch existe.');
352
- }
353
- }
354
- }
355
- const commit = await provider.getCommit(params.owner, params.repo, commitSha);
356
- return {
357
- success: true,
358
- action: 'get',
359
- message: `Commit '${commitSha}' obtido com sucesso`,
360
- data: {
361
- commit,
362
- sha: commitSha,
363
- owner: params.owner,
364
- repo: params.repo
365
- }
366
- };
367
- }
368
- catch (error) {
369
- throw new Error(`Falha ao obter commit: ${error instanceof Error ? error.message : String(error)}`);
370
- }
371
- },
372
- /**
373
- * Cria um novo commit
374
- *
375
- * FUNCIONALIDADE:
376
- * - Cria commit com mensagem personalizada
377
- * - Suporta autor e committer diferentes
378
- * - Permite especificar branch de destino
379
- * - Valida dados obrigatórios
380
- *
381
- * PARÂMETROS OBRIGATÓRIOS:
382
- * - owner: Proprietário do repositório
383
- * - repo: Nome do repositório
384
- * - message: Mensagem do commit
385
- * - branch: Branch de destino
386
- *
387
- * PARÂMETROS OPCIONAIS:
388
- * - author_name: Nome do autor
389
- * - author_email: Email do autor
390
- * - committer_name: Nome do committer
391
- * - committer_email: Email do committer
392
- *
393
- * VALIDAÇÕES:
394
- * - Todos os parâmetros obrigatórios
395
- * - Mensagem não pode estar vazia
396
- * - Branch deve existir
397
- * - Emails devem ser válidos
398
- *
399
- * RECOMENDAÇÕES:
400
- * - Use mensagens descritivas
401
- * - Mantenha commits atômicos
402
- * - Documente mudanças importantes
403
- * - Use branches apropriadas
404
- */
405
- async createCommit(params, provider) {
406
- try {
407
- if (!params.owner || !params.repo || !params.message || !params.branch) {
408
- throw new Error('Owner, repo, message e branch são obrigatórios');
409
- }
410
- if (params.message.trim().length === 0) {
411
- throw new Error('Mensagem do commit não pode estar vazia');
412
- }
413
- // Implementar criação de commit
414
- // Por enquanto, retorna mensagem de funcionalidade
415
- return {
416
- success: true,
417
- action: 'create',
418
- message: `Criação de commit solicitada para branch '${params.branch}'`,
419
- data: {
420
- message: params.message,
421
- branch: params.branch,
422
- author: params.author_name || 'usuário atual',
423
- committer: params.committer_name || 'usuário atual',
424
- commit: 'Funcionalidade de criação será implementada'
425
- }
426
- };
427
- }
428
- catch (error) {
429
- throw new Error(`Falha ao criar commit: ${error instanceof Error ? error.message : String(error)}`);
430
- }
431
- },
432
- /**
433
- * Compara dois commits ou branches
434
- *
435
- * FUNCIONALIDADE:
436
- * - Compara diferenças entre commits
437
- * - Mostra arquivos modificados
438
- * - Retorna estatísticas de mudanças
439
- *
440
- * PARÂMETROS OBRIGATÓRIOS:
441
- * - owner: Proprietário do repositório
442
- * - repo: Nome do repositório
443
- * - base: Commit ou branch base
444
- * - head: Commit ou branch para comparar
445
- *
446
- * VALIDAÇÕES:
447
- * - Todos os parâmetros obrigatórios
448
- * - Base e head devem existir
449
- * - Deve ser possível comparar
450
- *
451
- * RECOMENDAÇÕES:
452
- * - Use para análise de mudanças
453
- * - Compare antes de fazer merge
454
- * - Analise arquivos modificados
455
- * - Documente diferenças importantes
456
- */
457
- async compareCommits(params, provider) {
458
- try {
459
- if (!params.owner || !params.repo || !params.base || !params.head) {
460
- throw new Error('Owner, repo, base e head são obrigatórios');
461
- }
462
- // Implementar comparação de commits
463
- // Por enquanto, retorna mensagem de funcionalidade
464
- return {
465
- success: true,
466
- action: 'compare',
467
- message: `Comparação entre '${params.base}' e '${params.head}' solicitada`,
468
- data: {
469
- base: params.base,
470
- head: params.head,
471
- comparison: 'Funcionalidade de comparação será implementada'
472
- }
473
- };
474
- }
475
- catch (error) {
476
- throw new Error(`Falha ao comparar commits: ${error instanceof Error ? error.message : String(error)}`);
477
- }
478
- },
479
- /**
480
- * Busca commits por critérios específicos
481
- *
482
- * FUNCIONALIDADE:
483
- * - Busca commits por mensagem
484
- * - Filtra por autor
485
- * - Suporta paginação
486
- *
487
- * PARÂMETROS OBRIGATÓRIOS:
488
- * - owner: Proprietário do repositório
489
- * - repo: Nome do repositório
490
- * - query: Termo de busca
491
- *
492
- * PARÂMETROS OPCIONAIS:
493
- * - author: Autor dos commits
494
- * - page: Página da busca (padrão: 1)
495
- * - limit: Itens por página (padrão: 30, máximo: 100)
496
- *
497
- * VALIDAÇÕES:
498
- * - Todos os parâmetros obrigatórios
499
- * - Query deve ter pelo menos 3 caracteres
500
- * - Repositório deve existir
501
- *
502
- * RECOMENDAÇÕES:
503
- * - Use termos de busca específicos
504
- * - Combine com filtros de autor
505
- * - Use paginação para resultados grandes
506
- * - Analise relevância dos resultados
507
- */
508
- async searchCommits(params, provider) {
509
- try {
510
- if (!params.owner || !params.repo || !params.query) {
511
- throw new Error('Owner, repo e query são obrigatórios');
512
- }
513
- if (params.query.length < 3) {
514
- throw new Error('Query deve ter pelo menos 3 caracteres');
515
- }
516
- // Implementar busca de commits
517
- // Por enquanto, retorna mensagem de funcionalidade
518
- return {
519
- success: true,
520
- action: 'search',
521
- message: `Busca por commits com '${params.query}' solicitada`,
522
- data: {
523
- query: params.query,
524
- author: params.author || 'todos',
525
- results: 'Funcionalidade de busca será implementada'
526
- }
527
- };
528
- }
529
- catch (error) {
530
- throw new Error(`Falha ao buscar commits: ${error instanceof Error ? error.message : String(error)}`);
531
- }
532
- },
533
- /**
534
- * Faz push dos commits locais para o repositório remoto
535
- *
536
- * FUNCIONALIDADE:
537
- * - Faz push da branch atual para o remote
538
- * - Suporta especificar branch específica
539
- * - Verifica se há commits para fazer push
540
- *
541
- * PARÂMETROS OBRIGATÓRIOS:
542
- * - projectPath: Caminho do projeto local
543
- *
544
- * PARÂMETROS OPCIONAIS:
545
- * - branch: Branch para fazer push (padrão: branch atual)
546
- *
547
- * RECOMENDAÇÕES:
548
- * - Verifique se há commits locais antes do push
549
- * - Use branch específica se necessário
550
- * - Monitore conflitos durante o push
551
- */
552
- async pushCommits(params, provider) {
553
- try {
554
- if (!params.projectPath) {
555
- throw new Error('projectPath é obrigatório para push');
556
- }
557
- const branch = params.branch || 'main';
558
- // Faz push usando o terminal controller
559
- const pushResult = await (0, terminal_controller_js_1.gitPush)(params.projectPath, branch);
560
- if (pushResult.exitCode !== 0) {
561
- throw new Error(`Falha no push: ${pushResult.output}`);
562
- }
563
- return {
564
- success: true,
565
- action: 'push',
566
- message: `Push realizado com sucesso na branch '${branch}'`,
567
- data: {
568
- projectPath: params.projectPath,
569
- branch: branch,
570
- pushed: true,
571
- output: pushResult.output
572
- }
573
- };
574
- }
575
- catch (error) {
576
- throw new Error(`Falha ao fazer push: ${error instanceof Error ? error.message : String(error)}`);
577
- }
578
- },
579
- /**
580
- * Faz pull dos commits do repositório remoto
581
- *
582
- * FUNCIONALIDADE:
583
- * - Faz pull da branch atual do remote
584
- * - Suporta especificar branch específica
585
- * - Faz merge automático se possível
586
- *
587
- * PARÂMETROS OBRIGATÓRIOS:
588
- * - projectPath: Caminho do projeto local
589
- *
590
- * PARÂMETROS OPCIONAIS:
591
- * - branch: Branch para fazer pull (padrão: branch atual)
592
- *
593
- * RECOMENDAÇÕES:
594
- * - Faça backup antes do pull
595
- * - Resolva conflitos manualmente se houver
596
- * - Use branch específica se necessário
597
- */
598
- async pullCommits(params, provider) {
599
- try {
600
- if (!params.projectPath) {
601
- throw new Error('projectPath é obrigatório para pull');
602
- }
603
- const branch = params.branch || 'main';
604
- // Faz pull usando o terminal controller
605
- const pullResult = await (0, terminal_controller_js_1.gitPull)(params.projectPath, branch);
606
- if (pullResult.exitCode !== 0) {
607
- throw new Error(`Falha no pull: ${pullResult.output}`);
608
- }
609
- return {
610
- success: true,
611
- action: 'pull',
612
- message: `Pull realizado com sucesso na branch '${branch}'`,
613
- data: {
614
- projectPath: params.projectPath,
615
- branch: branch,
616
- pulled: true,
617
- output: pullResult.output
618
- }
619
- };
620
- }
621
- catch (error) {
622
- throw new Error(`Falha ao fazer pull: ${error instanceof Error ? error.message : String(error)}`);
623
- }
624
- }
625
- };
626
- //# sourceMappingURL=commits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commits.js","sourceRoot":"","sources":["../../src/tools/commits.ts"],"names":[],"mappings":"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"}