@andrebuzeli/git-mcp 2.29.0 → 2.29.2
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/providers/provider-factory.js +3 -3
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/server.js +9 -9
- package/dist/server.js.map +1 -1
- package/dist/tools/git-archive.d.ts +10 -10
- package/dist/tools/git-archive.js +22 -22
- package/dist/tools/git-archive.js.map +1 -1
- package/dist/tools/git-branches.d.ts +145 -145
- package/dist/tools/git-branches.js +172 -172
- package/dist/tools/git-branches.js.map +1 -1
- package/dist/tools/git-commits.d.ts +156 -156
- package/dist/tools/git-commits.js +188 -188
- package/dist/tools/git-commits.js.map +1 -1
- package/dist/tools/git-config.d.ts +15 -15
- package/dist/tools/git-config.js +45 -45
- package/dist/tools/git-config.js.map +1 -1
- package/dist/tools/git-files.d.ts +199 -199
- package/dist/tools/git-files.js +221 -221
- package/dist/tools/git-files.js.map +1 -1
- package/dist/tools/git-initialize.d.ts +41 -41
- package/dist/tools/git-initialize.js +73 -73
- package/dist/tools/git-initialize.js.map +1 -1
- package/dist/tools/git-issues.d.ts +190 -190
- package/dist/tools/git-issues.js +226 -226
- package/dist/tools/git-issues.js.map +1 -1
- package/dist/tools/git-pulls.d.ts +209 -209
- package/dist/tools/git-pulls.js +226 -226
- package/dist/tools/git-pulls.js.map +1 -1
- package/dist/tools/git-releases.d.ts +157 -157
- package/dist/tools/git-releases.js +171 -171
- package/dist/tools/git-releases.js.map +1 -1
- package/dist/tools/git-remote.d.ts +6 -6
- package/dist/tools/git-remote.js +14 -14
- package/dist/tools/git-remote.js.map +1 -1
- package/dist/tools/git-repositories.d.ts +176 -176
- package/dist/tools/git-repositories.js +218 -218
- package/dist/tools/git-repositories.js.map +1 -1
- package/dist/tools/git-reset.d.ts +10 -10
- package/dist/tools/git-reset.js +15 -15
- package/dist/tools/git-reset.js.map +1 -1
- package/dist/tools/git-revert.d.ts +11 -11
- package/dist/tools/git-revert.js +18 -18
- package/dist/tools/git-revert.js.map +1 -1
- package/dist/tools/git-stash.d.ts +7 -7
- package/dist/tools/git-stash.js +11 -11
- package/dist/tools/git-stash.js.map +1 -1
- package/dist/tools/git-sync.d.ts +13 -13
- package/dist/tools/git-sync.js +34 -34
- package/dist/tools/git-sync.js.map +1 -1
- package/dist/tools/git-tags.d.ts +134 -134
- package/dist/tools/git-tags.js +152 -152
- package/dist/tools/git-tags.js.map +1 -1
- package/dist/tools/git-upload-project.js +7 -7
- package/dist/tools/git-upload-project.js.map +1 -1
- package/dist/utils/terminal-controller.js +7 -7
- package/dist/utils/terminal-controller.js.map +1 -1
- package/package.json +2 -2
package/dist/tools/git-files.js
CHANGED
|
@@ -7,45 +7,45 @@ const user_detection_js_1 = require("../utils/user-detection.js");
|
|
|
7
7
|
/**
|
|
8
8
|
* Tool: files
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
* Gerenciamento completo de arquivos e
|
|
10
|
+
* DESCRIÇÃO:
|
|
11
|
+
* Gerenciamento completo de arquivos e diretórios Gitea com múltiplas ações
|
|
12
12
|
*
|
|
13
13
|
* FUNCIONALIDADES:
|
|
14
|
-
* -
|
|
15
|
-
* - Leitura e listagem de
|
|
16
|
-
* -
|
|
17
|
-
* -
|
|
18
|
-
* - Busca por
|
|
19
|
-
* - Controle de
|
|
14
|
+
* - Criação de arquivos e diretórios
|
|
15
|
+
* - Leitura e listagem de conteúdo
|
|
16
|
+
* - Atualização de arquivos existentes
|
|
17
|
+
* - Exclusão de arquivos e diretórios
|
|
18
|
+
* - Busca por conteúdo e nome
|
|
19
|
+
* - Controle de versão de arquivos
|
|
20
20
|
*
|
|
21
21
|
* USO:
|
|
22
22
|
* - Para gerenciar arquivos de projeto
|
|
23
|
-
* - Para automatizar
|
|
24
|
-
* - Para backup e
|
|
25
|
-
* - Para
|
|
23
|
+
* - Para automatizar criação de arquivos
|
|
24
|
+
* - Para backup e migração de conteúdo
|
|
25
|
+
* - Para sincronização de arquivos
|
|
26
26
|
*
|
|
27
|
-
*
|
|
27
|
+
* RECOMENDAÇÕES:
|
|
28
28
|
* - Use mensagens de commit descritivas
|
|
29
|
-
* - Mantenha estrutura de
|
|
30
|
-
* - Valide
|
|
31
|
-
* - Use branches para
|
|
29
|
+
* - Mantenha estrutura de diretórios organizada
|
|
30
|
+
* - Valide conteúdo antes de enviar
|
|
31
|
+
* - Use branches para mudanças grandes
|
|
32
32
|
*/
|
|
33
33
|
/**
|
|
34
|
-
* Schema de
|
|
34
|
+
* Schema de validação para entrada da tool files
|
|
35
35
|
*
|
|
36
|
-
*
|
|
37
|
-
* - action:
|
|
38
|
-
* -
|
|
39
|
-
* -
|
|
36
|
+
* VALIDAÇÕES:
|
|
37
|
+
* - action: Ação obrigatória (get, create, update, delete, list, search)
|
|
38
|
+
* - Parâmetros específicos por ação
|
|
39
|
+
* - Validação de tipos e formatos
|
|
40
40
|
*
|
|
41
|
-
*
|
|
41
|
+
* RECOMENDAÇÕES:
|
|
42
42
|
* - Sempre valide entrada antes de usar
|
|
43
|
-
* - Use
|
|
44
|
-
* - Documente
|
|
43
|
+
* - Use parâmetros opcionais adequadamente
|
|
44
|
+
* - Documente parâmetros obrigatórios
|
|
45
45
|
*/
|
|
46
46
|
const FilesInputSchema = zod_1.z.object({
|
|
47
47
|
action: zod_1.z.enum(['get', 'create', 'update', 'delete', 'list', 'search', 'upload-project']),
|
|
48
|
-
//
|
|
48
|
+
// Parâmetros comuns
|
|
49
49
|
// owner: obtido automaticamente do provider,
|
|
50
50
|
repo: zod_1.z.string(),
|
|
51
51
|
path: zod_1.z.string().optional(),
|
|
@@ -60,16 +60,16 @@ const FilesInputSchema = zod_1.z.object({
|
|
|
60
60
|
ref: zod_1.z.string().optional(),
|
|
61
61
|
// Para search
|
|
62
62
|
query: zod_1.z.string().optional(),
|
|
63
|
-
// Para list com
|
|
63
|
+
// Para list com paginação
|
|
64
64
|
page: zod_1.z.number().min(1).optional(),
|
|
65
65
|
limit: zod_1.z.number().min(1).max(100).optional(),
|
|
66
66
|
});
|
|
67
67
|
/**
|
|
68
|
-
* Schema de
|
|
68
|
+
* Schema de saída padronizado
|
|
69
69
|
*
|
|
70
70
|
* ESTRUTURA:
|
|
71
|
-
* - success: Status da
|
|
72
|
-
* - action:
|
|
71
|
+
* - success: Status da operação
|
|
72
|
+
* - action: Ação executada
|
|
73
73
|
* - message: Mensagem descritiva
|
|
74
74
|
* - data: Dados retornados (opcional)
|
|
75
75
|
* - error: Detalhes do erro (opcional)
|
|
@@ -84,73 +84,73 @@ const FilesResultSchema = zod_1.z.object({
|
|
|
84
84
|
/**
|
|
85
85
|
* Tool: files
|
|
86
86
|
*
|
|
87
|
-
*
|
|
88
|
-
* Gerenciamento completo de arquivos e
|
|
87
|
+
* DESCRIÇÃO:
|
|
88
|
+
* Gerenciamento completo de arquivos e diretórios Gitea com múltiplas ações
|
|
89
89
|
*
|
|
90
|
-
* ACTIONS
|
|
90
|
+
* ACTIONS DISPONÍVEIS:
|
|
91
91
|
*
|
|
92
|
-
* 1. get - Obter
|
|
93
|
-
*
|
|
94
|
-
* - owner (
|
|
95
|
-
* - repo (
|
|
96
|
-
* - path (
|
|
97
|
-
* - ref (opcional): Branch, tag ou commit (
|
|
92
|
+
* 1. get - Obter conteúdo de arquivo
|
|
93
|
+
* Parâmetros:
|
|
94
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
95
|
+
* - repo (obrigatório): Nome do repositório
|
|
96
|
+
* - path (obrigatório): Caminho do arquivo
|
|
97
|
+
* - ref (opcional): Branch, tag ou commit (padrão: branch padrão)
|
|
98
98
|
*
|
|
99
99
|
* 2. create - Criar novo arquivo
|
|
100
|
-
*
|
|
101
|
-
* - owner (
|
|
102
|
-
* - repo (
|
|
103
|
-
* - path (
|
|
104
|
-
* - content (
|
|
105
|
-
* - message (
|
|
106
|
-
* - branch (opcional): Branch de destino (
|
|
100
|
+
* Parâmetros:
|
|
101
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
102
|
+
* - repo (obrigatório): Nome do repositório
|
|
103
|
+
* - path (obrigatório): Caminho do arquivo
|
|
104
|
+
* - content (obrigatório): Conteúdo do arquivo
|
|
105
|
+
* - message (obrigatório): Mensagem de commit
|
|
106
|
+
* - branch (opcional): Branch de destino (padrão: branch padrão)
|
|
107
107
|
*
|
|
108
108
|
* 3. update - Atualizar arquivo existente
|
|
109
|
-
*
|
|
110
|
-
* - owner (
|
|
111
|
-
* - repo (
|
|
112
|
-
* - path (
|
|
113
|
-
* - content (
|
|
114
|
-
* - message (
|
|
115
|
-
* - sha (
|
|
116
|
-
* - branch (opcional): Branch de destino (
|
|
109
|
+
* Parâmetros:
|
|
110
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
111
|
+
* - repo (obrigatório): Nome do repositório
|
|
112
|
+
* - path (obrigatório): Caminho do arquivo
|
|
113
|
+
* - content (obrigatório): Novo conteúdo
|
|
114
|
+
* - message (obrigatório): Mensagem de commit
|
|
115
|
+
* - sha (obrigatório): SHA do arquivo atual
|
|
116
|
+
* - branch (opcional): Branch de destino (padrão: branch padrão)
|
|
117
117
|
*
|
|
118
118
|
* 4. delete - Deletar arquivo
|
|
119
|
-
*
|
|
120
|
-
* - owner (
|
|
121
|
-
* - repo (
|
|
122
|
-
* - path (
|
|
123
|
-
* - message (
|
|
124
|
-
* - sha (
|
|
125
|
-
* - branch (opcional): Branch de destino (
|
|
119
|
+
* Parâmetros:
|
|
120
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
121
|
+
* - repo (obrigatório): Nome do repositório
|
|
122
|
+
* - path (obrigatório): Caminho do arquivo
|
|
123
|
+
* - message (obrigatório): Mensagem de commit
|
|
124
|
+
* - sha (obrigatório): SHA do arquivo
|
|
125
|
+
* - branch (opcional): Branch de destino (padrão: branch padrão)
|
|
126
126
|
*
|
|
127
|
-
* 5. list - Listar
|
|
128
|
-
*
|
|
129
|
-
* - owner (
|
|
130
|
-
* - repo (
|
|
131
|
-
* - path (opcional): Caminho do
|
|
132
|
-
* - ref (opcional): Branch, tag ou commit (
|
|
133
|
-
* - page (opcional):
|
|
134
|
-
* - limit (opcional): Itens por
|
|
127
|
+
* 5. list - Listar conteúdo de diretório
|
|
128
|
+
* Parâmetros:
|
|
129
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
130
|
+
* - repo (obrigatório): Nome do repositório
|
|
131
|
+
* - path (opcional): Caminho do diretório (padrão: raiz)
|
|
132
|
+
* - ref (opcional): Branch, tag ou commit (padrão: branch padrão)
|
|
133
|
+
* - page (opcional): Página da listagem (padrão: 1)
|
|
134
|
+
* - limit (opcional): Itens por página (padrão: 30, máximo: 100)
|
|
135
135
|
*
|
|
136
|
-
* 6. search - Buscar arquivos por
|
|
137
|
-
*
|
|
138
|
-
* - owner (
|
|
139
|
-
* - repo (
|
|
140
|
-
* - query (
|
|
141
|
-
* - ref (opcional): Branch, tag ou commit (
|
|
136
|
+
* 6. search - Buscar arquivos por conteúdo
|
|
137
|
+
* Parâmetros:
|
|
138
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
139
|
+
* - repo (obrigatório): Nome do repositório
|
|
140
|
+
* - query (obrigatório): Termo de busca
|
|
141
|
+
* - ref (opcional): Branch, tag ou commit (padrão: branch padrão)
|
|
142
142
|
*
|
|
143
|
-
*
|
|
143
|
+
* RECOMENDAÇÕES DE USO:
|
|
144
144
|
* - Use mensagens de commit descritivas
|
|
145
|
-
* - Mantenha estrutura de
|
|
146
|
-
* - Valide
|
|
147
|
-
* - Use branches para
|
|
148
|
-
* - Documente
|
|
149
|
-
* - Mantenha
|
|
145
|
+
* - Mantenha estrutura de diretórios organizada
|
|
146
|
+
* - Valide conteúdo antes de enviar
|
|
147
|
+
* - Use branches para mudanças grandes
|
|
148
|
+
* - Documente mudanças importantes
|
|
149
|
+
* - Mantenha histórico de commits limpo
|
|
150
150
|
*/
|
|
151
151
|
exports.filesTool = {
|
|
152
152
|
name: 'git-files',
|
|
153
|
-
description: 'tool: Gerencia arquivos Git, upload, download, busca e
|
|
153
|
+
description: 'tool: Gerencia arquivos Git, upload, download, busca e sincronização\n──────────────\naction get: obtém arquivo específico\naction get requires: repo, path, provider\n───────────────\naction create: cria novo arquivo\naction create requires: repo, path, content, message, provider\n───────────────\naction update: atualiza arquivo existente\naction update requires: repo, path, content, message, sha, provider\n───────────────\naction delete: remove arquivo\naction delete requires: repo, path, message, provider\n───────────────\naction list: lista arquivos do diretório\naction list requires: repo, path, provider\n───────────────\naction search: busca conteúdo em arquivos\naction search requires: repo, query, provider\n───────────────\naction upload-project: envia projeto completo\naction upload-project requires: repo, projectPath, message, provider',
|
|
154
154
|
inputSchema: {
|
|
155
155
|
type: 'object',
|
|
156
156
|
properties: {
|
|
@@ -179,37 +179,37 @@ exports.filesTool = {
|
|
|
179
179
|
*
|
|
180
180
|
* FUNCIONALIDADE:
|
|
181
181
|
* - Valida entrada usando Zod schema
|
|
182
|
-
* - Roteia para
|
|
182
|
+
* - Roteia para método específico baseado na ação
|
|
183
183
|
* - Trata erros de forma uniforme
|
|
184
184
|
* - Retorna resultado padronizado
|
|
185
185
|
*
|
|
186
186
|
* FLUXO:
|
|
187
|
-
* 1.
|
|
188
|
-
* 2. Roteamento por
|
|
189
|
-
* 3.
|
|
187
|
+
* 1. Validação de entrada
|
|
188
|
+
* 2. Roteamento por ação
|
|
189
|
+
* 3. Execução do método específico
|
|
190
190
|
* 4. Tratamento de erros
|
|
191
191
|
* 5. Retorno de resultado
|
|
192
192
|
*
|
|
193
193
|
* TRATAMENTO DE ERROS:
|
|
194
|
-
* -
|
|
195
|
-
* -
|
|
196
|
-
* - Roteamento:
|
|
194
|
+
* - Validação: erro de schema
|
|
195
|
+
* - Execução: erro da operação
|
|
196
|
+
* - Roteamento: ação não suportada
|
|
197
197
|
*
|
|
198
|
-
*
|
|
198
|
+
* RECOMENDAÇÕES:
|
|
199
199
|
* - Sempre valide entrada antes de processar
|
|
200
|
-
* - Trate erros
|
|
200
|
+
* - Trate erros específicos adequadamente
|
|
201
201
|
* - Log detalhes de erro para debug
|
|
202
|
-
* - Retorne mensagens de erro
|
|
202
|
+
* - Retorne mensagens de erro úteis
|
|
203
203
|
*/
|
|
204
204
|
async handler(input) {
|
|
205
205
|
try {
|
|
206
206
|
const validatedInput = FilesInputSchema.parse(input);
|
|
207
|
-
// Aplicar auto-
|
|
207
|
+
// Aplicar auto-detecção apenas para owner dentro do provider especificado
|
|
208
208
|
const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.provider);
|
|
209
|
-
// Usar o provider especificado pelo
|
|
209
|
+
// Usar o provider especificado pelo usuário
|
|
210
210
|
const provider = index_js_1.globalProviderFactory.getProvider(processedInput.provider);
|
|
211
211
|
if (!provider) {
|
|
212
|
-
throw new Error(`Provider '${processedInput.provider}'
|
|
212
|
+
throw new Error(`Provider '${processedInput.provider}' não encontrado`);
|
|
213
213
|
}
|
|
214
214
|
// Obter o owner do provider
|
|
215
215
|
const owner = (await provider.getCurrentUser()).login;
|
|
@@ -229,49 +229,49 @@ exports.filesTool = {
|
|
|
229
229
|
case 'upload-project':
|
|
230
230
|
return await this.uploadProject(processedInput, provider, owner);
|
|
231
231
|
default:
|
|
232
|
-
throw new Error(`
|
|
232
|
+
throw new Error(`Ação não suportada: ${processedInput.action}`);
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
235
|
catch (error) {
|
|
236
236
|
return {
|
|
237
237
|
success: false,
|
|
238
238
|
action: input.action,
|
|
239
|
-
message: 'Erro na
|
|
239
|
+
message: 'Erro na operação de arquivos',
|
|
240
240
|
error: error instanceof Error ? error.message : String(error)
|
|
241
241
|
};
|
|
242
242
|
}
|
|
243
243
|
},
|
|
244
244
|
/**
|
|
245
|
-
*
|
|
245
|
+
* Obtém o conteúdo de um arquivo específico
|
|
246
246
|
*
|
|
247
247
|
* FUNCIONALIDADE:
|
|
248
|
-
* - Retorna
|
|
248
|
+
* - Retorna conteúdo completo do arquivo
|
|
249
249
|
* - Inclui metadados (SHA, tamanho, tipo)
|
|
250
|
-
* - Suporta diferentes
|
|
250
|
+
* - Suporta diferentes referências (branch, tag, commit)
|
|
251
251
|
*
|
|
252
|
-
*
|
|
253
|
-
* - owner:
|
|
254
|
-
* - repo: Nome do
|
|
252
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
253
|
+
* - owner: Proprietário do repositório
|
|
254
|
+
* - repo: Nome do repositório
|
|
255
255
|
* - path: Caminho do arquivo
|
|
256
256
|
*
|
|
257
|
-
*
|
|
258
|
-
* - ref: Branch, tag ou commit (
|
|
257
|
+
* PARÂMETROS OPCIONAIS:
|
|
258
|
+
* - ref: Branch, tag ou commit (padrão: branch padrão)
|
|
259
259
|
*
|
|
260
|
-
*
|
|
261
|
-
* - Todos os
|
|
260
|
+
* VALIDAÇÕES:
|
|
261
|
+
* - Todos os parâmetros obrigatórios
|
|
262
262
|
* - Arquivo deve existir no caminho especificado
|
|
263
|
-
* -
|
|
263
|
+
* - Referência deve ser válida
|
|
264
264
|
*
|
|
265
|
-
*
|
|
266
|
-
* - Use para leitura de arquivos de
|
|
265
|
+
* RECOMENDAÇÕES:
|
|
266
|
+
* - Use para leitura de arquivos de configuração
|
|
267
267
|
* - Verifique tamanho antes de ler arquivos grandes
|
|
268
|
-
* - Use
|
|
269
|
-
* - Trate arquivos
|
|
268
|
+
* - Use referências específicas para versões
|
|
269
|
+
* - Trate arquivos binários adequadamente
|
|
270
270
|
*/
|
|
271
271
|
async getFile(params, provider, owner) {
|
|
272
272
|
try {
|
|
273
273
|
if (!owner || !params.repo || !params.path) {
|
|
274
|
-
throw new Error('repo e path
|
|
274
|
+
throw new Error('repo e path são obrigatórios');
|
|
275
275
|
}
|
|
276
276
|
const file = await provider.getFile(owner, params.repo, params.path, params.ref);
|
|
277
277
|
return {
|
|
@@ -286,38 +286,38 @@ exports.filesTool = {
|
|
|
286
286
|
}
|
|
287
287
|
},
|
|
288
288
|
/**
|
|
289
|
-
* Cria um novo arquivo no
|
|
289
|
+
* Cria um novo arquivo no repositório
|
|
290
290
|
*
|
|
291
291
|
* FUNCIONALIDADE:
|
|
292
|
-
* - Cria arquivo com
|
|
293
|
-
* - Faz commit
|
|
294
|
-
* - Suporta
|
|
292
|
+
* - Cria arquivo com conteúdo especificado
|
|
293
|
+
* - Faz commit automático com mensagem
|
|
294
|
+
* - Suporta criação em branches específicas
|
|
295
295
|
*
|
|
296
|
-
*
|
|
297
|
-
* - owner:
|
|
298
|
-
* - repo: Nome do
|
|
296
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
297
|
+
* - owner: Proprietário do repositório
|
|
298
|
+
* - repo: Nome do repositório
|
|
299
299
|
* - path: Caminho do arquivo
|
|
300
|
-
* - content:
|
|
300
|
+
* - content: Conteúdo do arquivo
|
|
301
301
|
* - message: Mensagem de commit
|
|
302
302
|
*
|
|
303
|
-
*
|
|
304
|
-
* - branch: Branch de destino (
|
|
303
|
+
* PARÂMETROS OPCIONAIS:
|
|
304
|
+
* - branch: Branch de destino (padrão: branch padrão)
|
|
305
305
|
*
|
|
306
|
-
*
|
|
307
|
-
* - Todos os
|
|
308
|
-
* - Caminho deve ser
|
|
309
|
-
* -
|
|
306
|
+
* VALIDAÇÕES:
|
|
307
|
+
* - Todos os parâmetros obrigatórios
|
|
308
|
+
* - Caminho deve ser válido
|
|
309
|
+
* - Usuário deve ter permissão de escrita
|
|
310
310
|
*
|
|
311
|
-
*
|
|
311
|
+
* RECOMENDAÇÕES:
|
|
312
312
|
* - Use mensagens de commit descritivas
|
|
313
|
-
* - Valide
|
|
314
|
-
* - Use branches para
|
|
315
|
-
* - Documente
|
|
313
|
+
* - Valide conteúdo antes de enviar
|
|
314
|
+
* - Use branches para mudanças grandes
|
|
315
|
+
* - Documente propósito do arquivo
|
|
316
316
|
*/
|
|
317
317
|
async createFile(params, provider, owner) {
|
|
318
318
|
try {
|
|
319
319
|
if (!owner || !params.repo || !params.path || !params.content || !params.message) {
|
|
320
|
-
throw new Error('repo, path, content e message
|
|
320
|
+
throw new Error('repo, path, content e message são obrigatórios');
|
|
321
321
|
}
|
|
322
322
|
const result = await provider.createFile(owner, params.repo, params.path, params.content, params.message, params.branch);
|
|
323
323
|
return {
|
|
@@ -332,41 +332,41 @@ exports.filesTool = {
|
|
|
332
332
|
}
|
|
333
333
|
},
|
|
334
334
|
/**
|
|
335
|
-
* Atualiza um arquivo existente no
|
|
335
|
+
* Atualiza um arquivo existente no repositório
|
|
336
336
|
*
|
|
337
337
|
* FUNCIONALIDADE:
|
|
338
|
-
* - Atualiza
|
|
339
|
-
* - Faz commit com nova
|
|
338
|
+
* - Atualiza conteúdo do arquivo
|
|
339
|
+
* - Faz commit com nova versão
|
|
340
340
|
* - Requer SHA do arquivo atual
|
|
341
341
|
*
|
|
342
|
-
*
|
|
343
|
-
* - owner:
|
|
344
|
-
* - repo: Nome do
|
|
342
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
343
|
+
* - owner: Proprietário do repositório
|
|
344
|
+
* - repo: Nome do repositório
|
|
345
345
|
* - path: Caminho do arquivo
|
|
346
|
-
* - content: Novo
|
|
346
|
+
* - content: Novo conteúdo
|
|
347
347
|
* - message: Mensagem de commit
|
|
348
348
|
* - sha: SHA do arquivo atual
|
|
349
349
|
*
|
|
350
|
-
*
|
|
351
|
-
* - branch: Branch de destino (
|
|
350
|
+
* PARÂMETROS OPCIONAIS:
|
|
351
|
+
* - branch: Branch de destino (padrão: branch padrão)
|
|
352
352
|
*
|
|
353
|
-
*
|
|
354
|
-
* - Todos os
|
|
353
|
+
* VALIDAÇÕES:
|
|
354
|
+
* - Todos os parâmetros obrigatórios
|
|
355
355
|
* - Arquivo deve existir
|
|
356
|
-
* - SHA deve ser
|
|
356
|
+
* - SHA deve ser válido
|
|
357
357
|
*
|
|
358
|
-
*
|
|
358
|
+
* RECOMENDAÇÕES:
|
|
359
359
|
* - Sempre obtenha SHA atual antes de atualizar
|
|
360
360
|
* - Use mensagens de commit descritivas
|
|
361
|
-
* - Verifique se arquivo
|
|
362
|
-
* - Teste
|
|
361
|
+
* - Verifique se arquivo não foi modificado por outro usuário
|
|
362
|
+
* - Teste mudanças antes de commitar
|
|
363
363
|
*/
|
|
364
364
|
async updateFile(params, provider, owner) {
|
|
365
365
|
try {
|
|
366
366
|
if (!owner || !params.repo || !params.path || !params.content || !params.message) {
|
|
367
|
-
throw new Error('repo, path, content e message
|
|
367
|
+
throw new Error('repo, path, content e message são obrigatórios');
|
|
368
368
|
}
|
|
369
|
-
// Se
|
|
369
|
+
// Se não foi fornecido SHA, obter automaticamente
|
|
370
370
|
let fileSha = params.sha;
|
|
371
371
|
if (!fileSha) {
|
|
372
372
|
try {
|
|
@@ -374,7 +374,7 @@ exports.filesTool = {
|
|
|
374
374
|
fileSha = existingFile.sha;
|
|
375
375
|
}
|
|
376
376
|
catch (error) {
|
|
377
|
-
throw new Error('
|
|
377
|
+
throw new Error('Não foi possível obter SHA do arquivo. Forneça sha ou verifique se o arquivo existe.');
|
|
378
378
|
}
|
|
379
379
|
}
|
|
380
380
|
const result = await provider.updateFile(owner, params.repo, params.path, params.content, params.message, fileSha, params.branch);
|
|
@@ -390,40 +390,40 @@ exports.filesTool = {
|
|
|
390
390
|
}
|
|
391
391
|
},
|
|
392
392
|
/**
|
|
393
|
-
* Deleta um arquivo do
|
|
393
|
+
* Deleta um arquivo do repositório
|
|
394
394
|
*
|
|
395
395
|
* FUNCIONALIDADE:
|
|
396
396
|
* - Remove arquivo especificado
|
|
397
|
-
* - Faz commit de
|
|
397
|
+
* - Faz commit de exclusão
|
|
398
398
|
* - Requer SHA do arquivo
|
|
399
399
|
*
|
|
400
|
-
*
|
|
401
|
-
* - owner:
|
|
402
|
-
* - repo: Nome do
|
|
400
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
401
|
+
* - owner: Proprietário do repositório
|
|
402
|
+
* - repo: Nome do repositório
|
|
403
403
|
* - path: Caminho do arquivo
|
|
404
404
|
* - message: Mensagem de commit
|
|
405
405
|
* - sha: SHA do arquivo
|
|
406
406
|
*
|
|
407
|
-
*
|
|
408
|
-
* - branch: Branch de destino (
|
|
407
|
+
* PARÂMETROS OPCIONAIS:
|
|
408
|
+
* - branch: Branch de destino (padrão: branch padrão)
|
|
409
409
|
*
|
|
410
|
-
*
|
|
411
|
-
* - Todos os
|
|
410
|
+
* VALIDAÇÕES:
|
|
411
|
+
* - Todos os parâmetros obrigatórios
|
|
412
412
|
* - Arquivo deve existir
|
|
413
|
-
* - SHA deve ser
|
|
413
|
+
* - SHA deve ser válido
|
|
414
414
|
*
|
|
415
|
-
*
|
|
416
|
-
* - Confirme
|
|
415
|
+
* RECOMENDAÇÕES:
|
|
416
|
+
* - Confirme exclusão antes de executar
|
|
417
417
|
* - Use mensagens de commit descritivas
|
|
418
|
-
* - Verifique
|
|
419
|
-
* - Mantenha backup se
|
|
418
|
+
* - Verifique dependências do arquivo
|
|
419
|
+
* - Mantenha backup se necessário
|
|
420
420
|
*/
|
|
421
421
|
async deleteFile(params, provider, owner) {
|
|
422
422
|
try {
|
|
423
423
|
if (!owner || !params.repo || !params.path || !params.message) {
|
|
424
|
-
throw new Error('repo, path e message
|
|
424
|
+
throw new Error('repo, path e message são obrigatórios');
|
|
425
425
|
}
|
|
426
|
-
// Se
|
|
426
|
+
// Se não foi fornecido SHA, obter automaticamente
|
|
427
427
|
let fileSha = params.sha;
|
|
428
428
|
if (!fileSha) {
|
|
429
429
|
try {
|
|
@@ -431,7 +431,7 @@ exports.filesTool = {
|
|
|
431
431
|
fileSha = existingFile.sha;
|
|
432
432
|
}
|
|
433
433
|
catch (error) {
|
|
434
|
-
throw new Error('
|
|
434
|
+
throw new Error('Não foi possível obter SHA do arquivo. Forneça sha ou verifique se o arquivo existe.');
|
|
435
435
|
}
|
|
436
436
|
}
|
|
437
437
|
const result = await provider.deleteFile(owner, params.repo, params.path, params.message, fileSha, params.branch);
|
|
@@ -447,39 +447,39 @@ exports.filesTool = {
|
|
|
447
447
|
}
|
|
448
448
|
},
|
|
449
449
|
/**
|
|
450
|
-
* Lista
|
|
450
|
+
* Lista conteúdo de um diretório
|
|
451
451
|
*
|
|
452
452
|
* FUNCIONALIDADE:
|
|
453
|
-
* - Lista arquivos e
|
|
454
|
-
* - Suporta
|
|
453
|
+
* - Lista arquivos e subdiretórios
|
|
454
|
+
* - Suporta paginação
|
|
455
455
|
* - Inclui metadados de cada item
|
|
456
456
|
*
|
|
457
|
-
*
|
|
458
|
-
* - owner:
|
|
459
|
-
* - repo: Nome do
|
|
457
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
458
|
+
* - owner: Proprietário do repositório
|
|
459
|
+
* - repo: Nome do repositório
|
|
460
460
|
*
|
|
461
|
-
*
|
|
462
|
-
* - path: Caminho do
|
|
463
|
-
* - ref: Branch, tag ou commit (
|
|
464
|
-
* - page:
|
|
465
|
-
* - limit: Itens por
|
|
461
|
+
* PARÂMETROS OPCIONAIS:
|
|
462
|
+
* - path: Caminho do diretório (padrão: raiz)
|
|
463
|
+
* - ref: Branch, tag ou commit (padrão: branch padrão)
|
|
464
|
+
* - page: Página da listagem (padrão: 1)
|
|
465
|
+
* - limit: Itens por página (padrão: 30, máximo: 100)
|
|
466
466
|
*
|
|
467
|
-
*
|
|
468
|
-
* - e repo
|
|
469
|
-
* -
|
|
467
|
+
* VALIDAÇÕES:
|
|
468
|
+
* - e repo obrigatórios
|
|
469
|
+
* - Diretório deve existir
|
|
470
470
|
* - Page deve ser >= 1
|
|
471
471
|
* - Limit deve ser entre 1 e 100
|
|
472
472
|
*
|
|
473
|
-
*
|
|
474
|
-
* - Use
|
|
475
|
-
* - Monitore
|
|
476
|
-
* - Use
|
|
477
|
-
* - Organize estrutura de
|
|
473
|
+
* RECOMENDAÇÕES:
|
|
474
|
+
* - Use paginação para diretórios grandes
|
|
475
|
+
* - Monitore número total de itens
|
|
476
|
+
* - Use referências específicas para versões
|
|
477
|
+
* - Organize estrutura de diretórios
|
|
478
478
|
*/
|
|
479
479
|
async listFiles(params, provider, owner) {
|
|
480
480
|
try {
|
|
481
481
|
if (!owner || !params.repo) {
|
|
482
|
-
throw new Error('e repo
|
|
482
|
+
throw new Error('e repo são obrigatórios');
|
|
483
483
|
}
|
|
484
484
|
const path = params.path || '';
|
|
485
485
|
const page = params.page || 1;
|
|
@@ -503,41 +503,41 @@ exports.filesTool = {
|
|
|
503
503
|
}
|
|
504
504
|
},
|
|
505
505
|
/**
|
|
506
|
-
* Busca arquivos por
|
|
506
|
+
* Busca arquivos por conteúdo
|
|
507
507
|
*
|
|
508
508
|
* FUNCIONALIDADE:
|
|
509
|
-
* - Busca arquivos que contenham texto
|
|
510
|
-
* - Suporta diferentes
|
|
509
|
+
* - Busca arquivos que contenham texto específico
|
|
510
|
+
* - Suporta diferentes referências
|
|
511
511
|
* - Retorna resultados relevantes
|
|
512
512
|
*
|
|
513
|
-
*
|
|
514
|
-
* - owner:
|
|
515
|
-
* - repo: Nome do
|
|
513
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
514
|
+
* - owner: Proprietário do repositório
|
|
515
|
+
* - repo: Nome do repositório
|
|
516
516
|
* - query: Termo de busca
|
|
517
517
|
*
|
|
518
|
-
*
|
|
519
|
-
* - ref: Branch, tag ou commit (
|
|
518
|
+
* PARÂMETROS OPCIONAIS:
|
|
519
|
+
* - ref: Branch, tag ou commit (padrão: branch padrão)
|
|
520
520
|
*
|
|
521
|
-
*
|
|
522
|
-
* - Todos os
|
|
521
|
+
* VALIDAÇÕES:
|
|
522
|
+
* - Todos os parâmetros obrigatórios
|
|
523
523
|
* - Query deve ter pelo menos 3 caracteres
|
|
524
|
-
* -
|
|
524
|
+
* - Repositório deve existir
|
|
525
525
|
*
|
|
526
|
-
*
|
|
527
|
-
* - Use termos de busca
|
|
528
|
-
* - Combine com filtros de
|
|
529
|
-
* - Use
|
|
530
|
-
* - Analise resultados para
|
|
526
|
+
* RECOMENDAÇÕES:
|
|
527
|
+
* - Use termos de busca específicos
|
|
528
|
+
* - Combine com filtros de diretório
|
|
529
|
+
* - Use referências para versões específicas
|
|
530
|
+
* - Analise resultados para relevância
|
|
531
531
|
*/
|
|
532
532
|
async searchFiles(params, provider, owner) {
|
|
533
533
|
try {
|
|
534
534
|
if (!owner || !params.repo || !params.query) {
|
|
535
|
-
throw new Error('repo e query
|
|
535
|
+
throw new Error('repo e query são obrigatórios');
|
|
536
536
|
}
|
|
537
537
|
if (params.query.length < 3) {
|
|
538
538
|
throw new Error('Query deve ter pelo menos 3 caracteres');
|
|
539
539
|
}
|
|
540
|
-
// Implementar busca de arquivos por
|
|
540
|
+
// Implementar busca de arquivos por conteúdo
|
|
541
541
|
// Por enquanto, retorna mensagem de funcionalidade
|
|
542
542
|
return {
|
|
543
543
|
success: true,
|
|
@@ -545,8 +545,8 @@ exports.filesTool = {
|
|
|
545
545
|
message: `Busca por '${params.query}' solicitada`,
|
|
546
546
|
data: {
|
|
547
547
|
query: params.query,
|
|
548
|
-
ref: params.ref || 'branch
|
|
549
|
-
results: 'Funcionalidade de busca
|
|
548
|
+
ref: params.ref || 'branch padrão',
|
|
549
|
+
results: 'Funcionalidade de busca será implementada'
|
|
550
550
|
}
|
|
551
551
|
};
|
|
552
552
|
}
|
|
@@ -555,38 +555,38 @@ exports.filesTool = {
|
|
|
555
555
|
}
|
|
556
556
|
},
|
|
557
557
|
/**
|
|
558
|
-
* Faz upload de todo o projeto para o
|
|
558
|
+
* Faz upload de todo o projeto para o repositório
|
|
559
559
|
*
|
|
560
560
|
* FUNCIONALIDADE:
|
|
561
561
|
* - Envia todos os arquivos do projeto local
|
|
562
|
-
* - Ignora
|
|
563
|
-
* - Ignora arquivos
|
|
562
|
+
* - Ignora diretórios desnecessários (node_modules, .git, dist)
|
|
563
|
+
* - Ignora arquivos temporários e logs
|
|
564
564
|
* - Faz commit com mensagem personalizada
|
|
565
565
|
*
|
|
566
|
-
*
|
|
567
|
-
* - owner:
|
|
568
|
-
* - repo: Nome do
|
|
566
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
567
|
+
* - owner: Proprietário do repositório
|
|
568
|
+
* - repo: Nome do repositório
|
|
569
569
|
* - projectPath: Caminho do projeto local
|
|
570
570
|
* - message: Mensagem de commit
|
|
571
571
|
*
|
|
572
|
-
*
|
|
573
|
-
* - branch: Branch de destino (
|
|
572
|
+
* PARÂMETROS OPCIONAIS:
|
|
573
|
+
* - branch: Branch de destino (padrão: branch padrão)
|
|
574
574
|
*
|
|
575
|
-
*
|
|
576
|
-
* - Todos os
|
|
575
|
+
* VALIDAÇÕES:
|
|
576
|
+
* - Todos os parâmetros obrigatórios
|
|
577
577
|
* - Projeto deve existir no caminho especificado
|
|
578
|
-
* -
|
|
578
|
+
* - Usuário deve ter permissão de escrita
|
|
579
579
|
*
|
|
580
|
-
*
|
|
580
|
+
* RECOMENDAÇÕES:
|
|
581
581
|
* - Use mensagens de commit descritivas
|
|
582
|
-
* - Verifique se o
|
|
583
|
-
* - Use branches para
|
|
582
|
+
* - Verifique se o repositório está limpo
|
|
583
|
+
* - Use branches para mudanças grandes
|
|
584
584
|
* - Monitore erros de upload
|
|
585
585
|
*/
|
|
586
586
|
async uploadProject(params, provider, owner) {
|
|
587
587
|
try {
|
|
588
588
|
if (!owner || !params.repo || !params.projectPath || !params.message) {
|
|
589
|
-
throw new Error('repo, projectPath e message
|
|
589
|
+
throw new Error('repo, projectPath e message são obrigatórios');
|
|
590
590
|
}
|
|
591
591
|
const result = await provider.uploadProject(owner, params.repo, params.projectPath, params.message, params.branch);
|
|
592
592
|
return {
|
|
@@ -605,7 +605,7 @@ exports.filesTool = {
|
|
|
605
605
|
}
|
|
606
606
|
},
|
|
607
607
|
/**
|
|
608
|
-
* Verifica se erro
|
|
608
|
+
* Verifica se erro é relacionado a Git
|
|
609
609
|
*/
|
|
610
610
|
isGitRelatedError(errorMessage) {
|
|
611
611
|
const gitKeywords = [
|