@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,551 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.releasesTool = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const index_js_1 = require("../providers/index.js");
|
|
6
|
+
/**
|
|
7
|
+
* Tool: releases
|
|
8
|
+
*
|
|
9
|
+
* DESCRIÇÃO:
|
|
10
|
+
* Gerenciamento completo de releases com suporte multi-provider (GitHub e Gitea)
|
|
11
|
+
*
|
|
12
|
+
* FUNCIONALIDADES:
|
|
13
|
+
* - Criação de novos releases
|
|
14
|
+
* - Listagem e busca de releases
|
|
15
|
+
* - Obtenção de detalhes específicos
|
|
16
|
+
* - Atualização de releases existentes
|
|
17
|
+
* - Publicação de releases
|
|
18
|
+
* - Exclusão de releases
|
|
19
|
+
* - Controle de versão
|
|
20
|
+
*
|
|
21
|
+
* USO:
|
|
22
|
+
* - Para gerenciar versões do software
|
|
23
|
+
* - Para controle de deploy
|
|
24
|
+
* - Para documentação de mudanças
|
|
25
|
+
* - Para distribuição de releases
|
|
26
|
+
*
|
|
27
|
+
* RECOMENDAÇÕES:
|
|
28
|
+
* - Use versionamento semântico
|
|
29
|
+
* - Documente mudanças detalhadamente
|
|
30
|
+
* - Teste antes de publicar
|
|
31
|
+
* - Mantenha histórico de versões
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Schema de validação para entrada da tool releases
|
|
35
|
+
*
|
|
36
|
+
* VALIDAÇÕES:
|
|
37
|
+
* - action: Ação obrigatória (create, list, get, update, delete, publish)
|
|
38
|
+
* - Parâmetros específicos por ação
|
|
39
|
+
* - Validação de tipos e formatos
|
|
40
|
+
*
|
|
41
|
+
* RECOMENDAÇÕES:
|
|
42
|
+
* - Sempre valide entrada antes de usar
|
|
43
|
+
* - Use parâmetros opcionais adequadamente
|
|
44
|
+
* - Documente parâmetros obrigatórios
|
|
45
|
+
*/
|
|
46
|
+
const ReleasesInputSchema = zod_1.z.object({
|
|
47
|
+
action: zod_1.z.enum(['create', 'list', 'get', 'update', 'delete', 'publish']),
|
|
48
|
+
// Parâmetros comuns
|
|
49
|
+
owner: zod_1.z.string().optional(),
|
|
50
|
+
repo: zod_1.z.string().optional(),
|
|
51
|
+
// Para multi-provider
|
|
52
|
+
provider: zod_1.z.enum(['gitea', 'github', 'both']).optional(), // Provider específico: gitea, github ou both
|
|
53
|
+
// Para create
|
|
54
|
+
tag_name: zod_1.z.string().optional(),
|
|
55
|
+
name: zod_1.z.string().optional(),
|
|
56
|
+
body: zod_1.z.string().optional(),
|
|
57
|
+
draft: zod_1.z.boolean().optional(),
|
|
58
|
+
prerelease: zod_1.z.boolean().optional(),
|
|
59
|
+
target_commitish: zod_1.z.string().optional(),
|
|
60
|
+
// Para get/update/delete/publish
|
|
61
|
+
release_id: zod_1.z.number().optional(),
|
|
62
|
+
// Para list
|
|
63
|
+
page: zod_1.z.number().min(1).optional(),
|
|
64
|
+
limit: zod_1.z.number().min(1).max(100).optional(),
|
|
65
|
+
// Para update
|
|
66
|
+
new_tag_name: zod_1.z.string().optional(),
|
|
67
|
+
new_name: zod_1.z.string().optional(),
|
|
68
|
+
new_body: zod_1.z.string().optional(),
|
|
69
|
+
new_draft: zod_1.z.boolean().optional(),
|
|
70
|
+
new_prerelease: zod_1.z.boolean().optional(),
|
|
71
|
+
new_target_commitish: zod_1.z.string().optional(),
|
|
72
|
+
// Para publish
|
|
73
|
+
latest: zod_1.z.boolean().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 ReleasesResultSchema = 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: releases
|
|
94
|
+
*
|
|
95
|
+
* DESCRIÇÃO:
|
|
96
|
+
* Gerenciamento completo de releases Gitea com múltiplas ações
|
|
97
|
+
*
|
|
98
|
+
* ACTIONS DISPONÍVEIS:
|
|
99
|
+
*
|
|
100
|
+
* 1. create - Criar novo release
|
|
101
|
+
* Parâmetros:
|
|
102
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
103
|
+
* - repo (obrigatório): Nome do repositório
|
|
104
|
+
* - tag_name (obrigatório): Nome da tag do release
|
|
105
|
+
* - name (opcional): Nome do release
|
|
106
|
+
* - body (opcional): Descrição detalhada (changelog)
|
|
107
|
+
* - draft (opcional): Se é um draft release (padrão: false)
|
|
108
|
+
* - prerelease (opcional): Se é um prerelease (padrão: false)
|
|
109
|
+
* - target_commitish (opcional): Branch ou commit alvo (padrão: branch padrão)
|
|
110
|
+
*
|
|
111
|
+
* 2. list - Listar releases
|
|
112
|
+
* Parâmetros:
|
|
113
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
114
|
+
* - repo (obrigatório): Nome do repositório
|
|
115
|
+
* - page (opcional): Página da listagem (padrão: 1)
|
|
116
|
+
* - limit (opcional): Itens por página (padrão: 30, máximo: 100)
|
|
117
|
+
*
|
|
118
|
+
* 3. get - Obter detalhes do release
|
|
119
|
+
* Parâmetros:
|
|
120
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
121
|
+
* - repo (obrigatório): Nome do repositório
|
|
122
|
+
* - release_id (obrigatório): ID do release
|
|
123
|
+
*
|
|
124
|
+
* 4. update - Atualizar release existente
|
|
125
|
+
* Parâmetros:
|
|
126
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
127
|
+
* - repo (obrigatório): Nome do repositório
|
|
128
|
+
* - release_id (obrigatório): ID do release
|
|
129
|
+
* - new_tag_name (opcional): Nova tag
|
|
130
|
+
* - new_name (opcional): Novo nome
|
|
131
|
+
* - new_body (opcional): Nova descrição
|
|
132
|
+
* - new_draft (opcional): Novo status de draft
|
|
133
|
+
* - new_prerelease (opcional): Novo status de prerelease
|
|
134
|
+
* - new_target_commitish (opcional): Nova branch/commit alvo
|
|
135
|
+
*
|
|
136
|
+
* 5. delete - Deletar release
|
|
137
|
+
* Parâmetros:
|
|
138
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
139
|
+
* - repo (obrigatório): Nome do repositório
|
|
140
|
+
* - release_id (obrigatório): ID do release
|
|
141
|
+
*
|
|
142
|
+
* 6. publish - Publicar release
|
|
143
|
+
* Parâmetros:
|
|
144
|
+
* - owner (obrigatório): Proprietário do repositório
|
|
145
|
+
* - repo (obrigatório): Nome do repositório
|
|
146
|
+
* - release_id (obrigatório): ID do release
|
|
147
|
+
*
|
|
148
|
+
* RECOMENDAÇÕES DE USO:
|
|
149
|
+
* - Use versionamento semântico (ex: v1.0.0, v2.1.3)
|
|
150
|
+
* - Documente mudanças detalhadamente no body
|
|
151
|
+
* - Use drafts para releases em preparação
|
|
152
|
+
* - Marque prereleases adequadamente
|
|
153
|
+
* - Teste releases antes de publicar
|
|
154
|
+
* - Mantenha changelog organizado
|
|
155
|
+
*/
|
|
156
|
+
exports.releasesTool = {
|
|
157
|
+
name: 'releases',
|
|
158
|
+
description: 'Manage releases with multi-provider support (GitHub and Gitea): create, list, get, update, delete, publish. Boas práticas (solo): use versionamento semântico (vMAJOR.MINOR.PATCH); documente mudanças no body (changelog); utilize prerelease/draft; crie releases para cada entrega "rodável"; para rollback, redeploy do release anterior.',
|
|
159
|
+
inputSchema: {
|
|
160
|
+
type: 'object',
|
|
161
|
+
properties: {
|
|
162
|
+
action: {
|
|
163
|
+
type: 'string',
|
|
164
|
+
enum: ['create', 'list', 'get', 'update', 'delete', 'publish'],
|
|
165
|
+
description: 'Action to perform on releases'
|
|
166
|
+
},
|
|
167
|
+
owner: { type: 'string', description: 'Repository owner' },
|
|
168
|
+
repo: { type: 'string', description: 'Repository name' },
|
|
169
|
+
provider: { type: 'string', description: 'Provider to use (github, gitea, or omit for default)' },
|
|
170
|
+
tag_name: { type: 'string', description: 'Release tag name' },
|
|
171
|
+
name: { type: 'string', description: 'Release name' },
|
|
172
|
+
body: { type: 'string', description: 'Release description/notes' },
|
|
173
|
+
draft: { type: 'boolean', description: 'Create as draft release' },
|
|
174
|
+
prerelease: { type: 'boolean', description: 'Mark as prerelease' },
|
|
175
|
+
target_commitish: { type: 'string', description: 'Target branch or commit' },
|
|
176
|
+
release_id: { type: 'number', description: 'Release ID' },
|
|
177
|
+
page: { type: 'number', description: 'Page number', minimum: 1 },
|
|
178
|
+
limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 },
|
|
179
|
+
new_tag_name: { type: 'string', description: 'New tag name' },
|
|
180
|
+
new_name: { type: 'string', description: 'New release name' },
|
|
181
|
+
new_body: { type: 'string', description: 'New release description' },
|
|
182
|
+
new_draft: { type: 'boolean', description: 'New draft status' },
|
|
183
|
+
new_prerelease: { type: 'boolean', description: 'New prerelease status' },
|
|
184
|
+
new_target_commitish: { type: 'string', description: 'New target branch or commit' },
|
|
185
|
+
latest: { type: 'boolean', description: 'Get latest release' }
|
|
186
|
+
},
|
|
187
|
+
required: ['action']
|
|
188
|
+
},
|
|
189
|
+
/**
|
|
190
|
+
* Handler principal da tool releases
|
|
191
|
+
*
|
|
192
|
+
* FUNCIONALIDADE:
|
|
193
|
+
* - Valida entrada usando Zod schema
|
|
194
|
+
* - Roteia para método específico baseado na ação
|
|
195
|
+
* - Trata erros de forma uniforme
|
|
196
|
+
* - Retorna resultado padronizado
|
|
197
|
+
*
|
|
198
|
+
* FLUXO:
|
|
199
|
+
* 1. Validação de entrada
|
|
200
|
+
* 2. Seleção do provider
|
|
201
|
+
* 3. Roteamento por ação
|
|
202
|
+
* 4. Execução do método específico
|
|
203
|
+
* 5. Tratamento de erros
|
|
204
|
+
* 6. Retorno de resultado
|
|
205
|
+
*
|
|
206
|
+
* TRATAMENTO DE ERROS:
|
|
207
|
+
* - Validação: erro de schema
|
|
208
|
+
* - Execução: erro da operação
|
|
209
|
+
* - Roteamento: ação não suportada
|
|
210
|
+
*
|
|
211
|
+
* RECOMENDAÇÕES:
|
|
212
|
+
* - Sempre valide entrada antes de processar
|
|
213
|
+
* - Trate erros específicos adequadamente
|
|
214
|
+
* - Log detalhes de erro para debug
|
|
215
|
+
* - Retorne mensagens de erro úteis
|
|
216
|
+
*/
|
|
217
|
+
async handler(input) {
|
|
218
|
+
try {
|
|
219
|
+
const validatedInput = ReleasesInputSchema.parse(input);
|
|
220
|
+
// Seleciona o provider baseado na entrada ou usa o padrão
|
|
221
|
+
const provider = validatedInput.provider
|
|
222
|
+
? index_js_1.globalProviderFactory.getProvider(validatedInput.provider)
|
|
223
|
+
: index_js_1.globalProviderFactory.getDefaultProvider();
|
|
224
|
+
if (!provider) {
|
|
225
|
+
throw new Error('Provider não encontrado ou não configurado');
|
|
226
|
+
}
|
|
227
|
+
switch (validatedInput.action) {
|
|
228
|
+
case 'create':
|
|
229
|
+
return await this.createRelease(validatedInput, provider);
|
|
230
|
+
case 'list':
|
|
231
|
+
return await this.listReleases(validatedInput, provider);
|
|
232
|
+
case 'get':
|
|
233
|
+
return await this.getRelease(validatedInput, provider);
|
|
234
|
+
case 'update':
|
|
235
|
+
return await this.updateRelease(validatedInput, provider);
|
|
236
|
+
case 'delete':
|
|
237
|
+
return await this.deleteRelease(validatedInput, provider);
|
|
238
|
+
case 'publish':
|
|
239
|
+
return await this.publishRelease(validatedInput, provider);
|
|
240
|
+
default:
|
|
241
|
+
throw new Error(`Ação não suportada: ${validatedInput.action}`);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
return {
|
|
246
|
+
success: false,
|
|
247
|
+
action: input.action,
|
|
248
|
+
message: 'Erro na operação de releases',
|
|
249
|
+
error: error instanceof Error ? error.message : String(error)
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
/**
|
|
254
|
+
* Cria um novo release no repositório
|
|
255
|
+
*
|
|
256
|
+
* FUNCIONALIDADE:
|
|
257
|
+
* - Cria release com tag e descrição
|
|
258
|
+
* - Suporta configuração de draft e prerelease
|
|
259
|
+
* - Permite especificar branch/commit alvo
|
|
260
|
+
*
|
|
261
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
262
|
+
* - owner: Proprietário do repositório
|
|
263
|
+
* - repo: Nome do repositório
|
|
264
|
+
* - tag_name: Nome da tag do release
|
|
265
|
+
*
|
|
266
|
+
* PARÂMETROS OPCIONAIS:
|
|
267
|
+
* - name: Nome do release
|
|
268
|
+
* - body: Descrição detalhada (changelog)
|
|
269
|
+
* - draft: Se é um draft release (padrão: false)
|
|
270
|
+
* - prerelease: Se é um prerelease (padrão: false)
|
|
271
|
+
* - target_commitish: Branch ou commit alvo (padrão: branch padrão)
|
|
272
|
+
*
|
|
273
|
+
* VALIDAÇÕES:
|
|
274
|
+
* - Todos os parâmetros obrigatórios
|
|
275
|
+
* - Tag deve ser única no repositório
|
|
276
|
+
* - Target commitish deve existir
|
|
277
|
+
* - Usuário deve ter permissão de escrita
|
|
278
|
+
*
|
|
279
|
+
* RECOMENDAÇÕES:
|
|
280
|
+
* - Use versionamento semântico (ex: v1.0.0)
|
|
281
|
+
* - Documente mudanças detalhadamente
|
|
282
|
+
* - Use drafts para releases em preparação
|
|
283
|
+
* - Marque prereleases adequadamente
|
|
284
|
+
*/
|
|
285
|
+
async createRelease(params, provider) {
|
|
286
|
+
try {
|
|
287
|
+
if (!params.owner || !params.repo || !params.tag_name) {
|
|
288
|
+
throw new Error('Owner, repo e tag_name são obrigatórios');
|
|
289
|
+
}
|
|
290
|
+
const releaseData = {
|
|
291
|
+
tag_name: params.tag_name,
|
|
292
|
+
name: params.name || params.tag_name,
|
|
293
|
+
body: params.body || '',
|
|
294
|
+
draft: params.draft || false,
|
|
295
|
+
prerelease: params.prerelease || false,
|
|
296
|
+
target_commitish: params.target_commitish || 'main'
|
|
297
|
+
};
|
|
298
|
+
const release = await provider.createRelease(params.tag_name, params.name || params.tag_name, params.body, params.draft, params.prerelease);
|
|
299
|
+
return {
|
|
300
|
+
success: true,
|
|
301
|
+
action: 'create',
|
|
302
|
+
message: `Release '${params.tag_name}' criado com sucesso`,
|
|
303
|
+
data: release
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
throw new Error(`Falha ao criar release: ${error instanceof Error ? error.message : String(error)}`);
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
/**
|
|
311
|
+
* Lista releases do repositório
|
|
312
|
+
*
|
|
313
|
+
* FUNCIONALIDADE:
|
|
314
|
+
* - Lista releases com paginação
|
|
315
|
+
* - Retorna informações básicas de cada release
|
|
316
|
+
* - Inclui status de draft e prerelease
|
|
317
|
+
*
|
|
318
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
319
|
+
* - owner: Proprietário do repositório
|
|
320
|
+
* - repo: Nome do repositório
|
|
321
|
+
*
|
|
322
|
+
* PARÂMETROS OPCIONAIS:
|
|
323
|
+
* - page: Página da listagem (padrão: 1)
|
|
324
|
+
* - limit: Itens por página (padrão: 30, máximo: 100)
|
|
325
|
+
*
|
|
326
|
+
* VALIDAÇÕES:
|
|
327
|
+
* - Owner e repo obrigatórios
|
|
328
|
+
* - Page deve ser >= 1
|
|
329
|
+
* - Limit deve ser entre 1 e 100
|
|
330
|
+
*
|
|
331
|
+
* RECOMENDAÇÕES:
|
|
332
|
+
* - Use paginação para repositórios com muitos releases
|
|
333
|
+
* - Monitore número total de releases
|
|
334
|
+
* - Verifique status de draft e prerelease
|
|
335
|
+
* - Mantenha releases organizados
|
|
336
|
+
*/
|
|
337
|
+
async listReleases(params, provider) {
|
|
338
|
+
try {
|
|
339
|
+
if (!params.owner || !params.repo) {
|
|
340
|
+
throw new Error('Owner e repo são obrigatórios');
|
|
341
|
+
}
|
|
342
|
+
const page = params.page || 1;
|
|
343
|
+
const limit = params.limit || 30;
|
|
344
|
+
const releases = await provider.listReleases(params.owner, params.repo, page, limit);
|
|
345
|
+
return {
|
|
346
|
+
success: true,
|
|
347
|
+
action: 'list',
|
|
348
|
+
message: `${releases.length} releases encontrados`,
|
|
349
|
+
data: {
|
|
350
|
+
releases,
|
|
351
|
+
page,
|
|
352
|
+
limit,
|
|
353
|
+
total: releases.length
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
catch (error) {
|
|
358
|
+
throw new Error(`Falha ao listar releases: ${error instanceof Error ? error.message : String(error)}`);
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
/**
|
|
362
|
+
* Obtém detalhes de um release específico
|
|
363
|
+
*
|
|
364
|
+
* FUNCIONALIDADE:
|
|
365
|
+
* - Retorna informações completas do release
|
|
366
|
+
* - Inclui tag, nome, descrição e status
|
|
367
|
+
* - Mostra URLs de download
|
|
368
|
+
*
|
|
369
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
370
|
+
* - owner: Proprietário do repositório
|
|
371
|
+
* - repo: Nome do repositório
|
|
372
|
+
* - release_id: ID do release
|
|
373
|
+
*
|
|
374
|
+
* VALIDAÇÕES:
|
|
375
|
+
* - Todos os parâmetros obrigatórios
|
|
376
|
+
* - Release deve existir no repositório
|
|
377
|
+
* - ID deve ser válido
|
|
378
|
+
*
|
|
379
|
+
* RECOMENDAÇÕES:
|
|
380
|
+
* - Use para obter detalhes completos
|
|
381
|
+
* - Verifique status de draft e prerelease
|
|
382
|
+
* - Analise changelog e descrição
|
|
383
|
+
* - Monitore URLs de download
|
|
384
|
+
*/
|
|
385
|
+
async getRelease(params, provider) {
|
|
386
|
+
try {
|
|
387
|
+
if (!params.owner || !params.repo || !params.release_id) {
|
|
388
|
+
throw new Error('Owner, repo e release_id são obrigatórios');
|
|
389
|
+
}
|
|
390
|
+
const release = await provider.getRelease(params.owner, params.repo, params.release_id);
|
|
391
|
+
return {
|
|
392
|
+
success: true,
|
|
393
|
+
action: 'get',
|
|
394
|
+
message: `Release #${params.release_id} obtido com sucesso`,
|
|
395
|
+
data: release
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
catch (error) {
|
|
399
|
+
throw new Error(`Falha ao obter release: ${error instanceof Error ? error.message : String(error)}`);
|
|
400
|
+
}
|
|
401
|
+
},
|
|
402
|
+
/**
|
|
403
|
+
* Atualiza um release existente
|
|
404
|
+
*
|
|
405
|
+
* FUNCIONALIDADE:
|
|
406
|
+
* - Atualiza campos do release
|
|
407
|
+
* - Suporta mudança de tag e descrição
|
|
408
|
+
* - Permite alteração de status
|
|
409
|
+
*
|
|
410
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
411
|
+
* - owner: Proprietário do repositório
|
|
412
|
+
* - repo: Nome do repositório
|
|
413
|
+
* - release_id: ID do release
|
|
414
|
+
*
|
|
415
|
+
* PARÂMETROS OPCIONAIS:
|
|
416
|
+
* - new_tag_name: Nova tag
|
|
417
|
+
* - new_name: Novo nome
|
|
418
|
+
* - new_body: Nova descrição
|
|
419
|
+
* - new_draft: Novo status de draft
|
|
420
|
+
* - new_prerelease: Novo status de prerelease
|
|
421
|
+
* - new_target_commitish: Nova branch/commit alvo
|
|
422
|
+
*
|
|
423
|
+
* VALIDAÇÕES:
|
|
424
|
+
* - Todos os parâmetros obrigatórios
|
|
425
|
+
* - Release deve existir
|
|
426
|
+
* - Pelo menos um campo deve ser atualizado
|
|
427
|
+
*
|
|
428
|
+
* RECOMENDAÇÕES:
|
|
429
|
+
* - Atualize apenas campos necessários
|
|
430
|
+
* - Use mensagens de commit descritivas
|
|
431
|
+
* - Documente mudanças importantes
|
|
432
|
+
* - Notifique usuários sobre mudanças
|
|
433
|
+
*/
|
|
434
|
+
async updateRelease(params, provider) {
|
|
435
|
+
try {
|
|
436
|
+
if (!params.owner || !params.repo || !params.release_id) {
|
|
437
|
+
throw new Error('Owner, repo e release_id são obrigatórios');
|
|
438
|
+
}
|
|
439
|
+
const updateData = {};
|
|
440
|
+
if (params.new_tag_name)
|
|
441
|
+
updateData.tag_name = params.new_tag_name;
|
|
442
|
+
if (params.new_name)
|
|
443
|
+
updateData.name = params.new_name;
|
|
444
|
+
if (params.new_body !== undefined)
|
|
445
|
+
updateData.body = params.new_body;
|
|
446
|
+
if (params.new_draft !== undefined)
|
|
447
|
+
updateData.draft = params.new_draft;
|
|
448
|
+
if (params.new_prerelease !== undefined)
|
|
449
|
+
updateData.prerelease = params.new_prerelease;
|
|
450
|
+
if (params.new_target_commitish)
|
|
451
|
+
updateData.target_commitish = params.new_target_commitish;
|
|
452
|
+
if (Object.keys(updateData).length === 0) {
|
|
453
|
+
throw new Error('Nenhum campo para atualizar foi fornecido');
|
|
454
|
+
}
|
|
455
|
+
const release = await provider.updateRelease(params.release_id, updateData);
|
|
456
|
+
return {
|
|
457
|
+
success: true,
|
|
458
|
+
action: 'update',
|
|
459
|
+
message: `Release #${params.release_id} atualizado com sucesso`,
|
|
460
|
+
data: release
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
catch (error) {
|
|
464
|
+
throw new Error(`Falha ao atualizar release: ${error instanceof Error ? error.message : String(error)}`);
|
|
465
|
+
}
|
|
466
|
+
},
|
|
467
|
+
/**
|
|
468
|
+
* Deleta um release do repositório
|
|
469
|
+
*
|
|
470
|
+
* FUNCIONALIDADE:
|
|
471
|
+
* - Remove release especificado
|
|
472
|
+
* - Mantém tag associada (se existir)
|
|
473
|
+
* - Confirma exclusão bem-sucedida
|
|
474
|
+
*
|
|
475
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
476
|
+
* - owner: Proprietário do repositório
|
|
477
|
+
* - repo: Nome do repositório
|
|
478
|
+
* - release_id: ID do release
|
|
479
|
+
*
|
|
480
|
+
* VALIDAÇÕES:
|
|
481
|
+
* - Todos os parâmetros obrigatórios
|
|
482
|
+
* - Release deve existir
|
|
483
|
+
* - Usuário deve ter permissão de exclusão
|
|
484
|
+
*
|
|
485
|
+
* RECOMENDAÇÕES:
|
|
486
|
+
* - Confirme exclusão antes de executar
|
|
487
|
+
* - Verifique se release não está sendo usado
|
|
488
|
+
* - Mantenha backup se necessário
|
|
489
|
+
* - Documente motivo da exclusão
|
|
490
|
+
*/
|
|
491
|
+
async deleteRelease(params, provider) {
|
|
492
|
+
try {
|
|
493
|
+
if (!params.owner || !params.repo || !params.release_id) {
|
|
494
|
+
throw new Error('Owner, repo e release_id são obrigatórios');
|
|
495
|
+
}
|
|
496
|
+
await provider.deleteRelease(params.release_id);
|
|
497
|
+
return {
|
|
498
|
+
success: true,
|
|
499
|
+
action: 'delete',
|
|
500
|
+
message: `Release #${params.release_id} deletado com sucesso`,
|
|
501
|
+
data: { deleted: true }
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
catch (error) {
|
|
505
|
+
throw new Error(`Falha ao deletar release: ${error instanceof Error ? error.message : String(error)}`);
|
|
506
|
+
}
|
|
507
|
+
},
|
|
508
|
+
/**
|
|
509
|
+
* Publica um release draft
|
|
510
|
+
*
|
|
511
|
+
* FUNCIONALIDADE:
|
|
512
|
+
* - Altera status do release de draft para publicado
|
|
513
|
+
* - Mantém todas as outras configurações
|
|
514
|
+
* - Permite download público
|
|
515
|
+
*
|
|
516
|
+
* PARÂMETROS OBRIGATÓRIOS:
|
|
517
|
+
* - owner: Proprietário do repositório
|
|
518
|
+
* - repo: Nome do repositório
|
|
519
|
+
* - release_id: ID do release
|
|
520
|
+
*
|
|
521
|
+
* VALIDAÇÕES:
|
|
522
|
+
* - Todos os parâmetros obrigatórios
|
|
523
|
+
* - Release deve existir
|
|
524
|
+
* - Release deve estar como draft
|
|
525
|
+
*
|
|
526
|
+
* RECOMENDAÇÕES:
|
|
527
|
+
* - Confirme que release está pronto
|
|
528
|
+
* - Teste antes de publicar
|
|
529
|
+
* - Verifique se não há bugs conhecidos
|
|
530
|
+
* - Notifique usuários sobre nova versão
|
|
531
|
+
*/
|
|
532
|
+
async publishRelease(params, provider) {
|
|
533
|
+
try {
|
|
534
|
+
if (!params.owner || !params.repo || !params.release_id) {
|
|
535
|
+
throw new Error('Owner, repo e release_id são obrigatórios');
|
|
536
|
+
}
|
|
537
|
+
// Publicar release alterando status de draft para false
|
|
538
|
+
const release = await provider.updateRelease(params.release_id, { draft: false });
|
|
539
|
+
return {
|
|
540
|
+
success: true,
|
|
541
|
+
action: 'publish',
|
|
542
|
+
message: `Release #${params.release_id} publicado com sucesso`,
|
|
543
|
+
data: release
|
|
544
|
+
};
|
|
545
|
+
}
|
|
546
|
+
catch (error) {
|
|
547
|
+
throw new Error(`Falha ao publicar release: ${error instanceof Error ? error.message : String(error)}`);
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
};
|
|
551
|
+
//# sourceMappingURL=releases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releases.js","sourceRoot":"","sources":["../../src/tools/releases.ts"],"names":[],"mappings":"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"}
|