@andrebuzeli/git-mcp 2.28.1 → 2.28.2
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/client.d.ts +306 -306
- package/dist/client.js +298 -298
- package/dist/config.d.ts +310 -310
- package/dist/config.js +392 -392
- package/dist/index.d.ts +22 -22
- package/dist/index.js +89 -89
- package/dist/providers/base-provider.d.ts +160 -160
- package/dist/providers/base-provider.js +274 -274
- package/dist/providers/error-handler.d.ts +50 -50
- package/dist/providers/error-handler.js +175 -175
- package/dist/providers/gitea-provider.d.ts +97 -97
- package/dist/providers/gitea-provider.d.ts.map +1 -1
- package/dist/providers/gitea-provider.js +1015 -1001
- package/dist/providers/gitea-provider.js.map +1 -1
- package/dist/providers/github-provider.d.ts +104 -104
- package/dist/providers/github-provider.d.ts.map +1 -1
- package/dist/providers/github-provider.js +1248 -1234
- package/dist/providers/github-provider.js.map +1 -1
- package/dist/providers/index.d.ts +12 -12
- package/dist/providers/index.js +40 -40
- package/dist/providers/provider-factory.d.ts +74 -74
- package/dist/providers/provider-factory.d.ts.map +1 -1
- package/dist/providers/provider-factory.js +318 -311
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/providers/types.d.ts +318 -318
- package/dist/providers/types.js +6 -6
- package/dist/server.d.ts +76 -76
- package/dist/server.js +306 -306
- package/dist/tools/git-archive.d.ts +165 -165
- package/dist/tools/git-archive.js +233 -233
- package/dist/tools/git-branches.d.ts +430 -430
- package/dist/tools/git-branches.js +627 -627
- package/dist/tools/git-commits.d.ts +485 -485
- package/dist/tools/git-commits.js +735 -735
- package/dist/tools/git-commits.js.map +1 -1
- package/dist/tools/git-config.d.ts +140 -140
- package/dist/tools/git-config.js +268 -268
- package/dist/tools/git-files.d.ts +486 -486
- package/dist/tools/git-files.js +607 -607
- package/dist/tools/git-files.js.map +1 -1
- package/dist/tools/git-issues.d.ts +574 -571
- package/dist/tools/git-issues.d.ts.map +1 -1
- package/dist/tools/git-issues.js +741 -740
- package/dist/tools/git-issues.js.map +1 -1
- package/dist/tools/git-pulls.d.ts +697 -694
- package/dist/tools/git-pulls.d.ts.map +1 -1
- package/dist/tools/git-pulls.js +733 -732
- package/dist/tools/git-pulls.js.map +1 -1
- package/dist/tools/git-releases.d.ts +490 -487
- package/dist/tools/git-releases.d.ts.map +1 -1
- package/dist/tools/git-releases.js +558 -557
- package/dist/tools/git-releases.js.map +1 -1
- package/dist/tools/git-remote.d.ts +138 -138
- package/dist/tools/git-remote.js +274 -274
- package/dist/tools/git-repositories.d.ts +483 -483
- package/dist/tools/git-repositories.js +640 -640
- package/dist/tools/git-repositories.js.map +1 -1
- package/dist/tools/git-reset.d.ts +130 -130
- package/dist/tools/git-reset.js +223 -223
- package/dist/tools/git-revert.d.ts +149 -149
- package/dist/tools/git-revert.js +198 -198
- package/dist/tools/git-stash.d.ts +140 -140
- package/dist/tools/git-stash.js +269 -269
- package/dist/tools/git-sync.d.ts +178 -178
- package/dist/tools/git-sync.js +312 -312
- package/dist/tools/git-tags.d.ts +414 -411
- package/dist/tools/git-tags.d.ts.map +1 -1
- package/dist/tools/git-tags.js +486 -485
- package/dist/tools/git-tags.js.map +1 -1
- package/dist/tools/git-webhooks.d.ts +473 -470
- package/dist/tools/git-webhooks.d.ts.map +1 -1
- package/dist/tools/git-webhooks.js +544 -543
- package/dist/tools/git-webhooks.js.map +1 -1
- package/dist/utils/terminal-controller.d.ts +80 -80
- package/dist/utils/terminal-controller.js +345 -345
- package/dist/utils/user-detection.d.ts +24 -24
- package/dist/utils/user-detection.js +53 -53
- package/package.json +2 -2
- package/dist/tools/gh-actions.d.ts +0 -253
- package/dist/tools/gh-actions.d.ts.map +0 -1
- package/dist/tools/gh-actions.js +0 -390
- package/dist/tools/gh-actions.js.map +0 -1
- package/dist/tools/gh-analytics.d.ts +0 -264
- package/dist/tools/gh-analytics.d.ts.map +0 -1
- package/dist/tools/gh-analytics.js +0 -402
- package/dist/tools/gh-analytics.js.map +0 -1
- package/dist/tools/gh-code-review.d.ts +0 -305
- package/dist/tools/gh-code-review.d.ts.map +0 -1
- package/dist/tools/gh-code-review.js +0 -513
- package/dist/tools/gh-code-review.js.map +0 -1
- package/dist/tools/gh-codespaces.d.ts +0 -139
- package/dist/tools/gh-codespaces.d.ts.map +0 -1
- package/dist/tools/gh-codespaces.js +0 -283
- package/dist/tools/gh-codespaces.js.map +0 -1
- package/dist/tools/gh-deployments.d.ts +0 -301
- package/dist/tools/gh-deployments.d.ts.map +0 -1
- package/dist/tools/gh-deployments.js +0 -368
- package/dist/tools/gh-deployments.js.map +0 -1
- package/dist/tools/gh-gists.d.ts +0 -175
- package/dist/tools/gh-gists.d.ts.map +0 -1
- package/dist/tools/gh-gists.js +0 -322
- package/dist/tools/gh-gists.js.map +0 -1
- package/dist/tools/gh-projects.d.ts +0 -206
- package/dist/tools/gh-projects.d.ts.map +0 -1
- package/dist/tools/gh-projects.js +0 -359
- package/dist/tools/gh-projects.js.map +0 -1
- package/dist/tools/gh-security.d.ts +0 -275
- package/dist/tools/gh-security.d.ts.map +0 -1
- package/dist/tools/gh-security.js +0 -396
- package/dist/tools/gh-security.js.map +0 -1
- package/dist/tools/gh-sync.d.ts +0 -214
- package/dist/tools/gh-sync.d.ts.map +0 -1
- package/dist/tools/gh-sync.js +0 -379
- package/dist/tools/gh-sync.js.map +0 -1
- package/dist/tools/gh-workflows.d.ts +0 -291
- package/dist/tools/gh-workflows.d.ts.map +0 -1
- package/dist/tools/gh-workflows.js +0 -433
- package/dist/tools/gh-workflows.js.map +0 -1
- package/dist/tools/git-bundle.d.ts +0 -172
- package/dist/tools/git-bundle.d.ts.map +0 -1
- package/dist/tools/git-bundle.js +0 -242
- package/dist/tools/git-bundle.js.map +0 -1
- package/dist/tools/git-cherry-pick.d.ts +0 -159
- package/dist/tools/git-cherry-pick.d.ts.map +0 -1
- package/dist/tools/git-cherry-pick.js +0 -225
- package/dist/tools/git-cherry-pick.js.map +0 -1
- package/dist/tools/git-rebase.d.ts +0 -138
- package/dist/tools/git-rebase.d.ts.map +0 -1
- package/dist/tools/git-rebase.js +0 -214
- package/dist/tools/git-rebase.js.map +0 -1
- package/dist/tools/git-submodule.d.ts +0 -153
- package/dist/tools/git-submodule.d.ts.map +0 -1
- package/dist/tools/git-submodule.js +0 -290
- package/dist/tools/git-submodule.js.map +0 -1
- package/dist/tools/git-worktree.d.ts +0 -160
- package/dist/tools/git-worktree.d.ts.map +0 -1
- package/dist/tools/git-worktree.js +0 -270
- package/dist/tools/git-worktree.js.map +0 -1
- package/dist/tools/repositories.d.ts +0 -406
- package/dist/tools/repositories.d.ts.map +0 -1
- package/dist/tools/repositories.js +0 -570
- package/dist/tools/repositories.js.map +0 -1
- package/dist/tools/users.d.ts +0 -373
- package/dist/tools/users.d.ts.map +0 -1
- package/dist/tools/users.js +0 -500
- package/dist/tools/users.js.map +0 -1
- package/dist/tools/validator.d.ts +0 -171
- package/dist/tools/validator.d.ts.map +0 -1
- package/dist/tools/validator.js +0 -195
- package/dist/tools/validator.js.map +0 -1
- package/dist/tools/version-control.d.ts +0 -137
- package/dist/tools/version-control.d.ts.map +0 -1
- package/dist/tools/version-control.js +0 -165
- package/dist/tools/version-control.js.map +0 -1
|
@@ -1,176 +1,176 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Classe utilitária para padronizar tratamento de erros entre providers
|
|
4
|
-
* Fornece métodos consistentes para normalização e formatação de erros
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.ErrorHandler = void 0;
|
|
8
|
-
class ErrorHandler {
|
|
9
|
-
/**
|
|
10
|
-
* Normaliza erros de diferentes providers para formato padrão
|
|
11
|
-
*/
|
|
12
|
-
static normalizeError(error, providerName) {
|
|
13
|
-
if (error.response) {
|
|
14
|
-
const status = error.response.status;
|
|
15
|
-
const data = error.response.data;
|
|
16
|
-
return {
|
|
17
|
-
code: this.getErrorCode(status),
|
|
18
|
-
message: this.getErrorMessage(status, data, providerName),
|
|
19
|
-
provider: providerName,
|
|
20
|
-
statusCode: status,
|
|
21
|
-
retryable: this.isRetryable(status),
|
|
22
|
-
originalError: error
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
if (error.request) {
|
|
26
|
-
return {
|
|
27
|
-
code: 'NETWORK_ERROR',
|
|
28
|
-
message: `${providerName}: Network error - No response received`,
|
|
29
|
-
provider: providerName,
|
|
30
|
-
retryable: true,
|
|
31
|
-
originalError: error
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
return {
|
|
35
|
-
code: 'UNKNOWN_ERROR',
|
|
36
|
-
message: `${providerName}: ${error.message || 'Unknown error'}`,
|
|
37
|
-
provider: providerName,
|
|
38
|
-
retryable: false,
|
|
39
|
-
originalError: error
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Mapeia códigos HTTP para códigos de erro padronizados
|
|
44
|
-
*/
|
|
45
|
-
static getErrorCode(status) {
|
|
46
|
-
switch (status) {
|
|
47
|
-
case 400:
|
|
48
|
-
return 'BAD_REQUEST';
|
|
49
|
-
case 401:
|
|
50
|
-
return 'UNAUTHORIZED';
|
|
51
|
-
case 403:
|
|
52
|
-
return 'FORBIDDEN';
|
|
53
|
-
case 404:
|
|
54
|
-
return 'NOT_FOUND';
|
|
55
|
-
case 409:
|
|
56
|
-
return 'CONFLICT';
|
|
57
|
-
case 422:
|
|
58
|
-
return 'VALIDATION_ERROR';
|
|
59
|
-
case 429:
|
|
60
|
-
return 'RATE_LIMITED';
|
|
61
|
-
case 500:
|
|
62
|
-
return 'INTERNAL_SERVER_ERROR';
|
|
63
|
-
case 502:
|
|
64
|
-
return 'BAD_GATEWAY';
|
|
65
|
-
case 503:
|
|
66
|
-
return 'SERVICE_UNAVAILABLE';
|
|
67
|
-
case 504:
|
|
68
|
-
return 'GATEWAY_TIMEOUT';
|
|
69
|
-
default:
|
|
70
|
-
return `HTTP_${status}`;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Gera mensagens de erro padronizadas e user-friendly
|
|
75
|
-
*/
|
|
76
|
-
static getErrorMessage(status, data, provider) {
|
|
77
|
-
const baseMessage = data?.message || data?.error || '';
|
|
78
|
-
switch (status) {
|
|
79
|
-
case 400:
|
|
80
|
-
return `${provider}: Bad request - ${baseMessage || 'Invalid parameters'}`;
|
|
81
|
-
case 401:
|
|
82
|
-
return `${provider}: Unauthorized - Check your token and permissions`;
|
|
83
|
-
case 403:
|
|
84
|
-
return `${provider}: Forbidden - Insufficient permissions for this operation`;
|
|
85
|
-
case 404:
|
|
86
|
-
if (baseMessage.includes('user') || baseMessage.includes('User')) {
|
|
87
|
-
return `${provider}: User not found - The specified user doesn't exist or has been deleted`;
|
|
88
|
-
}
|
|
89
|
-
return `${provider}: Not found - Resource doesn't exist or has been deleted`;
|
|
90
|
-
case 409:
|
|
91
|
-
if (baseMessage.includes('already exists') || baseMessage.includes('Conflict')) {
|
|
92
|
-
return `${provider}: Resource already exists - ${baseMessage || 'The resource already exists'}`;
|
|
93
|
-
}
|
|
94
|
-
return `${provider}: Conflict - ${baseMessage || 'Resource already exists or conflicts with existing data'}`;
|
|
95
|
-
case 422:
|
|
96
|
-
return `${provider}: Validation error - ${baseMessage || 'Invalid data provided'}`;
|
|
97
|
-
case 429:
|
|
98
|
-
return `${provider}: Rate limited - Too many requests. ${this.getRateLimitInfo(data)}`;
|
|
99
|
-
case 500:
|
|
100
|
-
return `${provider}: Internal server error - ${baseMessage || 'Server encountered an error'}`;
|
|
101
|
-
case 502:
|
|
102
|
-
return `${provider}: Bad gateway - Server is temporarily unavailable`;
|
|
103
|
-
case 503:
|
|
104
|
-
return `${provider}: Service unavailable - Server is temporarily down for maintenance`;
|
|
105
|
-
case 504:
|
|
106
|
-
return `${provider}: Gateway timeout - Server took too long to respond`;
|
|
107
|
-
default:
|
|
108
|
-
return `${provider}: HTTP ${status} - ${baseMessage || 'Unknown error'}`;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Determina se um erro é passível de retry
|
|
113
|
-
*/
|
|
114
|
-
static isRetryable(status) {
|
|
115
|
-
return [
|
|
116
|
-
429, // Rate limited
|
|
117
|
-
500, // Internal server error
|
|
118
|
-
502, // Bad gateway
|
|
119
|
-
503, // Service unavailable
|
|
120
|
-
504 // Gateway timeout
|
|
121
|
-
].includes(status);
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Extrai informações de rate limit dos headers
|
|
125
|
-
*/
|
|
126
|
-
static getRateLimitInfo(data) {
|
|
127
|
-
if (data?.headers) {
|
|
128
|
-
const resetTime = data.headers['x-ratelimit-reset'] || data.headers['x-rate-limit-reset'];
|
|
129
|
-
if (resetTime) {
|
|
130
|
-
const resetDate = new Date(parseInt(resetTime) * 1000);
|
|
131
|
-
return `Reset at: ${resetDate.toLocaleTimeString()}`;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return 'Please try again later';
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Cria um Error padrão do JavaScript a partir de StandardError
|
|
138
|
-
*/
|
|
139
|
-
static createError(standardError) {
|
|
140
|
-
const error = new Error(standardError.message);
|
|
141
|
-
error.code = standardError.code;
|
|
142
|
-
error.provider = standardError.provider;
|
|
143
|
-
error.statusCode = standardError.statusCode;
|
|
144
|
-
error.retryable = standardError.retryable;
|
|
145
|
-
return error;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Formata erro para logging estruturado
|
|
149
|
-
*/
|
|
150
|
-
static formatForLogging(standardError) {
|
|
151
|
-
return {
|
|
152
|
-
timestamp: new Date().toISOString(),
|
|
153
|
-
level: 'error',
|
|
154
|
-
code: standardError.code,
|
|
155
|
-
message: standardError.message,
|
|
156
|
-
provider: standardError.provider,
|
|
157
|
-
statusCode: standardError.statusCode,
|
|
158
|
-
retryable: standardError.retryable,
|
|
159
|
-
stack: standardError.originalError?.stack
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Verifica se um erro é de um tipo específico
|
|
164
|
-
*/
|
|
165
|
-
static isErrorType(error, type) {
|
|
166
|
-
return error?.code === type;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Verifica se um erro é retryable
|
|
170
|
-
*/
|
|
171
|
-
static isRetryableError(error) {
|
|
172
|
-
return error?.retryable === true;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
exports.ErrorHandler = ErrorHandler;
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Classe utilitária para padronizar tratamento de erros entre providers
|
|
4
|
+
* Fornece métodos consistentes para normalização e formatação de erros
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ErrorHandler = void 0;
|
|
8
|
+
class ErrorHandler {
|
|
9
|
+
/**
|
|
10
|
+
* Normaliza erros de diferentes providers para formato padrão
|
|
11
|
+
*/
|
|
12
|
+
static normalizeError(error, providerName) {
|
|
13
|
+
if (error.response) {
|
|
14
|
+
const status = error.response.status;
|
|
15
|
+
const data = error.response.data;
|
|
16
|
+
return {
|
|
17
|
+
code: this.getErrorCode(status),
|
|
18
|
+
message: this.getErrorMessage(status, data, providerName),
|
|
19
|
+
provider: providerName,
|
|
20
|
+
statusCode: status,
|
|
21
|
+
retryable: this.isRetryable(status),
|
|
22
|
+
originalError: error
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
if (error.request) {
|
|
26
|
+
return {
|
|
27
|
+
code: 'NETWORK_ERROR',
|
|
28
|
+
message: `${providerName}: Network error - No response received`,
|
|
29
|
+
provider: providerName,
|
|
30
|
+
retryable: true,
|
|
31
|
+
originalError: error
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
code: 'UNKNOWN_ERROR',
|
|
36
|
+
message: `${providerName}: ${error.message || 'Unknown error'}`,
|
|
37
|
+
provider: providerName,
|
|
38
|
+
retryable: false,
|
|
39
|
+
originalError: error
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Mapeia códigos HTTP para códigos de erro padronizados
|
|
44
|
+
*/
|
|
45
|
+
static getErrorCode(status) {
|
|
46
|
+
switch (status) {
|
|
47
|
+
case 400:
|
|
48
|
+
return 'BAD_REQUEST';
|
|
49
|
+
case 401:
|
|
50
|
+
return 'UNAUTHORIZED';
|
|
51
|
+
case 403:
|
|
52
|
+
return 'FORBIDDEN';
|
|
53
|
+
case 404:
|
|
54
|
+
return 'NOT_FOUND';
|
|
55
|
+
case 409:
|
|
56
|
+
return 'CONFLICT';
|
|
57
|
+
case 422:
|
|
58
|
+
return 'VALIDATION_ERROR';
|
|
59
|
+
case 429:
|
|
60
|
+
return 'RATE_LIMITED';
|
|
61
|
+
case 500:
|
|
62
|
+
return 'INTERNAL_SERVER_ERROR';
|
|
63
|
+
case 502:
|
|
64
|
+
return 'BAD_GATEWAY';
|
|
65
|
+
case 503:
|
|
66
|
+
return 'SERVICE_UNAVAILABLE';
|
|
67
|
+
case 504:
|
|
68
|
+
return 'GATEWAY_TIMEOUT';
|
|
69
|
+
default:
|
|
70
|
+
return `HTTP_${status}`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Gera mensagens de erro padronizadas e user-friendly
|
|
75
|
+
*/
|
|
76
|
+
static getErrorMessage(status, data, provider) {
|
|
77
|
+
const baseMessage = data?.message || data?.error || '';
|
|
78
|
+
switch (status) {
|
|
79
|
+
case 400:
|
|
80
|
+
return `${provider}: Bad request - ${baseMessage || 'Invalid parameters'}`;
|
|
81
|
+
case 401:
|
|
82
|
+
return `${provider}: Unauthorized - Check your token and permissions`;
|
|
83
|
+
case 403:
|
|
84
|
+
return `${provider}: Forbidden - Insufficient permissions for this operation`;
|
|
85
|
+
case 404:
|
|
86
|
+
if (baseMessage.includes('user') || baseMessage.includes('User')) {
|
|
87
|
+
return `${provider}: User not found - The specified user doesn't exist or has been deleted`;
|
|
88
|
+
}
|
|
89
|
+
return `${provider}: Not found - Resource doesn't exist or has been deleted`;
|
|
90
|
+
case 409:
|
|
91
|
+
if (baseMessage.includes('already exists') || baseMessage.includes('Conflict')) {
|
|
92
|
+
return `${provider}: Resource already exists - ${baseMessage || 'The resource already exists'}`;
|
|
93
|
+
}
|
|
94
|
+
return `${provider}: Conflict - ${baseMessage || 'Resource already exists or conflicts with existing data'}`;
|
|
95
|
+
case 422:
|
|
96
|
+
return `${provider}: Validation error - ${baseMessage || 'Invalid data provided'}`;
|
|
97
|
+
case 429:
|
|
98
|
+
return `${provider}: Rate limited - Too many requests. ${this.getRateLimitInfo(data)}`;
|
|
99
|
+
case 500:
|
|
100
|
+
return `${provider}: Internal server error - ${baseMessage || 'Server encountered an error'}`;
|
|
101
|
+
case 502:
|
|
102
|
+
return `${provider}: Bad gateway - Server is temporarily unavailable`;
|
|
103
|
+
case 503:
|
|
104
|
+
return `${provider}: Service unavailable - Server is temporarily down for maintenance`;
|
|
105
|
+
case 504:
|
|
106
|
+
return `${provider}: Gateway timeout - Server took too long to respond`;
|
|
107
|
+
default:
|
|
108
|
+
return `${provider}: HTTP ${status} - ${baseMessage || 'Unknown error'}`;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Determina se um erro é passível de retry
|
|
113
|
+
*/
|
|
114
|
+
static isRetryable(status) {
|
|
115
|
+
return [
|
|
116
|
+
429, // Rate limited
|
|
117
|
+
500, // Internal server error
|
|
118
|
+
502, // Bad gateway
|
|
119
|
+
503, // Service unavailable
|
|
120
|
+
504 // Gateway timeout
|
|
121
|
+
].includes(status);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Extrai informações de rate limit dos headers
|
|
125
|
+
*/
|
|
126
|
+
static getRateLimitInfo(data) {
|
|
127
|
+
if (data?.headers) {
|
|
128
|
+
const resetTime = data.headers['x-ratelimit-reset'] || data.headers['x-rate-limit-reset'];
|
|
129
|
+
if (resetTime) {
|
|
130
|
+
const resetDate = new Date(parseInt(resetTime) * 1000);
|
|
131
|
+
return `Reset at: ${resetDate.toLocaleTimeString()}`;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return 'Please try again later';
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Cria um Error padrão do JavaScript a partir de StandardError
|
|
138
|
+
*/
|
|
139
|
+
static createError(standardError) {
|
|
140
|
+
const error = new Error(standardError.message);
|
|
141
|
+
error.code = standardError.code;
|
|
142
|
+
error.provider = standardError.provider;
|
|
143
|
+
error.statusCode = standardError.statusCode;
|
|
144
|
+
error.retryable = standardError.retryable;
|
|
145
|
+
return error;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Formata erro para logging estruturado
|
|
149
|
+
*/
|
|
150
|
+
static formatForLogging(standardError) {
|
|
151
|
+
return {
|
|
152
|
+
timestamp: new Date().toISOString(),
|
|
153
|
+
level: 'error',
|
|
154
|
+
code: standardError.code,
|
|
155
|
+
message: standardError.message,
|
|
156
|
+
provider: standardError.provider,
|
|
157
|
+
statusCode: standardError.statusCode,
|
|
158
|
+
retryable: standardError.retryable,
|
|
159
|
+
stack: standardError.originalError?.stack
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Verifica se um erro é de um tipo específico
|
|
164
|
+
*/
|
|
165
|
+
static isErrorType(error, type) {
|
|
166
|
+
return error?.code === type;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Verifica se um erro é retryable
|
|
170
|
+
*/
|
|
171
|
+
static isRetryableError(error) {
|
|
172
|
+
return error?.retryable === true;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
exports.ErrorHandler = ErrorHandler;
|
|
176
176
|
//# sourceMappingURL=error-handler.js.map
|
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
import { BaseVcsProvider } from './base-provider.js';
|
|
2
|
-
import { VcsProvider, RepositoryInfo, BranchInfo, FileInfo, CommitInfo, IssueInfo, PullRequestInfo, ReleaseInfo, TagInfo, UserInfo, OrganizationInfo, WebhookInfo } from './types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Provider específico para Gitea
|
|
5
|
-
* Implementa todas as operações VCS usando a API do Gitea
|
|
6
|
-
*/
|
|
7
|
-
export declare class GiteaProvider extends BaseVcsProvider {
|
|
8
|
-
constructor(config: VcsProvider);
|
|
9
|
-
protected getBaseUrl(config: VcsProvider): string;
|
|
10
|
-
protected getHeaders(config: VcsProvider): Record<string, string>;
|
|
11
|
-
protected normalizeRepository(data: any): RepositoryInfo;
|
|
12
|
-
protected normalizeBranch(data: any): BranchInfo;
|
|
13
|
-
protected normalizeFile(data: any): FileInfo;
|
|
14
|
-
protected normalizeCommit(data: any): CommitInfo;
|
|
15
|
-
protected normalizeIssue(data: any): IssueInfo;
|
|
16
|
-
protected normalizePullRequest(data: any): PullRequestInfo;
|
|
17
|
-
protected normalizeRelease(data: any): ReleaseInfo;
|
|
18
|
-
protected normalizeTag(data: any): TagInfo;
|
|
19
|
-
protected normalizeUser(data: any): UserInfo;
|
|
20
|
-
protected normalizeOrganization(data: any): OrganizationInfo;
|
|
21
|
-
protected normalizeWebhook(data: any): WebhookInfo;
|
|
22
|
-
listRepositories(username?: string, page?: number, limit?: number): Promise<RepositoryInfo[]>;
|
|
23
|
-
getRepository(owner: string, repo: string): Promise<RepositoryInfo>;
|
|
24
|
-
createRepository(name: string, description?: string, privateRepo?: boolean): Promise<RepositoryInfo>;
|
|
25
|
-
updateRepository(owner: string, repo: string, updates: any): Promise<RepositoryInfo>;
|
|
26
|
-
deleteRepository(owner: string, repo: string): Promise<boolean>;
|
|
27
|
-
forkRepository(owner: string, repo: string, organization?: string): Promise<RepositoryInfo>;
|
|
28
|
-
searchRepositories(query: string, page?: number, limit?: number): Promise<RepositoryInfo[]>;
|
|
29
|
-
listBranches(owner: string, repo: string, page?: number, limit?: number): Promise<BranchInfo[]>;
|
|
30
|
-
getBranch(owner: string, repo: string, branch: string): Promise<BranchInfo>;
|
|
31
|
-
createBranch(owner: string, repo: string, branchName: string, fromBranch: string): Promise<BranchInfo>;
|
|
32
|
-
deleteBranch(owner: string, repo: string, branch: string): Promise<boolean>;
|
|
33
|
-
getFile(owner: string, repo: string, path: string, ref?: string): Promise<FileInfo>;
|
|
34
|
-
createFile(owner: string, repo: string, path: string, content: string, message: string, branch?: string): Promise<FileInfo>;
|
|
35
|
-
updateFile(owner: string, repo: string, path: string, content: string, message: string, sha: string, branch?: string): Promise<FileInfo>;
|
|
36
|
-
deleteFile(owner: string, repo: string, path: string, message: string, sha: string, branch?: string): Promise<boolean>;
|
|
37
|
-
listFiles(owner: string, repo: string, path: string, ref?: string): Promise<FileInfo[]>;
|
|
38
|
-
uploadProject(owner: string, repo: string, projectPath: string, message: string, branch?: string): Promise<{
|
|
39
|
-
uploaded: number;
|
|
40
|
-
errors: string[];
|
|
41
|
-
}>;
|
|
42
|
-
listCommits(owner: string, repo: string, branch?: string, page?: number, limit?: number): Promise<CommitInfo[]>;
|
|
43
|
-
getCommit(owner: string, repo: string, sha: string): Promise<CommitInfo>;
|
|
44
|
-
createCommit(owner: string, repo: string, message: string, branch: string, changes?: any): Promise<CommitInfo>;
|
|
45
|
-
listIssues(owner: string, repo: string, state?: 'open' | 'closed' | 'all', page?: number, limit?: number): Promise<IssueInfo[]>;
|
|
46
|
-
getIssue(owner: string, repo: string, issueNumber: number): Promise<IssueInfo>;
|
|
47
|
-
createIssue(owner: string, repo: string, title: string, body?: string, assignees?: string[], labels?: string[]): Promise<IssueInfo>;
|
|
48
|
-
updateIssue(owner: string, repo: string, issueNumber: number, updates: any): Promise<IssueInfo>;
|
|
49
|
-
closeIssue(owner: string, repo: string, issueNumber: number): Promise<IssueInfo>;
|
|
50
|
-
listPullRequests(owner: string, repo: string, state?: 'open' | 'closed' | 'merged' | 'all', page?: number, limit?: number): Promise<PullRequestInfo[]>;
|
|
51
|
-
getPullRequest(owner: string, repo: string, pullNumber: number): Promise<PullRequestInfo>;
|
|
52
|
-
createPullRequest(owner: string, repo: string, title: string, body: string, head: string, base: string): Promise<PullRequestInfo>;
|
|
53
|
-
updatePullRequest(owner: string, repo: string, pullNumber: number, updates: any): Promise<PullRequestInfo>;
|
|
54
|
-
mergePullRequest(owner: string, repo: string, pullNumber: number, mergeMethod?: 'merge' | 'rebase' | 'squash'): Promise<boolean>;
|
|
55
|
-
listReleases(owner: string, repo: string, page?: number, limit?: number): Promise<ReleaseInfo[]>;
|
|
56
|
-
getRelease(owner: string, repo: string, releaseId: number): Promise<ReleaseInfo>;
|
|
57
|
-
createRelease(owner: string, repo: string, releaseData: any): Promise<ReleaseInfo>;
|
|
58
|
-
updateRelease(releaseId: number, updates: any): Promise<ReleaseInfo>;
|
|
59
|
-
deleteRelease(releaseId: number): Promise<boolean>;
|
|
60
|
-
listTags(owner: string, repo: string, page?: number, limit?: number): Promise<TagInfo[]>;
|
|
61
|
-
getTag(owner: string, repo: string, tag: string): Promise<TagInfo>;
|
|
62
|
-
createTag(owner: string, repo: string, tagData: any): Promise<TagInfo>;
|
|
63
|
-
deleteTag(owner: string, repo: string, tag: string): Promise<boolean>;
|
|
64
|
-
getCurrentUser(): Promise<UserInfo>;
|
|
65
|
-
getUser(username: string): Promise<UserInfo>;
|
|
66
|
-
listUsers(page?: number, limit?: number): Promise<UserInfo[]>;
|
|
67
|
-
searchUsers(query: string, page?: number, limit?: number): Promise<UserInfo[]>;
|
|
68
|
-
getUserOrganizations(username: string, page?: number, limit?: number): Promise<OrganizationInfo[]>;
|
|
69
|
-
getUserRepositories(username: string, page?: number, limit?: number): Promise<RepositoryInfo[]>;
|
|
70
|
-
listWebhooks(owner: string, repo: string, page?: number, limit?: number): Promise<WebhookInfo[]>;
|
|
71
|
-
getWebhook(owner: string, repo: string, webhookId: number): Promise<WebhookInfo>;
|
|
72
|
-
createWebhook(owner: string, repo: string, url: string, events: string[], secret?: string): Promise<WebhookInfo>;
|
|
73
|
-
updateWebhook(owner: string, repo: string, webhookId: number, updates: any): Promise<WebhookInfo>;
|
|
74
|
-
deleteWebhook(owner: string, repo: string, webhookId: number): Promise<boolean>;
|
|
75
|
-
listWorkflows(params: any): Promise<any>;
|
|
76
|
-
listWorkflowRuns(params: any): Promise<any>;
|
|
77
|
-
listDeployments(params: any): Promise<any>;
|
|
78
|
-
runSecurityScan(params: any): Promise<any>;
|
|
79
|
-
getTrafficStats(params: any): Promise<any>;
|
|
80
|
-
cloneRepository(params: any): Promise<any>;
|
|
81
|
-
archiveRepository(params: any): Promise<any>;
|
|
82
|
-
transferRepository(params: any): Promise<any>;
|
|
83
|
-
createFromTemplate(params: any): Promise<any>;
|
|
84
|
-
getWorkflow(owner: string, repo: string, workflowId: string): Promise<any>;
|
|
85
|
-
enableWorkflow(params: any): Promise<any>;
|
|
86
|
-
disableWorkflow(params: any): Promise<any>;
|
|
87
|
-
triggerWorkflow(params: any): Promise<any>;
|
|
88
|
-
listArtifacts(params: any): Promise<any>;
|
|
89
|
-
downloadJobLogs(params: any): Promise<any>;
|
|
90
|
-
listSecrets(params: any): Promise<any>;
|
|
91
|
-
listVariables(params: any): Promise<any>;
|
|
92
|
-
mirrorRepository(params: any): Promise<any>;
|
|
93
|
-
/**
|
|
94
|
-
* Obtém URL do repositório Gitea
|
|
95
|
-
*/
|
|
96
|
-
getRepositoryUrl(owner: string, repo: string): string;
|
|
97
|
-
}
|
|
1
|
+
import { BaseVcsProvider } from './base-provider.js';
|
|
2
|
+
import { VcsProvider, RepositoryInfo, BranchInfo, FileInfo, CommitInfo, IssueInfo, PullRequestInfo, ReleaseInfo, TagInfo, UserInfo, OrganizationInfo, WebhookInfo } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Provider específico para Gitea
|
|
5
|
+
* Implementa todas as operações VCS usando a API do Gitea
|
|
6
|
+
*/
|
|
7
|
+
export declare class GiteaProvider extends BaseVcsProvider {
|
|
8
|
+
constructor(config: VcsProvider);
|
|
9
|
+
protected getBaseUrl(config: VcsProvider): string;
|
|
10
|
+
protected getHeaders(config: VcsProvider): Record<string, string>;
|
|
11
|
+
protected normalizeRepository(data: any): RepositoryInfo;
|
|
12
|
+
protected normalizeBranch(data: any): BranchInfo;
|
|
13
|
+
protected normalizeFile(data: any): FileInfo;
|
|
14
|
+
protected normalizeCommit(data: any): CommitInfo;
|
|
15
|
+
protected normalizeIssue(data: any): IssueInfo;
|
|
16
|
+
protected normalizePullRequest(data: any): PullRequestInfo;
|
|
17
|
+
protected normalizeRelease(data: any): ReleaseInfo;
|
|
18
|
+
protected normalizeTag(data: any): TagInfo;
|
|
19
|
+
protected normalizeUser(data: any): UserInfo;
|
|
20
|
+
protected normalizeOrganization(data: any): OrganizationInfo;
|
|
21
|
+
protected normalizeWebhook(data: any): WebhookInfo;
|
|
22
|
+
listRepositories(username?: string, page?: number, limit?: number): Promise<RepositoryInfo[]>;
|
|
23
|
+
getRepository(owner: string, repo: string): Promise<RepositoryInfo>;
|
|
24
|
+
createRepository(name: string, description?: string, privateRepo?: boolean): Promise<RepositoryInfo>;
|
|
25
|
+
updateRepository(owner: string, repo: string, updates: any): Promise<RepositoryInfo>;
|
|
26
|
+
deleteRepository(owner: string, repo: string): Promise<boolean>;
|
|
27
|
+
forkRepository(owner: string, repo: string, organization?: string): Promise<RepositoryInfo>;
|
|
28
|
+
searchRepositories(query: string, page?: number, limit?: number): Promise<RepositoryInfo[]>;
|
|
29
|
+
listBranches(owner: string, repo: string, page?: number, limit?: number): Promise<BranchInfo[]>;
|
|
30
|
+
getBranch(owner: string, repo: string, branch: string): Promise<BranchInfo>;
|
|
31
|
+
createBranch(owner: string, repo: string, branchName: string, fromBranch: string): Promise<BranchInfo>;
|
|
32
|
+
deleteBranch(owner: string, repo: string, branch: string): Promise<boolean>;
|
|
33
|
+
getFile(owner: string, repo: string, path: string, ref?: string): Promise<FileInfo>;
|
|
34
|
+
createFile(owner: string, repo: string, path: string, content: string, message: string, branch?: string): Promise<FileInfo>;
|
|
35
|
+
updateFile(owner: string, repo: string, path: string, content: string, message: string, sha: string, branch?: string): Promise<FileInfo>;
|
|
36
|
+
deleteFile(owner: string, repo: string, path: string, message: string, sha: string, branch?: string): Promise<boolean>;
|
|
37
|
+
listFiles(owner: string, repo: string, path: string, ref?: string): Promise<FileInfo[]>;
|
|
38
|
+
uploadProject(owner: string, repo: string, projectPath: string, message: string, branch?: string): Promise<{
|
|
39
|
+
uploaded: number;
|
|
40
|
+
errors: string[];
|
|
41
|
+
}>;
|
|
42
|
+
listCommits(owner: string, repo: string, branch?: string, page?: number, limit?: number): Promise<CommitInfo[]>;
|
|
43
|
+
getCommit(owner: string, repo: string, sha: string): Promise<CommitInfo>;
|
|
44
|
+
createCommit(owner: string, repo: string, message: string, branch: string, changes?: any): Promise<CommitInfo>;
|
|
45
|
+
listIssues(owner: string, repo: string, state?: 'open' | 'closed' | 'all', page?: number, limit?: number): Promise<IssueInfo[]>;
|
|
46
|
+
getIssue(owner: string, repo: string, issueNumber: number): Promise<IssueInfo>;
|
|
47
|
+
createIssue(owner: string, repo: string, title: string, body?: string, assignees?: string[], labels?: string[]): Promise<IssueInfo>;
|
|
48
|
+
updateIssue(owner: string, repo: string, issueNumber: number, updates: any): Promise<IssueInfo>;
|
|
49
|
+
closeIssue(owner: string, repo: string, issueNumber: number): Promise<IssueInfo>;
|
|
50
|
+
listPullRequests(owner: string, repo: string, state?: 'open' | 'closed' | 'merged' | 'all', page?: number, limit?: number): Promise<PullRequestInfo[]>;
|
|
51
|
+
getPullRequest(owner: string, repo: string, pullNumber: number): Promise<PullRequestInfo>;
|
|
52
|
+
createPullRequest(owner: string, repo: string, title: string, body: string, head: string, base: string): Promise<PullRequestInfo>;
|
|
53
|
+
updatePullRequest(owner: string, repo: string, pullNumber: number, updates: any): Promise<PullRequestInfo>;
|
|
54
|
+
mergePullRequest(owner: string, repo: string, pullNumber: number, mergeMethod?: 'merge' | 'rebase' | 'squash'): Promise<boolean>;
|
|
55
|
+
listReleases(owner: string, repo: string, page?: number, limit?: number): Promise<ReleaseInfo[]>;
|
|
56
|
+
getRelease(owner: string, repo: string, releaseId: number): Promise<ReleaseInfo>;
|
|
57
|
+
createRelease(owner: string, repo: string, releaseData: any): Promise<ReleaseInfo>;
|
|
58
|
+
updateRelease(releaseId: number, updates: any): Promise<ReleaseInfo>;
|
|
59
|
+
deleteRelease(releaseId: number): Promise<boolean>;
|
|
60
|
+
listTags(owner: string, repo: string, page?: number, limit?: number): Promise<TagInfo[]>;
|
|
61
|
+
getTag(owner: string, repo: string, tag: string): Promise<TagInfo>;
|
|
62
|
+
createTag(owner: string, repo: string, tagData: any): Promise<TagInfo>;
|
|
63
|
+
deleteTag(owner: string, repo: string, tag: string): Promise<boolean>;
|
|
64
|
+
getCurrentUser(): Promise<UserInfo>;
|
|
65
|
+
getUser(username: string): Promise<UserInfo>;
|
|
66
|
+
listUsers(page?: number, limit?: number): Promise<UserInfo[]>;
|
|
67
|
+
searchUsers(query: string, page?: number, limit?: number): Promise<UserInfo[]>;
|
|
68
|
+
getUserOrganizations(username: string, page?: number, limit?: number): Promise<OrganizationInfo[]>;
|
|
69
|
+
getUserRepositories(username: string, page?: number, limit?: number): Promise<RepositoryInfo[]>;
|
|
70
|
+
listWebhooks(owner: string, repo: string, page?: number, limit?: number): Promise<WebhookInfo[]>;
|
|
71
|
+
getWebhook(owner: string, repo: string, webhookId: number): Promise<WebhookInfo>;
|
|
72
|
+
createWebhook(owner: string, repo: string, url: string, events: string[], secret?: string): Promise<WebhookInfo>;
|
|
73
|
+
updateWebhook(owner: string, repo: string, webhookId: number, updates: any): Promise<WebhookInfo>;
|
|
74
|
+
deleteWebhook(owner: string, repo: string, webhookId: number): Promise<boolean>;
|
|
75
|
+
listWorkflows(params: any): Promise<any>;
|
|
76
|
+
listWorkflowRuns(params: any): Promise<any>;
|
|
77
|
+
listDeployments(params: any): Promise<any>;
|
|
78
|
+
runSecurityScan(params: any): Promise<any>;
|
|
79
|
+
getTrafficStats(params: any): Promise<any>;
|
|
80
|
+
cloneRepository(params: any): Promise<any>;
|
|
81
|
+
archiveRepository(params: any): Promise<any>;
|
|
82
|
+
transferRepository(params: any): Promise<any>;
|
|
83
|
+
createFromTemplate(params: any): Promise<any>;
|
|
84
|
+
getWorkflow(owner: string, repo: string, workflowId: string): Promise<any>;
|
|
85
|
+
enableWorkflow(params: any): Promise<any>;
|
|
86
|
+
disableWorkflow(params: any): Promise<any>;
|
|
87
|
+
triggerWorkflow(params: any): Promise<any>;
|
|
88
|
+
listArtifacts(params: any): Promise<any>;
|
|
89
|
+
downloadJobLogs(params: any): Promise<any>;
|
|
90
|
+
listSecrets(params: any): Promise<any>;
|
|
91
|
+
listVariables(params: any): Promise<any>;
|
|
92
|
+
mirrorRepository(params: any): Promise<any>;
|
|
93
|
+
/**
|
|
94
|
+
* Obtém URL do repositório Gitea
|
|
95
|
+
*/
|
|
96
|
+
getRepositoryUrl(owner: string, repo: string): string;
|
|
97
|
+
}
|
|
98
98
|
//# sourceMappingURL=gitea-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitea-provider.d.ts","sourceRoot":"","sources":["../../src/providers/gitea-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtL;;;GAGG;AACH,qBAAa,aAAc,SAAQ,eAAe;gBACpC,MAAM,EAAE,WAAW;IAI/B,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAajD,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUjE,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,cAAc;IAoBxD,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,UAAU;IAYhD,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,QAAQ;IAiB5C,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,UAAU;
|
|
1
|
+
{"version":3,"file":"gitea-provider.d.ts","sourceRoot":"","sources":["../../src/providers/gitea-provider.ts"],"names":[],"mappings":"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"}
|