@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,384 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deploymentsTool = 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
- const validator_js_1 = require("./validator.js");
8
- /**
9
- * Tool: deployments
10
- *
11
- * DESCRIÇÃO:
12
- * Gerenciamento completo de deployments com múltiplas ações
13
- *
14
- * FUNCIONALIDADES:
15
- * - Listagem de deployments
16
- * - Criação de deployment
17
- * - Atualização de status de deployment
18
- * - Gerenciamento de ambientes
19
- * - Rollback de deployments
20
- * - Monitoramento de status
21
- *
22
- * USO:
23
- * - Para rastrear deployments em produção
24
- * - Para gerenciar ambientes de deploy
25
- * - Para automação de rollbacks
26
- * - Para monitoramento de releases
27
- *
28
- * RECOMENDAÇÕES:
29
- * - Use ambientes separados para staging/prod
30
- * - Monitore status de deployments
31
- * - Configure rollbacks automáticos
32
- * - Mantenha histórico de deployments
33
- */
34
- /**
35
- * Schema de validação para entrada da tool deployments
36
- */
37
- const DeploymentsInputSchema = zod_1.z.object({
38
- action: zod_1.z.enum(['list', 'create', 'status', 'environments', 'rollback', 'delete']),
39
- // Parâmetros comuns
40
- owner: validator_js_1.CommonSchemas.owner,
41
- repo: validator_js_1.CommonSchemas.repo,
42
- provider: validator_js_1.CommonSchemas.provider,
43
- // Parâmetros para listagem
44
- page: validator_js_1.CommonSchemas.page,
45
- limit: validator_js_1.CommonSchemas.limit,
46
- // Parâmetros para deployment
47
- deployment_id: validator_js_1.CommonSchemas.shortString,
48
- ref: validator_js_1.CommonSchemas.branch,
49
- environment: validator_js_1.CommonSchemas.shortString,
50
- description: validator_js_1.CommonSchemas.mediumString,
51
- // Parâmetros para criação
52
- task: validator_js_1.CommonSchemas.shortString,
53
- auto_merge: validator_js_1.CommonSchemas.boolean,
54
- required_contexts: zod_1.z.array(zod_1.z.string()).optional(),
55
- payload: zod_1.z.record(zod_1.z.any()).optional(),
56
- // Parâmetros para status
57
- state: zod_1.z.enum(['pending', 'success', 'error', 'failure', 'inactive', 'in_progress', 'queued']).optional(),
58
- log_url: validator_js_1.CommonSchemas.mediumString,
59
- environment_url: validator_js_1.CommonSchemas.mediumString,
60
- // Parâmetros para ambientes
61
- environment_name: validator_js_1.CommonSchemas.shortString,
62
- wait_timer: zod_1.z.number().optional(),
63
- reviewers: zod_1.z.array(zod_1.z.string()).optional(),
64
- // Filtros
65
- sha: validator_js_1.CommonSchemas.shortString,
66
- task_filter: validator_js_1.CommonSchemas.shortString,
67
- environment_filter: validator_js_1.CommonSchemas.shortString
68
- }).refine((data) => {
69
- // Validações específicas por ação
70
- if (['create'].includes(data.action)) {
71
- return data.owner && data.repo && data.ref && data.environment;
72
- }
73
- if (['status', 'rollback', 'delete'].includes(data.action)) {
74
- return data.owner && data.repo && data.deployment_id;
75
- }
76
- return data.owner && data.repo;
77
- }, {
78
- message: "Parâmetros obrigatórios não fornecidos para a ação especificada"
79
- });
80
- /**
81
- * Schema de validação para resultado da tool deployments
82
- */
83
- const DeploymentsResultSchema = zod_1.z.object({
84
- success: zod_1.z.boolean(),
85
- action: zod_1.z.string(),
86
- message: zod_1.z.string(),
87
- data: zod_1.z.any().optional(),
88
- error: zod_1.z.string().optional()
89
- });
90
- /**
91
- * Implementação da tool deployments
92
- */
93
- exports.deploymentsTool = {
94
- name: 'deployments',
95
- description: 'Manage deployments with multiple actions: list, create, status, environments, rollback, delete. Suporte completo a GitHub e Gitea simultaneamente. Boas práticas: use ambientes separados para staging/prod, monitore status de deployments, configure rollbacks automáticos e mantenha histórico de deployments.',
96
- inputSchema: {
97
- type: 'object',
98
- properties: {
99
- action: {
100
- type: 'string',
101
- enum: ['list', 'create', 'status', 'environments', 'rollback', 'delete'],
102
- description: 'Action to perform on deployments'
103
- },
104
- owner: { type: 'string', description: 'Repository owner' },
105
- repo: { type: 'string', description: 'Repository name' },
106
- provider: { type: 'string', description: 'Specific provider (github, gitea) or use default' },
107
- deployment_id: { type: 'string', description: 'Deployment ID' },
108
- ref: { type: 'string', description: 'Git reference to deploy' },
109
- environment: { type: 'string', description: 'Deployment environment' },
110
- description: { type: 'string', description: 'Deployment description' },
111
- task: { type: 'string', description: 'Deployment task' },
112
- auto_merge: { type: 'boolean', description: 'Auto merge deployment' },
113
- required_contexts: { type: 'array', items: { type: 'string' }, description: 'Required status contexts' },
114
- payload: { type: 'object', description: 'Deployment payload' },
115
- state: { type: 'string', enum: ['pending', 'success', 'error', 'failure', 'inactive', 'in_progress', 'queued'], description: 'Deployment state' },
116
- log_url: { type: 'string', description: 'Log URL' },
117
- environment_url: { type: 'string', description: 'Environment URL' },
118
- environment_name: { type: 'string', description: 'Environment name' },
119
- wait_timer: { type: 'number', description: 'Wait timer in minutes' },
120
- reviewers: { type: 'array', items: { type: 'string' }, description: 'Environment reviewers' },
121
- sha: { type: 'string', description: 'Commit SHA filter' },
122
- task_filter: { type: 'string', description: 'Task filter' },
123
- environment_filter: { type: 'string', description: 'Environment filter' },
124
- page: { type: 'number', description: 'Page number', minimum: 1 },
125
- limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 }
126
- },
127
- required: ['action', 'owner', 'repo', 'provider']
128
- },
129
- async handler(input) {
130
- try {
131
- const validatedInput = DeploymentsInputSchema.parse(input);
132
- // Aplicar auto-detecção de usuário
133
- const updatedParams = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.provider);
134
- const provider = updatedParams.provider
135
- ? index_js_1.globalProviderFactory.getProvider(updatedParams.provider)
136
- : index_js_1.globalProviderFactory.getDefaultProvider();
137
- if (!provider) {
138
- throw new Error(`Provider '${updatedParams.provider}' não encontrado`);
139
- }
140
- switch (updatedParams.action) {
141
- case 'list':
142
- return await this.createDeployment(updatedParams, provider);
143
- case 'create':
144
- return await this.updateDeploymentStatus(updatedParams, provider);
145
- case 'status':
146
- return await this.listEnvironments(updatedParams, provider);
147
- case 'environments':
148
- return await this.rollbackDeployment(updatedParams, provider);
149
- case 'rollback':
150
- return await this.deleteDeployment(updatedParams, provider);
151
- case 'delete':
152
- return await this.deleteDeployment(updatedParams, provider);
153
- default:
154
- throw new Error(`Ação não suportada: ${updatedParams.action}`);
155
- }
156
- }
157
- catch (error) {
158
- return {
159
- success: false,
160
- action: input.action || 'unknown',
161
- message: 'Erro na operação de deployments',
162
- error: error instanceof Error ? error.message : String(error)
163
- };
164
- }
165
- },
166
- /**
167
- * Lista deployments do repositório
168
- */
169
- async listDeployments(params, provider) {
170
- try {
171
- // Auto-detecção de owner/username se não fornecidos
172
- let updatedParams = { ...params };
173
- if (!updatedParams.owner) {
174
- try {
175
- const currentUser = await provider.getCurrentUser();
176
- updatedParams.owner = currentUser.login;
177
- }
178
- catch (error) {
179
- console.warn('[DEPLOYMENTS.TS] Falha na auto-detecção de usuário');
180
- }
181
- }
182
- if (!provider.listDeployments) {
183
- return {
184
- success: true,
185
- action: 'list',
186
- message: 'Funcionalidade de deployments não suportada por este provider',
187
- data: {
188
- total_count: 0,
189
- deployments: [],
190
- note: 'Deployments não disponíveis neste provider'
191
- }
192
- };
193
- }
194
- const result = await provider.listDeployments({
195
- owner: params.owner,
196
- repo: params.repo,
197
- sha: params.sha,
198
- ref: params.ref,
199
- task: params.task_filter,
200
- environment: params.environment_filter,
201
- page: params.page,
202
- limit: params.limit
203
- });
204
- return {
205
- success: true,
206
- action: 'list',
207
- message: `${result.deployments?.length || 0} deployments encontrados`,
208
- data: result
209
- };
210
- }
211
- catch (error) {
212
- throw new Error(`Falha ao listar deployments: ${error}`);
213
- }
214
- },
215
- /**
216
- * Cria novo deployment
217
- */
218
- async createDeployment(params, provider) {
219
- try {
220
- if (!provider.createDeployment) {
221
- return {
222
- success: false,
223
- action: 'create-deployment',
224
- message: 'Funcionalidade não suportada por este provider',
225
- error: 'Provider não implementa createDeployment'
226
- };
227
- }
228
- const result = await provider.createDeployment({
229
- owner: params.owner,
230
- repo: params.repo,
231
- ref: params.ref,
232
- environment: params.environment,
233
- description: params.description,
234
- task: params.task || 'deploy',
235
- auto_merge: params.auto_merge,
236
- required_contexts: params.required_contexts,
237
- payload: params.payload
238
- });
239
- return {
240
- success: true,
241
- action: 'create',
242
- message: `Deployment criado com sucesso`,
243
- data: result
244
- };
245
- }
246
- catch (error) {
247
- throw new Error(`Falha ao criar deployment: ${error}`);
248
- }
249
- },
250
- /**
251
- * Atualiza status do deployment
252
- */
253
- async updateDeploymentStatus(params, provider) {
254
- try {
255
- if (!provider.updateDeploymentStatus) {
256
- return {
257
- success: false,
258
- action: 'update-deployment-status',
259
- message: 'Funcionalidade não suportada por este provider',
260
- error: 'Provider não implementa updateDeploymentStatus'
261
- };
262
- }
263
- const result = await provider.updateDeploymentStatus({
264
- owner: params.owner,
265
- repo: params.repo,
266
- deployment_id: params.deployment_id,
267
- state: params.state || 'pending',
268
- log_url: params.log_url,
269
- description: params.description,
270
- environment_url: params.environment_url
271
- });
272
- return {
273
- success: true,
274
- action: 'status',
275
- message: `Status do deployment atualizado com sucesso`,
276
- data: result
277
- };
278
- }
279
- catch (error) {
280
- throw new Error(`Falha ao atualizar status do deployment: ${error}`);
281
- }
282
- },
283
- /**
284
- * Lista ambientes de deployment
285
- */
286
- async listEnvironments(params, provider) {
287
- try {
288
- // Auto-detecção de owner/username se não fornecidos
289
- let updatedParams = { ...params };
290
- if (!updatedParams.owner) {
291
- try {
292
- const currentUser = await provider.getCurrentUser();
293
- updatedParams.owner = currentUser.login;
294
- }
295
- catch (error) {
296
- console.warn('[DEPLOYMENTS.TS] Falha na auto-detecção de usuário');
297
- }
298
- }
299
- if (!provider.listEnvironments) {
300
- return {
301
- success: false,
302
- action: 'list-environments',
303
- message: 'Funcionalidade não suportada por este provider',
304
- error: 'Provider não implementa listEnvironments'
305
- };
306
- }
307
- const result = await provider.listEnvironments({
308
- owner: params.owner,
309
- repo: params.repo,
310
- page: params.page,
311
- limit: params.limit
312
- });
313
- return {
314
- success: true,
315
- action: 'environments',
316
- message: `${result.environments?.length || 0} ambientes encontrados`,
317
- data: result
318
- };
319
- }
320
- catch (error) {
321
- throw new Error(`Falha ao listar ambientes: ${error}`);
322
- }
323
- },
324
- /**
325
- * Executa rollback de deployment
326
- */
327
- async rollbackDeployment(params, provider) {
328
- try {
329
- if (!provider.rollbackDeployment) {
330
- return {
331
- success: false,
332
- action: 'rollback-deployment',
333
- message: 'Funcionalidade não suportada por este provider',
334
- error: 'Provider não implementa rollbackDeployment'
335
- };
336
- }
337
- const result = await provider.rollbackDeployment({
338
- owner: params.owner,
339
- repo: params.repo,
340
- deployment_id: params.deployment_id,
341
- description: params.description || 'Rollback automático'
342
- });
343
- return {
344
- success: true,
345
- action: 'rollback',
346
- message: `Rollback do deployment executado com sucesso`,
347
- data: result
348
- };
349
- }
350
- catch (error) {
351
- throw new Error(`Falha ao executar rollback: ${error}`);
352
- }
353
- },
354
- /**
355
- * Remove deployment
356
- */
357
- async deleteDeployment(params, provider) {
358
- try {
359
- if (!provider.deleteDeployment) {
360
- return {
361
- success: false,
362
- action: 'delete-deployment',
363
- message: 'Funcionalidade não suportada por este provider',
364
- error: 'Provider não implementa deleteDeployment'
365
- };
366
- }
367
- const result = await provider.deleteDeployment({
368
- owner: params.owner,
369
- repo: params.repo,
370
- deployment_id: params.deployment_id
371
- });
372
- return {
373
- success: true,
374
- action: 'delete',
375
- message: `Deployment removido com sucesso`,
376
- data: result
377
- };
378
- }
379
- catch (error) {
380
- throw new Error(`Falha ao remover deployment: ${error}`);
381
- }
382
- }
383
- };
384
- //# sourceMappingURL=deployments.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../src/tools/deployments.ts"],"names":[],"mappings":"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"}