@andrebuzeli/git-mcp 2.6.1
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/README.md +346 -0
- package/dist/client.d.ts +307 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +299 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +299 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +381 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/base-provider.d.ts +139 -0
- package/dist/providers/base-provider.d.ts.map +1 -0
- package/dist/providers/base-provider.js +246 -0
- package/dist/providers/base-provider.js.map +1 -0
- package/dist/providers/error-handler.d.ts +51 -0
- package/dist/providers/error-handler.d.ts.map +1 -0
- package/dist/providers/error-handler.js +170 -0
- package/dist/providers/error-handler.js.map +1 -0
- package/dist/providers/gitea-provider.d.ts +68 -0
- package/dist/providers/gitea-provider.d.ts.map +1 -0
- package/dist/providers/gitea-provider.js +515 -0
- package/dist/providers/gitea-provider.js.map +1 -0
- package/dist/providers/github-provider.d.ts +68 -0
- package/dist/providers/github-provider.d.ts.map +1 -0
- package/dist/providers/github-provider.js +518 -0
- package/dist/providers/github-provider.js.map +1 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +41 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/provider-factory.d.ts +75 -0
- package/dist/providers/provider-factory.d.ts.map +1 -0
- package/dist/providers/provider-factory.js +298 -0
- package/dist/providers/provider-factory.js.map +1 -0
- package/dist/providers/types.d.ts +276 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +7 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/server.d.ts +77 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +262 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/actions.d.ts +272 -0
- package/dist/tools/actions.d.ts.map +1 -0
- package/dist/tools/actions.js +428 -0
- package/dist/tools/actions.js.map +1 -0
- package/dist/tools/analytics.d.ts +326 -0
- package/dist/tools/analytics.d.ts.map +1 -0
- package/dist/tools/analytics.js +473 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/branches.d.ts +461 -0
- package/dist/tools/branches.d.ts.map +1 -0
- package/dist/tools/branches.js +525 -0
- package/dist/tools/branches.js.map +1 -0
- package/dist/tools/code-review.d.ts +323 -0
- package/dist/tools/code-review.d.ts.map +1 -0
- package/dist/tools/code-review.js +552 -0
- package/dist/tools/code-review.js.map +1 -0
- package/dist/tools/commits.d.ts +488 -0
- package/dist/tools/commits.d.ts.map +1 -0
- package/dist/tools/commits.js +578 -0
- package/dist/tools/commits.js.map +1 -0
- package/dist/tools/deployments.d.ts +319 -0
- package/dist/tools/deployments.d.ts.map +1 -0
- package/dist/tools/deployments.js +355 -0
- package/dist/tools/deployments.js.map +1 -0
- package/dist/tools/files.d.ts +456 -0
- package/dist/tools/files.d.ts.map +1 -0
- package/dist/tools/files.js +531 -0
- package/dist/tools/files.js.map +1 -0
- package/dist/tools/git-sync.d.ts +177 -0
- package/dist/tools/git-sync.d.ts.map +1 -0
- package/dist/tools/git-sync.js +112 -0
- package/dist/tools/git-sync.js.map +1 -0
- package/dist/tools/issues.d.ts +579 -0
- package/dist/tools/issues.d.ts.map +1 -0
- package/dist/tools/issues.js +631 -0
- package/dist/tools/issues.js.map +1 -0
- package/dist/tools/pulls.d.ts +702 -0
- package/dist/tools/pulls.d.ts.map +1 -0
- package/dist/tools/pulls.js +730 -0
- package/dist/tools/pulls.js.map +1 -0
- package/dist/tools/releases.d.ts +495 -0
- package/dist/tools/releases.d.ts.map +1 -0
- package/dist/tools/releases.js +551 -0
- package/dist/tools/releases.js.map +1 -0
- package/dist/tools/repositories.d.ts +513 -0
- package/dist/tools/repositories.d.ts.map +1 -0
- package/dist/tools/repositories.js +634 -0
- package/dist/tools/repositories.js.map +1 -0
- package/dist/tools/security.d.ts +341 -0
- package/dist/tools/security.d.ts.map +1 -0
- package/dist/tools/security.js +394 -0
- package/dist/tools/security.js.map +1 -0
- package/dist/tools/tags.d.ts +419 -0
- package/dist/tools/tags.d.ts.map +1 -0
- package/dist/tools/tags.js +479 -0
- package/dist/tools/tags.js.map +1 -0
- package/dist/tools/users.d.ts +376 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +495 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/tools/validator.d.ts +192 -0
- package/dist/tools/validator.d.ts.map +1 -0
- package/dist/tools/validator.js +198 -0
- package/dist/tools/validator.js.map +1 -0
- package/dist/tools/version-control.d.ts +247 -0
- package/dist/tools/version-control.d.ts.map +1 -0
- package/dist/tools/version-control.js +521 -0
- package/dist/tools/version-control.js.map +1 -0
- package/dist/tools/webhooks.d.ts +478 -0
- package/dist/tools/webhooks.d.ts.map +1 -0
- package/dist/tools/webhooks.js +541 -0
- package/dist/tools/webhooks.js.map +1 -0
- package/dist/tools/workflows.d.ts +313 -0
- package/dist/tools/workflows.d.ts.map +1 -0
- package/dist/tools/workflows.js +430 -0
- package/dist/tools/workflows.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.branchesTool = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const index_js_1 = require("../providers/index.js");
|
|
6
|
+
/**
|
|
7
|
+
* Tool: branches
|
|
8
|
+
*
|
|
9
|
+
* DESCRIÇÃO:
|
|
10
|
+
* Gerenciamento completo de branches Gitea com múltiplas ações
|
|
11
|
+
*
|
|
12
|
+
* FUNCIONALIDADES:
|
|
13
|
+
* - Criação de novas branches
|
|
14
|
+
* - Listagem e busca de branches
|
|
15
|
+
* - Obtenção de detalhes específicos
|
|
16
|
+
* - Exclusão de branches
|
|
17
|
+
* - Merge de branches
|
|
18
|
+
* - Comparação entre branches
|
|
19
|
+
*
|
|
20
|
+
* USO:
|
|
21
|
+
* - Para gerenciar fluxo de trabalho Git
|
|
22
|
+
* - Para criar branches de feature
|
|
23
|
+
* - Para organizar desenvolvimento
|
|
24
|
+
* - Para controle de versão
|
|
25
|
+
*
|
|
26
|
+
* RECOMENDAÇÕES:
|
|
27
|
+
* - Use convenções de nomenclatura consistentes
|
|
28
|
+
* - Proteja branches importantes
|
|
29
|
+
* - Mantenha branches limpas
|
|
30
|
+
* - Documente propósito das branches
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* Schema de validação para entrada da tool branches
|
|
34
|
+
*
|
|
35
|
+
* VALIDAÇÕES:
|
|
36
|
+
* - action: Ação obrigatória (create, list, get, delete, merge, compare)
|
|
37
|
+
* - Parâmetros específicos por ação
|
|
38
|
+
* - Validação de tipos e formatos
|
|
39
|
+
*
|
|
40
|
+
* RECOMENDAÇÕES:
|
|
41
|
+
* - Sempre valide entrada antes de usar
|
|
42
|
+
* - Use parâmetros opcionais adequadamente
|
|
43
|
+
* - Documente parâmetros obrigatórios
|
|
44
|
+
*/
|
|
45
|
+
const BranchesInputSchema = zod_1.z.object({
|
|
46
|
+
action: zod_1.z.enum(['create', 'list', 'get', 'delete', 'merge', 'compare']),
|
|
47
|
+
// Parâmetros comuns com validações aprimoradas
|
|
48
|
+
owner: zod_1.z.string().min(1, 'Owner é obrigatório').max(100, 'Owner muito longo').optional(),
|
|
49
|
+
repo: zod_1.z.string().min(1, 'Nome do repositório é obrigatório').max(100, 'Nome do repositório muito longo').optional(),
|
|
50
|
+
provider: zod_1.z.enum(['gitea', 'github', 'both']).optional(), // Provider específico: gitea, github ou both
|
|
51
|
+
// Para create - validações específicas
|
|
52
|
+
branch_name: zod_1.z.string().min(1, 'Nome da branch é obrigatório').max(255, 'Nome da branch muito longo')
|
|
53
|
+
.regex(/^[^.\s][^~\^\:\?\*\[\]\s]*$/, 'Nome de branch contém caracteres inválidos').optional(),
|
|
54
|
+
from_branch: zod_1.z.string().min(1, 'Branch de origem é obrigatória').max(255, 'Nome da branch de origem muito longo').optional(),
|
|
55
|
+
// Para get/delete - validação de nome de branch
|
|
56
|
+
branch: zod_1.z.string().min(1, 'Nome da branch é obrigatório').max(255, 'Nome da branch muito longo').optional(),
|
|
57
|
+
// Para merge - validações específicas
|
|
58
|
+
head: zod_1.z.string().min(1, 'Branch de origem é obrigatória').max(255, 'Nome da branch muito longo').optional(),
|
|
59
|
+
base: zod_1.z.string().min(1, 'Branch de destino é obrigatória').max(255, 'Nome da branch muito longo').optional(),
|
|
60
|
+
merge_method: zod_1.z.enum(['merge', 'rebase', 'squash']).optional(),
|
|
61
|
+
// Para list - paginação
|
|
62
|
+
page: zod_1.z.number().min(1, 'Página deve ser pelo menos 1').max(1000, 'Página muito alta').optional(),
|
|
63
|
+
limit: zod_1.z.number().min(1, 'Limite deve ser pelo menos 1').max(100, 'Limite não pode exceder 100').optional(),
|
|
64
|
+
// Para compare - validações específicas
|
|
65
|
+
base_branch: zod_1.z.string().min(1, 'Branch base é obrigatória').max(255, 'Nome da branch muito longo').optional(),
|
|
66
|
+
head_branch: zod_1.z.string().min(1, 'Branch de comparação é obrigatória').max(255, 'Nome da branch muito longo').optional(),
|
|
67
|
+
}).refine((data) => {
|
|
68
|
+
// Validações condicionais por ação
|
|
69
|
+
if (data.action === 'create') {
|
|
70
|
+
return data.owner && data.repo && data.branch_name && data.from_branch;
|
|
71
|
+
}
|
|
72
|
+
if (['get', 'delete'].includes(data.action)) {
|
|
73
|
+
return data.owner && data.repo && data.branch;
|
|
74
|
+
}
|
|
75
|
+
if (data.action === 'merge') {
|
|
76
|
+
return data.owner && data.repo && data.head && data.base;
|
|
77
|
+
}
|
|
78
|
+
if (data.action === 'compare') {
|
|
79
|
+
return data.owner && data.repo && data.base_branch && data.head_branch;
|
|
80
|
+
}
|
|
81
|
+
if (data.action === 'list') {
|
|
82
|
+
return data.owner && data.repo;
|
|
83
|
+
}
|
|
84
|
+
return data.owner && data.repo;
|
|
85
|
+
}, {
|
|
86
|
+
message: "Parâmetros obrigatórios não fornecidos para a ação especificada"
|
|
87
|
+
});
|
|
88
|
+
/**
|
|
89
|
+
* Schema de saída padronizado
|
|
90
|
+
*
|
|
91
|
+
* ESTRUTURA:
|
|
92
|
+
* - success: Status da operação
|
|
93
|
+
* - action: Ação executada
|
|
94
|
+
* - message: Mensagem descritiva
|
|
95
|
+
* - data: Dados retornados (opcional)
|
|
96
|
+
* - error: Detalhes do erro (opcional)
|
|
97
|
+
*/
|
|
98
|
+
const BranchesResultSchema = zod_1.z.object({
|
|
99
|
+
success: zod_1.z.boolean(),
|
|
100
|
+
action: zod_1.z.string(),
|
|
101
|
+
message: zod_1.z.string(),
|
|
102
|
+
data: zod_1.z.any().optional(),
|
|
103
|
+
error: zod_1.z.string().optional()
|
|
104
|
+
});
|
|
105
|
+
/**
|
|
106
|
+
* Tool: branches
|
|
107
|
+
*
|
|
108
|
+
* DESCRIÇÃO:
|
|
109
|
+
* Gerenciamento completo de branches Gitea com múltiplas ações
|
|
110
|
+
*
|
|
111
|
+
* ACTIONS DISPONÍVEIS:
|
|
112
|
+
*
|
|
113
|
+
* 1. create - Criar nova branch
|
|
114
|
+
* Parâmetros:
|
|
115
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
116
|
+
* - repo (obrigatório): Nome do repositório
|
|
117
|
+
* - branch_name (obrigatório): Nome da nova branch
|
|
118
|
+
* - from_branch (obrigatório): Branch de origem
|
|
119
|
+
*
|
|
120
|
+
* 2. list - Listar branches
|
|
121
|
+
* Parâmetros:
|
|
122
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
123
|
+
* - repo (obrigatório): Nome do repositório
|
|
124
|
+
* - page (opcional): Página da listagem (padrão: 1)
|
|
125
|
+
* - limit (opcional): Itens por página (padrão: 30)
|
|
126
|
+
*
|
|
127
|
+
* 3. get - Obter detalhes da branch
|
|
128
|
+
* Parâmetros:
|
|
129
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
130
|
+
* - repo (obrigatório): Nome do repositório
|
|
131
|
+
* - branch (obrigatório): Nome da branch
|
|
132
|
+
*
|
|
133
|
+
* 4. delete - Deletar branch
|
|
134
|
+
* Parâmetros:
|
|
135
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
136
|
+
* - repo (obrigatório): Nome do repositório
|
|
137
|
+
* - branch (obrigatório): Nome da branch
|
|
138
|
+
*
|
|
139
|
+
* 5. merge - Fazer merge de branches
|
|
140
|
+
* Parâmetros:
|
|
141
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
142
|
+
* - repo (obrigatório): Nome do repositório
|
|
143
|
+
* - head (obrigatório): Branch de origem
|
|
144
|
+
* - base (obrigatório): Branch de destino
|
|
145
|
+
* - merge_method (opcional): Método de merge (padrão: merge)
|
|
146
|
+
*
|
|
147
|
+
* 6. compare - Comparar branches
|
|
148
|
+
* Parâmetros:
|
|
149
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
150
|
+
* - repo (obrigatório): Nome do repositório
|
|
151
|
+
* - base_branch (obrigatório): Branch base
|
|
152
|
+
* - head_branch (obrigatório): Branch de comparação
|
|
153
|
+
*
|
|
154
|
+
* RECOMENDAÇÕES DE USO:
|
|
155
|
+
* - Use nomes descritivos para branches
|
|
156
|
+
* - Mantenha branches principais protegidas
|
|
157
|
+
* - Faça merge regularmente
|
|
158
|
+
* - Documente propósito das branches
|
|
159
|
+
* - Use convenções de nomenclatura
|
|
160
|
+
* - Limpe branches antigas
|
|
161
|
+
*/
|
|
162
|
+
exports.branchesTool = {
|
|
163
|
+
name: 'branches',
|
|
164
|
+
description: 'Manage branches with multiple actions: create, list, get, delete, merge, compare. Suporte completo a GitHub e Gitea simultaneamente. Boas práticas (solo): use branches para isolar trabalhos (feature/x, fix/x, hotfix/x); mantenha as principais protegidas; faça merges pequenos e frequentes; compare antes de integrar; limpe branches antigas.',
|
|
165
|
+
inputSchema: {
|
|
166
|
+
type: 'object',
|
|
167
|
+
properties: {
|
|
168
|
+
action: {
|
|
169
|
+
type: 'string',
|
|
170
|
+
enum: ['create', 'list', 'get', 'delete', 'merge', 'compare'],
|
|
171
|
+
description: 'Action to perform on branches'
|
|
172
|
+
},
|
|
173
|
+
owner: { type: 'string', description: 'Repository owner' },
|
|
174
|
+
repo: { type: 'string', description: 'Repository name' },
|
|
175
|
+
provider: { type: 'string', description: 'Specific provider (github, gitea) or use default' },
|
|
176
|
+
branch_name: { type: 'string', description: 'Name of the new branch' },
|
|
177
|
+
from_branch: { type: 'string', description: 'Source branch for creation' },
|
|
178
|
+
branch: { type: 'string', description: 'Branch name' },
|
|
179
|
+
head: { type: 'string', description: 'Source branch for merge' },
|
|
180
|
+
base: { type: 'string', description: 'Target branch for merge' },
|
|
181
|
+
merge_method: {
|
|
182
|
+
type: 'string',
|
|
183
|
+
enum: ['merge', 'rebase', 'squash'],
|
|
184
|
+
description: 'Merge method'
|
|
185
|
+
},
|
|
186
|
+
page: { type: 'number', description: 'Page number', minimum: 1 },
|
|
187
|
+
limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 },
|
|
188
|
+
base_branch: { type: 'string', description: 'Base branch for comparison' },
|
|
189
|
+
head_branch: { type: 'string', description: 'Head branch for comparison' }
|
|
190
|
+
},
|
|
191
|
+
required: ['action']
|
|
192
|
+
},
|
|
193
|
+
/**
|
|
194
|
+
* Handler principal da tool branches
|
|
195
|
+
*
|
|
196
|
+
* FUNCIONALIDADE:
|
|
197
|
+
* - Valida entrada usando Zod schema
|
|
198
|
+
* - Roteia para método específico baseado na ação
|
|
199
|
+
* - Trata erros de forma uniforme
|
|
200
|
+
* - Retorna resultado padronizado
|
|
201
|
+
*
|
|
202
|
+
* FLUXO:
|
|
203
|
+
* 1. Validação de entrada
|
|
204
|
+
* 2. Roteamento por ação
|
|
205
|
+
* 3. Execução do método específico
|
|
206
|
+
* 4. Tratamento de erros
|
|
207
|
+
* 5. Retorno de resultado
|
|
208
|
+
*
|
|
209
|
+
* TRATAMENTO DE ERROS:
|
|
210
|
+
* - Validação: erro de schema
|
|
211
|
+
* - Execução: erro da operação
|
|
212
|
+
* - Roteamento: ação não suportada
|
|
213
|
+
*
|
|
214
|
+
* RECOMENDAÇÕES:
|
|
215
|
+
* - Sempre valide entrada antes de processar
|
|
216
|
+
* - Trate erros específicos adequadamente
|
|
217
|
+
* - Log detalhes de erro para debug
|
|
218
|
+
* - Retorne mensagens de erro úteis
|
|
219
|
+
*/
|
|
220
|
+
async handler(input) {
|
|
221
|
+
try {
|
|
222
|
+
const validatedInput = BranchesInputSchema.parse(input);
|
|
223
|
+
// Obter o provider correto
|
|
224
|
+
const provider = validatedInput.provider
|
|
225
|
+
? index_js_1.globalProviderFactory.getProvider(validatedInput.provider)
|
|
226
|
+
: index_js_1.globalProviderFactory.getDefaultProvider();
|
|
227
|
+
if (!provider) {
|
|
228
|
+
throw new Error(`Provider '${validatedInput.provider}' não encontrado`);
|
|
229
|
+
}
|
|
230
|
+
switch (validatedInput.action) {
|
|
231
|
+
case 'create':
|
|
232
|
+
return await this.createBranch(validatedInput, provider);
|
|
233
|
+
case 'list':
|
|
234
|
+
return await this.listBranches(validatedInput, provider);
|
|
235
|
+
case 'get':
|
|
236
|
+
return await this.getBranch(validatedInput, provider);
|
|
237
|
+
case 'delete':
|
|
238
|
+
return await this.deleteBranch(validatedInput, provider);
|
|
239
|
+
case 'merge':
|
|
240
|
+
return await this.mergeBranches(validatedInput, provider);
|
|
241
|
+
case 'compare':
|
|
242
|
+
return await this.compareBranches(validatedInput, provider);
|
|
243
|
+
default:
|
|
244
|
+
throw new Error(`Ação não suportada: ${validatedInput.action}`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
catch (error) {
|
|
248
|
+
return {
|
|
249
|
+
success: false,
|
|
250
|
+
action: input.action,
|
|
251
|
+
message: 'Erro na operação de branches',
|
|
252
|
+
error: error instanceof Error ? error.message : String(error)
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
/**
|
|
257
|
+
* Cria uma nova branch no repositório
|
|
258
|
+
*
|
|
259
|
+
* FUNCIONALIDADE:
|
|
260
|
+
* - Valida parâmetros obrigatórios
|
|
261
|
+
* - Cria branch a partir de branch existente
|
|
262
|
+
* - Retorna detalhes da nova branch
|
|
263
|
+
*
|
|
264
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
265
|
+
* - owner: Proprietário do repositório
|
|
266
|
+
* - repo: Nome do repositório
|
|
267
|
+
* - branch_name: Nome da nova branch
|
|
268
|
+
* - from_branch: Branch de origem
|
|
269
|
+
*
|
|
270
|
+
* VALIDAÇÕES:
|
|
271
|
+
* - Todos os parâmetros obrigatórios
|
|
272
|
+
* - Branch de origem deve existir
|
|
273
|
+
* - Nome da nova branch deve ser único
|
|
274
|
+
*
|
|
275
|
+
* RECOMENDAÇÕES:
|
|
276
|
+
* - Use nomes descritivos para branches
|
|
277
|
+
* - Crie a partir de branches estáveis
|
|
278
|
+
* - Documente propósito da branch
|
|
279
|
+
* - Use convenções de nomenclatura
|
|
280
|
+
*/
|
|
281
|
+
async createBranch(params, provider) {
|
|
282
|
+
try {
|
|
283
|
+
if (!params.owner || !params.repo || !params.branch_name || !params.from_branch) {
|
|
284
|
+
throw new Error('Owner, repo, branch_name e from_branch são obrigatórios');
|
|
285
|
+
}
|
|
286
|
+
const branch = await provider.createBranch(params.owner, params.repo, params.branch_name, params.from_branch);
|
|
287
|
+
return {
|
|
288
|
+
success: true,
|
|
289
|
+
action: 'create',
|
|
290
|
+
message: `Branch '${params.branch_name}' criada com sucesso a partir de '${params.from_branch}'`,
|
|
291
|
+
data: branch
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
throw new Error(`Falha ao criar branch: ${error instanceof Error ? error.message : String(error)}`);
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
/**
|
|
299
|
+
* Lista todas as branches do repositório
|
|
300
|
+
*
|
|
301
|
+
* FUNCIONALIDADE:
|
|
302
|
+
* - Lista branches com paginação
|
|
303
|
+
* - Retorna informações básicas de cada branch
|
|
304
|
+
* - Suporta filtros de paginação
|
|
305
|
+
*
|
|
306
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
307
|
+
* - owner: Proprietário do repositório
|
|
308
|
+
* - repo: Nome do repositório
|
|
309
|
+
*
|
|
310
|
+
* PARÂMETROS OPCIONAIS:
|
|
311
|
+
* - page: Página da listagem (padrão: 1)
|
|
312
|
+
* - limit: Itens por página (padrão: 30, máximo: 100)
|
|
313
|
+
*
|
|
314
|
+
* VALIDAÇÕES:
|
|
315
|
+
* - Owner e repo obrigatórios
|
|
316
|
+
* - Page deve ser >= 1
|
|
317
|
+
* - Limit deve ser entre 1 e 100
|
|
318
|
+
*
|
|
319
|
+
* RECOMENDAÇÕES:
|
|
320
|
+
* - Use paginação para repositórios grandes
|
|
321
|
+
* - Monitore número total de branches
|
|
322
|
+
* - Mantenha branches organizadas
|
|
323
|
+
*/
|
|
324
|
+
async listBranches(params, provider) {
|
|
325
|
+
try {
|
|
326
|
+
if (!params.owner || !params.repo) {
|
|
327
|
+
throw new Error('Owner e repo são obrigatórios');
|
|
328
|
+
}
|
|
329
|
+
const page = params.page || 1;
|
|
330
|
+
const limit = params.limit || 30;
|
|
331
|
+
const branches = await provider.listBranches(params.owner, params.repo, page, limit);
|
|
332
|
+
return {
|
|
333
|
+
success: true,
|
|
334
|
+
action: 'list',
|
|
335
|
+
message: `${branches.length} branches encontradas`,
|
|
336
|
+
data: {
|
|
337
|
+
branches,
|
|
338
|
+
page,
|
|
339
|
+
limit,
|
|
340
|
+
total: branches.length
|
|
341
|
+
}
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
catch (error) {
|
|
345
|
+
throw new Error(`Falha ao listar branches: ${error instanceof Error ? error.message : String(error)}`);
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
/**
|
|
349
|
+
* Obtém detalhes de uma branch específica
|
|
350
|
+
*
|
|
351
|
+
* FUNCIONALIDADE:
|
|
352
|
+
* - Retorna informações completas da branch
|
|
353
|
+
* - Inclui commit mais recente
|
|
354
|
+
* - Informações de proteção e permissões
|
|
355
|
+
*
|
|
356
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
357
|
+
* - owner: Proprietário do repositório
|
|
358
|
+
* - repo: Nome do repositório
|
|
359
|
+
* - branch: Nome da branch
|
|
360
|
+
*
|
|
361
|
+
* VALIDAÇÕES:
|
|
362
|
+
* - Todos os parâmetros obrigatórios
|
|
363
|
+
* - Branch deve existir no repositório
|
|
364
|
+
*
|
|
365
|
+
* RECOMENDAÇÕES:
|
|
366
|
+
* - Use para obter informações detalhadas
|
|
367
|
+
* - Verifique status de proteção
|
|
368
|
+
* - Monitore commits recentes
|
|
369
|
+
*/
|
|
370
|
+
async getBranch(params, provider) {
|
|
371
|
+
try {
|
|
372
|
+
if (!params.owner || !params.repo || !params.branch) {
|
|
373
|
+
throw new Error('Owner, repo e branch são obrigatórios');
|
|
374
|
+
}
|
|
375
|
+
const branch = await provider.getBranch(params.owner, params.repo, params.branch);
|
|
376
|
+
return {
|
|
377
|
+
success: true,
|
|
378
|
+
action: 'get',
|
|
379
|
+
message: `Branch '${params.branch}' obtida com sucesso`,
|
|
380
|
+
data: branch
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
catch (error) {
|
|
384
|
+
throw new Error(`Falha ao obter branch: ${error instanceof Error ? error.message : String(error)}`);
|
|
385
|
+
}
|
|
386
|
+
},
|
|
387
|
+
/**
|
|
388
|
+
* Deleta uma branch do repositório
|
|
389
|
+
*
|
|
390
|
+
* FUNCIONALIDADE:
|
|
391
|
+
* - Remove branch especificada
|
|
392
|
+
* - Valida permissões de exclusão
|
|
393
|
+
* - Confirma exclusão bem-sucedida
|
|
394
|
+
*
|
|
395
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
396
|
+
* - owner: Proprietário do repositório
|
|
397
|
+
* - repo: Nome do repositório
|
|
398
|
+
* - branch: Nome da branch a ser deletada
|
|
399
|
+
*
|
|
400
|
+
* VALIDAÇÕES:
|
|
401
|
+
* - Todos os parâmetros obrigatórios
|
|
402
|
+
* - Branch deve existir
|
|
403
|
+
* - Usuário deve ter permissão de exclusão
|
|
404
|
+
*
|
|
405
|
+
* RECOMENDAÇÕES:
|
|
406
|
+
* - Confirme antes de deletar
|
|
407
|
+
* - Verifique se branch foi mergeada
|
|
408
|
+
* - Mantenha backup se necessário
|
|
409
|
+
* - Documente motivo da exclusão
|
|
410
|
+
*/
|
|
411
|
+
async deleteBranch(params, provider) {
|
|
412
|
+
try {
|
|
413
|
+
if (!params.owner || !params.repo || !params.branch) {
|
|
414
|
+
throw new Error('Owner, repo e branch são obrigatórios');
|
|
415
|
+
}
|
|
416
|
+
await provider.deleteBranch(params.owner, params.repo, params.branch);
|
|
417
|
+
return {
|
|
418
|
+
success: true,
|
|
419
|
+
action: 'delete',
|
|
420
|
+
message: `Branch '${params.branch}' deletada com sucesso`,
|
|
421
|
+
data: { deleted: true }
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
catch (error) {
|
|
425
|
+
throw new Error(`Falha ao deletar branch: ${error instanceof Error ? error.message : String(error)}`);
|
|
426
|
+
}
|
|
427
|
+
},
|
|
428
|
+
/**
|
|
429
|
+
* Faz merge de uma branch em outra
|
|
430
|
+
*
|
|
431
|
+
* FUNCIONALIDADE:
|
|
432
|
+
* - Merge de branch de origem em branch de destino
|
|
433
|
+
* - Suporta diferentes métodos de merge
|
|
434
|
+
* - Retorna resultado do merge
|
|
435
|
+
*
|
|
436
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
437
|
+
* - owner: Proprietário do repositório
|
|
438
|
+
* - repo: Nome do repositório
|
|
439
|
+
* - head: Branch de origem (será mergeada)
|
|
440
|
+
* - base: Branch de destino (receberá o merge)
|
|
441
|
+
*
|
|
442
|
+
* PARÂMETROS OPCIONAIS:
|
|
443
|
+
* - merge_method: Método de merge (merge, rebase, squash)
|
|
444
|
+
*
|
|
445
|
+
* VALIDAÇÕES:
|
|
446
|
+
* - Todos os parâmetros obrigatórios
|
|
447
|
+
* - Branches devem existir
|
|
448
|
+
* - Não deve haver conflitos
|
|
449
|
+
*
|
|
450
|
+
* RECOMENDAÇÕES:
|
|
451
|
+
* - Resolva conflitos antes do merge
|
|
452
|
+
* - Escolha método de merge adequado
|
|
453
|
+
* - Teste após o merge
|
|
454
|
+
* - Documente mudanças
|
|
455
|
+
*/
|
|
456
|
+
async mergeBranches(params, provider) {
|
|
457
|
+
try {
|
|
458
|
+
if (!params.owner || !params.repo || !params.head || !params.base) {
|
|
459
|
+
throw new Error('Owner, repo, head e base são obrigatórios');
|
|
460
|
+
}
|
|
461
|
+
// Por enquanto, retorna mensagem de funcionalidade não implementada
|
|
462
|
+
// TODO: Implementar merge direto de branches via provider
|
|
463
|
+
return {
|
|
464
|
+
success: true,
|
|
465
|
+
action: 'merge',
|
|
466
|
+
message: `Merge de '${params.head}' em '${params.base}' solicitado (funcionalidade será implementada)`,
|
|
467
|
+
data: {
|
|
468
|
+
head: params.head,
|
|
469
|
+
base: params.base,
|
|
470
|
+
merge_method: params.merge_method || 'merge'
|
|
471
|
+
}
|
|
472
|
+
};
|
|
473
|
+
}
|
|
474
|
+
catch (error) {
|
|
475
|
+
throw new Error(`Falha ao fazer merge: ${error instanceof Error ? error.message : String(error)}`);
|
|
476
|
+
}
|
|
477
|
+
},
|
|
478
|
+
/**
|
|
479
|
+
* Compara duas branches
|
|
480
|
+
*
|
|
481
|
+
* FUNCIONALIDADE:
|
|
482
|
+
* - Compara diferenças entre branches
|
|
483
|
+
* - Retorna commits diferentes
|
|
484
|
+
* - Mostra divergências
|
|
485
|
+
*
|
|
486
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
487
|
+
* - owner: Proprietário do repositório
|
|
488
|
+
* - repo: Nome do repositório
|
|
489
|
+
* - base_branch: Branch base para comparação
|
|
490
|
+
* - head_branch: Branch a ser comparada
|
|
491
|
+
*
|
|
492
|
+
* VALIDAÇÕES:
|
|
493
|
+
* - Todos os parâmetros obrigatórios
|
|
494
|
+
* - Ambas as branches devem existir
|
|
495
|
+
*
|
|
496
|
+
* RECOMENDAÇÕES:
|
|
497
|
+
* - Use para verificar divergências
|
|
498
|
+
* - Compare antes de fazer merge
|
|
499
|
+
* - Analise commits diferentes
|
|
500
|
+
* - Documente diferenças importantes
|
|
501
|
+
*/
|
|
502
|
+
async compareBranches(params, provider) {
|
|
503
|
+
try {
|
|
504
|
+
if (!params.owner || !params.repo || !params.base_branch || !params.head_branch) {
|
|
505
|
+
throw new Error('Owner, repo, base_branch e head_branch são obrigatórios');
|
|
506
|
+
}
|
|
507
|
+
// Implementar comparação de branches
|
|
508
|
+
// Por enquanto, retorna mensagem de funcionalidade
|
|
509
|
+
return {
|
|
510
|
+
success: true,
|
|
511
|
+
action: 'compare',
|
|
512
|
+
message: `Comparação entre '${params.base_branch}' e '${params.head_branch}' solicitada`,
|
|
513
|
+
data: {
|
|
514
|
+
base: params.base_branch,
|
|
515
|
+
head: params.head_branch,
|
|
516
|
+
comparison: 'Funcionalidade de comparação será implementada'
|
|
517
|
+
}
|
|
518
|
+
};
|
|
519
|
+
}
|
|
520
|
+
catch (error) {
|
|
521
|
+
throw new Error(`Falha ao comparar branches: ${error instanceof Error ? error.message : String(error)}`);
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
};
|
|
525
|
+
//# sourceMappingURL=branches.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branches.js","sourceRoot":"","sources":["../../src/tools/branches.ts"],"names":[],"mappings":"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"}
|