@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.
- package/dist/tools/gh-actions.d.ts +0 -9
- package/dist/tools/gh-actions.d.ts.map +1 -1
- package/dist/tools/gh-actions.js +6 -10
- package/dist/tools/gh-actions.js.map +1 -1
- package/dist/tools/gh-analytics.d.ts +0 -4
- package/dist/tools/gh-analytics.d.ts.map +1 -1
- package/dist/tools/gh-analytics.js +6 -12
- package/dist/tools/gh-analytics.js.map +1 -1
- package/dist/tools/gh-code-review.d.ts +0 -4
- package/dist/tools/gh-code-review.d.ts.map +1 -1
- package/dist/tools/gh-code-review.js +11 -27
- package/dist/tools/gh-code-review.js.map +1 -1
- package/dist/tools/gh-codespaces.d.ts +0 -12
- package/dist/tools/gh-codespaces.d.ts.map +1 -1
- package/dist/tools/gh-codespaces.js +9 -11
- package/dist/tools/gh-codespaces.js.map +1 -1
- package/dist/tools/gh-deployments.d.ts +0 -8
- package/dist/tools/gh-deployments.d.ts.map +1 -1
- package/dist/tools/gh-deployments.js +6 -10
- package/dist/tools/gh-deployments.js.map +1 -1
- package/dist/tools/gh-gists.d.ts +0 -16
- package/dist/tools/gh-gists.d.ts.map +1 -1
- package/dist/tools/gh-gists.js +4 -9
- package/dist/tools/gh-gists.js.map +1 -1
- package/dist/tools/gh-projects.d.ts +0 -16
- package/dist/tools/gh-projects.d.ts.map +1 -1
- package/dist/tools/gh-projects.js +4 -9
- package/dist/tools/gh-projects.js.map +1 -1
- package/dist/tools/gh-security.d.ts +0 -4
- package/dist/tools/gh-security.d.ts.map +1 -1
- package/dist/tools/gh-security.js +6 -9
- package/dist/tools/gh-security.js.map +1 -1
- package/dist/tools/gh-sync.d.ts +0 -12
- package/dist/tools/gh-sync.d.ts.map +1 -1
- package/dist/tools/gh-sync.js +4 -8
- package/dist/tools/gh-sync.js.map +1 -1
- package/dist/tools/gh-workflows.d.ts +0 -4
- package/dist/tools/gh-workflows.d.ts.map +1 -1
- package/dist/tools/gh-workflows.js +6 -10
- package/dist/tools/gh-workflows.js.map +1 -1
- package/dist/tools/git-archive.d.ts +0 -3
- package/dist/tools/git-archive.d.ts.map +1 -1
- package/dist/tools/git-archive.js +1 -1
- package/dist/tools/git-archive.js.map +1 -1
- package/dist/tools/git-branches.d.ts +1 -1
- package/dist/tools/git-branches.js +4 -4
- package/dist/tools/git-branches.js.map +1 -1
- package/dist/tools/git-bundle.d.ts +0 -3
- package/dist/tools/git-bundle.d.ts.map +1 -1
- package/dist/tools/git-bundle.js +1 -1
- package/dist/tools/git-bundle.js.map +1 -1
- package/dist/tools/git-cherry-pick.d.ts +0 -3
- package/dist/tools/git-cherry-pick.d.ts.map +1 -1
- package/dist/tools/git-cherry-pick.js +1 -1
- package/dist/tools/git-cherry-pick.js.map +1 -1
- package/dist/tools/git-commits.d.ts +6 -9
- package/dist/tools/git-commits.d.ts.map +1 -1
- package/dist/tools/git-commits.js +30 -28
- package/dist/tools/git-commits.js.map +1 -1
- package/dist/tools/git-config.d.ts +0 -3
- package/dist/tools/git-config.d.ts.map +1 -1
- package/dist/tools/git-config.js +1 -1
- package/dist/tools/git-config.js.map +1 -1
- package/dist/tools/git-files.d.ts +8 -11
- package/dist/tools/git-files.d.ts.map +1 -1
- package/dist/tools/git-files.js +40 -38
- package/dist/tools/git-files.js.map +1 -1
- package/dist/tools/git-issues.d.ts +8 -15
- package/dist/tools/git-issues.d.ts.map +1 -1
- package/dist/tools/git-issues.js +36 -36
- package/dist/tools/git-issues.js.map +1 -1
- package/dist/tools/git-pulls.d.ts +9 -16
- package/dist/tools/git-pulls.d.ts.map +1 -1
- package/dist/tools/git-pulls.js +41 -41
- package/dist/tools/git-pulls.js.map +1 -1
- package/dist/tools/git-rebase.d.ts +0 -3
- package/dist/tools/git-rebase.d.ts.map +1 -1
- package/dist/tools/git-rebase.js +1 -1
- package/dist/tools/git-rebase.js.map +1 -1
- package/dist/tools/git-releases.d.ts +1 -8
- package/dist/tools/git-releases.d.ts.map +1 -1
- package/dist/tools/git-releases.js +15 -17
- package/dist/tools/git-releases.js.map +1 -1
- package/dist/tools/git-remote.d.ts +0 -3
- package/dist/tools/git-remote.d.ts.map +1 -1
- package/dist/tools/git-remote.js +1 -1
- package/dist/tools/git-remote.js.map +1 -1
- package/dist/tools/git-repositories.d.ts +6 -9
- package/dist/tools/git-repositories.d.ts.map +1 -1
- package/dist/tools/git-repositories.js +40 -29
- package/dist/tools/git-repositories.js.map +1 -1
- package/dist/tools/git-reset.d.ts +0 -3
- package/dist/tools/git-reset.d.ts.map +1 -1
- package/dist/tools/git-reset.js +1 -1
- package/dist/tools/git-reset.js.map +1 -1
- package/dist/tools/git-revert.d.ts +0 -3
- package/dist/tools/git-revert.d.ts.map +1 -1
- package/dist/tools/git-revert.js +1 -1
- package/dist/tools/git-revert.js.map +1 -1
- package/dist/tools/git-stash.d.ts +0 -3
- package/dist/tools/git-stash.d.ts.map +1 -1
- package/dist/tools/git-stash.js +1 -1
- package/dist/tools/git-stash.js.map +1 -1
- package/dist/tools/git-submodule.d.ts +0 -3
- package/dist/tools/git-submodule.d.ts.map +1 -1
- package/dist/tools/git-submodule.js +1 -1
- package/dist/tools/git-submodule.js.map +1 -1
- package/dist/tools/git-sync.d.ts +0 -10
- package/dist/tools/git-sync.d.ts.map +1 -1
- package/dist/tools/git-sync.js +8 -2
- package/dist/tools/git-sync.js.map +1 -1
- package/dist/tools/git-tags.d.ts +2 -2
- package/dist/tools/git-tags.js +5 -5
- package/dist/tools/git-tags.js.map +1 -1
- package/dist/tools/git-webhooks.d.ts +7 -14
- package/dist/tools/git-webhooks.d.ts.map +1 -1
- package/dist/tools/git-webhooks.js +33 -33
- package/dist/tools/git-webhooks.js.map +1 -1
- package/dist/tools/git-worktree.d.ts +0 -3
- package/dist/tools/git-worktree.d.ts.map +1 -1
- package/dist/tools/git-worktree.js +1 -1
- package/dist/tools/git-worktree.js.map +1 -1
- package/dist/tools/repositories.d.ts +9 -12
- package/dist/tools/repositories.d.ts.map +1 -1
- package/dist/tools/repositories.js +46 -44
- package/dist/tools/repositories.js.map +1 -1
- package/dist/tools/validator.d.ts +0 -22
- package/dist/tools/validator.d.ts.map +1 -1
- package/dist/tools/validator.js +0 -4
- package/dist/tools/validator.js.map +1 -1
- package/dist/utils/user-detection.d.ts.map +1 -1
- package/dist/utils/user-detection.js +2 -17
- package/dist/utils/user-detection.js.map +1 -1
- package/package.json +59 -59
- package/dist/tools/actions.d.ts +0 -272
- package/dist/tools/actions.d.ts.map +0 -1
- package/dist/tools/actions.js +0 -479
- package/dist/tools/actions.js.map +0 -1
- package/dist/tools/analytics.d.ts +0 -326
- package/dist/tools/analytics.d.ts.map +0 -1
- package/dist/tools/analytics.js +0 -524
- package/dist/tools/analytics.js.map +0 -1
- package/dist/tools/branches.d.ts +0 -438
- package/dist/tools/branches.d.ts.map +0 -1
- package/dist/tools/branches.js +0 -525
- package/dist/tools/branches.js.map +0 -1
- package/dist/tools/code-review.d.ts +0 -323
- package/dist/tools/code-review.d.ts.map +0 -1
- package/dist/tools/code-review.js +0 -577
- package/dist/tools/code-review.js.map +0 -1
- package/dist/tools/commits.d.ts +0 -497
- package/dist/tools/commits.d.ts.map +0 -1
- package/dist/tools/commits.js +0 -626
- package/dist/tools/commits.js.map +0 -1
- package/dist/tools/deployments.d.ts +0 -319
- package/dist/tools/deployments.d.ts.map +0 -1
- package/dist/tools/deployments.js +0 -384
- package/dist/tools/deployments.js.map +0 -1
- package/dist/tools/files.d.ts +0 -463
- package/dist/tools/files.d.ts.map +0 -1
- package/dist/tools/files.js +0 -555
- package/dist/tools/files.js.map +0 -1
- package/dist/tools/issues.d.ts +0 -579
- package/dist/tools/issues.d.ts.map +0 -1
- package/dist/tools/issues.js +0 -694
- package/dist/tools/issues.js.map +0 -1
- package/dist/tools/pulls.d.ts +0 -702
- package/dist/tools/pulls.d.ts.map +0 -1
- package/dist/tools/pulls.js +0 -733
- package/dist/tools/pulls.js.map +0 -1
- package/dist/tools/releases.d.ts +0 -495
- package/dist/tools/releases.d.ts.map +0 -1
- package/dist/tools/releases.js +0 -552
- package/dist/tools/releases.js.map +0 -1
- package/dist/tools/security.d.ts +0 -341
- package/dist/tools/security.d.ts.map +0 -1
- package/dist/tools/security.js +0 -427
- package/dist/tools/security.js.map +0 -1
- package/dist/tools/tags.d.ts +0 -419
- package/dist/tools/tags.d.ts.map +0 -1
- package/dist/tools/tags.js +0 -480
- package/dist/tools/tags.js.map +0 -1
- package/dist/tools/webhooks.d.ts +0 -490
- package/dist/tools/webhooks.d.ts.map +0 -1
- package/dist/tools/webhooks.js +0 -556
- package/dist/tools/webhooks.js.map +0 -1
- package/dist/tools/workflows.d.ts +0 -313
- package/dist/tools/workflows.d.ts.map +0 -1
- package/dist/tools/workflows.js +0 -462
- package/dist/tools/workflows.js.map +0 -1
package/dist/tools/commits.js
DELETED
|
@@ -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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"}
|