@andrebuzeli/git-mcp 2.13.0 → 2.14.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.
- package/dist/server.js +29 -29
- package/dist/server.js.map +1 -1
- package/dist/tools/gh-actions.d.ts +272 -0
- package/dist/tools/gh-actions.d.ts.map +1 -0
- package/dist/tools/gh-actions.js +479 -0
- package/dist/tools/gh-actions.js.map +1 -0
- package/dist/tools/gh-analytics.d.ts +326 -0
- package/dist/tools/gh-analytics.d.ts.map +1 -0
- package/dist/tools/gh-analytics.js +524 -0
- package/dist/tools/gh-analytics.js.map +1 -0
- package/dist/tools/gh-code-review.d.ts +323 -0
- package/dist/tools/gh-code-review.d.ts.map +1 -0
- package/dist/tools/gh-code-review.js +577 -0
- package/dist/tools/gh-code-review.js.map +1 -0
- package/dist/tools/gh-deployments.d.ts +319 -0
- package/dist/tools/gh-deployments.d.ts.map +1 -0
- package/dist/tools/gh-deployments.js +384 -0
- package/dist/tools/gh-deployments.js.map +1 -0
- package/dist/tools/gh-gists.d.ts +6 -6
- package/dist/tools/gh-security.d.ts +341 -0
- package/dist/tools/gh-security.d.ts.map +1 -0
- package/dist/tools/gh-security.js +427 -0
- package/dist/tools/gh-security.js.map +1 -0
- package/dist/tools/gh-workflows.d.ts +313 -0
- package/dist/tools/gh-workflows.d.ts.map +1 -0
- package/dist/tools/gh-workflows.js +462 -0
- package/dist/tools/gh-workflows.js.map +1 -0
- package/dist/tools/git-branches.d.ts +438 -0
- package/dist/tools/git-branches.d.ts.map +1 -0
- package/dist/tools/git-branches.js +525 -0
- package/dist/tools/git-branches.js.map +1 -0
- package/dist/tools/git-commits.d.ts +497 -0
- package/dist/tools/git-commits.d.ts.map +1 -0
- package/dist/tools/git-commits.js +626 -0
- package/dist/tools/git-commits.js.map +1 -0
- package/dist/tools/git-files.d.ts +463 -0
- package/dist/tools/git-files.d.ts.map +1 -0
- package/dist/tools/git-files.js +555 -0
- package/dist/tools/git-files.js.map +1 -0
- package/dist/tools/git-issues.d.ts +579 -0
- package/dist/tools/git-issues.d.ts.map +1 -0
- package/dist/tools/git-issues.js +694 -0
- package/dist/tools/git-issues.js.map +1 -0
- package/dist/tools/git-pulls.d.ts +702 -0
- package/dist/tools/git-pulls.d.ts.map +1 -0
- package/dist/tools/git-pulls.js +733 -0
- package/dist/tools/git-pulls.js.map +1 -0
- package/dist/tools/git-releases.d.ts +495 -0
- package/dist/tools/git-releases.d.ts.map +1 -0
- package/dist/tools/git-releases.js +552 -0
- package/dist/tools/git-releases.js.map +1 -0
- package/dist/tools/git-tags.d.ts +419 -0
- package/dist/tools/git-tags.d.ts.map +1 -0
- package/dist/tools/git-tags.js +480 -0
- package/dist/tools/git-tags.js.map +1 -0
- package/dist/tools/git-webhooks.d.ts +490 -0
- package/dist/tools/git-webhooks.d.ts.map +1 -0
- package/dist/tools/git-webhooks.js +556 -0
- package/dist/tools/git-webhooks.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.actionsTool = 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: actions
|
|
10
|
+
*
|
|
11
|
+
* DESCRIÇÃO:
|
|
12
|
+
* Gerenciamento completo de GitHub Actions com múltiplas ações
|
|
13
|
+
*
|
|
14
|
+
* FUNCIONALIDADES:
|
|
15
|
+
* - Listagem de execuções de actions
|
|
16
|
+
* - Cancelamento de execuções
|
|
17
|
+
* - Re-execução de actions falhadas
|
|
18
|
+
* - Gerenciamento de artefatos
|
|
19
|
+
* - Gerenciamento de secrets (read-only)
|
|
20
|
+
* - Monitoramento de jobs
|
|
21
|
+
*
|
|
22
|
+
* USO:
|
|
23
|
+
* - Para monitorar execuções de CI/CD
|
|
24
|
+
* - Para gerenciar artefatos de build
|
|
25
|
+
* - Para troubleshooting de falhas
|
|
26
|
+
* - Para automação de re-execuções
|
|
27
|
+
*
|
|
28
|
+
* RECOMENDAÇÕES:
|
|
29
|
+
* - Monitore execuções regularmente
|
|
30
|
+
* - Limpe artefatos antigos
|
|
31
|
+
* - Use re-execução apenas quando necessário
|
|
32
|
+
* - Mantenha secrets seguros
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* Schema de validação para entrada da tool actions
|
|
36
|
+
*/
|
|
37
|
+
const ActionsInputSchema = zod_1.z.object({
|
|
38
|
+
action: zod_1.z.enum(['list-runs', 'cancel', 'rerun', 'artifacts', 'secrets', 'jobs', 'download-artifact']),
|
|
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 runs
|
|
47
|
+
run_id: validator_js_1.CommonSchemas.shortString,
|
|
48
|
+
workflow_id: validator_js_1.CommonSchemas.shortString,
|
|
49
|
+
status: zod_1.z.enum(['queued', 'in_progress', 'completed', 'cancelled', 'failure', 'success']).optional(),
|
|
50
|
+
branch: validator_js_1.CommonSchemas.branch,
|
|
51
|
+
event: validator_js_1.CommonSchemas.shortString,
|
|
52
|
+
// Parâmetros para jobs
|
|
53
|
+
job_id: validator_js_1.CommonSchemas.shortString,
|
|
54
|
+
// Parâmetros para artefatos
|
|
55
|
+
artifact_id: validator_js_1.CommonSchemas.shortString,
|
|
56
|
+
artifact_name: validator_js_1.CommonSchemas.shortString,
|
|
57
|
+
download_path: validator_js_1.CommonSchemas.mediumString,
|
|
58
|
+
// Parâmetros para secrets
|
|
59
|
+
secret_name: validator_js_1.CommonSchemas.shortString,
|
|
60
|
+
// Filtros de data
|
|
61
|
+
created_after: zod_1.z.string().optional(),
|
|
62
|
+
created_before: zod_1.z.string().optional()
|
|
63
|
+
}).refine((data) => {
|
|
64
|
+
// Validações específicas por ação
|
|
65
|
+
if (['cancel', 'rerun', 'jobs'].includes(data.action)) {
|
|
66
|
+
return data.owner && data.repo && data.run_id;
|
|
67
|
+
}
|
|
68
|
+
if (['download-artifact'].includes(data.action)) {
|
|
69
|
+
return data.owner && data.repo && (data.artifact_id || data.artifact_name);
|
|
70
|
+
}
|
|
71
|
+
return data.owner && data.repo;
|
|
72
|
+
}, {
|
|
73
|
+
message: "Parâmetros obrigatórios não fornecidos para a ação especificada"
|
|
74
|
+
});
|
|
75
|
+
/**
|
|
76
|
+
* Schema de validação para resultado da tool actions
|
|
77
|
+
*/
|
|
78
|
+
const ActionsResultSchema = zod_1.z.object({
|
|
79
|
+
success: zod_1.z.boolean(),
|
|
80
|
+
action: zod_1.z.string(),
|
|
81
|
+
message: zod_1.z.string(),
|
|
82
|
+
data: zod_1.z.any().optional(),
|
|
83
|
+
error: zod_1.z.string().optional()
|
|
84
|
+
});
|
|
85
|
+
/**
|
|
86
|
+
* Implementação da tool actions
|
|
87
|
+
*/
|
|
88
|
+
exports.actionsTool = {
|
|
89
|
+
name: 'gh-actions',
|
|
90
|
+
description: 'Gerenciamento completo de GitHub Actions runs (EXCLUSIVO GITHUB). PARÂMETROS OBRIGATÓRIOS: action, owner, repo, provider (deve ser github). AÇÕES: list-runs (lista execuções), cancel (cancela), rerun (re-executa), artifacts (artefatos), secrets (lista secrets), jobs (lista jobs), download-artifact (baixa artefato). Boas práticas: monitore execuções regularmente, limpe artefatos antigos, use re-execução apenas quando necessário.',
|
|
91
|
+
inputSchema: {
|
|
92
|
+
type: 'object',
|
|
93
|
+
properties: {
|
|
94
|
+
action: {
|
|
95
|
+
type: 'string',
|
|
96
|
+
enum: ['list-runs', 'cancel', 'rerun', 'artifacts', 'secrets', 'jobs', 'download-artifact'],
|
|
97
|
+
description: 'Ação a executar: list-runs (lista execuções), cancel (cancela), rerun (re-executa), artifacts (artefatos), secrets (lista secrets), jobs (lista jobs), download-artifact (baixa artefato)'
|
|
98
|
+
},
|
|
99
|
+
owner: {
|
|
100
|
+
type: 'string',
|
|
101
|
+
description: 'Proprietário do repositório (OBRIGATÓRIO para todas as ações)'
|
|
102
|
+
},
|
|
103
|
+
repo: {
|
|
104
|
+
type: 'string',
|
|
105
|
+
description: 'Nome do repositório (OBRIGATÓRIO para todas as ações)'
|
|
106
|
+
},
|
|
107
|
+
provider: {
|
|
108
|
+
type: 'string',
|
|
109
|
+
description: 'Provider específico (github, gitea) ou usa padrão'
|
|
110
|
+
},
|
|
111
|
+
run_id: {
|
|
112
|
+
type: 'string',
|
|
113
|
+
description: 'ID da execução do workflow (OBRIGATÓRIO para cancel, rerun, jobs)'
|
|
114
|
+
},
|
|
115
|
+
workflow_id: {
|
|
116
|
+
type: 'string',
|
|
117
|
+
description: 'ID do workflow (OPCIONAL para list-runs)'
|
|
118
|
+
},
|
|
119
|
+
status: {
|
|
120
|
+
type: 'string',
|
|
121
|
+
enum: ['queued', 'in_progress', 'completed', 'cancelled', 'failure', 'success'],
|
|
122
|
+
description: 'Status da execução para filtrar (OPCIONAL para list-runs)'
|
|
123
|
+
},
|
|
124
|
+
branch: {
|
|
125
|
+
type: 'string',
|
|
126
|
+
description: 'Branch para filtrar execuções (OPCIONAL para list-runs)'
|
|
127
|
+
},
|
|
128
|
+
event: {
|
|
129
|
+
type: 'string',
|
|
130
|
+
description: 'Evento que disparou a execução (OPCIONAL para list-runs)'
|
|
131
|
+
},
|
|
132
|
+
job_id: {
|
|
133
|
+
type: 'string',
|
|
134
|
+
description: 'ID do job específico (OBRIGATÓRIO para jobs)'
|
|
135
|
+
},
|
|
136
|
+
artifact_id: {
|
|
137
|
+
type: 'string',
|
|
138
|
+
description: 'ID do artefato (OBRIGATÓRIO para download-artifact se não usar artifact_name)'
|
|
139
|
+
},
|
|
140
|
+
artifact_name: {
|
|
141
|
+
type: 'string',
|
|
142
|
+
description: 'Nome do artefato (OBRIGATÓRIO para download-artifact se não usar artifact_id)'
|
|
143
|
+
},
|
|
144
|
+
download_path: {
|
|
145
|
+
type: 'string',
|
|
146
|
+
description: 'Caminho local para salvar o artefato (OBRIGATÓRIO para download-artifact)'
|
|
147
|
+
},
|
|
148
|
+
secret_name: {
|
|
149
|
+
type: 'string',
|
|
150
|
+
description: 'Nome do secret específico (OPCIONAL para secrets)'
|
|
151
|
+
},
|
|
152
|
+
created_after: {
|
|
153
|
+
type: 'string',
|
|
154
|
+
description: 'Filtrar execuções criadas após esta data (OPCIONAL para list-runs)'
|
|
155
|
+
},
|
|
156
|
+
created_before: {
|
|
157
|
+
type: 'string',
|
|
158
|
+
description: 'Filtrar execuções criadas antes desta data (OPCIONAL para list-runs)'
|
|
159
|
+
},
|
|
160
|
+
page: {
|
|
161
|
+
type: 'number',
|
|
162
|
+
description: 'Página da listagem (mínimo: 1, padrão: 1)',
|
|
163
|
+
minimum: 1
|
|
164
|
+
},
|
|
165
|
+
limit: {
|
|
166
|
+
type: 'number',
|
|
167
|
+
description: 'Itens por página (mínimo: 1, máximo: 100, padrão: 30)',
|
|
168
|
+
minimum: 1,
|
|
169
|
+
maximum: 100
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
required: ['action', 'owner', 'repo', 'provider']
|
|
173
|
+
},
|
|
174
|
+
async handler(input) {
|
|
175
|
+
try {
|
|
176
|
+
const validatedInput = ActionsInputSchema.parse(input);
|
|
177
|
+
// Aplicar auto-detecção de usuário
|
|
178
|
+
const updatedParams = await (0, user_detection_js_1.applyAutoUserDetection)(validatedInput, validatedInput.provider);
|
|
179
|
+
const provider = updatedParams.provider
|
|
180
|
+
? index_js_1.globalProviderFactory.getProvider(updatedParams.provider)
|
|
181
|
+
: index_js_1.globalProviderFactory.getDefaultProvider();
|
|
182
|
+
if (!provider) {
|
|
183
|
+
throw new Error(`Provider '${updatedParams.provider}' não encontrado`);
|
|
184
|
+
}
|
|
185
|
+
switch (updatedParams.action) {
|
|
186
|
+
case 'list-runs':
|
|
187
|
+
return await this.listRuns(updatedParams, provider);
|
|
188
|
+
case 'cancel':
|
|
189
|
+
return await this.cancelRun(updatedParams, provider);
|
|
190
|
+
case 'rerun':
|
|
191
|
+
return await this.rerunWorkflow(updatedParams, provider);
|
|
192
|
+
case 'artifacts':
|
|
193
|
+
return await this.listArtifacts(updatedParams, provider);
|
|
194
|
+
case 'secrets':
|
|
195
|
+
return await this.listSecrets(updatedParams, provider);
|
|
196
|
+
case 'jobs':
|
|
197
|
+
return await this.listJobs(updatedParams, provider);
|
|
198
|
+
case 'download-artifact':
|
|
199
|
+
return await this.downloadArtifact(updatedParams, provider);
|
|
200
|
+
default:
|
|
201
|
+
throw new Error(`Ação não suportada: ${updatedParams.action}`);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
return {
|
|
206
|
+
success: false,
|
|
207
|
+
action: input.action || 'unknown',
|
|
208
|
+
message: 'Erro na operação de actions',
|
|
209
|
+
error: error instanceof Error ? error.message : String(error)
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
/**
|
|
214
|
+
* Lista execuções de workflows
|
|
215
|
+
*/
|
|
216
|
+
async listRuns(params, provider) {
|
|
217
|
+
try {
|
|
218
|
+
// Auto-detecção de owner/username se não fornecidos
|
|
219
|
+
let updatedParams = { ...params };
|
|
220
|
+
if (!updatedParams.owner) {
|
|
221
|
+
try {
|
|
222
|
+
const currentUser = await provider.getCurrentUser();
|
|
223
|
+
updatedParams.owner = currentUser.login;
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
console.warn('[ACTIONS.TS] Falha na auto-detecção de usuário');
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (!provider.listWorkflowRuns) {
|
|
230
|
+
return {
|
|
231
|
+
success: true,
|
|
232
|
+
action: 'list-runs',
|
|
233
|
+
message: 'Funcionalidade de workflow runs não suportada por este provider',
|
|
234
|
+
data: {
|
|
235
|
+
total_count: 0,
|
|
236
|
+
workflow_runs: [],
|
|
237
|
+
note: 'Workflow runs não disponíveis neste provider'
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
const result = await provider.listWorkflowRuns({
|
|
242
|
+
owner: params.owner,
|
|
243
|
+
repo: params.repo,
|
|
244
|
+
workflow_id: params.workflow_id,
|
|
245
|
+
status: params.status,
|
|
246
|
+
branch: params.branch,
|
|
247
|
+
event: params.event,
|
|
248
|
+
created_after: params.created_after,
|
|
249
|
+
created_before: params.created_before,
|
|
250
|
+
page: params.page,
|
|
251
|
+
limit: params.limit
|
|
252
|
+
});
|
|
253
|
+
return {
|
|
254
|
+
success: true,
|
|
255
|
+
action: 'list-runs',
|
|
256
|
+
message: `${result.runs?.length || 0} execuções encontradas`,
|
|
257
|
+
data: result
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
catch (error) {
|
|
261
|
+
throw new Error(`Falha ao listar execuções: ${error}`);
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
/**
|
|
265
|
+
* Cancela execução de workflow
|
|
266
|
+
*/
|
|
267
|
+
async cancelRun(params, provider) {
|
|
268
|
+
try {
|
|
269
|
+
if (!provider.cancelWorkflowRun) {
|
|
270
|
+
return {
|
|
271
|
+
success: false,
|
|
272
|
+
action: 'cancel',
|
|
273
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
274
|
+
error: 'Provider não implementa cancelWorkflowRun'
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
const result = await provider.cancelWorkflowRun({
|
|
278
|
+
owner: params.owner,
|
|
279
|
+
repo: params.repo,
|
|
280
|
+
run_id: params.run_id
|
|
281
|
+
});
|
|
282
|
+
return {
|
|
283
|
+
success: true,
|
|
284
|
+
action: 'cancel',
|
|
285
|
+
message: `Execução cancelada com sucesso`,
|
|
286
|
+
data: result
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
catch (error) {
|
|
290
|
+
throw new Error(`Falha ao cancelar execução: ${error}`);
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
/**
|
|
294
|
+
* Re-executa workflow
|
|
295
|
+
*/
|
|
296
|
+
async rerunWorkflow(params, provider) {
|
|
297
|
+
try {
|
|
298
|
+
if (!provider.rerunWorkflow) {
|
|
299
|
+
return {
|
|
300
|
+
success: false,
|
|
301
|
+
action: 'rerun-workflow',
|
|
302
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
303
|
+
error: 'Provider não implementa rerunWorkflow'
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
const result = await provider.rerunWorkflow({
|
|
307
|
+
owner: params.owner,
|
|
308
|
+
repo: params.repo,
|
|
309
|
+
run_id: params.run_id
|
|
310
|
+
});
|
|
311
|
+
return {
|
|
312
|
+
success: true,
|
|
313
|
+
action: 'rerun',
|
|
314
|
+
message: `Workflow re-executado com sucesso`,
|
|
315
|
+
data: result
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
catch (error) {
|
|
319
|
+
throw new Error(`Falha ao re-executar workflow: ${error}`);
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
/**
|
|
323
|
+
* Lista artefatos
|
|
324
|
+
*/
|
|
325
|
+
async listArtifacts(params, provider) {
|
|
326
|
+
try {
|
|
327
|
+
// Auto-detecção de owner/username se não fornecidos
|
|
328
|
+
let updatedParams = { ...params };
|
|
329
|
+
if (!updatedParams.owner) {
|
|
330
|
+
try {
|
|
331
|
+
const currentUser = await provider.getCurrentUser();
|
|
332
|
+
updatedParams.owner = currentUser.login;
|
|
333
|
+
}
|
|
334
|
+
catch (error) {
|
|
335
|
+
console.warn('[ACTIONS.TS] Falha na auto-detecção de usuário');
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
if (!provider.listArtifacts) {
|
|
339
|
+
return {
|
|
340
|
+
success: false,
|
|
341
|
+
action: 'list-artifacts',
|
|
342
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
343
|
+
error: 'Provider não implementa listArtifacts'
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
const result = await provider.listArtifacts({
|
|
347
|
+
owner: params.owner,
|
|
348
|
+
repo: params.repo,
|
|
349
|
+
run_id: params.run_id,
|
|
350
|
+
page: params.page,
|
|
351
|
+
limit: params.limit
|
|
352
|
+
});
|
|
353
|
+
return {
|
|
354
|
+
success: true,
|
|
355
|
+
action: 'artifacts',
|
|
356
|
+
message: `${result.artifacts?.length || 0} artefatos encontrados`,
|
|
357
|
+
data: result
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
catch (error) {
|
|
361
|
+
throw new Error(`Falha ao listar artefatos: ${error}`);
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
/**
|
|
365
|
+
* Lista secrets (read-only)
|
|
366
|
+
*/
|
|
367
|
+
async listSecrets(params, provider) {
|
|
368
|
+
try {
|
|
369
|
+
// Auto-detecção de owner/username se não fornecidos
|
|
370
|
+
let updatedParams = { ...params };
|
|
371
|
+
if (!updatedParams.owner) {
|
|
372
|
+
try {
|
|
373
|
+
const currentUser = await provider.getCurrentUser();
|
|
374
|
+
updatedParams.owner = currentUser.login;
|
|
375
|
+
}
|
|
376
|
+
catch (error) {
|
|
377
|
+
console.warn('[ACTIONS.TS] Falha na auto-detecção de usuário');
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
if (!provider.listSecrets) {
|
|
381
|
+
return {
|
|
382
|
+
success: false,
|
|
383
|
+
action: 'list-secrets',
|
|
384
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
385
|
+
error: 'Provider não implementa listSecrets'
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
const result = await provider.listSecrets({
|
|
389
|
+
owner: params.owner,
|
|
390
|
+
repo: params.repo,
|
|
391
|
+
page: params.page,
|
|
392
|
+
limit: params.limit
|
|
393
|
+
});
|
|
394
|
+
return {
|
|
395
|
+
success: true,
|
|
396
|
+
action: 'secrets',
|
|
397
|
+
message: `${result.secrets?.length || 0} secrets encontrados`,
|
|
398
|
+
data: result
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
catch (error) {
|
|
402
|
+
throw new Error(`Falha ao listar secrets: ${error}`);
|
|
403
|
+
}
|
|
404
|
+
},
|
|
405
|
+
/**
|
|
406
|
+
* Lista jobs de uma execução
|
|
407
|
+
*/
|
|
408
|
+
async listJobs(params, provider) {
|
|
409
|
+
try {
|
|
410
|
+
// Auto-detecção de owner/username se não fornecidos
|
|
411
|
+
let updatedParams = { ...params };
|
|
412
|
+
if (!updatedParams.owner) {
|
|
413
|
+
try {
|
|
414
|
+
const currentUser = await provider.getCurrentUser();
|
|
415
|
+
updatedParams.owner = currentUser.login;
|
|
416
|
+
}
|
|
417
|
+
catch (error) {
|
|
418
|
+
console.warn('[ACTIONS.TS] Falha na auto-detecção de usuário');
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
if (!provider.listJobs) {
|
|
422
|
+
return {
|
|
423
|
+
success: false,
|
|
424
|
+
action: 'list-jobs',
|
|
425
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
426
|
+
error: 'Provider não implementa listJobs'
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
const result = await provider.listJobs({
|
|
430
|
+
owner: params.owner,
|
|
431
|
+
repo: params.repo,
|
|
432
|
+
run_id: params.run_id,
|
|
433
|
+
page: params.page,
|
|
434
|
+
limit: params.limit
|
|
435
|
+
});
|
|
436
|
+
return {
|
|
437
|
+
success: true,
|
|
438
|
+
action: 'jobs',
|
|
439
|
+
message: `${result.jobs?.length || 0} jobs encontrados`,
|
|
440
|
+
data: result
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
catch (error) {
|
|
444
|
+
throw new Error(`Falha ao listar jobs: ${error}`);
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
/**
|
|
448
|
+
* Baixa artefato
|
|
449
|
+
*/
|
|
450
|
+
async downloadArtifact(params, provider) {
|
|
451
|
+
try {
|
|
452
|
+
if (!provider.downloadArtifact) {
|
|
453
|
+
return {
|
|
454
|
+
success: false,
|
|
455
|
+
action: 'download-artifact',
|
|
456
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
457
|
+
error: 'Provider não implementa downloadArtifact'
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
|
+
const result = await provider.downloadArtifact({
|
|
461
|
+
owner: params.owner,
|
|
462
|
+
repo: params.repo,
|
|
463
|
+
artifact_id: params.artifact_id,
|
|
464
|
+
artifact_name: params.artifact_name,
|
|
465
|
+
download_path: params.download_path
|
|
466
|
+
});
|
|
467
|
+
return {
|
|
468
|
+
success: true,
|
|
469
|
+
action: 'download-artifact',
|
|
470
|
+
message: `Artefato baixado com sucesso`,
|
|
471
|
+
data: result
|
|
472
|
+
};
|
|
473
|
+
}
|
|
474
|
+
catch (error) {
|
|
475
|
+
throw new Error(`Falha ao baixar artefato: ${error}`);
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
};
|
|
479
|
+
//# sourceMappingURL=gh-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gh-actions.js","sourceRoot":"","sources":["../../src/tools/gh-actions.ts"],"names":[],"mappings":"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"}
|