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