@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,394 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.securityTool = 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: security
|
|
9
|
+
*
|
|
10
|
+
* DESCRIÇÃO:
|
|
11
|
+
* Gerenciamento completo de segurança e compliance com múltiplas ações
|
|
12
|
+
*
|
|
13
|
+
* FUNCIONALIDADES:
|
|
14
|
+
* - Execução de scans de segurança
|
|
15
|
+
* - Listagem de vulnerabilidades
|
|
16
|
+
* - Gerenciamento de alertas de segurança
|
|
17
|
+
* - Configuração de políticas de segurança
|
|
18
|
+
* - Verificação de compliance
|
|
19
|
+
* - Análise de dependências
|
|
20
|
+
*
|
|
21
|
+
* USO:
|
|
22
|
+
* - Para monitorar vulnerabilidades
|
|
23
|
+
* - Para configurar políticas de segurança
|
|
24
|
+
* - Para compliance e auditoria
|
|
25
|
+
* - Para análise de dependências
|
|
26
|
+
*
|
|
27
|
+
* RECOMENDAÇÕES:
|
|
28
|
+
* - Execute scans regularmente
|
|
29
|
+
* - Configure alertas automáticos
|
|
30
|
+
* - Mantenha dependências atualizadas
|
|
31
|
+
* - Implemente políticas rigorosas
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Schema de validação para entrada da tool security
|
|
35
|
+
*/
|
|
36
|
+
const SecurityInputSchema = zod_1.z.object({
|
|
37
|
+
action: zod_1.z.enum(['scan', 'vulnerabilities', 'alerts', 'policies', 'compliance', 'dependencies', 'advisories']),
|
|
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 scan
|
|
46
|
+
scan_type: zod_1.z.enum(['code', 'dependencies', 'secrets', 'infrastructure']).optional(),
|
|
47
|
+
ref: validator_js_1.CommonSchemas.branch,
|
|
48
|
+
// Parâmetros para vulnerabilidades
|
|
49
|
+
severity: zod_1.z.enum(['low', 'medium', 'high', 'critical']).optional(),
|
|
50
|
+
state: zod_1.z.enum(['open', 'fixed', 'dismissed']).optional(),
|
|
51
|
+
ecosystem: validator_js_1.CommonSchemas.shortString,
|
|
52
|
+
package_name: validator_js_1.CommonSchemas.shortString,
|
|
53
|
+
// Parâmetros para alertas
|
|
54
|
+
alert_id: validator_js_1.CommonSchemas.shortString,
|
|
55
|
+
alert_number: zod_1.z.number().optional(),
|
|
56
|
+
dismiss_reason: zod_1.z.enum(['fix_started', 'inaccurate', 'no_bandwidth', 'not_used', 'tolerable_risk']).optional(),
|
|
57
|
+
dismiss_comment: validator_js_1.CommonSchemas.mediumString,
|
|
58
|
+
// Parâmetros para políticas
|
|
59
|
+
policy_name: validator_js_1.CommonSchemas.shortString,
|
|
60
|
+
policy_type: zod_1.z.enum(['branch_protection', 'required_reviews', 'status_checks', 'restrictions']).optional(),
|
|
61
|
+
policy_config: zod_1.z.record(zod_1.z.any()).optional(),
|
|
62
|
+
// Parâmetros para compliance
|
|
63
|
+
compliance_framework: zod_1.z.enum(['sox', 'pci', 'hipaa', 'gdpr', 'iso27001']).optional(),
|
|
64
|
+
report_format: zod_1.z.enum(['json', 'csv', 'pdf']).optional(),
|
|
65
|
+
// Filtros
|
|
66
|
+
created_after: zod_1.z.string().optional(),
|
|
67
|
+
created_before: zod_1.z.string().optional(),
|
|
68
|
+
updated_after: zod_1.z.string().optional(),
|
|
69
|
+
updated_before: zod_1.z.string().optional()
|
|
70
|
+
}).refine((data) => {
|
|
71
|
+
// Validações específicas por ação
|
|
72
|
+
if (['alerts'].includes(data.action) && data.alert_id) {
|
|
73
|
+
return data.owner && data.repo;
|
|
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 security
|
|
81
|
+
*/
|
|
82
|
+
const SecurityResultSchema = 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 security
|
|
91
|
+
*/
|
|
92
|
+
exports.securityTool = {
|
|
93
|
+
name: 'security',
|
|
94
|
+
description: 'Manage security and compliance with multiple actions: scan, vulnerabilities, alerts, policies, compliance, dependencies. Suporte completo a GitHub Security e Gitea Security simultaneamente. Boas práticas: execute scans regularmente, configure alertas automáticos, mantenha dependências atualizadas e implemente políticas rigorosas.',
|
|
95
|
+
inputSchema: {
|
|
96
|
+
type: 'object',
|
|
97
|
+
properties: {
|
|
98
|
+
action: {
|
|
99
|
+
type: 'string',
|
|
100
|
+
enum: ['scan', 'vulnerabilities', 'alerts', 'policies', 'compliance', 'dependencies', 'advisories'],
|
|
101
|
+
description: 'Action to perform on security'
|
|
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
|
+
scan_type: { type: 'string', enum: ['code', 'dependencies', 'secrets', 'infrastructure'], description: 'Type of security scan' },
|
|
107
|
+
ref: { type: 'string', description: 'Git reference to scan' },
|
|
108
|
+
severity: { type: 'string', enum: ['low', 'medium', 'high', 'critical'], description: 'Vulnerability severity filter' },
|
|
109
|
+
state: { type: 'string', enum: ['open', 'fixed', 'dismissed'], description: 'Vulnerability state filter' },
|
|
110
|
+
ecosystem: { type: 'string', description: 'Package ecosystem' },
|
|
111
|
+
package_name: { type: 'string', description: 'Package name' },
|
|
112
|
+
alert_id: { type: 'string', description: 'Security alert ID' },
|
|
113
|
+
alert_number: { type: 'number', description: 'Security alert number' },
|
|
114
|
+
dismiss_reason: { type: 'string', enum: ['fix_started', 'inaccurate', 'no_bandwidth', 'not_used', 'tolerable_risk'], description: 'Reason for dismissing alert' },
|
|
115
|
+
dismiss_comment: { type: 'string', description: 'Comment for dismissing alert' },
|
|
116
|
+
policy_name: { type: 'string', description: 'Security policy name' },
|
|
117
|
+
policy_type: { type: 'string', enum: ['branch_protection', 'required_reviews', 'status_checks', 'restrictions'], description: 'Security policy type' },
|
|
118
|
+
policy_config: { type: 'object', description: 'Security policy configuration' },
|
|
119
|
+
compliance_framework: { type: 'string', enum: ['sox', 'pci', 'hipaa', 'gdpr', 'iso27001'], description: 'Compliance framework' },
|
|
120
|
+
report_format: { type: 'string', enum: ['json', 'csv', 'pdf'], description: 'Report format' },
|
|
121
|
+
created_after: { type: 'string', description: 'Filter items created after date' },
|
|
122
|
+
created_before: { type: 'string', description: 'Filter items created before date' },
|
|
123
|
+
updated_after: { type: 'string', description: 'Filter items updated after date' },
|
|
124
|
+
updated_before: { type: 'string', description: 'Filter items updated before date' },
|
|
125
|
+
page: { type: 'number', description: 'Page number', minimum: 1 },
|
|
126
|
+
limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 }
|
|
127
|
+
},
|
|
128
|
+
required: ['action']
|
|
129
|
+
},
|
|
130
|
+
async handler(input) {
|
|
131
|
+
try {
|
|
132
|
+
const validatedInput = SecurityInputSchema.parse(input);
|
|
133
|
+
const provider = validatedInput.provider
|
|
134
|
+
? index_js_1.globalProviderFactory.getProvider(validatedInput.provider)
|
|
135
|
+
: index_js_1.globalProviderFactory.getDefaultProvider();
|
|
136
|
+
if (!provider) {
|
|
137
|
+
throw new Error(`Provider '${validatedInput.provider}' não encontrado`);
|
|
138
|
+
}
|
|
139
|
+
switch (validatedInput.action) {
|
|
140
|
+
case 'scan':
|
|
141
|
+
return await this.runSecurityScan(validatedInput, provider);
|
|
142
|
+
case 'vulnerabilities':
|
|
143
|
+
return await this.listVulnerabilities(validatedInput, provider);
|
|
144
|
+
case 'alerts':
|
|
145
|
+
return await this.manageSecurityAlerts(validatedInput, provider);
|
|
146
|
+
case 'policies':
|
|
147
|
+
return await this.manageSecurityPolicies(validatedInput, provider);
|
|
148
|
+
case 'compliance':
|
|
149
|
+
return await this.checkCompliance(validatedInput, provider);
|
|
150
|
+
case 'dependencies':
|
|
151
|
+
return await this.analyzeDependencies(validatedInput, provider);
|
|
152
|
+
case 'advisories':
|
|
153
|
+
return await this.listSecurityAdvisories(validatedInput, provider);
|
|
154
|
+
default:
|
|
155
|
+
throw new Error(`Ação não suportada: ${validatedInput.action}`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
return {
|
|
160
|
+
success: false,
|
|
161
|
+
action: input.action || 'unknown',
|
|
162
|
+
message: 'Erro na operação de security',
|
|
163
|
+
error: error instanceof Error ? error.message : String(error)
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
/**
|
|
168
|
+
* Executa scan de segurança
|
|
169
|
+
*/
|
|
170
|
+
async runSecurityScan(params, provider) {
|
|
171
|
+
try {
|
|
172
|
+
if (!provider.runSecurityScan) {
|
|
173
|
+
return {
|
|
174
|
+
success: false,
|
|
175
|
+
action: 'run-security-scan',
|
|
176
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
177
|
+
error: 'Provider não implementa runSecurityScan'
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
const result = await provider.runSecurityScan({
|
|
181
|
+
owner: params.owner,
|
|
182
|
+
repo: params.repo,
|
|
183
|
+
scan_type: params.scan_type || 'code',
|
|
184
|
+
ref: params.ref || 'main'
|
|
185
|
+
});
|
|
186
|
+
return {
|
|
187
|
+
success: true,
|
|
188
|
+
action: 'scan',
|
|
189
|
+
message: `Scan de segurança executado com sucesso`,
|
|
190
|
+
data: result
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
throw new Error(`Falha ao executar scan de segurança: ${error}`);
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
/**
|
|
198
|
+
* Lista vulnerabilidades
|
|
199
|
+
*/
|
|
200
|
+
async listVulnerabilities(params, provider) {
|
|
201
|
+
try {
|
|
202
|
+
if (!provider.listVulnerabilities) {
|
|
203
|
+
return {
|
|
204
|
+
success: false,
|
|
205
|
+
action: 'list-vulnerabilities',
|
|
206
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
207
|
+
error: 'Provider não implementa listVulnerabilities'
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
const result = await provider.listVulnerabilities({
|
|
211
|
+
owner: params.owner,
|
|
212
|
+
repo: params.repo,
|
|
213
|
+
severity: params.severity,
|
|
214
|
+
state: params.state,
|
|
215
|
+
ecosystem: params.ecosystem,
|
|
216
|
+
package: params.package_name,
|
|
217
|
+
page: params.page,
|
|
218
|
+
limit: params.limit
|
|
219
|
+
});
|
|
220
|
+
return {
|
|
221
|
+
success: true,
|
|
222
|
+
action: 'vulnerabilities',
|
|
223
|
+
message: `${result.vulnerabilities?.length || 0} vulnerabilidades encontradas`,
|
|
224
|
+
data: result
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
throw new Error(`Falha ao listar vulnerabilidades: ${error}`);
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
/**
|
|
232
|
+
* Gerencia alertas de segurança
|
|
233
|
+
*/
|
|
234
|
+
async manageSecurityAlerts(params, provider) {
|
|
235
|
+
try {
|
|
236
|
+
if (!provider.manageSecurityAlerts) {
|
|
237
|
+
return {
|
|
238
|
+
success: false,
|
|
239
|
+
action: 'manage-security-alerts',
|
|
240
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
241
|
+
error: 'Provider não implementa manageSecurityAlerts'
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
const result = await provider.manageSecurityAlerts({
|
|
245
|
+
owner: params.owner,
|
|
246
|
+
repo: params.repo,
|
|
247
|
+
alert_id: params.alert_id,
|
|
248
|
+
alert_number: params.alert_number,
|
|
249
|
+
dismiss_reason: params.dismiss_reason,
|
|
250
|
+
dismiss_comment: params.dismiss_comment,
|
|
251
|
+
state: params.state,
|
|
252
|
+
page: params.page,
|
|
253
|
+
limit: params.limit
|
|
254
|
+
});
|
|
255
|
+
return {
|
|
256
|
+
success: true,
|
|
257
|
+
action: 'alerts',
|
|
258
|
+
message: `Alertas de segurança gerenciados com sucesso`,
|
|
259
|
+
data: result
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
throw new Error(`Falha ao gerenciar alertas de segurança: ${error}`);
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
/**
|
|
267
|
+
* Gerencia políticas de segurança
|
|
268
|
+
*/
|
|
269
|
+
async manageSecurityPolicies(params, provider) {
|
|
270
|
+
try {
|
|
271
|
+
if (!provider.manageSecurityPolicies) {
|
|
272
|
+
return {
|
|
273
|
+
success: false,
|
|
274
|
+
action: 'manage-security-policies',
|
|
275
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
276
|
+
error: 'Provider não implementa manageSecurityPolicies'
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
const result = await provider.manageSecurityPolicies({
|
|
280
|
+
owner: params.owner,
|
|
281
|
+
repo: params.repo,
|
|
282
|
+
policy_name: params.policy_name,
|
|
283
|
+
policy_type: params.policy_type,
|
|
284
|
+
policy_config: params.policy_config,
|
|
285
|
+
page: params.page,
|
|
286
|
+
limit: params.limit
|
|
287
|
+
});
|
|
288
|
+
return {
|
|
289
|
+
success: true,
|
|
290
|
+
action: 'policies',
|
|
291
|
+
message: `Políticas de segurança gerenciadas com sucesso`,
|
|
292
|
+
data: result
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
throw new Error(`Falha ao gerenciar políticas de segurança: ${error}`);
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
/**
|
|
300
|
+
* Verifica compliance
|
|
301
|
+
*/
|
|
302
|
+
async checkCompliance(params, provider) {
|
|
303
|
+
try {
|
|
304
|
+
if (!provider.checkCompliance) {
|
|
305
|
+
return {
|
|
306
|
+
success: false,
|
|
307
|
+
action: 'check-compliance',
|
|
308
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
309
|
+
error: 'Provider não implementa checkCompliance'
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
const result = await provider.checkCompliance({
|
|
313
|
+
owner: params.owner,
|
|
314
|
+
repo: params.repo,
|
|
315
|
+
framework: params.compliance_framework,
|
|
316
|
+
report_format: params.report_format || 'json'
|
|
317
|
+
});
|
|
318
|
+
return {
|
|
319
|
+
success: true,
|
|
320
|
+
action: 'compliance',
|
|
321
|
+
message: `Verificação de compliance executada com sucesso`,
|
|
322
|
+
data: result
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
catch (error) {
|
|
326
|
+
throw new Error(`Falha ao verificar compliance: ${error}`);
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
/**
|
|
330
|
+
* Analisa dependências
|
|
331
|
+
*/
|
|
332
|
+
async analyzeDependencies(params, provider) {
|
|
333
|
+
try {
|
|
334
|
+
if (!provider.analyzeDependencies) {
|
|
335
|
+
return {
|
|
336
|
+
success: false,
|
|
337
|
+
action: 'analyze-dependencies',
|
|
338
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
339
|
+
error: 'Provider não implementa analyzeDependencies'
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
const result = await provider.analyzeDependencies({
|
|
343
|
+
owner: params.owner,
|
|
344
|
+
repo: params.repo,
|
|
345
|
+
ecosystem: params.ecosystem,
|
|
346
|
+
package: params.package_name,
|
|
347
|
+
ref: params.ref
|
|
348
|
+
});
|
|
349
|
+
return {
|
|
350
|
+
success: true,
|
|
351
|
+
action: 'dependencies',
|
|
352
|
+
message: `Análise de dependências executada com sucesso`,
|
|
353
|
+
data: result
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
throw new Error(`Falha ao analisar dependências: ${error}`);
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
/**
|
|
361
|
+
* Lista advisories de segurança
|
|
362
|
+
*/
|
|
363
|
+
async listSecurityAdvisories(params, provider) {
|
|
364
|
+
try {
|
|
365
|
+
if (!provider.listSecurityAdvisories) {
|
|
366
|
+
return {
|
|
367
|
+
success: false,
|
|
368
|
+
action: 'list-security-advisories',
|
|
369
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
370
|
+
error: 'Provider não implementa listSecurityAdvisories'
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
const result = await provider.listSecurityAdvisories({
|
|
374
|
+
owner: params.owner,
|
|
375
|
+
repo: params.repo,
|
|
376
|
+
severity: params.severity,
|
|
377
|
+
ecosystem: params.ecosystem,
|
|
378
|
+
package: params.package_name,
|
|
379
|
+
page: params.page,
|
|
380
|
+
limit: params.limit
|
|
381
|
+
});
|
|
382
|
+
return {
|
|
383
|
+
success: true,
|
|
384
|
+
action: 'advisories',
|
|
385
|
+
message: `${result.advisories?.length || 0} advisories encontrados`,
|
|
386
|
+
data: result
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
catch (error) {
|
|
390
|
+
throw new Error(`Falha ao listar advisories: ${error}`);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/tools/security.ts"],"names":[],"mappings":"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"}
|