@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,241 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gitCherryPickTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const terminal_controller_js_1 = require("../utils/terminal-controller.js");
6
+ /**
7
+ * Tool: git-cherry-pick
8
+ *
9
+ * DESCRIÇÃO:
10
+ * Gerenciamento de cherry-pick Git (GitHub + Gitea) com múltiplas ações
11
+ *
12
+ * FUNCIONALIDADES:
13
+ * - Cherry-pick commit específico
14
+ * - Cherry-pick range de commits
15
+ * - Abortar cherry-pick
16
+ * - Continuar cherry-pick
17
+ * - Cherry-pick sem commit
18
+ * - Cherry-pick com estratégia
19
+ *
20
+ * USO:
21
+ * - Para aplicar commits específicos
22
+ * - Para portar correções entre branches
23
+ * - Para selecionar mudanças específicas
24
+ * - Para manter histórico limpo
25
+ *
26
+ * RECOMENDAÇÕES:
27
+ * - Use para commits pequenos e focados
28
+ * - Teste antes de aplicar em produção
29
+ * - Documente commits cherry-picked
30
+ */
31
+ const GitCherryPickInputSchema = zod_1.z.object({
32
+ action: zod_1.z.enum(['cherry-pick', 'cherry-pick-range', 'abort', 'continue']),
33
+ owner: zod_1.z.string(),
34
+ repo: zod_1.z.string(),
35
+ provider: zod_1.z.enum(['gitea', 'github']).describe('Provider to use (gitea or github)'),
36
+ projectPath: zod_1.z.string().describe('Local project path for git operations'),
37
+ // Para cherry-pick
38
+ commit_hash: zod_1.z.string().optional(),
39
+ commit_range: zod_1.z.string().optional(),
40
+ // Para cherry-pick-range
41
+ start_commit: zod_1.z.string().optional(),
42
+ end_commit: zod_1.z.string().optional(),
43
+ // Opções
44
+ no_commit: zod_1.z.boolean().optional(),
45
+ strategy: zod_1.z.enum(['ours', 'theirs']).optional(),
46
+ mainline: zod_1.z.number().optional(),
47
+ signoff: zod_1.z.boolean().optional(),
48
+ });
49
+ const GitCherryPickResultSchema = zod_1.z.object({
50
+ success: zod_1.z.boolean(),
51
+ action: zod_1.z.string(),
52
+ message: zod_1.z.string(),
53
+ data: zod_1.z.any().optional(),
54
+ error: zod_1.z.string().optional()
55
+ });
56
+ exports.gitCherryPickTool = {
57
+ name: 'git-cherry-pick',
58
+ description: 'Manage Git cherry-pick operations (GitHub + Gitea) with multiple actions: cherry-pick, cherry-pick-range, abort, continue. Suporte completo a GitHub e Gitea simultaneamente. Boas práticas (solo): use para aplicar commits específicos, portar correções entre branches, selecionar mudanças específicas; use para commits pequenos e focados, teste antes de aplicar em produção.',
59
+ inputSchema: {
60
+ type: 'object',
61
+ properties: {
62
+ action: {
63
+ type: 'string',
64
+ enum: ['cherry-pick', 'cherry-pick-range', 'abort', 'continue'],
65
+ description: 'Action to perform on cherry-pick'
66
+ },
67
+ owner: { type: 'string', description: 'Repository owner' },
68
+ repo: { type: 'string', description: 'Repository name' },
69
+ provider: { type: 'string', enum: ['gitea', 'github'], description: 'Provider to use (gitea or github)' },
70
+ projectPath: { type: 'string', description: 'Local project path for git operations' },
71
+ commit_hash: { type: 'string', description: 'Commit hash to cherry-pick' },
72
+ commit_range: { type: 'string', description: 'Commit range to cherry-pick' },
73
+ start_commit: { type: 'string', description: 'Start commit for range' },
74
+ end_commit: { type: 'string', description: 'End commit for range' },
75
+ no_commit: { type: 'boolean', description: 'Do not commit automatically' },
76
+ strategy: { type: 'string', enum: ['ours', 'theirs'], description: 'Cherry-pick strategy' },
77
+ mainline: { type: 'number', description: 'Mainline for merge commits' },
78
+ signoff: { type: 'boolean', description: 'Add signoff to commit' }
79
+ },
80
+ required: ['action', 'owner', 'repo', 'provider', 'projectPath']
81
+ },
82
+ async handler(input) {
83
+ try {
84
+ const validatedInput = GitCherryPickInputSchema.parse(input);
85
+ switch (validatedInput.action) {
86
+ case 'cherry-pick':
87
+ return await this.cherryPick(validatedInput);
88
+ case 'cherry-pick-range':
89
+ return await this.cherryPickRange(validatedInput);
90
+ case 'abort':
91
+ return await this.abort(validatedInput);
92
+ case 'continue':
93
+ return await this.continue(validatedInput);
94
+ default:
95
+ throw new Error(`Ação não suportada: ${validatedInput.action}`);
96
+ }
97
+ }
98
+ catch (error) {
99
+ return {
100
+ success: false,
101
+ action: input.action,
102
+ message: 'Erro na operação de cherry-pick',
103
+ error: error instanceof Error ? error.message : String(error)
104
+ };
105
+ }
106
+ },
107
+ async cherryPick(params) {
108
+ try {
109
+ if (!params.commit_hash) {
110
+ throw new Error('commit_hash é obrigatório para cherry-pick');
111
+ }
112
+ let command = `cd "${params.projectPath}" && git cherry-pick ${params.commit_hash}`;
113
+ if (params.no_commit) {
114
+ command += ' --no-commit';
115
+ }
116
+ if (params.strategy) {
117
+ command += ` -X ${params.strategy}`;
118
+ }
119
+ if (params.mainline) {
120
+ command += ` -m ${params.mainline}`;
121
+ }
122
+ if (params.signoff) {
123
+ command += ' --signoff';
124
+ }
125
+ const result = await (0, terminal_controller_js_1.runTerminalCmd)({
126
+ command,
127
+ is_background: false,
128
+ explanation: 'Executando cherry-pick'
129
+ });
130
+ if (result.exitCode !== 0) {
131
+ throw new Error(`Falha no cherry-pick: ${result.output}`);
132
+ }
133
+ return {
134
+ success: true,
135
+ action: 'cherry-pick',
136
+ message: `Commit ${params.commit_hash} cherry-picked com sucesso`,
137
+ data: {
138
+ commit_hash: params.commit_hash,
139
+ no_commit: params.no_commit,
140
+ strategy: params.strategy,
141
+ mainline: params.mainline,
142
+ signoff: params.signoff,
143
+ output: result.output
144
+ }
145
+ };
146
+ }
147
+ catch (error) {
148
+ throw new Error(`Falha ao executar cherry-pick: ${error instanceof Error ? error.message : String(error)}`);
149
+ }
150
+ },
151
+ async cherryPickRange(params) {
152
+ try {
153
+ if (!params.start_commit || !params.end_commit) {
154
+ throw new Error('start_commit e end_commit são obrigatórios para cherry-pick-range');
155
+ }
156
+ let command = `cd "${params.projectPath}" && git cherry-pick ${params.start_commit}..${params.end_commit}`;
157
+ if (params.no_commit) {
158
+ command += ' --no-commit';
159
+ }
160
+ if (params.strategy) {
161
+ command += ` -X ${params.strategy}`;
162
+ }
163
+ if (params.signoff) {
164
+ command += ' --signoff';
165
+ }
166
+ const result = await (0, terminal_controller_js_1.runTerminalCmd)({
167
+ command,
168
+ is_background: false,
169
+ explanation: 'Executando cherry-pick de range'
170
+ });
171
+ if (result.exitCode !== 0) {
172
+ throw new Error(`Falha no cherry-pick de range: ${result.output}`);
173
+ }
174
+ return {
175
+ success: true,
176
+ action: 'cherry-pick-range',
177
+ message: `Range ${params.start_commit}..${params.end_commit} cherry-picked com sucesso`,
178
+ data: {
179
+ start_commit: params.start_commit,
180
+ end_commit: params.end_commit,
181
+ no_commit: params.no_commit,
182
+ strategy: params.strategy,
183
+ signoff: params.signoff,
184
+ output: result.output
185
+ }
186
+ };
187
+ }
188
+ catch (error) {
189
+ throw new Error(`Falha ao executar cherry-pick de range: ${error instanceof Error ? error.message : String(error)}`);
190
+ }
191
+ },
192
+ async abort(params) {
193
+ try {
194
+ const result = await (0, terminal_controller_js_1.runTerminalCmd)({
195
+ command: `cd "${params.projectPath}" && git cherry-pick --abort`,
196
+ is_background: false,
197
+ explanation: 'Abortando cherry-pick'
198
+ });
199
+ if (result.exitCode !== 0) {
200
+ throw new Error(`Falha ao abortar cherry-pick: ${result.output}`);
201
+ }
202
+ return {
203
+ success: true,
204
+ action: 'abort',
205
+ message: 'Cherry-pick abortado com sucesso',
206
+ data: {
207
+ aborted: true,
208
+ output: result.output
209
+ }
210
+ };
211
+ }
212
+ catch (error) {
213
+ throw new Error(`Falha ao abortar cherry-pick: ${error instanceof Error ? error.message : String(error)}`);
214
+ }
215
+ },
216
+ async continue(params) {
217
+ try {
218
+ const result = await (0, terminal_controller_js_1.runTerminalCmd)({
219
+ command: `cd "${params.projectPath}" && git cherry-pick --continue`,
220
+ is_background: false,
221
+ explanation: 'Continuando cherry-pick'
222
+ });
223
+ if (result.exitCode !== 0) {
224
+ throw new Error(`Falha ao continuar cherry-pick: ${result.output}`);
225
+ }
226
+ return {
227
+ success: true,
228
+ action: 'continue',
229
+ message: 'Cherry-pick continuado com sucesso',
230
+ data: {
231
+ continued: true,
232
+ output: result.output
233
+ }
234
+ };
235
+ }
236
+ catch (error) {
237
+ throw new Error(`Falha ao continuar cherry-pick: ${error instanceof Error ? error.message : String(error)}`);
238
+ }
239
+ }
240
+ };
241
+ //# sourceMappingURL=git-cherry-pick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-cherry-pick.js","sourceRoot":"","sources":["../../src/tools/git-cherry-pick.ts"],"names":[],"mappings":"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"}