archicore 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -4
- package/dist/cli/commands/interactive.js +83 -23
- package/dist/cli/commands/projects.js +3 -3
- package/dist/cli/ui/prompt.d.ts +4 -0
- package/dist/cli/ui/prompt.js +22 -0
- package/dist/cli/utils/config.js +2 -2
- package/dist/cli/utils/upload-utils.js +65 -18
- package/dist/code-index/ast-parser.d.ts +4 -0
- package/dist/code-index/ast-parser.js +42 -0
- package/dist/code-index/index.d.ts +21 -1
- package/dist/code-index/index.js +45 -1
- package/dist/code-index/source-map-extractor.d.ts +71 -0
- package/dist/code-index/source-map-extractor.js +194 -0
- package/dist/gitlab/gitlab-service.d.ts +162 -0
- package/dist/gitlab/gitlab-service.js +652 -0
- package/dist/gitlab/index.d.ts +8 -0
- package/dist/gitlab/index.js +8 -0
- package/dist/server/config/passport.d.ts +14 -0
- package/dist/server/config/passport.js +86 -0
- package/dist/server/index.js +52 -10
- package/dist/server/middleware/api-auth.d.ts +2 -2
- package/dist/server/middleware/api-auth.js +21 -2
- package/dist/server/middleware/csrf.d.ts +23 -0
- package/dist/server/middleware/csrf.js +96 -0
- package/dist/server/routes/auth.d.ts +2 -2
- package/dist/server/routes/auth.js +204 -5
- package/dist/server/routes/device-auth.js +2 -2
- package/dist/server/routes/gitlab.d.ts +12 -0
- package/dist/server/routes/gitlab.js +528 -0
- package/dist/server/routes/oauth.d.ts +6 -0
- package/dist/server/routes/oauth.js +198 -0
- package/dist/server/services/audit-service.d.ts +1 -1
- package/dist/server/services/auth-service.d.ts +13 -1
- package/dist/server/services/auth-service.js +108 -7
- package/dist/server/services/email-service.d.ts +63 -0
- package/dist/server/services/email-service.js +586 -0
- package/dist/server/utils/disposable-email-domains.d.ts +14 -0
- package/dist/server/utils/disposable-email-domains.js +192 -0
- package/dist/types/api.d.ts +98 -0
- package/dist/types/gitlab.d.ts +245 -0
- package/dist/types/gitlab.js +11 -0
- package/package.json +1 -1
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List of disposable/temporary email domains to block
|
|
3
|
+
* Updated regularly to prevent spam and fake registrations
|
|
4
|
+
*/
|
|
5
|
+
export const DISPOSABLE_EMAIL_DOMAINS = new Set([
|
|
6
|
+
// Popular temporary email services
|
|
7
|
+
'10minutemail.com',
|
|
8
|
+
'10minutemail.net',
|
|
9
|
+
'guerrillamail.com',
|
|
10
|
+
'guerrillamail.net',
|
|
11
|
+
'guerrillamailblock.com',
|
|
12
|
+
'mailinator.com',
|
|
13
|
+
'maildrop.cc',
|
|
14
|
+
'temp-mail.org',
|
|
15
|
+
'temp-mail.io',
|
|
16
|
+
'tempmail.com',
|
|
17
|
+
'throwaway.email',
|
|
18
|
+
'trashmail.com',
|
|
19
|
+
'yopmail.com',
|
|
20
|
+
'getnada.com',
|
|
21
|
+
'fakeinbox.com',
|
|
22
|
+
'mailnesia.com',
|
|
23
|
+
'sharklasers.com',
|
|
24
|
+
'grr.la',
|
|
25
|
+
'guerrillamail.biz',
|
|
26
|
+
'guerrillamail.de',
|
|
27
|
+
'spam4.me',
|
|
28
|
+
'tmails.net',
|
|
29
|
+
'emailondeck.com',
|
|
30
|
+
'mintemail.com',
|
|
31
|
+
'mytemp.email',
|
|
32
|
+
'discard.email',
|
|
33
|
+
'mohmal.com',
|
|
34
|
+
'crazymailing.com',
|
|
35
|
+
'mailcatch.com',
|
|
36
|
+
'disposemail.com',
|
|
37
|
+
'mailtemp.net',
|
|
38
|
+
'mailforspam.com',
|
|
39
|
+
'spambox.us',
|
|
40
|
+
'filzmail.com',
|
|
41
|
+
'throwam.com',
|
|
42
|
+
'moakt.com',
|
|
43
|
+
'receivemailonline.net',
|
|
44
|
+
'fakemail.net',
|
|
45
|
+
'tempinbox.com',
|
|
46
|
+
'tempr.email',
|
|
47
|
+
'getairmail.com',
|
|
48
|
+
'mailpoof.com',
|
|
49
|
+
'emailsensei.com',
|
|
50
|
+
'mailmoat.com',
|
|
51
|
+
'spamgourmet.com',
|
|
52
|
+
'mytrashmail.com',
|
|
53
|
+
'spamhole.com',
|
|
54
|
+
'mailexpire.com',
|
|
55
|
+
'rcpt.at',
|
|
56
|
+
'trashmail.ws',
|
|
57
|
+
'imgof.com',
|
|
58
|
+
'wegwerfmail.de',
|
|
59
|
+
'wegwerfemail.de',
|
|
60
|
+
'jetable.org',
|
|
61
|
+
'mailcatch.com',
|
|
62
|
+
'tempsky.com',
|
|
63
|
+
'temp-mail.de',
|
|
64
|
+
'superrito.com',
|
|
65
|
+
'mail-temporaire.fr',
|
|
66
|
+
'spamfree24.org',
|
|
67
|
+
'trillianpro.com',
|
|
68
|
+
'armyspy.com',
|
|
69
|
+
'cuvox.de',
|
|
70
|
+
'dayrep.com',
|
|
71
|
+
'einrot.com',
|
|
72
|
+
'fleckens.hu',
|
|
73
|
+
'gustr.com',
|
|
74
|
+
'jourrapide.com',
|
|
75
|
+
'rhyta.com',
|
|
76
|
+
'teleworm.us',
|
|
77
|
+
'33mail.com',
|
|
78
|
+
'anonbox.net',
|
|
79
|
+
'boun.cr',
|
|
80
|
+
'deadaddress.com',
|
|
81
|
+
'mailexpire.com',
|
|
82
|
+
'meltmail.com',
|
|
83
|
+
'mt2014.com',
|
|
84
|
+
'spambox.info',
|
|
85
|
+
'trashmail.at',
|
|
86
|
+
'trashmail.de',
|
|
87
|
+
'trashmail.me',
|
|
88
|
+
'wegwerfadresse.de',
|
|
89
|
+
'zippymail.info',
|
|
90
|
+
'e4ward.com',
|
|
91
|
+
'spamcorptastic.com',
|
|
92
|
+
'spamherelots.com',
|
|
93
|
+
'spamhereplease.com',
|
|
94
|
+
'spamthisplease.com',
|
|
95
|
+
'sendspamhere.com',
|
|
96
|
+
'beefmilk.com',
|
|
97
|
+
'binkmail.com',
|
|
98
|
+
'bobmail.info',
|
|
99
|
+
'chammy.info',
|
|
100
|
+
'devnullmail.com',
|
|
101
|
+
'drdrb.net',
|
|
102
|
+
'letthemeatspam.com',
|
|
103
|
+
'mailinater.com',
|
|
104
|
+
'soodonims.com',
|
|
105
|
+
'spambog.com',
|
|
106
|
+
'spamcannon.com',
|
|
107
|
+
'spamcannon.net',
|
|
108
|
+
'spamcon.org',
|
|
109
|
+
'spamfree.eu',
|
|
110
|
+
'spamgourmet.com',
|
|
111
|
+
'spamgourmet.net',
|
|
112
|
+
'spamgourmet.org',
|
|
113
|
+
'spamhole.com',
|
|
114
|
+
'spamify.com',
|
|
115
|
+
'spammotel.com',
|
|
116
|
+
'spamobox.com',
|
|
117
|
+
'spamspot.com',
|
|
118
|
+
'tempemail.net',
|
|
119
|
+
'tempinbox.co.uk',
|
|
120
|
+
'tempinbox.com',
|
|
121
|
+
'tempomail.fr',
|
|
122
|
+
'temporarily.de',
|
|
123
|
+
'tempymail.com',
|
|
124
|
+
'thankyou2010.com',
|
|
125
|
+
'trash-mail.at',
|
|
126
|
+
'trash-mail.com',
|
|
127
|
+
'trash-mail.de',
|
|
128
|
+
'trash2009.com',
|
|
129
|
+
'trash2010.com',
|
|
130
|
+
'trash2011.com',
|
|
131
|
+
'trashmail.net',
|
|
132
|
+
'trashmailer.com',
|
|
133
|
+
'trashymail.com',
|
|
134
|
+
'trashymail.net',
|
|
135
|
+
'tyldd.com',
|
|
136
|
+
'yopmail.fr',
|
|
137
|
+
'yopmail.net',
|
|
138
|
+
'zetmail.com',
|
|
139
|
+
'zoaxe.com',
|
|
140
|
+
'bugmenot.com',
|
|
141
|
+
'devnullmail.com',
|
|
142
|
+
'fastacura.com',
|
|
143
|
+
'fastchevy.com',
|
|
144
|
+
'fastchrysler.com',
|
|
145
|
+
'fastkawasaki.com',
|
|
146
|
+
'fastmazda.com',
|
|
147
|
+
'fastmitsubishi.com',
|
|
148
|
+
'fastnissan.com',
|
|
149
|
+
'fastsubaru.com',
|
|
150
|
+
'fastsuzuki.com',
|
|
151
|
+
'fasttoyota.com',
|
|
152
|
+
'fastyamaha.com',
|
|
153
|
+
'haltospam.com',
|
|
154
|
+
'kasmail.com',
|
|
155
|
+
'mail-easy.fr',
|
|
156
|
+
'mail.by',
|
|
157
|
+
'maileater.com',
|
|
158
|
+
'mailmetrash.com',
|
|
159
|
+
'mailnull.com',
|
|
160
|
+
'mt2009.com',
|
|
161
|
+
'mytrashmail.compookmail.com',
|
|
162
|
+
'shiftmail.com',
|
|
163
|
+
'sneakemail.com',
|
|
164
|
+
'spamex.com',
|
|
165
|
+
'tradermail.info',
|
|
166
|
+
'upliftnow.com',
|
|
167
|
+
'viditag.com',
|
|
168
|
+
'vubby.com',
|
|
169
|
+
'vpn.st',
|
|
170
|
+
'vsimcard.com',
|
|
171
|
+
]);
|
|
172
|
+
/**
|
|
173
|
+
* Check if email domain is disposable/temporary
|
|
174
|
+
*/
|
|
175
|
+
export function isDisposableEmail(email) {
|
|
176
|
+
if (!email || typeof email !== 'string') {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
const emailLower = email.toLowerCase().trim();
|
|
180
|
+
const domain = emailLower.split('@')[1];
|
|
181
|
+
if (!domain) {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
return DISPOSABLE_EMAIL_DOMAINS.has(domain);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get user-friendly error message for disposable email
|
|
188
|
+
*/
|
|
189
|
+
export function getDisposableEmailError() {
|
|
190
|
+
return 'Temporary/disposable email addresses are not allowed. Please use a permanent email address.';
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=disposable-email-domains.js.map
|
package/dist/types/api.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ export interface TokenUsage {
|
|
|
37
37
|
metadata?: Record<string, unknown>;
|
|
38
38
|
}
|
|
39
39
|
export type ApiOperation = 'index' | 'analyze_impact' | 'analyze_security' | 'analyze_full' | 'search_semantic' | 'ask_architect' | 'export' | 'refactoring' | 'metrics' | 'rules_check' | 'dead_code' | 'duplication';
|
|
40
|
+
export type OperationCategory = 'index' | 'analyze' | 'search' | 'ask' | 'export' | 'refactoring' | 'metrics' | 'rules' | 'dead_code' | 'duplication';
|
|
40
41
|
export interface PricingTier {
|
|
41
42
|
name: string;
|
|
42
43
|
pricePerMillionTokens: number;
|
|
@@ -184,5 +185,102 @@ export interface ApiRequestContext {
|
|
|
184
185
|
rateLimitState: RateLimitState;
|
|
185
186
|
billingAccount: BillingAccount;
|
|
186
187
|
}
|
|
188
|
+
export interface ApiResponse<T = unknown> {
|
|
189
|
+
success: boolean;
|
|
190
|
+
data?: T;
|
|
191
|
+
error?: string;
|
|
192
|
+
message?: string;
|
|
193
|
+
}
|
|
194
|
+
export interface LoginResponse {
|
|
195
|
+
success: boolean;
|
|
196
|
+
token?: string;
|
|
197
|
+
user?: {
|
|
198
|
+
id: string;
|
|
199
|
+
email: string;
|
|
200
|
+
username: string;
|
|
201
|
+
tier: string;
|
|
202
|
+
provider: string;
|
|
203
|
+
avatar?: string;
|
|
204
|
+
};
|
|
205
|
+
error?: string;
|
|
206
|
+
}
|
|
207
|
+
export interface RegisterResponse extends LoginResponse {
|
|
208
|
+
}
|
|
209
|
+
export interface ProjectResponse {
|
|
210
|
+
success: boolean;
|
|
211
|
+
project?: {
|
|
212
|
+
id: string;
|
|
213
|
+
name: string;
|
|
214
|
+
path: string;
|
|
215
|
+
status: string;
|
|
216
|
+
createdAt: string;
|
|
217
|
+
updatedAt: string;
|
|
218
|
+
};
|
|
219
|
+
error?: string;
|
|
220
|
+
}
|
|
221
|
+
export interface ProjectListResponse {
|
|
222
|
+
success: boolean;
|
|
223
|
+
projects?: Array<{
|
|
224
|
+
id: string;
|
|
225
|
+
name: string;
|
|
226
|
+
path: string;
|
|
227
|
+
status: string;
|
|
228
|
+
createdAt: string;
|
|
229
|
+
}>;
|
|
230
|
+
error?: string;
|
|
231
|
+
}
|
|
232
|
+
export interface AnalysisResponse {
|
|
233
|
+
success: boolean;
|
|
234
|
+
analysis?: {
|
|
235
|
+
metrics?: Record<string, unknown>;
|
|
236
|
+
security?: Record<string, unknown>;
|
|
237
|
+
deadCode?: Record<string, unknown>;
|
|
238
|
+
duplication?: Record<string, unknown>;
|
|
239
|
+
refactoring?: Record<string, unknown>;
|
|
240
|
+
};
|
|
241
|
+
error?: string;
|
|
242
|
+
}
|
|
243
|
+
export interface GraphResponse {
|
|
244
|
+
success: boolean;
|
|
245
|
+
nodes?: Array<{
|
|
246
|
+
id: string;
|
|
247
|
+
label: string;
|
|
248
|
+
type?: string;
|
|
249
|
+
filePath?: string;
|
|
250
|
+
group?: string;
|
|
251
|
+
}>;
|
|
252
|
+
edges?: Array<{
|
|
253
|
+
from: string;
|
|
254
|
+
to: string;
|
|
255
|
+
}>;
|
|
256
|
+
error?: string;
|
|
257
|
+
}
|
|
258
|
+
export interface SearchResponse {
|
|
259
|
+
success: boolean;
|
|
260
|
+
results?: Array<{
|
|
261
|
+
file: string;
|
|
262
|
+
symbol?: string;
|
|
263
|
+
line?: number;
|
|
264
|
+
score?: number;
|
|
265
|
+
}>;
|
|
266
|
+
error?: string;
|
|
267
|
+
}
|
|
268
|
+
export interface UserProfileResponse {
|
|
269
|
+
success: boolean;
|
|
270
|
+
user?: {
|
|
271
|
+
id: string;
|
|
272
|
+
email: string;
|
|
273
|
+
username: string;
|
|
274
|
+
tier: string;
|
|
275
|
+
provider: string;
|
|
276
|
+
avatar?: string;
|
|
277
|
+
createdAt: string;
|
|
278
|
+
usage?: {
|
|
279
|
+
requestsToday: number;
|
|
280
|
+
requestsThisMonth: number;
|
|
281
|
+
};
|
|
282
|
+
};
|
|
283
|
+
error?: string;
|
|
284
|
+
}
|
|
187
285
|
export declare const DEFAULT_RATE_LIMITS: Record<string, RateLimitConfig>;
|
|
188
286
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitLab Integration Types
|
|
3
|
+
*
|
|
4
|
+
* Types for GitLab API integration with support for:
|
|
5
|
+
* - Multiple GitLab instances (self-hosted + gitlab.com)
|
|
6
|
+
* - Personal Access Token authentication
|
|
7
|
+
* - Private repositories
|
|
8
|
+
* - Branch selection
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* GitLab instance configuration
|
|
12
|
+
* Supports both gitlab.com and self-hosted instances
|
|
13
|
+
*/
|
|
14
|
+
export interface GitLabInstance {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
instanceUrl: string;
|
|
18
|
+
userId: string;
|
|
19
|
+
gitlabUserId: number;
|
|
20
|
+
gitlabUsername: string;
|
|
21
|
+
accessToken: string;
|
|
22
|
+
tokenScopes: string[];
|
|
23
|
+
rejectUnauthorizedSSL: boolean;
|
|
24
|
+
createdAt: Date;
|
|
25
|
+
lastUsedAt?: Date;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* GitLab project (repository)
|
|
29
|
+
*/
|
|
30
|
+
export interface GitLabProject {
|
|
31
|
+
id: number;
|
|
32
|
+
name: string;
|
|
33
|
+
path: string;
|
|
34
|
+
path_with_namespace: string;
|
|
35
|
+
description: string | null;
|
|
36
|
+
visibility: 'private' | 'internal' | 'public';
|
|
37
|
+
default_branch: string;
|
|
38
|
+
web_url: string;
|
|
39
|
+
ssh_url_to_repo: string;
|
|
40
|
+
http_url_to_repo: string;
|
|
41
|
+
star_count: number;
|
|
42
|
+
forks_count: number;
|
|
43
|
+
last_activity_at: string;
|
|
44
|
+
namespace: {
|
|
45
|
+
id: number;
|
|
46
|
+
name: string;
|
|
47
|
+
path: string;
|
|
48
|
+
kind: 'user' | 'group';
|
|
49
|
+
};
|
|
50
|
+
owner?: {
|
|
51
|
+
id: number;
|
|
52
|
+
username: string;
|
|
53
|
+
name: string;
|
|
54
|
+
};
|
|
55
|
+
archived: boolean;
|
|
56
|
+
empty_repo: boolean;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* GitLab branch
|
|
60
|
+
*/
|
|
61
|
+
export interface GitLabBranch {
|
|
62
|
+
name: string;
|
|
63
|
+
commit: {
|
|
64
|
+
id: string;
|
|
65
|
+
short_id: string;
|
|
66
|
+
title: string;
|
|
67
|
+
created_at: string;
|
|
68
|
+
author_name: string;
|
|
69
|
+
};
|
|
70
|
+
merged: boolean;
|
|
71
|
+
protected: boolean;
|
|
72
|
+
default: boolean;
|
|
73
|
+
web_url: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* GitLab user info
|
|
77
|
+
*/
|
|
78
|
+
export interface GitLabUser {
|
|
79
|
+
id: number;
|
|
80
|
+
username: string;
|
|
81
|
+
name: string;
|
|
82
|
+
email?: string;
|
|
83
|
+
avatar_url: string;
|
|
84
|
+
web_url: string;
|
|
85
|
+
state: 'active' | 'blocked' | 'deactivated';
|
|
86
|
+
is_admin?: boolean;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Connected GitLab repository in ArchiCore
|
|
90
|
+
*/
|
|
91
|
+
export interface ConnectedGitLabRepository {
|
|
92
|
+
id: string;
|
|
93
|
+
instanceId: string;
|
|
94
|
+
gitlabProjectId: number;
|
|
95
|
+
fullPath: string;
|
|
96
|
+
name: string;
|
|
97
|
+
owner: string;
|
|
98
|
+
visibility: 'private' | 'internal' | 'public';
|
|
99
|
+
defaultBranch: string;
|
|
100
|
+
projectId?: string;
|
|
101
|
+
autoAnalyze: boolean;
|
|
102
|
+
analyzeMRs: boolean;
|
|
103
|
+
webhookId?: number;
|
|
104
|
+
webhookSecret?: string;
|
|
105
|
+
status: 'pending' | 'active' | 'syncing' | 'error';
|
|
106
|
+
lastError?: string;
|
|
107
|
+
lastAnalyzedAt?: Date;
|
|
108
|
+
createdAt: Date;
|
|
109
|
+
updatedAt: Date;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* GitLab merge request
|
|
113
|
+
*/
|
|
114
|
+
export interface GitLabMergeRequest {
|
|
115
|
+
id: number;
|
|
116
|
+
iid: number;
|
|
117
|
+
title: string;
|
|
118
|
+
description: string | null;
|
|
119
|
+
state: 'opened' | 'closed' | 'merged' | 'locked';
|
|
120
|
+
source_branch: string;
|
|
121
|
+
target_branch: string;
|
|
122
|
+
author: {
|
|
123
|
+
id: number;
|
|
124
|
+
username: string;
|
|
125
|
+
name: string;
|
|
126
|
+
};
|
|
127
|
+
web_url: string;
|
|
128
|
+
created_at: string;
|
|
129
|
+
updated_at: string;
|
|
130
|
+
merged_at?: string;
|
|
131
|
+
merged_by?: {
|
|
132
|
+
id: number;
|
|
133
|
+
username: string;
|
|
134
|
+
};
|
|
135
|
+
draft: boolean;
|
|
136
|
+
work_in_progress: boolean;
|
|
137
|
+
labels: string[];
|
|
138
|
+
milestone?: {
|
|
139
|
+
id: number;
|
|
140
|
+
title: string;
|
|
141
|
+
};
|
|
142
|
+
diff_refs?: {
|
|
143
|
+
base_sha: string;
|
|
144
|
+
head_sha: string;
|
|
145
|
+
start_sha: string;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* GitLab merge request changes (files)
|
|
150
|
+
*/
|
|
151
|
+
export interface GitLabMRChange {
|
|
152
|
+
old_path: string;
|
|
153
|
+
new_path: string;
|
|
154
|
+
a_mode: string;
|
|
155
|
+
b_mode: string;
|
|
156
|
+
new_file: boolean;
|
|
157
|
+
renamed_file: boolean;
|
|
158
|
+
deleted_file: boolean;
|
|
159
|
+
diff: string;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* GitLab webhook event payload
|
|
163
|
+
*/
|
|
164
|
+
export interface GitLabWebhookPayload {
|
|
165
|
+
object_kind: 'push' | 'merge_request' | 'note' | 'tag_push' | 'pipeline';
|
|
166
|
+
event_name?: string;
|
|
167
|
+
project: {
|
|
168
|
+
id: number;
|
|
169
|
+
name: string;
|
|
170
|
+
path_with_namespace: string;
|
|
171
|
+
web_url: string;
|
|
172
|
+
default_branch: string;
|
|
173
|
+
};
|
|
174
|
+
user?: {
|
|
175
|
+
id: number;
|
|
176
|
+
username: string;
|
|
177
|
+
name: string;
|
|
178
|
+
};
|
|
179
|
+
ref?: string;
|
|
180
|
+
checkout_sha?: string;
|
|
181
|
+
commits?: Array<{
|
|
182
|
+
id: string;
|
|
183
|
+
message: string;
|
|
184
|
+
author: {
|
|
185
|
+
name: string;
|
|
186
|
+
email: string;
|
|
187
|
+
};
|
|
188
|
+
added: string[];
|
|
189
|
+
modified: string[];
|
|
190
|
+
removed: string[];
|
|
191
|
+
}>;
|
|
192
|
+
object_attributes?: {
|
|
193
|
+
id: number;
|
|
194
|
+
iid: number;
|
|
195
|
+
title: string;
|
|
196
|
+
state: string;
|
|
197
|
+
action?: string;
|
|
198
|
+
source_branch: string;
|
|
199
|
+
target_branch: string;
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* GitLab file content response
|
|
204
|
+
*/
|
|
205
|
+
export interface GitLabFile {
|
|
206
|
+
file_name: string;
|
|
207
|
+
file_path: string;
|
|
208
|
+
size: number;
|
|
209
|
+
encoding: 'base64' | 'text';
|
|
210
|
+
content: string;
|
|
211
|
+
content_sha256: string;
|
|
212
|
+
ref: string;
|
|
213
|
+
blob_id: string;
|
|
214
|
+
commit_id: string;
|
|
215
|
+
last_commit_id: string;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* GitLab API error response
|
|
219
|
+
*/
|
|
220
|
+
export interface GitLabAPIError {
|
|
221
|
+
message: string | {
|
|
222
|
+
[key: string]: string[];
|
|
223
|
+
};
|
|
224
|
+
error?: string;
|
|
225
|
+
error_description?: string;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Options for connecting a GitLab repository
|
|
229
|
+
*/
|
|
230
|
+
export interface ConnectGitLabRepositoryOptions {
|
|
231
|
+
autoAnalyze?: boolean;
|
|
232
|
+
analyzeMRs?: boolean;
|
|
233
|
+
createProject?: boolean;
|
|
234
|
+
projectName?: string;
|
|
235
|
+
branch?: string;
|
|
236
|
+
forceReconnect?: boolean;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* GitLab service configuration
|
|
240
|
+
*/
|
|
241
|
+
export interface GitLabServiceConfig {
|
|
242
|
+
dataDir?: string;
|
|
243
|
+
encryptionKey?: string;
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=gitlab.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitLab Integration Types
|
|
3
|
+
*
|
|
4
|
+
* Types for GitLab API integration with support for:
|
|
5
|
+
* - Multiple GitLab instances (self-hosted + gitlab.com)
|
|
6
|
+
* - Personal Access Token authentication
|
|
7
|
+
* - Private repositories
|
|
8
|
+
* - Branch selection
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=gitlab.js.map
|