@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.
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +109 -51
- package/dist/server.js.map +1 -1
- package/dist/tools/branches.d.ts +2 -2
- package/dist/tools/code-review.d.ts +4 -4
- package/dist/tools/commits.d.ts +2 -2
- package/dist/tools/deployments.d.ts +4 -4
- package/dist/tools/gh-actions.d.ts +272 -0
- package/dist/tools/gh-actions.d.ts.map +1 -0
- package/dist/tools/gh-actions.js +479 -0
- package/dist/tools/gh-actions.js.map +1 -0
- package/dist/tools/gh-analytics.d.ts +326 -0
- package/dist/tools/gh-analytics.d.ts.map +1 -0
- package/dist/tools/gh-analytics.js +524 -0
- package/dist/tools/gh-analytics.js.map +1 -0
- package/dist/tools/gh-code-review.d.ts +323 -0
- package/dist/tools/gh-code-review.d.ts.map +1 -0
- package/dist/tools/gh-code-review.js +577 -0
- package/dist/tools/gh-code-review.js.map +1 -0
- package/dist/tools/gh-codespaces.d.ts +154 -0
- package/dist/tools/gh-codespaces.d.ts.map +1 -0
- package/dist/tools/gh-codespaces.js +286 -0
- package/dist/tools/gh-codespaces.js.map +1 -0
- package/dist/tools/gh-deployments.d.ts +319 -0
- package/dist/tools/gh-deployments.d.ts.map +1 -0
- package/dist/tools/gh-deployments.js +384 -0
- package/dist/tools/gh-deployments.js.map +1 -0
- package/dist/tools/gh-gists.d.ts +194 -0
- package/dist/tools/gh-gists.d.ts.map +1 -0
- package/dist/tools/gh-gists.js +328 -0
- package/dist/tools/gh-gists.js.map +1 -0
- package/dist/tools/gh-projects.d.ts +225 -0
- package/dist/tools/gh-projects.d.ts.map +1 -0
- package/dist/tools/gh-projects.js +365 -0
- package/dist/tools/gh-projects.js.map +1 -0
- package/dist/tools/gh-security.d.ts +341 -0
- package/dist/tools/gh-security.d.ts.map +1 -0
- package/dist/tools/gh-security.js +427 -0
- package/dist/tools/gh-security.js.map +1 -0
- package/dist/tools/gh-sync.d.ts +229 -0
- package/dist/tools/gh-sync.d.ts.map +1 -0
- package/dist/tools/gh-sync.js +384 -0
- package/dist/tools/gh-sync.js.map +1 -0
- package/dist/tools/gh-workflows.d.ts +313 -0
- package/dist/tools/gh-workflows.d.ts.map +1 -0
- package/dist/tools/gh-workflows.js +462 -0
- package/dist/tools/gh-workflows.js.map +1 -0
- package/dist/tools/git-archive.d.ts +169 -0
- package/dist/tools/git-archive.d.ts.map +1 -0
- package/dist/tools/git-archive.js +235 -0
- package/dist/tools/git-archive.js.map +1 -0
- package/dist/tools/git-branches.d.ts +438 -0
- package/dist/tools/git-branches.d.ts.map +1 -0
- package/dist/tools/git-branches.js +525 -0
- package/dist/tools/git-branches.js.map +1 -0
- package/dist/tools/git-bundle.d.ts +175 -0
- package/dist/tools/git-bundle.d.ts.map +1 -0
- package/dist/tools/git-bundle.js +258 -0
- package/dist/tools/git-bundle.js.map +1 -0
- package/dist/tools/git-cherry-pick.d.ts +162 -0
- package/dist/tools/git-cherry-pick.d.ts.map +1 -0
- package/dist/tools/git-cherry-pick.js +241 -0
- package/dist/tools/git-cherry-pick.js.map +1 -0
- package/dist/tools/git-commits.d.ts +497 -0
- package/dist/tools/git-commits.d.ts.map +1 -0
- package/dist/tools/git-commits.js +626 -0
- package/dist/tools/git-commits.js.map +1 -0
- package/dist/tools/git-config.d.ts +144 -0
- package/dist/tools/git-config.d.ts.map +1 -0
- package/dist/tools/git-config.js +293 -0
- package/dist/tools/git-config.js.map +1 -0
- package/dist/tools/git-files.d.ts +463 -0
- package/dist/tools/git-files.d.ts.map +1 -0
- package/dist/tools/git-files.js +555 -0
- package/dist/tools/git-files.js.map +1 -0
- package/dist/tools/git-issues.d.ts +579 -0
- package/dist/tools/git-issues.d.ts.map +1 -0
- package/dist/tools/git-issues.js +694 -0
- package/dist/tools/git-issues.js.map +1 -0
- package/dist/tools/git-pulls.d.ts +702 -0
- package/dist/tools/git-pulls.d.ts.map +1 -0
- package/dist/tools/git-pulls.js +733 -0
- package/dist/tools/git-pulls.js.map +1 -0
- package/dist/tools/git-rebase.d.ts +141 -0
- package/dist/tools/git-rebase.d.ts.map +1 -0
- package/dist/tools/git-rebase.js +234 -0
- package/dist/tools/git-rebase.js.map +1 -0
- package/dist/tools/git-releases.d.ts +495 -0
- package/dist/tools/git-releases.d.ts.map +1 -0
- package/dist/tools/git-releases.js +552 -0
- package/dist/tools/git-releases.js.map +1 -0
- package/dist/tools/git-remote.d.ts +142 -0
- package/dist/tools/git-remote.d.ts.map +1 -0
- package/dist/tools/git-remote.js +303 -0
- package/dist/tools/git-remote.js.map +1 -0
- package/dist/tools/git-repositories.d.ts +422 -0
- package/dist/tools/git-repositories.d.ts.map +1 -0
- package/dist/tools/git-repositories.js +557 -0
- package/dist/tools/git-repositories.js.map +1 -0
- package/dist/tools/git-reset.d.ts +134 -0
- package/dist/tools/git-reset.d.ts.map +1 -0
- package/dist/tools/git-reset.js +236 -0
- package/dist/tools/git-reset.js.map +1 -0
- package/dist/tools/git-revert.d.ts +153 -0
- package/dist/tools/git-revert.d.ts.map +1 -0
- package/dist/tools/git-revert.js +211 -0
- package/dist/tools/git-revert.js.map +1 -0
- package/dist/tools/git-stash.d.ts +144 -0
- package/dist/tools/git-stash.d.ts.map +1 -0
- package/dist/tools/git-stash.js +298 -0
- package/dist/tools/git-stash.js.map +1 -0
- package/dist/tools/git-submodule.d.ts +156 -0
- package/dist/tools/git-submodule.d.ts.map +1 -0
- package/dist/tools/git-submodule.js +314 -0
- package/dist/tools/git-submodule.js.map +1 -0
- package/dist/tools/git-sync.d.ts +4 -4
- package/dist/tools/git-tags.d.ts +419 -0
- package/dist/tools/git-tags.d.ts.map +1 -0
- package/dist/tools/git-tags.js +480 -0
- package/dist/tools/git-tags.js.map +1 -0
- package/dist/tools/git-webhooks.d.ts +490 -0
- package/dist/tools/git-webhooks.d.ts.map +1 -0
- package/dist/tools/git-webhooks.js +556 -0
- package/dist/tools/git-webhooks.js.map +1 -0
- package/dist/tools/git-worktree.d.ts +163 -0
- package/dist/tools/git-worktree.d.ts.map +1 -0
- package/dist/tools/git-worktree.js +294 -0
- package/dist/tools/git-worktree.js.map +1 -0
- package/dist/tools/pulls.d.ts +2 -2
- package/dist/tools/users.d.ts +2 -2
- package/dist/tools/version-control.d.ts +4 -4
- 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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"}
|