@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.
Files changed (122) hide show
  1. package/README.md +346 -0
  2. package/dist/client.d.ts +307 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +299 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/config.d.ts +299 -0
  7. package/dist/config.d.ts.map +1 -0
  8. package/dist/config.js +381 -0
  9. package/dist/config.js.map +1 -0
  10. package/dist/index.d.ts +22 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +53 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/providers/base-provider.d.ts +139 -0
  15. package/dist/providers/base-provider.d.ts.map +1 -0
  16. package/dist/providers/base-provider.js +246 -0
  17. package/dist/providers/base-provider.js.map +1 -0
  18. package/dist/providers/error-handler.d.ts +51 -0
  19. package/dist/providers/error-handler.d.ts.map +1 -0
  20. package/dist/providers/error-handler.js +170 -0
  21. package/dist/providers/error-handler.js.map +1 -0
  22. package/dist/providers/gitea-provider.d.ts +68 -0
  23. package/dist/providers/gitea-provider.d.ts.map +1 -0
  24. package/dist/providers/gitea-provider.js +515 -0
  25. package/dist/providers/gitea-provider.js.map +1 -0
  26. package/dist/providers/github-provider.d.ts +68 -0
  27. package/dist/providers/github-provider.d.ts.map +1 -0
  28. package/dist/providers/github-provider.js +518 -0
  29. package/dist/providers/github-provider.js.map +1 -0
  30. package/dist/providers/index.d.ts +13 -0
  31. package/dist/providers/index.d.ts.map +1 -0
  32. package/dist/providers/index.js +41 -0
  33. package/dist/providers/index.js.map +1 -0
  34. package/dist/providers/provider-factory.d.ts +75 -0
  35. package/dist/providers/provider-factory.d.ts.map +1 -0
  36. package/dist/providers/provider-factory.js +298 -0
  37. package/dist/providers/provider-factory.js.map +1 -0
  38. package/dist/providers/types.d.ts +276 -0
  39. package/dist/providers/types.d.ts.map +1 -0
  40. package/dist/providers/types.js +7 -0
  41. package/dist/providers/types.js.map +1 -0
  42. package/dist/server.d.ts +77 -0
  43. package/dist/server.d.ts.map +1 -0
  44. package/dist/server.js +262 -0
  45. package/dist/server.js.map +1 -0
  46. package/dist/tools/actions.d.ts +272 -0
  47. package/dist/tools/actions.d.ts.map +1 -0
  48. package/dist/tools/actions.js +428 -0
  49. package/dist/tools/actions.js.map +1 -0
  50. package/dist/tools/analytics.d.ts +326 -0
  51. package/dist/tools/analytics.d.ts.map +1 -0
  52. package/dist/tools/analytics.js +473 -0
  53. package/dist/tools/analytics.js.map +1 -0
  54. package/dist/tools/branches.d.ts +461 -0
  55. package/dist/tools/branches.d.ts.map +1 -0
  56. package/dist/tools/branches.js +525 -0
  57. package/dist/tools/branches.js.map +1 -0
  58. package/dist/tools/code-review.d.ts +323 -0
  59. package/dist/tools/code-review.d.ts.map +1 -0
  60. package/dist/tools/code-review.js +552 -0
  61. package/dist/tools/code-review.js.map +1 -0
  62. package/dist/tools/commits.d.ts +488 -0
  63. package/dist/tools/commits.d.ts.map +1 -0
  64. package/dist/tools/commits.js +578 -0
  65. package/dist/tools/commits.js.map +1 -0
  66. package/dist/tools/deployments.d.ts +319 -0
  67. package/dist/tools/deployments.d.ts.map +1 -0
  68. package/dist/tools/deployments.js +355 -0
  69. package/dist/tools/deployments.js.map +1 -0
  70. package/dist/tools/files.d.ts +456 -0
  71. package/dist/tools/files.d.ts.map +1 -0
  72. package/dist/tools/files.js +531 -0
  73. package/dist/tools/files.js.map +1 -0
  74. package/dist/tools/git-sync.d.ts +177 -0
  75. package/dist/tools/git-sync.d.ts.map +1 -0
  76. package/dist/tools/git-sync.js +112 -0
  77. package/dist/tools/git-sync.js.map +1 -0
  78. package/dist/tools/issues.d.ts +579 -0
  79. package/dist/tools/issues.d.ts.map +1 -0
  80. package/dist/tools/issues.js +631 -0
  81. package/dist/tools/issues.js.map +1 -0
  82. package/dist/tools/pulls.d.ts +702 -0
  83. package/dist/tools/pulls.d.ts.map +1 -0
  84. package/dist/tools/pulls.js +730 -0
  85. package/dist/tools/pulls.js.map +1 -0
  86. package/dist/tools/releases.d.ts +495 -0
  87. package/dist/tools/releases.d.ts.map +1 -0
  88. package/dist/tools/releases.js +551 -0
  89. package/dist/tools/releases.js.map +1 -0
  90. package/dist/tools/repositories.d.ts +513 -0
  91. package/dist/tools/repositories.d.ts.map +1 -0
  92. package/dist/tools/repositories.js +634 -0
  93. package/dist/tools/repositories.js.map +1 -0
  94. package/dist/tools/security.d.ts +341 -0
  95. package/dist/tools/security.d.ts.map +1 -0
  96. package/dist/tools/security.js +394 -0
  97. package/dist/tools/security.js.map +1 -0
  98. package/dist/tools/tags.d.ts +419 -0
  99. package/dist/tools/tags.d.ts.map +1 -0
  100. package/dist/tools/tags.js +479 -0
  101. package/dist/tools/tags.js.map +1 -0
  102. package/dist/tools/users.d.ts +376 -0
  103. package/dist/tools/users.d.ts.map +1 -0
  104. package/dist/tools/users.js +495 -0
  105. package/dist/tools/users.js.map +1 -0
  106. package/dist/tools/validator.d.ts +192 -0
  107. package/dist/tools/validator.d.ts.map +1 -0
  108. package/dist/tools/validator.js +198 -0
  109. package/dist/tools/validator.js.map +1 -0
  110. package/dist/tools/version-control.d.ts +247 -0
  111. package/dist/tools/version-control.d.ts.map +1 -0
  112. package/dist/tools/version-control.js +521 -0
  113. package/dist/tools/version-control.js.map +1 -0
  114. package/dist/tools/webhooks.d.ts +478 -0
  115. package/dist/tools/webhooks.d.ts.map +1 -0
  116. package/dist/tools/webhooks.js +541 -0
  117. package/dist/tools/webhooks.js.map +1 -0
  118. package/dist/tools/workflows.d.ts +313 -0
  119. package/dist/tools/workflows.d.ts.map +1 -0
  120. package/dist/tools/workflows.js +430 -0
  121. package/dist/tools/workflows.js.map +1 -0
  122. 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