@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-pulls.js
CHANGED
|
@@ -7,47 +7,47 @@ const user_detection_js_1 = require("../utils/user-detection.js");
|
|
|
7
7
|
/**
|
|
8
8
|
* Tool: pulls
|
|
9
9
|
*
|
|
10
|
-
*
|
|
10
|
+
* DESCRIÇÃO:
|
|
11
11
|
* Gerenciamento completo de pull requests com suporte multi-provider (GitHub e Gitea)
|
|
12
12
|
*
|
|
13
13
|
* FUNCIONALIDADES:
|
|
14
|
-
* -
|
|
14
|
+
* - Criação de novos pull requests
|
|
15
15
|
* - Listagem e busca de PRs
|
|
16
|
-
* -
|
|
17
|
-
* -
|
|
16
|
+
* - Obtenção de detalhes específicos
|
|
17
|
+
* - Atualização de PRs existentes
|
|
18
18
|
* - Merge de pull requests
|
|
19
19
|
* - Fechamento de PRs
|
|
20
|
-
* -
|
|
21
|
-
* - Busca por
|
|
20
|
+
* - Revisão e aprovação
|
|
21
|
+
* - Busca por conteúdo e status
|
|
22
22
|
*
|
|
23
23
|
* USO:
|
|
24
|
-
* - Para gerenciar
|
|
25
|
-
* - Para
|
|
24
|
+
* - Para gerenciar integração de código
|
|
25
|
+
* - Para revisão de código
|
|
26
26
|
* - Para controle de qualidade
|
|
27
|
-
* - Para
|
|
27
|
+
* - Para colaboração em equipe
|
|
28
28
|
*
|
|
29
|
-
*
|
|
30
|
-
* - Use
|
|
31
|
-
* - Documente
|
|
29
|
+
* RECOMENDAÇÕES:
|
|
30
|
+
* - Use títulos descritivos
|
|
31
|
+
* - Documente mudanças detalhadamente
|
|
32
32
|
* - Revise antes de fazer merge
|
|
33
33
|
* - Mantenha PRs pequenos e focados
|
|
34
34
|
*/
|
|
35
35
|
/**
|
|
36
|
-
* Schema de
|
|
36
|
+
* Schema de validação para entrada da tool pulls
|
|
37
37
|
*
|
|
38
|
-
*
|
|
39
|
-
* - action:
|
|
40
|
-
* -
|
|
41
|
-
* -
|
|
38
|
+
* VALIDAÇÕES:
|
|
39
|
+
* - action: Ação obrigatória (create, list, get, update, merge, close, review, search)
|
|
40
|
+
* - Parâmetros específicos por ação
|
|
41
|
+
* - Validação de tipos e formatos
|
|
42
42
|
*
|
|
43
|
-
*
|
|
43
|
+
* RECOMENDAÇÕES:
|
|
44
44
|
* - Sempre valide entrada antes de usar
|
|
45
|
-
* - Use
|
|
46
|
-
* - Documente
|
|
45
|
+
* - Use parâmetros opcionais adequadamente
|
|
46
|
+
* - Documente parâmetros obrigatórios
|
|
47
47
|
*/
|
|
48
48
|
const PullsInputSchema = zod_1.z.object({
|
|
49
49
|
action: zod_1.z.enum(['create', 'list', 'get', 'update', 'merge', 'close', 'review', 'search']),
|
|
50
|
-
//
|
|
50
|
+
// Parâmetros comuns
|
|
51
51
|
repo: zod_1.z.string(),
|
|
52
52
|
// Para multi-provider
|
|
53
53
|
provider: zod_1.z.enum(['gitea', 'github']).describe('Provider to use (gitea or github)'),
|
|
@@ -90,11 +90,11 @@ const PullsInputSchema = zod_1.z.object({
|
|
|
90
90
|
label: zod_1.z.string().optional(),
|
|
91
91
|
});
|
|
92
92
|
/**
|
|
93
|
-
* Schema de
|
|
93
|
+
* Schema de saída padronizado
|
|
94
94
|
*
|
|
95
95
|
* ESTRUTURA:
|
|
96
|
-
* - success: Status da
|
|
97
|
-
* - action:
|
|
96
|
+
* - success: Status da operação
|
|
97
|
+
* - action: Ação executada
|
|
98
98
|
* - message: Mensagem descritiva
|
|
99
99
|
* - data: Dados retornados (opcional)
|
|
100
100
|
* - error: Detalhes do erro (opcional)
|
|
@@ -109,96 +109,96 @@ const PullsResultSchema = zod_1.z.object({
|
|
|
109
109
|
/**
|
|
110
110
|
* Tool: pulls
|
|
111
111
|
*
|
|
112
|
-
*
|
|
113
|
-
* Gerenciamento completo de Pull Requests Gitea com
|
|
112
|
+
* DESCRIÇÃO:
|
|
113
|
+
* Gerenciamento completo de Pull Requests Gitea com múltiplas ações
|
|
114
114
|
*
|
|
115
|
-
* ACTIONS
|
|
115
|
+
* ACTIONS DISPONÍVEIS:
|
|
116
116
|
*
|
|
117
117
|
* 1. create - Criar novo Pull Request
|
|
118
|
-
*
|
|
119
|
-
* - owner (
|
|
120
|
-
* - repo (
|
|
121
|
-
* - title (
|
|
122
|
-
* - body (opcional):
|
|
123
|
-
* - head (
|
|
124
|
-
* - base (
|
|
125
|
-
* - draft (opcional): Se
|
|
118
|
+
* Parâmetros:
|
|
119
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
120
|
+
* - repo (obrigatório): Nome do repositório
|
|
121
|
+
* - title (obrigatório): Título do PR
|
|
122
|
+
* - body (opcional): Descrição detalhada
|
|
123
|
+
* - head (obrigatório): Branch de origem
|
|
124
|
+
* - base (obrigatório): Branch de destino
|
|
125
|
+
* - draft (opcional): Se é um draft PR
|
|
126
126
|
* - labels (opcional): Array de labels
|
|
127
|
-
* - assignees (opcional): Array de
|
|
127
|
+
* - assignees (opcional): Array de usuários responsáveis
|
|
128
128
|
* - reviewers (opcional): Array de revisores
|
|
129
129
|
* - milestone (opcional): ID do milestone
|
|
130
130
|
*
|
|
131
131
|
* 2. list - Listar Pull Requests
|
|
132
|
-
*
|
|
133
|
-
* - owner (
|
|
134
|
-
* - repo (
|
|
135
|
-
* - state (opcional): Estado dos PRs (open, closed, merged, all) -
|
|
136
|
-
* - page (opcional):
|
|
137
|
-
* - limit (opcional): Itens por
|
|
132
|
+
* Parâmetros:
|
|
133
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
134
|
+
* - repo (obrigatório): Nome do repositório
|
|
135
|
+
* - state (opcional): Estado dos PRs (open, closed, merged, all) - padrão: open
|
|
136
|
+
* - page (opcional): Página da listagem (padrão: 1)
|
|
137
|
+
* - limit (opcional): Itens por página (padrão: 30, máximo: 100)
|
|
138
138
|
*
|
|
139
139
|
* 3. get - Obter detalhes do Pull Request
|
|
140
|
-
*
|
|
141
|
-
* - owner (
|
|
142
|
-
* - repo (
|
|
143
|
-
* - pull_number (
|
|
140
|
+
* Parâmetros:
|
|
141
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
142
|
+
* - repo (obrigatório): Nome do repositório
|
|
143
|
+
* - pull_number (obrigatório): Número do PR
|
|
144
144
|
*
|
|
145
145
|
* 4. update - Atualizar Pull Request existente
|
|
146
|
-
*
|
|
147
|
-
* - owner (
|
|
148
|
-
* - repo (
|
|
149
|
-
* - pull_number (
|
|
150
|
-
* - new_title (opcional): Novo
|
|
151
|
-
* - new_body (opcional): Nova
|
|
146
|
+
* Parâmetros:
|
|
147
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
148
|
+
* - repo (obrigatório): Nome do repositório
|
|
149
|
+
* - pull_number (obrigatório): Número do PR
|
|
150
|
+
* - new_title (opcional): Novo título
|
|
151
|
+
* - new_body (opcional): Nova descrição
|
|
152
152
|
* - new_base (opcional): Nova branch base
|
|
153
153
|
* - new_labels (opcional): Novos labels
|
|
154
|
-
* - new_assignees (opcional): Novos
|
|
154
|
+
* - new_assignees (opcional): Novos responsáveis
|
|
155
155
|
* - new_milestone (opcional): Novo milestone
|
|
156
156
|
*
|
|
157
157
|
* 5. merge - Fazer merge do Pull Request
|
|
158
|
-
*
|
|
159
|
-
* - owner (
|
|
160
|
-
* - repo (
|
|
161
|
-
* - pull_number (
|
|
162
|
-
* - merge_method (opcional):
|
|
163
|
-
* - merge_commit_title (opcional):
|
|
158
|
+
* Parâmetros:
|
|
159
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
160
|
+
* - repo (obrigatório): Nome do repositório
|
|
161
|
+
* - pull_number (obrigatório): Número do PR
|
|
162
|
+
* - merge_method (opcional): Método de merge (merge, rebase, squash)
|
|
163
|
+
* - merge_commit_title (opcional): Título do commit de merge
|
|
164
164
|
* - merge_commit_message (opcional): Mensagem do commit de merge
|
|
165
165
|
*
|
|
166
166
|
* 6. close - Fechar Pull Request
|
|
167
|
-
*
|
|
168
|
-
* - owner (
|
|
169
|
-
* - repo (
|
|
170
|
-
* - pull_number (
|
|
167
|
+
* Parâmetros:
|
|
168
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
169
|
+
* - repo (obrigatório): Nome do repositório
|
|
170
|
+
* - pull_number (obrigatório): Número do PR
|
|
171
171
|
*
|
|
172
172
|
* 7. review - Adicionar review ao Pull Request
|
|
173
|
-
*
|
|
174
|
-
* - owner (
|
|
175
|
-
* - repo (
|
|
176
|
-
* - pull_number (
|
|
177
|
-
* - review_event (
|
|
178
|
-
* - review_body (opcional):
|
|
173
|
+
* Parâmetros:
|
|
174
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
175
|
+
* - repo (obrigatório): Nome do repositório
|
|
176
|
+
* - pull_number (obrigatório): Número do PR
|
|
177
|
+
* - review_event (obrigatório): Tipo de review (APPROVE, REQUEST_CHANGES, COMMENT)
|
|
178
|
+
* - review_body (opcional): Comentário do review
|
|
179
179
|
*
|
|
180
180
|
* 8. search - Buscar Pull Requests
|
|
181
|
-
*
|
|
182
|
-
* - owner (
|
|
183
|
-
* - repo (
|
|
184
|
-
* - query (
|
|
181
|
+
* Parâmetros:
|
|
182
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
183
|
+
* - repo (obrigatório): Nome do repositório
|
|
184
|
+
* - query (obrigatório): Termo de busca
|
|
185
185
|
* - author (opcional): Autor dos PRs
|
|
186
|
-
* - assignee (opcional):
|
|
186
|
+
* - assignee (opcional): Responsável pelos PRs
|
|
187
187
|
* - reviewer (opcional): Revisor dos PRs
|
|
188
|
-
* - label (opcional): Label
|
|
188
|
+
* - label (opcional): Label específico
|
|
189
189
|
*
|
|
190
|
-
*
|
|
191
|
-
* - Use
|
|
192
|
-
* - Documente
|
|
190
|
+
* RECOMENDAÇÕES DE USO:
|
|
191
|
+
* - Use títulos descritivos e claros
|
|
192
|
+
* - Documente mudanças detalhadamente
|
|
193
193
|
* - Solicite reviews adequados
|
|
194
194
|
* - Mantenha PRs pequenos e focados
|
|
195
|
-
* - Use labels para
|
|
196
|
-
* - Atribua
|
|
197
|
-
* - Escolha
|
|
195
|
+
* - Use labels para categorização
|
|
196
|
+
* - Atribua responsáveis adequadamente
|
|
197
|
+
* - Escolha método de merge apropriado
|
|
198
198
|
*/
|
|
199
199
|
exports.pullsTool = {
|
|
200
200
|
name: 'git-pulls',
|
|
201
|
-
description: 'tool: Gerencia pull requests Git para
|
|
201
|
+
description: 'tool: Gerencia pull requests Git para revisão e merge de código\n──────────────\naction create: cria novo pull request\naction create requires: repo, title, body, head, base, draft, labels, assignees, reviewers, milestone, provider\n───────────────\naction list: lista pull requests do repositório\naction list requires: repo, state, page, limit, provider\n───────────────\naction get: obtém detalhes de PR\naction get requires: repo, pull_number, provider\n───────────────\naction update: atualiza pull request\naction update requires: repo, pull_number, new_title, new_body, new_base, new_labels, new_assignees, new_milestone, provider\n───────────────\naction merge: faz merge do PR\naction merge requires: repo, pull_number, merge_method, merge_commit_title, merge_commit_message, provider\n───────────────\naction close: fecha pull request\naction close requires: repo, pull_number, provider\n───────────────\naction review: adiciona review\naction review requires: repo, pull_number, review_event, review_body, provider\n───────────────\naction search: busca PRs por critérios\naction search requires: repo, query, author, assignee, reviewer, label, provider',
|
|
202
202
|
inputSchema: {
|
|
203
203
|
type: 'object',
|
|
204
204
|
properties: {
|
|
@@ -246,40 +246,40 @@ exports.pullsTool = {
|
|
|
246
246
|
*
|
|
247
247
|
* FUNCIONALIDADE:
|
|
248
248
|
* - Valida entrada usando Zod schema
|
|
249
|
-
* - Roteia para
|
|
249
|
+
* - Roteia para método específico baseado na ação
|
|
250
250
|
* - Trata erros de forma uniforme
|
|
251
251
|
* - Retorna resultado padronizado
|
|
252
252
|
*
|
|
253
253
|
* FLUXO:
|
|
254
|
-
* 1.
|
|
255
|
-
* 2.
|
|
256
|
-
* 3. Roteamento por
|
|
257
|
-
* 4.
|
|
254
|
+
* 1. Validação de entrada
|
|
255
|
+
* 2. Seleção do provider
|
|
256
|
+
* 3. Roteamento por ação
|
|
257
|
+
* 4. Execução do método específico
|
|
258
258
|
* 5. Tratamento de erros
|
|
259
259
|
* 6. Retorno de resultado
|
|
260
260
|
*
|
|
261
261
|
* TRATAMENTO DE ERROS:
|
|
262
|
-
* -
|
|
263
|
-
* -
|
|
264
|
-
* - Roteamento:
|
|
262
|
+
* - Validação: erro de schema
|
|
263
|
+
* - Execução: erro da operação
|
|
264
|
+
* - Roteamento: ação não suportada
|
|
265
265
|
*
|
|
266
|
-
*
|
|
266
|
+
* RECOMENDAÇÕES:
|
|
267
267
|
* - Sempre valide entrada antes de processar
|
|
268
|
-
* - Trate erros
|
|
268
|
+
* - Trate erros específicos adequadamente
|
|
269
269
|
* - Log detalhes de erro para debug
|
|
270
|
-
* - Retorne mensagens de erro
|
|
270
|
+
* - Retorne mensagens de erro úteis
|
|
271
271
|
*/
|
|
272
272
|
async handler(input) {
|
|
273
273
|
try {
|
|
274
274
|
const validatedInput = PullsInputSchema.parse(input);
|
|
275
|
-
// Aplicar auto-
|
|
275
|
+
// Aplicar auto-detecção de usuário/owner
|
|
276
276
|
const processedInput = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.provider);
|
|
277
277
|
// Obter o provider correto
|
|
278
278
|
const provider = processedInput.provider
|
|
279
279
|
? index_js_1.globalProviderFactory.getProvider(processedInput.provider)
|
|
280
280
|
: index_js_1.globalProviderFactory.getDefaultProvider();
|
|
281
281
|
if (!provider) {
|
|
282
|
-
throw new Error(`Provider '${processedInput.provider}'
|
|
282
|
+
throw new Error(`Provider '${processedInput.provider}' não encontrado`);
|
|
283
283
|
}
|
|
284
284
|
// Obter o owner do provider
|
|
285
285
|
const owner = (await provider.getCurrentUser()).login;
|
|
@@ -301,14 +301,14 @@ exports.pullsTool = {
|
|
|
301
301
|
case 'search':
|
|
302
302
|
return await this.searchPullRequests(validatedInput, provider, owner);
|
|
303
303
|
default:
|
|
304
|
-
throw new Error(`
|
|
304
|
+
throw new Error(`Ação não suportada: ${validatedInput.action}`);
|
|
305
305
|
}
|
|
306
306
|
}
|
|
307
307
|
catch (error) {
|
|
308
308
|
return {
|
|
309
309
|
success: false,
|
|
310
310
|
action: input.action,
|
|
311
|
-
message: 'Erro na
|
|
311
|
+
message: 'Erro na operação de pull requests',
|
|
312
312
|
error: error instanceof Error ? error.message : String(error)
|
|
313
313
|
};
|
|
314
314
|
}
|
|
@@ -317,41 +317,41 @@ exports.pullsTool = {
|
|
|
317
317
|
* Cria um novo Pull Request
|
|
318
318
|
*
|
|
319
319
|
* FUNCIONALIDADE:
|
|
320
|
-
* - Cria PR com
|
|
321
|
-
* - Suporta
|
|
322
|
-
* - Permite
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
* - owner:
|
|
326
|
-
* - repo: Nome do
|
|
327
|
-
* - title:
|
|
320
|
+
* - Cria PR com título e descrição
|
|
321
|
+
* - Suporta configuração de branches
|
|
322
|
+
* - Permite configuração de draft, labels, assignees
|
|
323
|
+
*
|
|
324
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
325
|
+
* - owner: Proprietário do repositório
|
|
326
|
+
* - repo: Nome do repositório
|
|
327
|
+
* - title: Título do PR
|
|
328
328
|
* - head: Branch de origem
|
|
329
329
|
* - base: Branch de destino
|
|
330
330
|
*
|
|
331
|
-
*
|
|
332
|
-
* - body:
|
|
333
|
-
* - draft: Se
|
|
334
|
-
* - labels: Array de labels para
|
|
335
|
-
* - assignees: Array de
|
|
331
|
+
* PARÂMETROS OPCIONAIS:
|
|
332
|
+
* - body: Descrição detalhada
|
|
333
|
+
* - draft: Se é um draft PR
|
|
334
|
+
* - labels: Array de labels para categorização
|
|
335
|
+
* - assignees: Array de usuários responsáveis
|
|
336
336
|
* - reviewers: Array de revisores
|
|
337
337
|
* - milestone: ID do milestone associado
|
|
338
338
|
*
|
|
339
|
-
*
|
|
340
|
-
* - Todos os
|
|
339
|
+
* VALIDAÇÕES:
|
|
340
|
+
* - Todos os parâmetros obrigatórios
|
|
341
341
|
* - Branches devem existir
|
|
342
342
|
* - Head e base devem ser diferentes
|
|
343
|
-
* -
|
|
343
|
+
* - Usuário deve ter permissão de escrita
|
|
344
344
|
*
|
|
345
|
-
*
|
|
346
|
-
* - Use
|
|
347
|
-
* - Documente
|
|
345
|
+
* RECOMENDAÇÕES:
|
|
346
|
+
* - Use títulos descritivos e claros
|
|
347
|
+
* - Documente mudanças detalhadamente
|
|
348
348
|
* - Solicite reviews adequados
|
|
349
349
|
* - Mantenha PRs pequenos e focados
|
|
350
350
|
*/
|
|
351
351
|
async createPullRequest(params, provider, owner) {
|
|
352
352
|
try {
|
|
353
353
|
if (!!params.repo || !params.title || !params.head || !params.base) {
|
|
354
|
-
throw new Error('repo, title, head e base
|
|
354
|
+
throw new Error('repo, title, head e base são obrigatórios');
|
|
355
355
|
}
|
|
356
356
|
const pullRequest = await provider.createPullRequest(owner, params.repo, params.title, params.body || '', params.head, params.base);
|
|
357
357
|
return {
|
|
@@ -366,38 +366,38 @@ exports.pullsTool = {
|
|
|
366
366
|
}
|
|
367
367
|
},
|
|
368
368
|
/**
|
|
369
|
-
* Lista Pull Requests do
|
|
369
|
+
* Lista Pull Requests do repositório
|
|
370
370
|
*
|
|
371
371
|
* FUNCIONALIDADE:
|
|
372
372
|
* - Lista PRs com filtros de estado
|
|
373
|
-
* - Suporta
|
|
374
|
-
* - Retorna
|
|
373
|
+
* - Suporta paginação
|
|
374
|
+
* - Retorna informações básicas de cada PR
|
|
375
375
|
*
|
|
376
|
-
*
|
|
377
|
-
* - owner:
|
|
378
|
-
* - repo: Nome do
|
|
376
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
377
|
+
* - owner: Proprietário do repositório
|
|
378
|
+
* - repo: Nome do repositório
|
|
379
379
|
*
|
|
380
|
-
*
|
|
381
|
-
* - state: Estado dos PRs (open, closed, merged, all) -
|
|
382
|
-
* - page:
|
|
383
|
-
* - limit: Itens por
|
|
380
|
+
* PARÂMETROS OPCIONAIS:
|
|
381
|
+
* - state: Estado dos PRs (open, closed, merged, all) - padrão: open
|
|
382
|
+
* - page: Página da listagem (padrão: 1)
|
|
383
|
+
* - limit: Itens por página (padrão: 30, máximo: 100)
|
|
384
384
|
*
|
|
385
|
-
*
|
|
386
|
-
* - e repo
|
|
387
|
-
* - State deve ser um dos valores
|
|
385
|
+
* VALIDAÇÕES:
|
|
386
|
+
* - e repo obrigatórios
|
|
387
|
+
* - State deve ser um dos valores válidos
|
|
388
388
|
* - Page deve ser >= 1
|
|
389
389
|
* - Limit deve ser entre 1 e 100
|
|
390
390
|
*
|
|
391
|
-
*
|
|
392
|
-
* - Use
|
|
393
|
-
* - Monitore
|
|
394
|
-
* - Filtre por estado para
|
|
391
|
+
* RECOMENDAÇÕES:
|
|
392
|
+
* - Use paginação para repositórios com muitos PRs
|
|
393
|
+
* - Monitore número total de PRs
|
|
394
|
+
* - Filtre por estado para organização
|
|
395
395
|
* - Mantenha PRs organizados
|
|
396
396
|
*/
|
|
397
397
|
async listPullRequests(params, provider, owner) {
|
|
398
398
|
try {
|
|
399
399
|
if (!params.repo) {
|
|
400
|
-
throw new Error('e repo
|
|
400
|
+
throw new Error('e repo são obrigatórios');
|
|
401
401
|
}
|
|
402
402
|
const state = params.state || 'open';
|
|
403
403
|
const page = params.page || 1;
|
|
@@ -421,33 +421,33 @@ exports.pullsTool = {
|
|
|
421
421
|
}
|
|
422
422
|
},
|
|
423
423
|
/**
|
|
424
|
-
*
|
|
424
|
+
* Obtém detalhes de um Pull Request específico
|
|
425
425
|
*
|
|
426
426
|
* FUNCIONALIDADE:
|
|
427
|
-
* - Retorna
|
|
428
|
-
* - Inclui
|
|
427
|
+
* - Retorna informações completas do PR
|
|
428
|
+
* - Inclui título, descrição, branches, labels
|
|
429
429
|
* - Mostra status de merge e conflitos
|
|
430
430
|
*
|
|
431
|
-
*
|
|
432
|
-
* - owner:
|
|
433
|
-
* - repo: Nome do
|
|
434
|
-
* - pull_number:
|
|
431
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
432
|
+
* - owner: Proprietário do repositório
|
|
433
|
+
* - repo: Nome do repositório
|
|
434
|
+
* - pull_number: Número do PR
|
|
435
435
|
*
|
|
436
|
-
*
|
|
437
|
-
* - Todos os
|
|
438
|
-
* - PR deve existir no
|
|
439
|
-
* -
|
|
436
|
+
* VALIDAÇÕES:
|
|
437
|
+
* - Todos os parâmetros obrigatórios
|
|
438
|
+
* - PR deve existir no repositório
|
|
439
|
+
* - Número deve ser válido
|
|
440
440
|
*
|
|
441
|
-
*
|
|
441
|
+
* RECOMENDAÇÕES:
|
|
442
442
|
* - Use para obter detalhes completos
|
|
443
443
|
* - Verifique status de merge
|
|
444
444
|
* - Analise conflitos se houver
|
|
445
|
-
* - Monitore
|
|
445
|
+
* - Monitore mudanças importantes
|
|
446
446
|
*/
|
|
447
447
|
async getPullRequest(params, provider, owner) {
|
|
448
448
|
try {
|
|
449
449
|
if (!!params.repo || !params.pull_number) {
|
|
450
|
-
throw new Error('repo e pull_number
|
|
450
|
+
throw new Error('repo e pull_number são obrigatórios');
|
|
451
451
|
}
|
|
452
452
|
const pullRequest = await provider.getPullRequest((await provider.getCurrentUser()).login, params.repo, params.pull_number);
|
|
453
453
|
return {
|
|
@@ -466,37 +466,37 @@ exports.pullsTool = {
|
|
|
466
466
|
*
|
|
467
467
|
* FUNCIONALIDADE:
|
|
468
468
|
* - Atualiza campos do PR
|
|
469
|
-
* - Suporta
|
|
470
|
-
* - Permite
|
|
469
|
+
* - Suporta mudança de branch base
|
|
470
|
+
* - Permite alteração de labels e assignees
|
|
471
471
|
*
|
|
472
|
-
*
|
|
473
|
-
* - owner:
|
|
474
|
-
* - repo: Nome do
|
|
475
|
-
* - pull_number:
|
|
472
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
473
|
+
* - owner: Proprietário do repositório
|
|
474
|
+
* - repo: Nome do repositório
|
|
475
|
+
* - pull_number: Número do PR
|
|
476
476
|
*
|
|
477
|
-
*
|
|
478
|
-
* - new_title: Novo
|
|
479
|
-
* - new_body: Nova
|
|
477
|
+
* PARÂMETROS OPCIONAIS:
|
|
478
|
+
* - new_title: Novo título
|
|
479
|
+
* - new_body: Nova descrição
|
|
480
480
|
* - new_base: Nova branch base
|
|
481
481
|
* - new_labels: Novos labels
|
|
482
|
-
* - new_assignees: Novos
|
|
482
|
+
* - new_assignees: Novos responsáveis
|
|
483
483
|
* - new_milestone: Novo milestone
|
|
484
484
|
*
|
|
485
|
-
*
|
|
486
|
-
* - Todos os
|
|
485
|
+
* VALIDAÇÕES:
|
|
486
|
+
* - Todos os parâmetros obrigatórios
|
|
487
487
|
* - PR deve existir
|
|
488
488
|
* - Pelo menos um campo deve ser atualizado
|
|
489
489
|
*
|
|
490
|
-
*
|
|
491
|
-
* - Atualize apenas campos
|
|
490
|
+
* RECOMENDAÇÕES:
|
|
491
|
+
* - Atualize apenas campos necessários
|
|
492
492
|
* - Use mensagens de commit descritivas
|
|
493
|
-
* - Documente
|
|
494
|
-
* - Notifique
|
|
493
|
+
* - Documente mudanças importantes
|
|
494
|
+
* - Notifique responsáveis sobre mudanças
|
|
495
495
|
*/
|
|
496
496
|
async updatePullRequest(params, provider, owner) {
|
|
497
497
|
try {
|
|
498
498
|
if (!!params.repo || !params.pull_number) {
|
|
499
|
-
throw new Error('repo e pull_number
|
|
499
|
+
throw new Error('repo e pull_number são obrigatórios');
|
|
500
500
|
}
|
|
501
501
|
const updateData = {};
|
|
502
502
|
if (params.new_title)
|
|
@@ -531,35 +531,35 @@ exports.pullsTool = {
|
|
|
531
531
|
*
|
|
532
532
|
* FUNCIONALIDADE:
|
|
533
533
|
* - Merge do PR na branch base
|
|
534
|
-
* - Suporta diferentes
|
|
535
|
-
* - Permite
|
|
534
|
+
* - Suporta diferentes métodos de merge
|
|
535
|
+
* - Permite customização de commit de merge
|
|
536
536
|
*
|
|
537
|
-
*
|
|
538
|
-
* - owner:
|
|
539
|
-
* - repo: Nome do
|
|
540
|
-
* - pull_number:
|
|
537
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
538
|
+
* - owner: Proprietário do repositório
|
|
539
|
+
* - repo: Nome do repositório
|
|
540
|
+
* - pull_number: Número do PR
|
|
541
541
|
*
|
|
542
|
-
*
|
|
543
|
-
* - merge_method:
|
|
544
|
-
* - merge_commit_title:
|
|
542
|
+
* PARÂMETROS OPCIONAIS:
|
|
543
|
+
* - merge_method: Método de merge (merge, rebase, squash)
|
|
544
|
+
* - merge_commit_title: Título do commit de merge
|
|
545
545
|
* - merge_commit_message: Mensagem do commit de merge
|
|
546
546
|
*
|
|
547
|
-
*
|
|
548
|
-
* - Todos os
|
|
547
|
+
* VALIDAÇÕES:
|
|
548
|
+
* - Todos os parâmetros obrigatórios
|
|
549
549
|
* - PR deve existir e estar aberto
|
|
550
|
-
* -
|
|
550
|
+
* - Não deve haver conflitos
|
|
551
551
|
* - PR deve ser mergeable
|
|
552
552
|
*
|
|
553
|
-
*
|
|
553
|
+
* RECOMENDAÇÕES:
|
|
554
554
|
* - Resolva conflitos antes do merge
|
|
555
|
-
* - Escolha
|
|
556
|
-
* - Use
|
|
557
|
-
* - Teste
|
|
555
|
+
* - Escolha método de merge adequado
|
|
556
|
+
* - Use títulos e mensagens descritivas
|
|
557
|
+
* - Teste após o merge
|
|
558
558
|
*/
|
|
559
559
|
async mergePullRequest(params, provider, owner) {
|
|
560
560
|
try {
|
|
561
561
|
if (!!params.repo || !params.pull_number) {
|
|
562
|
-
throw new Error('repo e pull_number
|
|
562
|
+
throw new Error('repo e pull_number são obrigatórios');
|
|
563
563
|
}
|
|
564
564
|
const mergeData = {
|
|
565
565
|
merge_method: params.merge_method || 'merge'
|
|
@@ -585,29 +585,29 @@ exports.pullsTool = {
|
|
|
585
585
|
*
|
|
586
586
|
* FUNCIONALIDADE:
|
|
587
587
|
* - Altera estado do PR para closed
|
|
588
|
-
* -
|
|
588
|
+
* - Mantém histórico e comentários
|
|
589
589
|
* - Permite reabertura posterior
|
|
590
590
|
*
|
|
591
|
-
*
|
|
592
|
-
* - owner:
|
|
593
|
-
* - repo: Nome do
|
|
594
|
-
* - pull_number:
|
|
591
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
592
|
+
* - owner: Proprietário do repositório
|
|
593
|
+
* - repo: Nome do repositório
|
|
594
|
+
* - pull_number: Número do PR
|
|
595
595
|
*
|
|
596
|
-
*
|
|
597
|
-
* - Todos os
|
|
596
|
+
* VALIDAÇÕES:
|
|
597
|
+
* - Todos os parâmetros obrigatórios
|
|
598
598
|
* - PR deve existir
|
|
599
599
|
* - PR deve estar aberto
|
|
600
600
|
*
|
|
601
|
-
*
|
|
602
|
-
* - Confirme que PR
|
|
601
|
+
* RECOMENDAÇÕES:
|
|
602
|
+
* - Confirme que PR não é mais necessário
|
|
603
603
|
* - Documente motivo do fechamento
|
|
604
|
-
* - Use
|
|
605
|
-
* - Verifique se
|
|
604
|
+
* - Use comentário explicativo
|
|
605
|
+
* - Verifique se não há dependências
|
|
606
606
|
*/
|
|
607
607
|
async closePullRequest(params, provider, owner) {
|
|
608
608
|
try {
|
|
609
609
|
if (!!params.repo || !params.pull_number) {
|
|
610
|
-
throw new Error('repo e pull_number
|
|
610
|
+
throw new Error('repo e pull_number são obrigatórios');
|
|
611
611
|
}
|
|
612
612
|
const pullRequest = await provider.updatePullRequest((await provider.getCurrentUser()).login, params.repo, params.pull_number, { state: 'closed' });
|
|
613
613
|
return {
|
|
@@ -627,23 +627,23 @@ exports.pullsTool = {
|
|
|
627
627
|
* FUNCIONALIDADE:
|
|
628
628
|
* - Cria novo review no PR
|
|
629
629
|
* - Suporta diferentes tipos de review
|
|
630
|
-
* -
|
|
630
|
+
* - Mantém histórico de revisões
|
|
631
631
|
*
|
|
632
|
-
*
|
|
633
|
-
* - owner:
|
|
634
|
-
* - repo: Nome do
|
|
635
|
-
* - pull_number:
|
|
632
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
633
|
+
* - owner: Proprietário do repositório
|
|
634
|
+
* - repo: Nome do repositório
|
|
635
|
+
* - pull_number: Número do PR
|
|
636
636
|
* - review_event: Tipo de review (APPROVE, REQUEST_CHANGES, COMMENT)
|
|
637
637
|
*
|
|
638
|
-
*
|
|
639
|
-
* - review_body:
|
|
638
|
+
* PARÂMETROS OPCIONAIS:
|
|
639
|
+
* - review_body: Comentário do review
|
|
640
640
|
*
|
|
641
|
-
*
|
|
642
|
-
* - Todos os
|
|
641
|
+
* VALIDAÇÕES:
|
|
642
|
+
* - Todos os parâmetros obrigatórios
|
|
643
643
|
* - PR deve existir
|
|
644
|
-
* - Review event deve ser
|
|
644
|
+
* - Review event deve ser válido
|
|
645
645
|
*
|
|
646
|
-
*
|
|
646
|
+
* RECOMENDAÇÕES:
|
|
647
647
|
* - Use reviews para controle de qualidade
|
|
648
648
|
* - Documente feedback adequadamente
|
|
649
649
|
* - Use tipos de review apropriados
|
|
@@ -652,9 +652,9 @@ exports.pullsTool = {
|
|
|
652
652
|
async addReview(params, provider, owner) {
|
|
653
653
|
try {
|
|
654
654
|
if (!!params.repo || !params.pull_number || !params.review_event) {
|
|
655
|
-
throw new Error('repo, pull_number e review_event
|
|
655
|
+
throw new Error('repo, pull_number e review_event são obrigatórios');
|
|
656
656
|
}
|
|
657
|
-
// Implementar
|
|
657
|
+
// Implementar adição de review
|
|
658
658
|
// Por enquanto, retorna mensagem de funcionalidade
|
|
659
659
|
return {
|
|
660
660
|
success: true,
|
|
@@ -664,7 +664,7 @@ exports.pullsTool = {
|
|
|
664
664
|
pull_number: params.pull_number,
|
|
665
665
|
review_event: params.review_event,
|
|
666
666
|
review_body: params.review_body || '',
|
|
667
|
-
note: 'Funcionalidade de review
|
|
667
|
+
note: 'Funcionalidade de review será implementada'
|
|
668
668
|
}
|
|
669
669
|
};
|
|
670
670
|
}
|
|
@@ -673,39 +673,39 @@ exports.pullsTool = {
|
|
|
673
673
|
}
|
|
674
674
|
},
|
|
675
675
|
/**
|
|
676
|
-
* Busca Pull Requests por
|
|
676
|
+
* Busca Pull Requests por critérios específicos
|
|
677
677
|
*
|
|
678
678
|
* FUNCIONALIDADE:
|
|
679
|
-
* - Busca PRs por
|
|
679
|
+
* - Busca PRs por conteúdo
|
|
680
680
|
* - Filtra por autor, assignee, reviewer e label
|
|
681
681
|
* - Retorna resultados relevantes
|
|
682
682
|
*
|
|
683
|
-
*
|
|
684
|
-
* - owner:
|
|
685
|
-
* - repo: Nome do
|
|
683
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
684
|
+
* - owner: Proprietário do repositório
|
|
685
|
+
* - repo: Nome do repositório
|
|
686
686
|
* - query: Termo de busca
|
|
687
687
|
*
|
|
688
|
-
*
|
|
688
|
+
* PARÂMETROS OPCIONAIS:
|
|
689
689
|
* - author: Autor dos PRs
|
|
690
|
-
* - assignee:
|
|
690
|
+
* - assignee: Responsável pelos PRs
|
|
691
691
|
* - reviewer: Revisor dos PRs
|
|
692
|
-
* - label: Label
|
|
692
|
+
* - label: Label específico
|
|
693
693
|
*
|
|
694
|
-
*
|
|
695
|
-
* - Todos os
|
|
694
|
+
* VALIDAÇÕES:
|
|
695
|
+
* - Todos os parâmetros obrigatórios
|
|
696
696
|
* - Query deve ter pelo menos 3 caracteres
|
|
697
|
-
* -
|
|
697
|
+
* - Repositório deve existir
|
|
698
698
|
*
|
|
699
|
-
*
|
|
700
|
-
* - Use termos de busca
|
|
699
|
+
* RECOMENDAÇÕES:
|
|
700
|
+
* - Use termos de busca específicos
|
|
701
701
|
* - Combine filtros para resultados precisos
|
|
702
|
-
* - Analise
|
|
702
|
+
* - Analise relevância dos resultados
|
|
703
703
|
* - Use para encontrar PRs relacionados
|
|
704
704
|
*/
|
|
705
705
|
async searchPullRequests(params, provider, owner) {
|
|
706
706
|
try {
|
|
707
707
|
if (!params.repo || !params.query) {
|
|
708
|
-
throw new Error('repo e query
|
|
708
|
+
throw new Error('repo e query são obrigatórios');
|
|
709
709
|
}
|
|
710
710
|
if (params.query.length < 3) {
|
|
711
711
|
throw new Error('Query deve ter pelo menos 3 caracteres');
|
|
@@ -722,7 +722,7 @@ exports.pullsTool = {
|
|
|
722
722
|
assignee: params.assignee || 'todos',
|
|
723
723
|
reviewer: params.reviewer || 'todos',
|
|
724
724
|
label: params.label || 'todos',
|
|
725
|
-
results: 'Funcionalidade de busca
|
|
725
|
+
results: 'Funcionalidade de busca será implementada'
|
|
726
726
|
}
|
|
727
727
|
};
|
|
728
728
|
}
|
|
@@ -731,7 +731,7 @@ exports.pullsTool = {
|
|
|
731
731
|
}
|
|
732
732
|
},
|
|
733
733
|
/**
|
|
734
|
-
* Verifica se erro
|
|
734
|
+
* Verifica se erro é relacionado a Git
|
|
735
735
|
*/
|
|
736
736
|
isGitRelatedError(errorMessage) {
|
|
737
737
|
const gitKeywords = [
|