@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,75 @@
|
|
|
1
|
+
import { VcsProvider, VcsProviderFactory, VcsOperations, VcsProviderConfig } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Factory para criar e gerenciar providers VCS
|
|
4
|
+
* Suporta Gitea e GitHub com configuração flexível
|
|
5
|
+
*/
|
|
6
|
+
export declare class ProviderFactory implements VcsProviderFactory {
|
|
7
|
+
private providers;
|
|
8
|
+
private defaultProviderName;
|
|
9
|
+
constructor(config?: VcsProviderConfig);
|
|
10
|
+
/**
|
|
11
|
+
* Inicializa a factory a partir de uma configuração
|
|
12
|
+
*/
|
|
13
|
+
private initializeFromConfig;
|
|
14
|
+
/**
|
|
15
|
+
* Cria um novo provider baseado na configuração
|
|
16
|
+
*/
|
|
17
|
+
createProvider(config: VcsProvider): VcsOperations;
|
|
18
|
+
/**
|
|
19
|
+
* Obtém um provider pelo nome
|
|
20
|
+
*/
|
|
21
|
+
getProvider(name: string): VcsOperations | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Lista todos os nomes de providers disponíveis
|
|
24
|
+
*/
|
|
25
|
+
listProviders(): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Obtém o provider padrão
|
|
28
|
+
*/
|
|
29
|
+
getDefaultProvider(): VcsOperations;
|
|
30
|
+
/**
|
|
31
|
+
* Define o provider padrão
|
|
32
|
+
*/
|
|
33
|
+
setDefaultProvider(name: string): void;
|
|
34
|
+
/**
|
|
35
|
+
* Remove um provider
|
|
36
|
+
*/
|
|
37
|
+
removeProvider(name: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Verifica se um provider existe
|
|
40
|
+
*/
|
|
41
|
+
hasProvider(name: string): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Obtém informações sobre todos os providers
|
|
44
|
+
*/
|
|
45
|
+
getProvidersInfo(): Array<{
|
|
46
|
+
name: string;
|
|
47
|
+
type: string;
|
|
48
|
+
isDefault: boolean;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* Limpa todos os providers
|
|
52
|
+
*/
|
|
53
|
+
clear(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Obtém o número total de providers
|
|
56
|
+
*/
|
|
57
|
+
getProviderCount(): number;
|
|
58
|
+
/**
|
|
59
|
+
* Verifica se há providers configurados
|
|
60
|
+
*/
|
|
61
|
+
isEmpty(): boolean;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Factory singleton global para uso em todo o sistema
|
|
65
|
+
*/
|
|
66
|
+
export declare const globalProviderFactory: ProviderFactory;
|
|
67
|
+
/**
|
|
68
|
+
* Função helper para criar provider a partir de variáveis de ambiente
|
|
69
|
+
*/
|
|
70
|
+
export declare function createProviderFromEnv(providerName: string, providerType: 'gitea' | 'github'): VcsOperations;
|
|
71
|
+
/**
|
|
72
|
+
* Função helper para inicializar factory a partir de variáveis de ambiente
|
|
73
|
+
*/
|
|
74
|
+
export declare function initializeFactoryFromEnv(): ProviderFactory;
|
|
75
|
+
//# sourceMappingURL=provider-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-factory.d.ts","sourceRoot":"","sources":["../../src/providers/provider-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAI/F;;;GAGG;AACH,qBAAa,eAAgB,YAAW,kBAAkB;IACxD,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,mBAAmB,CAAc;gBAE7B,MAAM,CAAC,EAAE,iBAAiB;IAMtC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa;IAwBlD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIpD;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACH,kBAAkB,IAAI,aAAa;IAqBnC;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOtC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAoBrC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,gBAAgB,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ7E;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,OAAO,IAAI,OAAO;CAGnB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,iBAAwB,CAAC;AAE3D;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,aAAa,CAqC3G;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,eAAe,CA2G1D"}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.globalProviderFactory = exports.ProviderFactory = void 0;
|
|
4
|
+
exports.createProviderFromEnv = createProviderFromEnv;
|
|
5
|
+
exports.initializeFactoryFromEnv = initializeFactoryFromEnv;
|
|
6
|
+
const gitea_provider_js_1 = require("./gitea-provider.js");
|
|
7
|
+
const github_provider_js_1 = require("./github-provider.js");
|
|
8
|
+
/**
|
|
9
|
+
* Factory para criar e gerenciar providers VCS
|
|
10
|
+
* Suporta Gitea e GitHub com configuração flexível
|
|
11
|
+
*/
|
|
12
|
+
class ProviderFactory {
|
|
13
|
+
providers = new Map();
|
|
14
|
+
defaultProviderName = '';
|
|
15
|
+
constructor(config) {
|
|
16
|
+
if (config) {
|
|
17
|
+
this.initializeFromConfig(config);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Inicializa a factory a partir de uma configuração
|
|
22
|
+
*/
|
|
23
|
+
initializeFromConfig(config) {
|
|
24
|
+
this.defaultProviderName = config.defaultProvider;
|
|
25
|
+
for (const providerConfig of config.providers) {
|
|
26
|
+
this.createProvider(providerConfig);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Cria um novo provider baseado na configuração
|
|
31
|
+
*/
|
|
32
|
+
createProvider(config) {
|
|
33
|
+
let provider;
|
|
34
|
+
switch (config.type) {
|
|
35
|
+
case 'gitea':
|
|
36
|
+
provider = new gitea_provider_js_1.GiteaProvider(config);
|
|
37
|
+
break;
|
|
38
|
+
case 'github':
|
|
39
|
+
provider = new github_provider_js_1.GitHubProvider(config);
|
|
40
|
+
break;
|
|
41
|
+
default:
|
|
42
|
+
throw new Error(`Provider type '${config.type}' not supported. Supported types: gitea, github`);
|
|
43
|
+
}
|
|
44
|
+
this.providers.set(config.name, provider);
|
|
45
|
+
// Se for o primeiro provider, define como padrão
|
|
46
|
+
if (this.providers.size === 1) {
|
|
47
|
+
this.defaultProviderName = config.name;
|
|
48
|
+
}
|
|
49
|
+
return provider;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Obtém um provider pelo nome
|
|
53
|
+
*/
|
|
54
|
+
getProvider(name) {
|
|
55
|
+
return this.providers.get(name);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Lista todos os nomes de providers disponíveis
|
|
59
|
+
*/
|
|
60
|
+
listProviders() {
|
|
61
|
+
return Array.from(this.providers.keys());
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Obtém o provider padrão
|
|
65
|
+
*/
|
|
66
|
+
getDefaultProvider() {
|
|
67
|
+
if (this.providers.size === 0) {
|
|
68
|
+
throw new Error('No providers configured');
|
|
69
|
+
}
|
|
70
|
+
if (!this.defaultProviderName || !this.providers.has(this.defaultProviderName)) {
|
|
71
|
+
// Se não há provider padrão definido, usa o primeiro disponível
|
|
72
|
+
const firstKey = this.providers.keys().next().value;
|
|
73
|
+
if (firstKey) {
|
|
74
|
+
this.defaultProviderName = firstKey;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const provider = this.providers.get(this.defaultProviderName);
|
|
78
|
+
if (!provider) {
|
|
79
|
+
throw new Error(`Default provider '${this.defaultProviderName}' not found`);
|
|
80
|
+
}
|
|
81
|
+
return provider;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Define o provider padrão
|
|
85
|
+
*/
|
|
86
|
+
setDefaultProvider(name) {
|
|
87
|
+
if (!this.providers.has(name)) {
|
|
88
|
+
throw new Error(`Provider '${name}' not found`);
|
|
89
|
+
}
|
|
90
|
+
this.defaultProviderName = name;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Remove um provider
|
|
94
|
+
*/
|
|
95
|
+
removeProvider(name) {
|
|
96
|
+
const removed = this.providers.delete(name);
|
|
97
|
+
// Se o provider removido era o padrão, redefine o padrão
|
|
98
|
+
if (removed && name === this.defaultProviderName) {
|
|
99
|
+
if (this.providers.size > 0) {
|
|
100
|
+
const firstKey = this.providers.keys().next().value;
|
|
101
|
+
if (firstKey) {
|
|
102
|
+
this.defaultProviderName = firstKey;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.defaultProviderName = '';
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.defaultProviderName = '';
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return removed;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Verifica se um provider existe
|
|
116
|
+
*/
|
|
117
|
+
hasProvider(name) {
|
|
118
|
+
return this.providers.has(name);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Obtém informações sobre todos os providers
|
|
122
|
+
*/
|
|
123
|
+
getProvidersInfo() {
|
|
124
|
+
return Array.from(this.providers.entries()).map(([name, provider]) => ({
|
|
125
|
+
name,
|
|
126
|
+
type: provider.config?.type || 'unknown',
|
|
127
|
+
isDefault: name === this.defaultProviderName
|
|
128
|
+
}));
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Limpa todos os providers
|
|
132
|
+
*/
|
|
133
|
+
clear() {
|
|
134
|
+
this.providers.clear();
|
|
135
|
+
this.defaultProviderName = '';
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Obtém o número total de providers
|
|
139
|
+
*/
|
|
140
|
+
getProviderCount() {
|
|
141
|
+
return this.providers.size;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Verifica se há providers configurados
|
|
145
|
+
*/
|
|
146
|
+
isEmpty() {
|
|
147
|
+
return this.providers.size === 0;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.ProviderFactory = ProviderFactory;
|
|
151
|
+
/**
|
|
152
|
+
* Factory singleton global para uso em todo o sistema
|
|
153
|
+
*/
|
|
154
|
+
exports.globalProviderFactory = new ProviderFactory();
|
|
155
|
+
/**
|
|
156
|
+
* Função helper para criar provider a partir de variáveis de ambiente
|
|
157
|
+
*/
|
|
158
|
+
function createProviderFromEnv(providerName, providerType) {
|
|
159
|
+
let apiUrl;
|
|
160
|
+
let token;
|
|
161
|
+
let username;
|
|
162
|
+
switch (providerType) {
|
|
163
|
+
case 'gitea':
|
|
164
|
+
apiUrl = process.env.GITEA_URL || process.env.API_URL || '';
|
|
165
|
+
token = process.env.GITEA_TOKEN || process.env.API_TOKEN || '';
|
|
166
|
+
username = process.env.GITEA_USERNAME || process.env.USERNAME;
|
|
167
|
+
break;
|
|
168
|
+
case 'github':
|
|
169
|
+
apiUrl = process.env.GITHUB_URL || process.env.API_URL || 'https://api.github.com';
|
|
170
|
+
token = process.env.GITHUB_TOKEN || process.env.API_TOKEN || '';
|
|
171
|
+
username = process.env.GITHUB_USERNAME || process.env.USERNAME;
|
|
172
|
+
break;
|
|
173
|
+
default:
|
|
174
|
+
throw new Error(`Provider type '${providerType}' not supported`);
|
|
175
|
+
}
|
|
176
|
+
if (!apiUrl) {
|
|
177
|
+
throw new Error(`API URL not configured for ${providerType}`);
|
|
178
|
+
}
|
|
179
|
+
if (!token) {
|
|
180
|
+
throw new Error(`API token not configured for ${providerType}`);
|
|
181
|
+
}
|
|
182
|
+
const config = {
|
|
183
|
+
name: providerName,
|
|
184
|
+
type: providerType,
|
|
185
|
+
apiUrl,
|
|
186
|
+
token,
|
|
187
|
+
username
|
|
188
|
+
};
|
|
189
|
+
return exports.globalProviderFactory.createProvider(config);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Função helper para inicializar factory a partir de variáveis de ambiente
|
|
193
|
+
*/
|
|
194
|
+
function initializeFactoryFromEnv() {
|
|
195
|
+
const providers = [];
|
|
196
|
+
let defaultProvider = '';
|
|
197
|
+
// Verifica se há configuração multi-provider
|
|
198
|
+
const providersJson = process.env.PROVIDERS_JSON;
|
|
199
|
+
if (providersJson) {
|
|
200
|
+
try {
|
|
201
|
+
const config = JSON.parse(providersJson);
|
|
202
|
+
if (config.providers && Array.isArray(config.providers)) {
|
|
203
|
+
for (const providerConfig of config.providers) {
|
|
204
|
+
if (providerConfig.name && providerConfig.type && providerConfig.apiUrl && providerConfig.token) {
|
|
205
|
+
providers.push(providerConfig);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
defaultProvider = config.defaultProvider || (providers[0]?.name || '');
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
console.error('Error parsing PROVIDERS_JSON:', error);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
// Se não há configuração multi-provider, tenta configuração individual
|
|
216
|
+
if (providers.length === 0) {
|
|
217
|
+
// Auto-detectar configuração multi-provider se ambos Gitea e GitHub estão configurados
|
|
218
|
+
if (process.env.GITEA_URL && process.env.GITEA_TOKEN && process.env.GITHUB_TOKEN) {
|
|
219
|
+
// Configuração multi-provider com Gitea como padrão
|
|
220
|
+
providers.push({
|
|
221
|
+
name: 'gitea',
|
|
222
|
+
type: 'gitea',
|
|
223
|
+
apiUrl: process.env.GITEA_URL,
|
|
224
|
+
token: process.env.GITEA_TOKEN,
|
|
225
|
+
username: process.env.GITEA_USERNAME
|
|
226
|
+
});
|
|
227
|
+
providers.push({
|
|
228
|
+
name: 'github',
|
|
229
|
+
type: 'github',
|
|
230
|
+
apiUrl: process.env.GITHUB_URL || 'https://api.github.com',
|
|
231
|
+
token: process.env.GITHUB_TOKEN,
|
|
232
|
+
username: process.env.GITHUB_USERNAME
|
|
233
|
+
});
|
|
234
|
+
defaultProvider = 'gitea';
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
// Tenta Gitea
|
|
238
|
+
if (process.env.GITEA_URL && process.env.GITEA_TOKEN) {
|
|
239
|
+
providers.push({
|
|
240
|
+
name: 'gitea',
|
|
241
|
+
type: 'gitea',
|
|
242
|
+
apiUrl: process.env.GITEA_URL,
|
|
243
|
+
token: process.env.GITEA_TOKEN,
|
|
244
|
+
username: process.env.GITEA_USERNAME
|
|
245
|
+
});
|
|
246
|
+
defaultProvider = 'gitea';
|
|
247
|
+
}
|
|
248
|
+
// Tenta GitHub
|
|
249
|
+
if (process.env.GITHUB_TOKEN) {
|
|
250
|
+
providers.push({
|
|
251
|
+
name: 'github',
|
|
252
|
+
type: 'github',
|
|
253
|
+
apiUrl: process.env.GITHUB_URL || 'https://api.github.com',
|
|
254
|
+
token: process.env.GITHUB_TOKEN,
|
|
255
|
+
username: process.env.GITHUB_USERNAME
|
|
256
|
+
});
|
|
257
|
+
if (!defaultProvider) {
|
|
258
|
+
defaultProvider = 'github';
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
// Tenta configuração genérica
|
|
263
|
+
if (process.env.API_URL && process.env.API_TOKEN && providers.length === 0) {
|
|
264
|
+
const providerType = process.env.PROVIDER || 'gitea';
|
|
265
|
+
providers.push({
|
|
266
|
+
name: providerType,
|
|
267
|
+
type: providerType,
|
|
268
|
+
apiUrl: process.env.API_URL,
|
|
269
|
+
token: process.env.API_TOKEN,
|
|
270
|
+
username: process.env.USERNAME
|
|
271
|
+
});
|
|
272
|
+
defaultProvider = providerType;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
// Se não há providers configurados, verifica modo demo
|
|
276
|
+
if (providers.length === 0) {
|
|
277
|
+
const isDemoMode = process.env.DEMO_MODE === 'true';
|
|
278
|
+
if (isDemoMode) {
|
|
279
|
+
providers.push({
|
|
280
|
+
name: 'demo',
|
|
281
|
+
type: 'gitea',
|
|
282
|
+
apiUrl: 'https://demo.gitea.io/api/v1',
|
|
283
|
+
token: 'demo-token',
|
|
284
|
+
username: 'demo-user'
|
|
285
|
+
});
|
|
286
|
+
defaultProvider = 'demo';
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
throw new Error('No VCS providers configured. Please set environment variables for Gitea or GitHub, or use DEMO_MODE=true for testing.');
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
const config = {
|
|
293
|
+
defaultProvider,
|
|
294
|
+
providers
|
|
295
|
+
};
|
|
296
|
+
return new ProviderFactory(config);
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=provider-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-factory.js","sourceRoot":"","sources":["../../src/providers/provider-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interfaces base para o sistema multi-provider
|
|
3
|
+
* Suporta GitHub e Gitea com operações unificadas
|
|
4
|
+
*/
|
|
5
|
+
export interface VcsProvider {
|
|
6
|
+
name: string;
|
|
7
|
+
type: 'github' | 'gitea';
|
|
8
|
+
apiUrl: string;
|
|
9
|
+
token: string;
|
|
10
|
+
username?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface VcsProviderConfig {
|
|
13
|
+
defaultProvider: string;
|
|
14
|
+
providers: VcsProvider[];
|
|
15
|
+
}
|
|
16
|
+
export interface RepositoryInfo {
|
|
17
|
+
id: number;
|
|
18
|
+
name: string;
|
|
19
|
+
full_name: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
private: boolean;
|
|
22
|
+
html_url: string;
|
|
23
|
+
clone_url: string;
|
|
24
|
+
default_branch: string;
|
|
25
|
+
created_at: string;
|
|
26
|
+
updated_at: string;
|
|
27
|
+
owner: {
|
|
28
|
+
login: string;
|
|
29
|
+
type: string;
|
|
30
|
+
};
|
|
31
|
+
raw?: any;
|
|
32
|
+
}
|
|
33
|
+
export interface BranchInfo {
|
|
34
|
+
name: string;
|
|
35
|
+
commit: {
|
|
36
|
+
sha: string;
|
|
37
|
+
url: string;
|
|
38
|
+
};
|
|
39
|
+
protected?: boolean;
|
|
40
|
+
raw?: any;
|
|
41
|
+
}
|
|
42
|
+
export interface FileInfo {
|
|
43
|
+
name: string;
|
|
44
|
+
path: string;
|
|
45
|
+
sha: string;
|
|
46
|
+
size: number;
|
|
47
|
+
url: string;
|
|
48
|
+
html_url: string;
|
|
49
|
+
git_url: string;
|
|
50
|
+
download_url?: string;
|
|
51
|
+
type: 'file' | 'dir';
|
|
52
|
+
content?: string;
|
|
53
|
+
encoding?: string;
|
|
54
|
+
raw?: any;
|
|
55
|
+
}
|
|
56
|
+
export interface CommitInfo {
|
|
57
|
+
sha: string;
|
|
58
|
+
message: string;
|
|
59
|
+
author: {
|
|
60
|
+
name: string;
|
|
61
|
+
email: string;
|
|
62
|
+
date: string;
|
|
63
|
+
};
|
|
64
|
+
committer: {
|
|
65
|
+
name: string;
|
|
66
|
+
email: string;
|
|
67
|
+
date: string;
|
|
68
|
+
};
|
|
69
|
+
url: string;
|
|
70
|
+
html_url: string;
|
|
71
|
+
raw?: any;
|
|
72
|
+
}
|
|
73
|
+
export interface IssueInfo {
|
|
74
|
+
id: number;
|
|
75
|
+
number: number;
|
|
76
|
+
title: string;
|
|
77
|
+
body?: string;
|
|
78
|
+
state: 'open' | 'closed';
|
|
79
|
+
user: {
|
|
80
|
+
login: string;
|
|
81
|
+
id: number;
|
|
82
|
+
};
|
|
83
|
+
assignees?: Array<{
|
|
84
|
+
login: string;
|
|
85
|
+
id: number;
|
|
86
|
+
}>;
|
|
87
|
+
labels?: Array<{
|
|
88
|
+
name: string;
|
|
89
|
+
color: string;
|
|
90
|
+
}>;
|
|
91
|
+
created_at: string;
|
|
92
|
+
updated_at: string;
|
|
93
|
+
closed_at?: string;
|
|
94
|
+
raw?: any;
|
|
95
|
+
}
|
|
96
|
+
export interface PullRequestInfo {
|
|
97
|
+
id: number;
|
|
98
|
+
number: number;
|
|
99
|
+
title: string;
|
|
100
|
+
body?: string;
|
|
101
|
+
state: 'open' | 'closed' | 'merged';
|
|
102
|
+
user: {
|
|
103
|
+
login: string;
|
|
104
|
+
id: number;
|
|
105
|
+
};
|
|
106
|
+
head: {
|
|
107
|
+
ref: string;
|
|
108
|
+
sha: string;
|
|
109
|
+
repo: {
|
|
110
|
+
name: string;
|
|
111
|
+
full_name: string;
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
base: {
|
|
115
|
+
ref: string;
|
|
116
|
+
sha: string;
|
|
117
|
+
repo: {
|
|
118
|
+
name: string;
|
|
119
|
+
full_name: string;
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
created_at: string;
|
|
123
|
+
updated_at: string;
|
|
124
|
+
closed_at?: string;
|
|
125
|
+
merged_at?: string;
|
|
126
|
+
mergeable?: boolean;
|
|
127
|
+
raw?: any;
|
|
128
|
+
}
|
|
129
|
+
export interface ReleaseInfo {
|
|
130
|
+
id: number;
|
|
131
|
+
tag_name: string;
|
|
132
|
+
name: string;
|
|
133
|
+
body?: string;
|
|
134
|
+
draft: boolean;
|
|
135
|
+
prerelease: boolean;
|
|
136
|
+
created_at: string;
|
|
137
|
+
published_at?: string;
|
|
138
|
+
html_url: string;
|
|
139
|
+
tarball_url: string;
|
|
140
|
+
zipball_url: string;
|
|
141
|
+
raw?: any;
|
|
142
|
+
}
|
|
143
|
+
export interface TagInfo {
|
|
144
|
+
name: string;
|
|
145
|
+
commit: {
|
|
146
|
+
sha: string;
|
|
147
|
+
url: string;
|
|
148
|
+
};
|
|
149
|
+
zipball_url: string;
|
|
150
|
+
tarball_url: string;
|
|
151
|
+
raw?: any;
|
|
152
|
+
}
|
|
153
|
+
export interface UserInfo {
|
|
154
|
+
id: number;
|
|
155
|
+
login: string;
|
|
156
|
+
name?: string;
|
|
157
|
+
email?: string;
|
|
158
|
+
avatar_url: string;
|
|
159
|
+
html_url: string;
|
|
160
|
+
type: string;
|
|
161
|
+
raw?: any;
|
|
162
|
+
}
|
|
163
|
+
export interface WebhookInfo {
|
|
164
|
+
id: number;
|
|
165
|
+
type: string;
|
|
166
|
+
name: string;
|
|
167
|
+
active: boolean;
|
|
168
|
+
events: string[];
|
|
169
|
+
config: {
|
|
170
|
+
url: string;
|
|
171
|
+
content_type: string;
|
|
172
|
+
secret?: string;
|
|
173
|
+
};
|
|
174
|
+
created_at: string;
|
|
175
|
+
updated_at: string;
|
|
176
|
+
raw?: any;
|
|
177
|
+
}
|
|
178
|
+
export interface VcsOperations {
|
|
179
|
+
listRepositories(username?: string, page?: number, limit?: number): Promise<RepositoryInfo[]>;
|
|
180
|
+
getRepository(owner: string, repo: string): Promise<RepositoryInfo>;
|
|
181
|
+
createRepository(name: string, description?: string, privateRepo?: boolean): Promise<RepositoryInfo>;
|
|
182
|
+
updateRepository(owner: string, repo: string, updates: Partial<RepositoryInfo>): Promise<RepositoryInfo>;
|
|
183
|
+
deleteRepository(owner: string, repo: string): Promise<boolean>;
|
|
184
|
+
forkRepository(owner: string, repo: string, organization?: string): Promise<RepositoryInfo>;
|
|
185
|
+
searchRepositories(query: string, page?: number, limit?: number): Promise<RepositoryInfo[]>;
|
|
186
|
+
listBranches(owner: string, repo: string, page?: number, limit?: number): Promise<BranchInfo[]>;
|
|
187
|
+
getBranch(owner: string, repo: string, branch: string): Promise<BranchInfo>;
|
|
188
|
+
createBranch(owner: string, repo: string, branchName: string, fromBranch: string): Promise<BranchInfo>;
|
|
189
|
+
deleteBranch(owner: string, repo: string, branch: string): Promise<boolean>;
|
|
190
|
+
getFile(owner: string, repo: string, path: string, ref?: string): Promise<FileInfo>;
|
|
191
|
+
createFile(owner: string, repo: string, path: string, content: string, message: string, branch?: string): Promise<FileInfo>;
|
|
192
|
+
updateFile(owner: string, repo: string, path: string, content: string, message: string, sha: string, branch?: string): Promise<FileInfo>;
|
|
193
|
+
deleteFile(owner: string, repo: string, path: string, message: string, sha: string, branch?: string): Promise<boolean>;
|
|
194
|
+
listFiles(owner: string, repo: string, path: string, ref?: string): Promise<FileInfo[]>;
|
|
195
|
+
listCommits(owner: string, repo: string, branch?: string, page?: number, limit?: number): Promise<CommitInfo[]>;
|
|
196
|
+
getCommit(owner: string, repo: string, sha: string): Promise<CommitInfo>;
|
|
197
|
+
createCommit(owner: string, repo: string, message: string, branch: string, changes?: any): Promise<CommitInfo>;
|
|
198
|
+
listIssues(owner: string, repo: string, state?: 'open' | 'closed' | 'all', page?: number, limit?: number): Promise<IssueInfo[]>;
|
|
199
|
+
getIssue(owner: string, repo: string, issueNumber: number): Promise<IssueInfo>;
|
|
200
|
+
createIssue(owner: string, repo: string, title: string, body?: string, assignees?: string[], labels?: string[]): Promise<IssueInfo>;
|
|
201
|
+
updateIssue(owner: string, repo: string, issueNumber: number, updates: Partial<IssueInfo>): Promise<IssueInfo>;
|
|
202
|
+
closeIssue(owner: string, repo: string, issueNumber: number): Promise<IssueInfo>;
|
|
203
|
+
listPullRequests(owner: string, repo: string, state?: 'open' | 'closed' | 'merged' | 'all', page?: number, limit?: number): Promise<PullRequestInfo[]>;
|
|
204
|
+
getPullRequest(owner: string, repo: string, pullNumber: number): Promise<PullRequestInfo>;
|
|
205
|
+
createPullRequest(owner: string, repo: string, title: string, body: string, head: string, base: string): Promise<PullRequestInfo>;
|
|
206
|
+
updatePullRequest(owner: string, repo: string, pullNumber: number, updates: Partial<PullRequestInfo>): Promise<PullRequestInfo>;
|
|
207
|
+
mergePullRequest(owner: string, repo: string, pullNumber: number, mergeMethod?: 'merge' | 'rebase' | 'squash'): Promise<boolean>;
|
|
208
|
+
listReleases(owner: string, repo: string, page?: number, limit?: number): Promise<ReleaseInfo[]>;
|
|
209
|
+
getRelease(owner: string, repo: string, releaseId: number): Promise<ReleaseInfo>;
|
|
210
|
+
createRelease(tagName: string, name: string, body?: string, draft?: boolean, prerelease?: boolean): Promise<ReleaseInfo>;
|
|
211
|
+
updateRelease(releaseId: number, updates: Partial<ReleaseInfo>): Promise<ReleaseInfo>;
|
|
212
|
+
deleteRelease(releaseId: number): Promise<boolean>;
|
|
213
|
+
listTags(owner: string, repo: string, page?: number, limit?: number): Promise<TagInfo[]>;
|
|
214
|
+
getTag(owner: string, repo: string, tag: string): Promise<TagInfo>;
|
|
215
|
+
createTag(tagName: string, message: string, target: string): Promise<TagInfo>;
|
|
216
|
+
deleteTag(owner: string, repo: string, tag: string): Promise<boolean>;
|
|
217
|
+
getUser(username: string): Promise<UserInfo>;
|
|
218
|
+
listUsers(page?: number, limit?: number): Promise<UserInfo[]>;
|
|
219
|
+
searchUsers(query: string, page?: number, limit?: number): Promise<UserInfo[]>;
|
|
220
|
+
listWebhooks(owner: string, repo: string, page?: number, limit?: number): Promise<WebhookInfo[]>;
|
|
221
|
+
getWebhook(owner: string, repo: string, webhookId: number): Promise<WebhookInfo>;
|
|
222
|
+
createWebhook(owner: string, repo: string, url: string, events: string[], secret?: string): Promise<WebhookInfo>;
|
|
223
|
+
updateWebhook(owner: string, repo: string, webhookId: number, updates: Partial<WebhookInfo>): Promise<WebhookInfo>;
|
|
224
|
+
deleteWebhook(owner: string, repo: string, webhookId: number): Promise<boolean>;
|
|
225
|
+
cloneRepository?(params: any): Promise<any>;
|
|
226
|
+
archiveRepository?(params: any): Promise<any>;
|
|
227
|
+
transferRepository?(params: any): Promise<any>;
|
|
228
|
+
createFromTemplate?(params: any): Promise<any>;
|
|
229
|
+
mirrorRepository?(params: any): Promise<any>;
|
|
230
|
+
listWorkflows?(params: any): Promise<any>;
|
|
231
|
+
createWorkflow?(params: any): Promise<any>;
|
|
232
|
+
triggerWorkflow?(params: any): Promise<any>;
|
|
233
|
+
getWorkflowStatus?(params: any): Promise<any>;
|
|
234
|
+
getWorkflowLogs?(params: any): Promise<any>;
|
|
235
|
+
disableWorkflow?(params: any): Promise<any>;
|
|
236
|
+
enableWorkflow?(params: any): Promise<any>;
|
|
237
|
+
listWorkflowRuns?(params: any): Promise<any>;
|
|
238
|
+
cancelWorkflowRun?(params: any): Promise<any>;
|
|
239
|
+
rerunWorkflow?(params: any): Promise<any>;
|
|
240
|
+
listArtifacts?(params: any): Promise<any>;
|
|
241
|
+
listSecrets?(params: any): Promise<any>;
|
|
242
|
+
listJobs?(params: any): Promise<any>;
|
|
243
|
+
downloadArtifact?(params: any): Promise<any>;
|
|
244
|
+
listDeployments?(params: any): Promise<any>;
|
|
245
|
+
createDeployment?(params: any): Promise<any>;
|
|
246
|
+
updateDeploymentStatus?(params: any): Promise<any>;
|
|
247
|
+
listEnvironments?(params: any): Promise<any>;
|
|
248
|
+
rollbackDeployment?(params: any): Promise<any>;
|
|
249
|
+
deleteDeployment?(params: any): Promise<any>;
|
|
250
|
+
runSecurityScan?(params: any): Promise<any>;
|
|
251
|
+
listVulnerabilities?(params: any): Promise<any>;
|
|
252
|
+
manageSecurityAlerts?(params: any): Promise<any>;
|
|
253
|
+
manageSecurityPolicies?(params: any): Promise<any>;
|
|
254
|
+
checkCompliance?(params: any): Promise<any>;
|
|
255
|
+
analyzeDependencies?(params: any): Promise<any>;
|
|
256
|
+
listSecurityAdvisories?(params: any): Promise<any>;
|
|
257
|
+
getTrafficStats?(params: any): Promise<any>;
|
|
258
|
+
analyzeContributors?(params: any): Promise<any>;
|
|
259
|
+
getActivityStats?(params: any): Promise<any>;
|
|
260
|
+
getPerformanceMetrics?(params: any): Promise<any>;
|
|
261
|
+
generateReports?(params: any): Promise<any>;
|
|
262
|
+
analyzeTrends?(params: any): Promise<any>;
|
|
263
|
+
getRepositoryInsights?(params: any): Promise<any>;
|
|
264
|
+
startCodeReview?(params: any): Promise<any>;
|
|
265
|
+
reviewFile?(params: any): Promise<any>;
|
|
266
|
+
reviewCommit?(params: any): Promise<any>;
|
|
267
|
+
generateReviewReport?(params: any): Promise<any>;
|
|
268
|
+
applyReviewSuggestions?(params: any): Promise<any>;
|
|
269
|
+
}
|
|
270
|
+
export interface VcsProviderFactory {
|
|
271
|
+
createProvider(config: VcsProvider): VcsOperations;
|
|
272
|
+
getProvider(name: string): VcsOperations | undefined;
|
|
273
|
+
listProviders(): string[];
|
|
274
|
+
getDefaultProvider(): VcsOperations;
|
|
275
|
+
}
|
|
276
|
+
//# sourceMappingURL=types.d.ts.map
|