@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,473 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.analyticsTool = 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: analytics
|
|
9
|
+
*
|
|
10
|
+
* DESCRIÇÃO:
|
|
11
|
+
* Gerenciamento completo de analytics e insights com múltiplas ações
|
|
12
|
+
*
|
|
13
|
+
* FUNCIONALIDADES:
|
|
14
|
+
* - Estatísticas de tráfego
|
|
15
|
+
* - Análise de contribuidores
|
|
16
|
+
* - Atividade do repositório
|
|
17
|
+
* - Métricas de performance
|
|
18
|
+
* - Geração de relatórios customizados
|
|
19
|
+
* - Análise de tendências
|
|
20
|
+
*
|
|
21
|
+
* USO:
|
|
22
|
+
* - Para monitorar performance do repositório
|
|
23
|
+
* - Para análise de contribuições
|
|
24
|
+
* - Para relatórios de atividade
|
|
25
|
+
* - Para insights de desenvolvimento
|
|
26
|
+
*
|
|
27
|
+
* RECOMENDAÇÕES:
|
|
28
|
+
* - Monitore métricas regularmente
|
|
29
|
+
* - Use insights para melhorar workflow
|
|
30
|
+
* - Gere relatórios periódicos
|
|
31
|
+
* - Analise tendências de contribuição
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Schema de validação para entrada da tool analytics
|
|
35
|
+
*/
|
|
36
|
+
const AnalyticsInputSchema = zod_1.z.object({
|
|
37
|
+
action: zod_1.z.enum(['traffic', 'contributors', 'activity', 'performance', 'reports', 'trends', 'insights']),
|
|
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 de período
|
|
46
|
+
period: zod_1.z.enum(['day', 'week', 'month', 'quarter', 'year']).optional(),
|
|
47
|
+
start_date: zod_1.z.string().optional(),
|
|
48
|
+
end_date: zod_1.z.string().optional(),
|
|
49
|
+
// Parâmetros para tráfego
|
|
50
|
+
metric_type: zod_1.z.enum(['views', 'clones', 'visitors', 'unique_visitors']).optional(),
|
|
51
|
+
// Parâmetros para contribuidores
|
|
52
|
+
contributor_type: zod_1.z.enum(['all', 'internal', 'external', 'bots']).optional(),
|
|
53
|
+
sort_by: zod_1.z.enum(['commits', 'additions', 'deletions', 'contributions']).optional(),
|
|
54
|
+
// Parâmetros para atividade
|
|
55
|
+
activity_type: zod_1.z.enum(['commits', 'issues', 'pulls', 'releases', 'all']).optional(),
|
|
56
|
+
branch: validator_js_1.CommonSchemas.branch,
|
|
57
|
+
// Parâmetros para performance
|
|
58
|
+
performance_metric: zod_1.z.enum(['build_time', 'test_coverage', 'code_quality', 'deployment_frequency']).optional(),
|
|
59
|
+
// Parâmetros para relatórios
|
|
60
|
+
report_type: zod_1.z.enum(['summary', 'detailed', 'trends', 'comparison']).optional(),
|
|
61
|
+
report_format: zod_1.z.enum(['json', 'csv', 'pdf', 'html']).optional(),
|
|
62
|
+
include_charts: validator_js_1.CommonSchemas.boolean,
|
|
63
|
+
// Parâmetros para trends
|
|
64
|
+
trend_metric: zod_1.z.enum(['commits', 'contributors', 'issues', 'stars', 'forks']).optional(),
|
|
65
|
+
trend_period: zod_1.z.enum(['daily', 'weekly', 'monthly']).optional(),
|
|
66
|
+
// Filtros
|
|
67
|
+
author: validator_js_1.CommonSchemas.shortString,
|
|
68
|
+
path: validator_js_1.CommonSchemas.mediumString,
|
|
69
|
+
file_type: validator_js_1.CommonSchemas.shortString
|
|
70
|
+
}).refine((data) => {
|
|
71
|
+
return data.owner && data.repo;
|
|
72
|
+
}, {
|
|
73
|
+
message: "Owner e repo são obrigatórios"
|
|
74
|
+
});
|
|
75
|
+
/**
|
|
76
|
+
* Schema de validação para resultado da tool analytics
|
|
77
|
+
*/
|
|
78
|
+
const AnalyticsResultSchema = 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 analytics
|
|
87
|
+
*/
|
|
88
|
+
exports.analyticsTool = {
|
|
89
|
+
name: 'analytics',
|
|
90
|
+
description: 'Geração completa de insights e métricas de repositório: traffic (estatísticas de tráfego), contributors (análise de contribuidores), activity (atividade do repositório), performance (métricas de performance), reports (relatórios customizados), trends (análise de tendências). Suporte simultâneo para GitHub Insights e Gitea Analytics. Boas práticas: monitore métricas regularmente, use insights para melhorar workflow, gere relatórios periódicos e analise tendências de contribuição. Uso eficiente: análise de performance, tomada de decisões baseada em dados, otimização de processos de desenvolvimento.',
|
|
91
|
+
inputSchema: {
|
|
92
|
+
type: 'object',
|
|
93
|
+
properties: {
|
|
94
|
+
action: {
|
|
95
|
+
type: 'string',
|
|
96
|
+
enum: ['traffic', 'contributors', 'activity', 'performance', 'reports', 'trends', 'insights'],
|
|
97
|
+
description: 'Ação a executar: traffic (tráfego), contributors (contribuidores), activity (atividade), performance (performance), reports (relatórios), trends (tendências), insights (insights gerais)'
|
|
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
|
+
period: {
|
|
112
|
+
type: 'string',
|
|
113
|
+
enum: ['day', 'week', 'month', 'quarter', 'year'],
|
|
114
|
+
description: 'Período de análise (padrão: week para traffic, month para outros)'
|
|
115
|
+
},
|
|
116
|
+
start_date: {
|
|
117
|
+
type: 'string',
|
|
118
|
+
description: 'Data inicial para análise (formato: YYYY-MM-DD)'
|
|
119
|
+
},
|
|
120
|
+
end_date: {
|
|
121
|
+
type: 'string',
|
|
122
|
+
description: 'Data final para análise (formato: YYYY-MM-DD)'
|
|
123
|
+
},
|
|
124
|
+
metric_type: {
|
|
125
|
+
type: 'string',
|
|
126
|
+
enum: ['views', 'clones', 'visitors', 'unique_visitors'],
|
|
127
|
+
description: 'Tipo de métrica de tráfego (OBRIGATÓRIO para traffic, padrão: views)'
|
|
128
|
+
},
|
|
129
|
+
contributor_type: {
|
|
130
|
+
type: 'string',
|
|
131
|
+
enum: ['all', 'internal', 'external', 'bots'],
|
|
132
|
+
description: 'Tipo de contribuidores (padrão: all)'
|
|
133
|
+
},
|
|
134
|
+
sort_by: {
|
|
135
|
+
type: 'string',
|
|
136
|
+
enum: ['commits', 'additions', 'deletions', 'contributions'],
|
|
137
|
+
description: 'Ordenar contribuidores por (padrão: commits)'
|
|
138
|
+
},
|
|
139
|
+
activity_type: {
|
|
140
|
+
type: 'string',
|
|
141
|
+
enum: ['commits', 'issues', 'pulls', 'releases', 'all'],
|
|
142
|
+
description: 'Tipo de atividade (padrão: all)'
|
|
143
|
+
},
|
|
144
|
+
branch: {
|
|
145
|
+
type: 'string',
|
|
146
|
+
description: 'Branch específico para análise'
|
|
147
|
+
},
|
|
148
|
+
performance_metric: {
|
|
149
|
+
type: 'string',
|
|
150
|
+
enum: ['build_time', 'test_coverage', 'code_quality', 'deployment_frequency'],
|
|
151
|
+
description: 'Métrica de performance específica'
|
|
152
|
+
},
|
|
153
|
+
report_type: {
|
|
154
|
+
type: 'string',
|
|
155
|
+
enum: ['summary', 'detailed', 'trends', 'comparison'],
|
|
156
|
+
description: 'Tipo de relatório (padrão: summary)'
|
|
157
|
+
},
|
|
158
|
+
report_format: {
|
|
159
|
+
type: 'string',
|
|
160
|
+
enum: ['json', 'csv', 'pdf', 'html'],
|
|
161
|
+
description: 'Formato do relatório (padrão: json)'
|
|
162
|
+
},
|
|
163
|
+
include_charts: {
|
|
164
|
+
type: 'boolean',
|
|
165
|
+
description: 'Incluir gráficos no relatório (padrão: false)'
|
|
166
|
+
},
|
|
167
|
+
trend_metric: {
|
|
168
|
+
type: 'string',
|
|
169
|
+
enum: ['commits', 'contributors', 'issues', 'stars', 'forks'],
|
|
170
|
+
description: 'Métrica para análise de tendências (padrão: commits)'
|
|
171
|
+
},
|
|
172
|
+
trend_period: {
|
|
173
|
+
type: 'string',
|
|
174
|
+
enum: ['daily', 'weekly', 'monthly'],
|
|
175
|
+
description: 'Período para análise de tendências (padrão: weekly)'
|
|
176
|
+
},
|
|
177
|
+
author: {
|
|
178
|
+
type: 'string',
|
|
179
|
+
description: 'Filtrar por autor específico'
|
|
180
|
+
},
|
|
181
|
+
path: {
|
|
182
|
+
type: 'string',
|
|
183
|
+
description: 'Filtrar por caminho específico'
|
|
184
|
+
},
|
|
185
|
+
file_type: {
|
|
186
|
+
type: 'string',
|
|
187
|
+
description: 'Filtrar por tipo de arquivo'
|
|
188
|
+
},
|
|
189
|
+
page: {
|
|
190
|
+
type: 'number',
|
|
191
|
+
description: 'Página da listagem (mínimo: 1, padrão: 1)',
|
|
192
|
+
minimum: 1
|
|
193
|
+
},
|
|
194
|
+
limit: {
|
|
195
|
+
type: 'number',
|
|
196
|
+
description: 'Itens por página (mínimo: 1, máximo: 100, padrão: 30)',
|
|
197
|
+
minimum: 1,
|
|
198
|
+
maximum: 100
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
required: ['action']
|
|
202
|
+
},
|
|
203
|
+
async handler(input) {
|
|
204
|
+
try {
|
|
205
|
+
const validatedInput = AnalyticsInputSchema.parse(input);
|
|
206
|
+
const provider = validatedInput.provider
|
|
207
|
+
? index_js_1.globalProviderFactory.getProvider(validatedInput.provider)
|
|
208
|
+
: index_js_1.globalProviderFactory.getDefaultProvider();
|
|
209
|
+
if (!provider) {
|
|
210
|
+
throw new Error(`Provider '${validatedInput.provider}' não encontrado`);
|
|
211
|
+
}
|
|
212
|
+
switch (validatedInput.action) {
|
|
213
|
+
case 'traffic':
|
|
214
|
+
return await this.getTrafficStats(validatedInput, provider);
|
|
215
|
+
case 'contributors':
|
|
216
|
+
return await this.analyzeContributors(validatedInput, provider);
|
|
217
|
+
case 'activity':
|
|
218
|
+
return await this.getActivityStats(validatedInput, provider);
|
|
219
|
+
case 'performance':
|
|
220
|
+
return await this.getPerformanceMetrics(validatedInput, provider);
|
|
221
|
+
case 'reports':
|
|
222
|
+
return await this.generateReports(validatedInput, provider);
|
|
223
|
+
case 'trends':
|
|
224
|
+
return await this.analyzeTrends(validatedInput, provider);
|
|
225
|
+
case 'insights':
|
|
226
|
+
return await this.getRepositoryInsights(validatedInput, provider);
|
|
227
|
+
default:
|
|
228
|
+
throw new Error(`Ação não suportada: ${validatedInput.action}`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
return {
|
|
233
|
+
success: false,
|
|
234
|
+
action: input.action || 'unknown',
|
|
235
|
+
message: 'Erro na operação de analytics',
|
|
236
|
+
error: error instanceof Error ? error.message : String(error)
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
/**
|
|
241
|
+
* Obtém estatísticas de tráfego
|
|
242
|
+
*/
|
|
243
|
+
async getTrafficStats(params, provider) {
|
|
244
|
+
try {
|
|
245
|
+
if (!provider.getTrafficStats) {
|
|
246
|
+
return {
|
|
247
|
+
success: false,
|
|
248
|
+
action: 'get-traffic-stats',
|
|
249
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
250
|
+
error: 'Provider não implementa getTrafficStats'
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
const result = await provider.getTrafficStats({
|
|
254
|
+
owner: params.owner,
|
|
255
|
+
repo: params.repo,
|
|
256
|
+
metric_type: params.metric_type || 'views',
|
|
257
|
+
period: params.period || 'week',
|
|
258
|
+
start_date: params.start_date,
|
|
259
|
+
end_date: params.end_date
|
|
260
|
+
});
|
|
261
|
+
return {
|
|
262
|
+
success: true,
|
|
263
|
+
action: 'traffic',
|
|
264
|
+
message: `Estatísticas de tráfego obtidas com sucesso`,
|
|
265
|
+
data: result
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
throw new Error(`Falha ao obter estatísticas de tráfego: ${error}`);
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
/**
|
|
273
|
+
* Analisa contribuidores
|
|
274
|
+
*/
|
|
275
|
+
async analyzeContributors(params, provider) {
|
|
276
|
+
try {
|
|
277
|
+
if (!provider.analyzeContributors) {
|
|
278
|
+
return {
|
|
279
|
+
success: false,
|
|
280
|
+
action: 'analyze-contributors',
|
|
281
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
282
|
+
error: 'Provider não implementa analyzeContributors'
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
const result = await provider.analyzeContributors({
|
|
286
|
+
owner: params.owner,
|
|
287
|
+
repo: params.repo,
|
|
288
|
+
contributor_type: params.contributor_type || 'all',
|
|
289
|
+
sort_by: params.sort_by || 'commits',
|
|
290
|
+
period: params.period,
|
|
291
|
+
start_date: params.start_date,
|
|
292
|
+
end_date: params.end_date,
|
|
293
|
+
page: params.page,
|
|
294
|
+
limit: params.limit
|
|
295
|
+
});
|
|
296
|
+
return {
|
|
297
|
+
success: true,
|
|
298
|
+
action: 'contributors',
|
|
299
|
+
message: `Análise de contribuidores executada com sucesso`,
|
|
300
|
+
data: result
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
throw new Error(`Falha ao analisar contribuidores: ${error}`);
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
/**
|
|
308
|
+
* Obtém estatísticas de atividade
|
|
309
|
+
*/
|
|
310
|
+
async getActivityStats(params, provider) {
|
|
311
|
+
try {
|
|
312
|
+
if (!provider.getActivityStats) {
|
|
313
|
+
return {
|
|
314
|
+
success: false,
|
|
315
|
+
action: 'get-activity-stats',
|
|
316
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
317
|
+
error: 'Provider não implementa getActivityStats'
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
const result = await provider.getActivityStats({
|
|
321
|
+
owner: params.owner,
|
|
322
|
+
repo: params.repo,
|
|
323
|
+
activity_type: params.activity_type || 'all',
|
|
324
|
+
branch: params.branch,
|
|
325
|
+
author: params.author,
|
|
326
|
+
period: params.period || 'month',
|
|
327
|
+
start_date: params.start_date,
|
|
328
|
+
end_date: params.end_date
|
|
329
|
+
});
|
|
330
|
+
return {
|
|
331
|
+
success: true,
|
|
332
|
+
action: 'activity',
|
|
333
|
+
message: `Estatísticas de atividade obtidas com sucesso`,
|
|
334
|
+
data: result
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
catch (error) {
|
|
338
|
+
throw new Error(`Falha ao obter estatísticas de atividade: ${error}`);
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
/**
|
|
342
|
+
* Obtém métricas de performance
|
|
343
|
+
*/
|
|
344
|
+
async getPerformanceMetrics(params, provider) {
|
|
345
|
+
try {
|
|
346
|
+
if (!provider.getPerformanceMetrics) {
|
|
347
|
+
return {
|
|
348
|
+
success: false,
|
|
349
|
+
action: 'get-performance-metrics',
|
|
350
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
351
|
+
error: 'Provider não implementa getPerformanceMetrics'
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
const result = await provider.getPerformanceMetrics({
|
|
355
|
+
owner: params.owner,
|
|
356
|
+
repo: params.repo,
|
|
357
|
+
performance_metric: params.performance_metric,
|
|
358
|
+
period: params.period || 'month',
|
|
359
|
+
start_date: params.start_date,
|
|
360
|
+
end_date: params.end_date
|
|
361
|
+
});
|
|
362
|
+
return {
|
|
363
|
+
success: true,
|
|
364
|
+
action: 'performance',
|
|
365
|
+
message: `Métricas de performance obtidas com sucesso`,
|
|
366
|
+
data: result
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
catch (error) {
|
|
370
|
+
throw new Error(`Falha ao obter métricas de performance: ${error}`);
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
/**
|
|
374
|
+
* Gera relatórios customizados
|
|
375
|
+
*/
|
|
376
|
+
async generateReports(params, provider) {
|
|
377
|
+
try {
|
|
378
|
+
if (!provider.generateReports) {
|
|
379
|
+
return {
|
|
380
|
+
success: false,
|
|
381
|
+
action: 'generate-reports',
|
|
382
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
383
|
+
error: 'Provider não implementa generateReports'
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
const result = await provider.generateReports({
|
|
387
|
+
owner: params.owner,
|
|
388
|
+
repo: params.repo,
|
|
389
|
+
report_type: params.report_type || 'summary',
|
|
390
|
+
report_format: params.report_format || 'json',
|
|
391
|
+
include_charts: params.include_charts || false,
|
|
392
|
+
period: params.period || 'month',
|
|
393
|
+
start_date: params.start_date,
|
|
394
|
+
end_date: params.end_date
|
|
395
|
+
});
|
|
396
|
+
return {
|
|
397
|
+
success: true,
|
|
398
|
+
action: 'reports',
|
|
399
|
+
message: `Relatório gerado com sucesso`,
|
|
400
|
+
data: result
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
catch (error) {
|
|
404
|
+
throw new Error(`Falha ao gerar relatório: ${error}`);
|
|
405
|
+
}
|
|
406
|
+
},
|
|
407
|
+
/**
|
|
408
|
+
* Analisa tendências
|
|
409
|
+
*/
|
|
410
|
+
async analyzeTrends(params, provider) {
|
|
411
|
+
try {
|
|
412
|
+
if (!provider.analyzeTrends) {
|
|
413
|
+
return {
|
|
414
|
+
success: false,
|
|
415
|
+
action: 'analyze-trends',
|
|
416
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
417
|
+
error: 'Provider não implementa analyzeTrends'
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
const result = await provider.analyzeTrends({
|
|
421
|
+
owner: params.owner,
|
|
422
|
+
repo: params.repo,
|
|
423
|
+
trend_metric: params.trend_metric || 'commits',
|
|
424
|
+
trend_period: params.trend_period || 'weekly',
|
|
425
|
+
period: params.period || 'quarter',
|
|
426
|
+
start_date: params.start_date,
|
|
427
|
+
end_date: params.end_date
|
|
428
|
+
});
|
|
429
|
+
return {
|
|
430
|
+
success: true,
|
|
431
|
+
action: 'trends',
|
|
432
|
+
message: `Análise de tendências executada com sucesso`,
|
|
433
|
+
data: result
|
|
434
|
+
};
|
|
435
|
+
}
|
|
436
|
+
catch (error) {
|
|
437
|
+
throw new Error(`Falha ao analisar tendências: ${error}`);
|
|
438
|
+
}
|
|
439
|
+
},
|
|
440
|
+
/**
|
|
441
|
+
* Obtém insights gerais do repositório
|
|
442
|
+
*/
|
|
443
|
+
async getRepositoryInsights(params, provider) {
|
|
444
|
+
try {
|
|
445
|
+
if (!provider.getRepositoryInsights) {
|
|
446
|
+
return {
|
|
447
|
+
success: false,
|
|
448
|
+
action: 'get-repository-insights',
|
|
449
|
+
message: 'Funcionalidade não suportada por este provider',
|
|
450
|
+
error: 'Provider não implementa getRepositoryInsights'
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
const result = await provider.getRepositoryInsights({
|
|
454
|
+
owner: params.owner,
|
|
455
|
+
repo: params.repo,
|
|
456
|
+
period: params.period || 'month',
|
|
457
|
+
start_date: params.start_date,
|
|
458
|
+
end_date: params.end_date,
|
|
459
|
+
include_charts: params.include_charts || true
|
|
460
|
+
});
|
|
461
|
+
return {
|
|
462
|
+
success: true,
|
|
463
|
+
action: 'insights',
|
|
464
|
+
message: `Insights do repositório obtidos com sucesso`,
|
|
465
|
+
data: result
|
|
466
|
+
};
|
|
467
|
+
}
|
|
468
|
+
catch (error) {
|
|
469
|
+
throw new Error(`Falha ao obter insights do repositório: ${error}`);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
};
|
|
473
|
+
//# sourceMappingURL=analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":"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"}
|