@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,246 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BaseVcsProvider = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const error_handler_js_1 = require("./error-handler.js");
|
|
9
|
+
/**
|
|
10
|
+
* Classe base abstrata para todos os providers VCS
|
|
11
|
+
* Implementa funcionalidades comuns e define interface unificada
|
|
12
|
+
*/
|
|
13
|
+
class BaseVcsProvider {
|
|
14
|
+
client;
|
|
15
|
+
config;
|
|
16
|
+
baseUrl;
|
|
17
|
+
constructor(config) {
|
|
18
|
+
this.config = config;
|
|
19
|
+
this.baseUrl = this.getBaseUrl(config);
|
|
20
|
+
this.client = axios_1.default.create({
|
|
21
|
+
baseURL: this.baseUrl,
|
|
22
|
+
timeout: 30000,
|
|
23
|
+
headers: this.getHeaders(config),
|
|
24
|
+
});
|
|
25
|
+
this.setupInterceptors();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Configura interceptors para logging e tratamento de erros
|
|
29
|
+
*/
|
|
30
|
+
setupInterceptors() {
|
|
31
|
+
// Request interceptor
|
|
32
|
+
this.client.interceptors.request.use((config) => {
|
|
33
|
+
if (process.env.DEBUG === 'true') {
|
|
34
|
+
// Debug: API request
|
|
35
|
+
}
|
|
36
|
+
return config;
|
|
37
|
+
}, (error) => {
|
|
38
|
+
console.error(`[${this.config.name}] Request error:`, error);
|
|
39
|
+
return Promise.reject(error);
|
|
40
|
+
});
|
|
41
|
+
// Response interceptor
|
|
42
|
+
this.client.interceptors.response.use((response) => {
|
|
43
|
+
if (process.env.DEBUG === 'true') {
|
|
44
|
+
// Debug: API response
|
|
45
|
+
}
|
|
46
|
+
return response;
|
|
47
|
+
}, (error) => {
|
|
48
|
+
console.error(`[${this.config.name}] Response error:`, error.response?.status, error.response?.data);
|
|
49
|
+
return Promise.reject(this.normalizeError(error));
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Normaliza erros para formato unificado usando ErrorHandler padrão
|
|
54
|
+
*/
|
|
55
|
+
normalizeError(error) {
|
|
56
|
+
const standardError = error_handler_js_1.ErrorHandler.normalizeError(error, this.config.name);
|
|
57
|
+
if (process.env.DEBUG === 'true') {
|
|
58
|
+
console.error('Error details:', error_handler_js_1.ErrorHandler.formatForLogging(standardError));
|
|
59
|
+
}
|
|
60
|
+
return error_handler_js_1.ErrorHandler.createError(standardError);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Executa uma requisição HTTP com tratamento de erro
|
|
64
|
+
*/
|
|
65
|
+
async request(config) {
|
|
66
|
+
try {
|
|
67
|
+
const response = await this.client.request(config);
|
|
68
|
+
return response.data;
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
throw this.normalizeError(error);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Executa uma requisição GET
|
|
76
|
+
*/
|
|
77
|
+
async get(url, params) {
|
|
78
|
+
return this.request({ method: 'GET', url, params });
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Executa uma requisição POST
|
|
82
|
+
*/
|
|
83
|
+
async post(url, data) {
|
|
84
|
+
return this.request({ method: 'POST', url, data });
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Executa uma requisição PUT
|
|
88
|
+
*/
|
|
89
|
+
async put(url, data) {
|
|
90
|
+
return this.request({ method: 'PUT', url, data });
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Executa uma requisição PATCH
|
|
94
|
+
*/
|
|
95
|
+
async patch(url, data) {
|
|
96
|
+
return this.request({ method: 'PATCH', url, data });
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Executa uma requisição DELETE
|
|
100
|
+
*/
|
|
101
|
+
async delete(url, config) {
|
|
102
|
+
return this.request({ method: 'DELETE', url, ...config });
|
|
103
|
+
}
|
|
104
|
+
// Implementações padrão das operações VCS
|
|
105
|
+
// Cada provider pode sobrescrever conforme necessário
|
|
106
|
+
async listRepositories(username, page = 1, limit = 30) {
|
|
107
|
+
throw new Error('listRepositories not implemented');
|
|
108
|
+
}
|
|
109
|
+
async getRepository(owner, repo) {
|
|
110
|
+
throw new Error('getRepository not implemented');
|
|
111
|
+
}
|
|
112
|
+
async createRepository(name, description, privateRepo = false) {
|
|
113
|
+
throw new Error('createRepository not implemented');
|
|
114
|
+
}
|
|
115
|
+
async updateRepository(owner, repo, updates) {
|
|
116
|
+
throw new Error('updateRepository not implemented');
|
|
117
|
+
}
|
|
118
|
+
async deleteRepository(owner, repo) {
|
|
119
|
+
throw new Error('deleteRepository not implemented');
|
|
120
|
+
}
|
|
121
|
+
async forkRepository(owner, repo, organization) {
|
|
122
|
+
throw new Error('forkRepository not implemented');
|
|
123
|
+
}
|
|
124
|
+
async searchRepositories(query, page = 1, limit = 30) {
|
|
125
|
+
throw new Error('searchRepositories not implemented');
|
|
126
|
+
}
|
|
127
|
+
async listBranches(owner, repo, page = 1, limit = 30) {
|
|
128
|
+
throw new Error('listBranches not implemented');
|
|
129
|
+
}
|
|
130
|
+
async getBranch(owner, repo, branch) {
|
|
131
|
+
throw new Error('getBranch not implemented');
|
|
132
|
+
}
|
|
133
|
+
async createBranch(owner, repo, branchName, fromBranch) {
|
|
134
|
+
throw new Error('createBranch not implemented');
|
|
135
|
+
}
|
|
136
|
+
async deleteBranch(owner, repo, branch) {
|
|
137
|
+
throw new Error('deleteBranch not implemented');
|
|
138
|
+
}
|
|
139
|
+
async getFile(owner, repo, path, ref) {
|
|
140
|
+
throw new Error('getFile not implemented');
|
|
141
|
+
}
|
|
142
|
+
async createFile(owner, repo, path, content, message, branch) {
|
|
143
|
+
throw new Error('createFile not implemented');
|
|
144
|
+
}
|
|
145
|
+
async updateFile(owner, repo, path, content, message, sha, branch) {
|
|
146
|
+
throw new Error('updateFile not implemented');
|
|
147
|
+
}
|
|
148
|
+
async deleteFile(owner, repo, path, message, sha, branch) {
|
|
149
|
+
throw new Error('deleteFile not implemented');
|
|
150
|
+
}
|
|
151
|
+
async listFiles(owner, repo, path, ref) {
|
|
152
|
+
throw new Error('listFiles not implemented');
|
|
153
|
+
}
|
|
154
|
+
async listCommits(owner, repo, branch, page = 1, limit = 30) {
|
|
155
|
+
throw new Error('listCommits not implemented');
|
|
156
|
+
}
|
|
157
|
+
async getCommit(owner, repo, sha) {
|
|
158
|
+
throw new Error('getCommit not implemented');
|
|
159
|
+
}
|
|
160
|
+
async listIssues(owner, repo, state = 'open', page = 1, limit = 30) {
|
|
161
|
+
throw new Error('listIssues not implemented');
|
|
162
|
+
}
|
|
163
|
+
async getIssue(owner, repo, issueNumber) {
|
|
164
|
+
throw new Error('getIssue not implemented');
|
|
165
|
+
}
|
|
166
|
+
async createIssue(owner, repo, title, body, assignees, labels) {
|
|
167
|
+
throw new Error('createIssue not implemented');
|
|
168
|
+
}
|
|
169
|
+
async updateIssue(owner, repo, issueNumber, updates) {
|
|
170
|
+
throw new Error('updateIssue not implemented');
|
|
171
|
+
}
|
|
172
|
+
async closeIssue(owner, repo, issueNumber) {
|
|
173
|
+
throw new Error('closeIssue not implemented');
|
|
174
|
+
}
|
|
175
|
+
async listPullRequests(owner, repo, state = 'open', page = 1, limit = 30) {
|
|
176
|
+
throw new Error('listPullRequests not implemented');
|
|
177
|
+
}
|
|
178
|
+
async getPullRequest(owner, repo, pullNumber) {
|
|
179
|
+
throw new Error('getPullRequest not implemented');
|
|
180
|
+
}
|
|
181
|
+
async createPullRequest(owner, repo, title, body, head, base) {
|
|
182
|
+
throw new Error('createPullRequest not implemented');
|
|
183
|
+
}
|
|
184
|
+
async updatePullRequest(owner, repo, pullNumber, updates) {
|
|
185
|
+
throw new Error('updatePullRequest not implemented');
|
|
186
|
+
}
|
|
187
|
+
async mergePullRequest(owner, repo, pullNumber, mergeMethod = 'merge') {
|
|
188
|
+
throw new Error('mergePullRequest not implemented');
|
|
189
|
+
}
|
|
190
|
+
async listReleases(owner, repo, page = 1, limit = 30) {
|
|
191
|
+
throw new Error('listReleases not implemented');
|
|
192
|
+
}
|
|
193
|
+
async getRelease(owner, repo, releaseId) {
|
|
194
|
+
throw new Error('getRelease not implemented');
|
|
195
|
+
}
|
|
196
|
+
async createRelease(tagName, name, body, draft = false, prerelease = false) {
|
|
197
|
+
throw new Error('createRelease not implemented');
|
|
198
|
+
}
|
|
199
|
+
async updateRelease(releaseId, updates) {
|
|
200
|
+
throw new Error('updateRelease not implemented');
|
|
201
|
+
}
|
|
202
|
+
async deleteRelease(releaseId) {
|
|
203
|
+
throw new Error('deleteRelease not implemented');
|
|
204
|
+
}
|
|
205
|
+
async listTags(owner, repo, page = 1, limit = 30) {
|
|
206
|
+
throw new Error('listTags not implemented');
|
|
207
|
+
}
|
|
208
|
+
async getTag(owner, repo, tag) {
|
|
209
|
+
throw new Error('getTag not implemented');
|
|
210
|
+
}
|
|
211
|
+
async createTag(tagName, message, target) {
|
|
212
|
+
throw new Error('createTag not implemented');
|
|
213
|
+
}
|
|
214
|
+
async deleteTag(owner, repo, tag) {
|
|
215
|
+
throw new Error('deleteTag not implemented');
|
|
216
|
+
}
|
|
217
|
+
async getUser(username) {
|
|
218
|
+
throw new Error('getUser not implemented');
|
|
219
|
+
}
|
|
220
|
+
async listUsers(page = 1, limit = 30) {
|
|
221
|
+
throw new Error('listUsers not implemented');
|
|
222
|
+
}
|
|
223
|
+
async searchUsers(query, page = 1, limit = 30) {
|
|
224
|
+
throw new Error('searchUsers not implemented');
|
|
225
|
+
}
|
|
226
|
+
async listWebhooks(owner, repo, page = 1, limit = 30) {
|
|
227
|
+
throw new Error('listWebhooks not implemented');
|
|
228
|
+
}
|
|
229
|
+
async getWebhook(owner, repo, webhookId) {
|
|
230
|
+
throw new Error('getWebhook not implemented');
|
|
231
|
+
}
|
|
232
|
+
async createWebhook(owner, repo, url, events, secret) {
|
|
233
|
+
throw new Error('createWebhook not implemented');
|
|
234
|
+
}
|
|
235
|
+
async updateWebhook(owner, repo, webhookId, updates) {
|
|
236
|
+
throw new Error('updateWebhook not implemented');
|
|
237
|
+
}
|
|
238
|
+
async deleteWebhook(owner, repo, webhookId) {
|
|
239
|
+
throw new Error('deleteWebhook not implemented');
|
|
240
|
+
}
|
|
241
|
+
async createCommit(owner, repo, message, branch, changes) {
|
|
242
|
+
throw new Error('createCommit not implemented');
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
exports.BaseVcsProvider = BaseVcsProvider;
|
|
246
|
+
//# sourceMappingURL=base-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-provider.js","sourceRoot":"","sources":["../../src/providers/base-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classe utilitária para padronizar tratamento de erros entre providers
|
|
3
|
+
* Fornece métodos consistentes para normalização e formatação de erros
|
|
4
|
+
*/
|
|
5
|
+
export interface StandardError {
|
|
6
|
+
code: string;
|
|
7
|
+
message: string;
|
|
8
|
+
provider: string;
|
|
9
|
+
originalError?: any;
|
|
10
|
+
statusCode?: number;
|
|
11
|
+
retryable?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class ErrorHandler {
|
|
14
|
+
/**
|
|
15
|
+
* Normaliza erros de diferentes providers para formato padrão
|
|
16
|
+
*/
|
|
17
|
+
static normalizeError(error: any, providerName: string): StandardError;
|
|
18
|
+
/**
|
|
19
|
+
* Mapeia códigos HTTP para códigos de erro padronizados
|
|
20
|
+
*/
|
|
21
|
+
private static getErrorCode;
|
|
22
|
+
/**
|
|
23
|
+
* Gera mensagens de erro padronizadas e user-friendly
|
|
24
|
+
*/
|
|
25
|
+
private static getErrorMessage;
|
|
26
|
+
/**
|
|
27
|
+
* Determina se um erro é passível de retry
|
|
28
|
+
*/
|
|
29
|
+
private static isRetryable;
|
|
30
|
+
/**
|
|
31
|
+
* Extrai informações de rate limit dos headers
|
|
32
|
+
*/
|
|
33
|
+
private static getRateLimitInfo;
|
|
34
|
+
/**
|
|
35
|
+
* Cria um Error padrão do JavaScript a partir de StandardError
|
|
36
|
+
*/
|
|
37
|
+
static createError(standardError: StandardError): Error;
|
|
38
|
+
/**
|
|
39
|
+
* Formata erro para logging estruturado
|
|
40
|
+
*/
|
|
41
|
+
static formatForLogging(standardError: StandardError): object;
|
|
42
|
+
/**
|
|
43
|
+
* Verifica se um erro é de um tipo específico
|
|
44
|
+
*/
|
|
45
|
+
static isErrorType(error: any, type: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Verifica se um erro é retryable
|
|
48
|
+
*/
|
|
49
|
+
static isRetryableError(error: any): boolean;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=error-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/providers/error-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa;IAkCtE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IA6B3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA+B9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAW/B;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa,GAAG,KAAK;IASvD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM;IAa7D;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;CAG7C"}
|
|
@@ -0,0 +1,170 @@
|
|
|
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
|
+
return `${provider}: Not found - Resource doesn't exist or has been deleted`;
|
|
87
|
+
case 409:
|
|
88
|
+
return `${provider}: Conflict - ${baseMessage || 'Resource already exists or conflicts with existing data'}`;
|
|
89
|
+
case 422:
|
|
90
|
+
return `${provider}: Validation error - ${baseMessage || 'Invalid data provided'}`;
|
|
91
|
+
case 429:
|
|
92
|
+
return `${provider}: Rate limited - Too many requests. ${this.getRateLimitInfo(data)}`;
|
|
93
|
+
case 500:
|
|
94
|
+
return `${provider}: Internal server error - ${baseMessage || 'Server encountered an error'}`;
|
|
95
|
+
case 502:
|
|
96
|
+
return `${provider}: Bad gateway - Server is temporarily unavailable`;
|
|
97
|
+
case 503:
|
|
98
|
+
return `${provider}: Service unavailable - Server is temporarily down for maintenance`;
|
|
99
|
+
case 504:
|
|
100
|
+
return `${provider}: Gateway timeout - Server took too long to respond`;
|
|
101
|
+
default:
|
|
102
|
+
return `${provider}: HTTP ${status} - ${baseMessage || 'Unknown error'}`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Determina se um erro é passível de retry
|
|
107
|
+
*/
|
|
108
|
+
static isRetryable(status) {
|
|
109
|
+
return [
|
|
110
|
+
429, // Rate limited
|
|
111
|
+
500, // Internal server error
|
|
112
|
+
502, // Bad gateway
|
|
113
|
+
503, // Service unavailable
|
|
114
|
+
504 // Gateway timeout
|
|
115
|
+
].includes(status);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Extrai informações de rate limit dos headers
|
|
119
|
+
*/
|
|
120
|
+
static getRateLimitInfo(data) {
|
|
121
|
+
if (data?.headers) {
|
|
122
|
+
const resetTime = data.headers['x-ratelimit-reset'] || data.headers['x-rate-limit-reset'];
|
|
123
|
+
if (resetTime) {
|
|
124
|
+
const resetDate = new Date(parseInt(resetTime) * 1000);
|
|
125
|
+
return `Reset at: ${resetDate.toLocaleTimeString()}`;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return 'Please try again later';
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Cria um Error padrão do JavaScript a partir de StandardError
|
|
132
|
+
*/
|
|
133
|
+
static createError(standardError) {
|
|
134
|
+
const error = new Error(standardError.message);
|
|
135
|
+
error.code = standardError.code;
|
|
136
|
+
error.provider = standardError.provider;
|
|
137
|
+
error.statusCode = standardError.statusCode;
|
|
138
|
+
error.retryable = standardError.retryable;
|
|
139
|
+
return error;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Formata erro para logging estruturado
|
|
143
|
+
*/
|
|
144
|
+
static formatForLogging(standardError) {
|
|
145
|
+
return {
|
|
146
|
+
timestamp: new Date().toISOString(),
|
|
147
|
+
level: 'error',
|
|
148
|
+
code: standardError.code,
|
|
149
|
+
message: standardError.message,
|
|
150
|
+
provider: standardError.provider,
|
|
151
|
+
statusCode: standardError.statusCode,
|
|
152
|
+
retryable: standardError.retryable,
|
|
153
|
+
stack: standardError.originalError?.stack
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Verifica se um erro é de um tipo específico
|
|
158
|
+
*/
|
|
159
|
+
static isErrorType(error, type) {
|
|
160
|
+
return error?.code === type;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Verifica se um erro é retryable
|
|
164
|
+
*/
|
|
165
|
+
static isRetryableError(error) {
|
|
166
|
+
return error?.retryable === true;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
exports.ErrorHandler = ErrorHandler;
|
|
170
|
+
//# sourceMappingURL=error-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/providers/error-handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAWH,MAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAU,EAAE,YAAoB;QACpD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAEjC,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBAC/B,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC;gBACzD,QAAQ,EAAE,YAAY;gBACtB,UAAU,EAAE,MAAM;gBAClB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACnC,aAAa,EAAE,KAAK;aACrB,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,GAAG,YAAY,wCAAwC;gBAChE,QAAQ,EAAE,YAAY;gBACtB,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,KAAK;aACrB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,GAAG,YAAY,KAAK,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE;YAC/D,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,YAAY,CAAC,MAAc;QACxC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,aAAa,CAAC;YACvB,KAAK,GAAG;gBACN,OAAO,cAAc,CAAC;YACxB,KAAK,GAAG;gBACN,OAAO,WAAW,CAAC;YACrB,KAAK,GAAG;gBACN,OAAO,WAAW,CAAC;YACrB,KAAK,GAAG;gBACN,OAAO,UAAU,CAAC;YACpB,KAAK,GAAG;gBACN,OAAO,kBAAkB,CAAC;YAC5B,KAAK,GAAG;gBACN,OAAO,cAAc,CAAC;YACxB,KAAK,GAAG;gBACN,OAAO,uBAAuB,CAAC;YACjC,KAAK,GAAG;gBACN,OAAO,aAAa,CAAC;YACvB,KAAK,GAAG;gBACN,OAAO,qBAAqB,CAAC;YAC/B,KAAK,GAAG;gBACN,OAAO,iBAAiB,CAAC;YAC3B;gBACE,OAAO,QAAQ,MAAM,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,eAAe,CAAC,MAAc,EAAE,IAAS,EAAE,QAAgB;QACxE,MAAM,WAAW,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAEvD,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,mBAAmB,WAAW,IAAI,oBAAoB,EAAE,CAAC;YAC7E,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,mDAAmD,CAAC;YACxE,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,2DAA2D,CAAC;YAChF,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,0DAA0D,CAAC;YAC/E,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,gBAAgB,WAAW,IAAI,yDAAyD,EAAE,CAAC;YAC/G,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,wBAAwB,WAAW,IAAI,uBAAuB,EAAE,CAAC;YACrF,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,uCAAuC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACzF,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,6BAA6B,WAAW,IAAI,6BAA6B,EAAE,CAAC;YAChG,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,mDAAmD,CAAC;YACxE,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,oEAAoE,CAAC;YACzF,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,qDAAqD,CAAC;YAC1E;gBACE,OAAO,GAAG,QAAQ,UAAU,MAAM,MAAM,WAAW,IAAI,eAAe,EAAE,CAAC;QAC7E,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,WAAW,CAAC,MAAc;QACvC,OAAO;YACL,GAAG,EAAE,eAAe;YACpB,GAAG,EAAE,wBAAwB;YAC7B,GAAG,EAAE,cAAc;YACnB,GAAG,EAAE,sBAAsB;YAC3B,GAAG,CAAE,kBAAkB;SACxB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,gBAAgB,CAAC,IAAS;QACvC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAC1F,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;gBACvD,OAAO,aAAa,SAAS,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACvD,CAAC;QACH,CAAC;QACD,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,aAA4B;QAC7C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QACxC,KAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;QAChD,KAAa,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;QACpD,KAAa,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,aAA4B;QAClD,OAAO;YACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,KAAK,EAAE,aAAa,CAAC,aAAa,EAAE,KAAK;SAC1C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAU,EAAE,IAAY;QACzC,OAAO,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAU;QAChC,OAAO,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,CAAC;CACF;AA5KD,oCA4KC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { BaseVcsProvider } from './base-provider.js';
|
|
2
|
+
import { VcsProvider, RepositoryInfo, BranchInfo, FileInfo, CommitInfo, IssueInfo, PullRequestInfo, ReleaseInfo, TagInfo, UserInfo, 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 normalizeWebhook(data: any): WebhookInfo;
|
|
21
|
+
listRepositories(username?: string, page?: number, limit?: number): Promise<RepositoryInfo[]>;
|
|
22
|
+
getRepository(owner: string, repo: string): Promise<RepositoryInfo>;
|
|
23
|
+
createRepository(name: string, description?: string, privateRepo?: boolean): Promise<RepositoryInfo>;
|
|
24
|
+
updateRepository(owner: string, repo: string, updates: any): Promise<RepositoryInfo>;
|
|
25
|
+
deleteRepository(owner: string, repo: string): Promise<boolean>;
|
|
26
|
+
forkRepository(owner: string, repo: string, organization?: string): Promise<RepositoryInfo>;
|
|
27
|
+
searchRepositories(query: string, page?: number, limit?: number): Promise<RepositoryInfo[]>;
|
|
28
|
+
listBranches(owner: string, repo: string, page?: number, limit?: number): Promise<BranchInfo[]>;
|
|
29
|
+
getBranch(owner: string, repo: string, branch: string): Promise<BranchInfo>;
|
|
30
|
+
createBranch(owner: string, repo: string, branchName: string, fromBranch: string): Promise<BranchInfo>;
|
|
31
|
+
deleteBranch(owner: string, repo: string, branch: string): Promise<boolean>;
|
|
32
|
+
getFile(owner: string, repo: string, path: string, ref?: string): Promise<FileInfo>;
|
|
33
|
+
createFile(owner: string, repo: string, path: string, content: string, message: string, branch?: string): Promise<FileInfo>;
|
|
34
|
+
updateFile(owner: string, repo: string, path: string, content: string, message: string, sha: string, branch?: string): Promise<FileInfo>;
|
|
35
|
+
deleteFile(owner: string, repo: string, path: string, message: string, sha: string, branch?: string): Promise<boolean>;
|
|
36
|
+
listFiles(owner: string, repo: string, path: string, ref?: string): Promise<FileInfo[]>;
|
|
37
|
+
listCommits(owner: string, repo: string, branch?: string, page?: number, limit?: number): Promise<CommitInfo[]>;
|
|
38
|
+
getCommit(owner: string, repo: string, sha: string): Promise<CommitInfo>;
|
|
39
|
+
createCommit(owner: string, repo: string, message: string, branch: string, changes?: any): Promise<CommitInfo>;
|
|
40
|
+
listIssues(owner: string, repo: string, state?: 'open' | 'closed' | 'all', page?: number, limit?: number): Promise<IssueInfo[]>;
|
|
41
|
+
getIssue(owner: string, repo: string, issueNumber: number): Promise<IssueInfo>;
|
|
42
|
+
createIssue(owner: string, repo: string, title: string, body?: string, assignees?: string[], labels?: string[]): Promise<IssueInfo>;
|
|
43
|
+
updateIssue(owner: string, repo: string, issueNumber: number, updates: any): Promise<IssueInfo>;
|
|
44
|
+
closeIssue(owner: string, repo: string, issueNumber: number): Promise<IssueInfo>;
|
|
45
|
+
listPullRequests(owner: string, repo: string, state?: 'open' | 'closed' | 'merged' | 'all', page?: number, limit?: number): Promise<PullRequestInfo[]>;
|
|
46
|
+
getPullRequest(owner: string, repo: string, pullNumber: number): Promise<PullRequestInfo>;
|
|
47
|
+
createPullRequest(owner: string, repo: string, title: string, body: string, head: string, base: string): Promise<PullRequestInfo>;
|
|
48
|
+
updatePullRequest(owner: string, repo: string, pullNumber: number, updates: any): Promise<PullRequestInfo>;
|
|
49
|
+
mergePullRequest(owner: string, repo: string, pullNumber: number, mergeMethod?: 'merge' | 'rebase' | 'squash'): Promise<boolean>;
|
|
50
|
+
listReleases(owner: string, repo: string, page?: number, limit?: number): Promise<ReleaseInfo[]>;
|
|
51
|
+
getRelease(owner: string, repo: string, releaseId: number): Promise<ReleaseInfo>;
|
|
52
|
+
createRelease(tagName: string, name: string, body?: string, draft?: boolean, prerelease?: boolean): Promise<ReleaseInfo>;
|
|
53
|
+
updateRelease(releaseId: number, updates: any): Promise<ReleaseInfo>;
|
|
54
|
+
deleteRelease(releaseId: number): Promise<boolean>;
|
|
55
|
+
listTags(owner: string, repo: string, page?: number, limit?: number): Promise<TagInfo[]>;
|
|
56
|
+
getTag(owner: string, repo: string, tag: string): Promise<TagInfo>;
|
|
57
|
+
createTag(tagName: string, message: string, target: string): Promise<TagInfo>;
|
|
58
|
+
deleteTag(owner: string, repo: string, tag: string): Promise<boolean>;
|
|
59
|
+
getUser(username: string): Promise<UserInfo>;
|
|
60
|
+
listUsers(page?: number, limit?: number): Promise<UserInfo[]>;
|
|
61
|
+
searchUsers(query: string, page?: number, limit?: number): Promise<UserInfo[]>;
|
|
62
|
+
listWebhooks(owner: string, repo: string, page?: number, limit?: number): Promise<WebhookInfo[]>;
|
|
63
|
+
getWebhook(owner: string, repo: string, webhookId: number): Promise<WebhookInfo>;
|
|
64
|
+
createWebhook(owner: string, repo: string, url: string, events: string[], secret?: string): Promise<WebhookInfo>;
|
|
65
|
+
updateWebhook(owner: string, repo: string, webhookId: number, updates: any): Promise<WebhookInfo>;
|
|
66
|
+
deleteWebhook(owner: string, repo: string, webhookId: number): Promise<boolean>;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=gitea-provider.d.ts.map
|
|
@@ -0,0 +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,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpK;;;GAGG;AACH,qBAAa,aAAc,SAAQ,eAAe;gBACpC,MAAM,EAAE,WAAW;IAI/B,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAIjD,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;IAoBhD,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,SAAS;IA0B9C,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,eAAe;IAoC1D,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW;IAiBlD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO;IAa1C,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,QAAQ;IAa5C,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,WAAW;IAoB5C,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAMpG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKnE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAU3G,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAKpF,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAM3F,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAUlG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKtG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAK3E,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IActG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3E,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMnF,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAc3H,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAexI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IActH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAMvF,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAQtH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAKxE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAiC9G,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,QAAQ,GAAG,KAAc,EAAE,IAAI,GAAE,MAAU,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAK9I,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAK9E,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAYnI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IAK/F,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIhF,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAc,EAAE,IAAI,GAAE,MAAU,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAKrK,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAKzF,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAUjI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC;IAK1G,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAE,OAAO,GAAG,QAAQ,GAAG,QAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAOzI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAKvG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAKhF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,EAAE,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAsBtI,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IASpE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASlD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAK/F,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKrE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAK5C,SAAS,CAAC,IAAI,GAAE,MAAU,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKpE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKrF,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAKvG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAKhF,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAahH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAKjG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAItF"}
|