@andrebuzeli/git-mcp 2.16.2 → 2.17.0

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