@oneuptime/common 9.2.16 → 9.2.17
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/Models/DatabaseModels/CodeRepository.ts +664 -0
- package/Models/DatabaseModels/Index.ts +8 -0
- package/Models/DatabaseModels/LlmLog.ts +818 -0
- package/Models/DatabaseModels/LlmProvider.ts +21 -0
- package/Models/DatabaseModels/Project.ts +206 -0
- package/Models/DatabaseModels/ServiceCatalogCodeRepository.ts +549 -0
- package/Server/API/AIBillingAPI.ts +126 -0
- package/Server/API/GitHubAPI.ts +360 -0
- package/Server/API/IncidentAPI.ts +126 -0
- package/Server/EnvironmentConfig.ts +44 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765580181582-MigrationName.ts +79 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765633554715-MigrationName.ts +75 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765801357168-MigrationName.ts +32 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765810218488-MigrationName.ts +69 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765830758857-MigrationName.ts +111 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765834537501-MigrationName.ts +39 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
- package/Server/Services/AIBillingService.ts +247 -0
- package/Server/Services/AIService.ts +239 -0
- package/Server/Services/CodeRepositoryService.ts +10 -0
- package/Server/Services/IncidentService.ts +89 -0
- package/Server/Services/Index.ts +2 -0
- package/Server/Services/LlmLogService.ts +14 -0
- package/Server/Services/LlmProviderService.ts +58 -0
- package/Server/Services/ServiceCatalogCodeRepositoryService.ts +55 -0
- package/Server/Utils/AI/IncidentAIContextBuilder.ts +498 -0
- package/Server/Utils/CodeRepository/GitHub/GitHub.ts +226 -0
- package/Server/Utils/LLM/LLMService.ts +276 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +166 -0
- package/Server/Utils/Workspace/Slack/Slack.ts +134 -0
- package/Server/Utils/Workspace/Workspace.ts +126 -0
- package/Types/CodeRepository/CodeRepositoryType.ts +1 -1
- package/Types/LlmLogStatus.ts +7 -0
- package/Types/Permission.ts +87 -0
- package/Types/ServiceCatalog/CodeRepositoryImprovementAction.ts +9 -0
- package/UI/Components/AI/AILoader.tsx +95 -0
- package/UI/Components/AI/GenerateFromAIModal.tsx +295 -0
- package/UI/Components/Modal/Modal.tsx +6 -1
- package/build/dist/Models/DatabaseModels/CodeRepository.js +689 -0
- package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Index.js +7 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LlmLog.js +856 -0
- package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -0
- package/build/dist/Models/DatabaseModels/LlmProvider.js +22 -0
- package/build/dist/Models/DatabaseModels/LlmProvider.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +220 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogCodeRepository.js +565 -0
- package/build/dist/Models/DatabaseModels/ServiceCatalogCodeRepository.js.map +1 -0
- package/build/dist/Server/API/AIBillingAPI.js +58 -0
- package/build/dist/Server/API/AIBillingAPI.js.map +1 -0
- package/build/dist/Server/API/GitHubAPI.js +207 -0
- package/build/dist/Server/API/GitHubAPI.js.map +1 -0
- package/build/dist/Server/API/IncidentAPI.js +84 -1
- package/build/dist/Server/API/IncidentAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +31 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765580181582-MigrationName.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765580181582-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765633554715-MigrationName.js +32 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765633554715-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765801357168-MigrationName.js +38 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765801357168-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765810218488-MigrationName.js +30 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765810218488-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765830758857-MigrationName.js +44 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765830758857-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765834537501-MigrationName.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765834537501-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AIBillingService.js +187 -0
- package/build/dist/Server/Services/AIBillingService.js.map +1 -0
- package/build/dist/Server/Services/AIService.js +185 -0
- package/build/dist/Server/Services/AIService.js.map +1 -0
- package/build/dist/Server/Services/CodeRepositoryService.js +9 -0
- package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -0
- package/build/dist/Server/Services/IncidentService.js +61 -0
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +2 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/LlmLogService.js +13 -0
- package/build/dist/Server/Services/LlmLogService.js.map +1 -0
- package/build/dist/Server/Services/LlmProviderService.js +65 -0
- package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
- package/build/dist/Server/Services/ServiceCatalogCodeRepositoryService.js +54 -0
- package/build/dist/Server/Services/ServiceCatalogCodeRepositoryService.js.map +1 -0
- package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js +408 -0
- package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +163 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
- package/build/dist/Server/Utils/LLM/LLMService.js +225 -0
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +110 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +89 -0
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Workspace.js +80 -0
- package/build/dist/Server/Utils/Workspace/Workspace.js.map +1 -1
- package/build/dist/Types/CodeRepository/CodeRepositoryType.js +1 -1
- package/build/dist/Types/CodeRepository/CodeRepositoryType.js.map +1 -1
- package/build/dist/Types/LlmLogStatus.js +8 -0
- package/build/dist/Types/LlmLogStatus.js.map +1 -0
- package/build/dist/Types/Permission.js +74 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/ServiceCatalog/CodeRepositoryImprovementAction.js +10 -0
- package/build/dist/Types/ServiceCatalog/CodeRepositoryImprovementAction.js.map +1 -0
- package/build/dist/UI/Components/AI/AILoader.js +64 -0
- package/build/dist/UI/Components/AI/AILoader.js.map +1 -0
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js +207 -0
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js.map +1 -0
- package/build/dist/UI/Components/Modal/Modal.js +6 -1
- package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,664 @@
|
|
|
1
|
+
import Label from "./Label";
|
|
2
|
+
import Project from "./Project";
|
|
3
|
+
import User from "./User";
|
|
4
|
+
import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
|
|
5
|
+
import Route from "../../Types/API/Route";
|
|
6
|
+
import { PlanType } from "../../Types/Billing/SubscriptionPlan";
|
|
7
|
+
import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
|
|
8
|
+
import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
|
|
9
|
+
import TableBillingAccessControl from "../../Types/Database/AccessControl/TableBillingAccessControl";
|
|
10
|
+
import AccessControlColumn from "../../Types/Database/AccessControlColumn";
|
|
11
|
+
import ColumnLength from "../../Types/Database/ColumnLength";
|
|
12
|
+
import ColumnType from "../../Types/Database/ColumnType";
|
|
13
|
+
import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
|
|
14
|
+
import EnableDocumentation from "../../Types/Database/EnableDocumentation";
|
|
15
|
+
import EnableWorkflow from "../../Types/Database/EnableWorkflow";
|
|
16
|
+
import SlugifyColumn from "../../Types/Database/SlugifyColumn";
|
|
17
|
+
import TableColumn from "../../Types/Database/TableColumn";
|
|
18
|
+
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
19
|
+
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
20
|
+
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
21
|
+
import UniqueColumnBy from "../../Types/Database/UniqueColumnBy";
|
|
22
|
+
import IconProp from "../../Types/Icon/IconProp";
|
|
23
|
+
import ObjectID from "../../Types/ObjectID";
|
|
24
|
+
import Permission from "../../Types/Permission";
|
|
25
|
+
import CodeRepositoryType from "../../Types/CodeRepository/CodeRepositoryType";
|
|
26
|
+
import URL from "../../Types/API/URL";
|
|
27
|
+
import {
|
|
28
|
+
Column,
|
|
29
|
+
Entity,
|
|
30
|
+
Index,
|
|
31
|
+
JoinColumn,
|
|
32
|
+
JoinTable,
|
|
33
|
+
ManyToMany,
|
|
34
|
+
ManyToOne,
|
|
35
|
+
} from "typeorm";
|
|
36
|
+
|
|
37
|
+
@AccessControlColumn("labels")
|
|
38
|
+
@EnableDocumentation()
|
|
39
|
+
@TenantColumn("projectId")
|
|
40
|
+
@TableBillingAccessControl({
|
|
41
|
+
create: PlanType.Growth,
|
|
42
|
+
read: PlanType.Growth,
|
|
43
|
+
update: PlanType.Growth,
|
|
44
|
+
delete: PlanType.Growth,
|
|
45
|
+
})
|
|
46
|
+
@TableAccessControl({
|
|
47
|
+
create: [
|
|
48
|
+
Permission.ProjectOwner,
|
|
49
|
+
Permission.ProjectAdmin,
|
|
50
|
+
Permission.ProjectMember,
|
|
51
|
+
Permission.CreateCodeRepository,
|
|
52
|
+
],
|
|
53
|
+
read: [
|
|
54
|
+
Permission.ProjectOwner,
|
|
55
|
+
Permission.ProjectAdmin,
|
|
56
|
+
Permission.ProjectMember,
|
|
57
|
+
Permission.ReadCodeRepository,
|
|
58
|
+
],
|
|
59
|
+
delete: [
|
|
60
|
+
Permission.ProjectOwner,
|
|
61
|
+
Permission.ProjectAdmin,
|
|
62
|
+
Permission.DeleteCodeRepository,
|
|
63
|
+
],
|
|
64
|
+
update: [
|
|
65
|
+
Permission.ProjectOwner,
|
|
66
|
+
Permission.ProjectAdmin,
|
|
67
|
+
Permission.ProjectMember,
|
|
68
|
+
Permission.EditCodeRepository,
|
|
69
|
+
],
|
|
70
|
+
})
|
|
71
|
+
@EnableWorkflow({
|
|
72
|
+
create: true,
|
|
73
|
+
delete: true,
|
|
74
|
+
update: true,
|
|
75
|
+
read: true,
|
|
76
|
+
})
|
|
77
|
+
@CrudApiEndpoint(new Route("/code-repository"))
|
|
78
|
+
@SlugifyColumn("name", "slug")
|
|
79
|
+
@TableMetadata({
|
|
80
|
+
tableName: "CodeRepository",
|
|
81
|
+
singularName: "Code Repository",
|
|
82
|
+
pluralName: "Code Repositories",
|
|
83
|
+
icon: IconProp.Code,
|
|
84
|
+
tableDescription:
|
|
85
|
+
"Connect and manage code repositories from GitHub, GitLab, and other providers",
|
|
86
|
+
})
|
|
87
|
+
@Entity({
|
|
88
|
+
name: "CodeRepository",
|
|
89
|
+
})
|
|
90
|
+
export default class CodeRepository extends BaseModel {
|
|
91
|
+
@ColumnAccessControl({
|
|
92
|
+
create: [
|
|
93
|
+
Permission.ProjectOwner,
|
|
94
|
+
Permission.ProjectAdmin,
|
|
95
|
+
Permission.ProjectMember,
|
|
96
|
+
Permission.CreateCodeRepository,
|
|
97
|
+
],
|
|
98
|
+
read: [
|
|
99
|
+
Permission.ProjectOwner,
|
|
100
|
+
Permission.ProjectAdmin,
|
|
101
|
+
Permission.ProjectMember,
|
|
102
|
+
Permission.ReadCodeRepository,
|
|
103
|
+
],
|
|
104
|
+
update: [],
|
|
105
|
+
})
|
|
106
|
+
@TableColumn({
|
|
107
|
+
manyToOneRelationColumn: "projectId",
|
|
108
|
+
type: TableColumnType.Entity,
|
|
109
|
+
modelType: Project,
|
|
110
|
+
title: "Project",
|
|
111
|
+
description: "Relation to Project Resource in which this object belongs",
|
|
112
|
+
})
|
|
113
|
+
@ManyToOne(
|
|
114
|
+
() => {
|
|
115
|
+
return Project;
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
eager: false,
|
|
119
|
+
nullable: true,
|
|
120
|
+
onDelete: "CASCADE",
|
|
121
|
+
orphanedRowAction: "nullify",
|
|
122
|
+
},
|
|
123
|
+
)
|
|
124
|
+
@JoinColumn({ name: "projectId" })
|
|
125
|
+
public project?: Project = undefined;
|
|
126
|
+
|
|
127
|
+
@ColumnAccessControl({
|
|
128
|
+
create: [
|
|
129
|
+
Permission.ProjectOwner,
|
|
130
|
+
Permission.ProjectAdmin,
|
|
131
|
+
Permission.ProjectMember,
|
|
132
|
+
Permission.CreateCodeRepository,
|
|
133
|
+
],
|
|
134
|
+
read: [
|
|
135
|
+
Permission.ProjectOwner,
|
|
136
|
+
Permission.ProjectAdmin,
|
|
137
|
+
Permission.ProjectMember,
|
|
138
|
+
Permission.ReadCodeRepository,
|
|
139
|
+
],
|
|
140
|
+
update: [],
|
|
141
|
+
})
|
|
142
|
+
@Index()
|
|
143
|
+
@TableColumn({
|
|
144
|
+
type: TableColumnType.ObjectID,
|
|
145
|
+
required: true,
|
|
146
|
+
canReadOnRelationQuery: true,
|
|
147
|
+
title: "Project ID",
|
|
148
|
+
description: "ID of your OneUptime Project in which this object belongs",
|
|
149
|
+
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
150
|
+
})
|
|
151
|
+
@Column({
|
|
152
|
+
type: ColumnType.ObjectID,
|
|
153
|
+
nullable: false,
|
|
154
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
155
|
+
})
|
|
156
|
+
public projectId?: ObjectID = undefined;
|
|
157
|
+
|
|
158
|
+
@ColumnAccessControl({
|
|
159
|
+
create: [
|
|
160
|
+
Permission.ProjectOwner,
|
|
161
|
+
Permission.ProjectAdmin,
|
|
162
|
+
Permission.ProjectMember,
|
|
163
|
+
Permission.CreateCodeRepository,
|
|
164
|
+
],
|
|
165
|
+
read: [
|
|
166
|
+
Permission.ProjectOwner,
|
|
167
|
+
Permission.ProjectAdmin,
|
|
168
|
+
Permission.ProjectMember,
|
|
169
|
+
Permission.ReadCodeRepository,
|
|
170
|
+
],
|
|
171
|
+
update: [
|
|
172
|
+
Permission.ProjectOwner,
|
|
173
|
+
Permission.ProjectAdmin,
|
|
174
|
+
Permission.ProjectMember,
|
|
175
|
+
Permission.EditCodeRepository,
|
|
176
|
+
],
|
|
177
|
+
})
|
|
178
|
+
@TableColumn({
|
|
179
|
+
required: true,
|
|
180
|
+
type: TableColumnType.ShortText,
|
|
181
|
+
canReadOnRelationQuery: true,
|
|
182
|
+
title: "Name",
|
|
183
|
+
description: "A friendly name for this code repository",
|
|
184
|
+
example: "My Backend API",
|
|
185
|
+
})
|
|
186
|
+
@Column({
|
|
187
|
+
nullable: false,
|
|
188
|
+
type: ColumnType.ShortText,
|
|
189
|
+
length: ColumnLength.ShortText,
|
|
190
|
+
})
|
|
191
|
+
@UniqueColumnBy("projectId")
|
|
192
|
+
public name?: string = undefined;
|
|
193
|
+
|
|
194
|
+
@ColumnAccessControl({
|
|
195
|
+
create: [],
|
|
196
|
+
read: [
|
|
197
|
+
Permission.ProjectOwner,
|
|
198
|
+
Permission.ProjectAdmin,
|
|
199
|
+
Permission.ProjectMember,
|
|
200
|
+
Permission.ReadCodeRepository,
|
|
201
|
+
],
|
|
202
|
+
update: [],
|
|
203
|
+
})
|
|
204
|
+
@TableColumn({
|
|
205
|
+
required: true,
|
|
206
|
+
unique: true,
|
|
207
|
+
type: TableColumnType.Slug,
|
|
208
|
+
computed: true,
|
|
209
|
+
title: "Slug",
|
|
210
|
+
description: "Friendly globally unique name for your object",
|
|
211
|
+
})
|
|
212
|
+
@Column({
|
|
213
|
+
nullable: false,
|
|
214
|
+
type: ColumnType.Slug,
|
|
215
|
+
length: ColumnLength.Slug,
|
|
216
|
+
})
|
|
217
|
+
public slug?: string = undefined;
|
|
218
|
+
|
|
219
|
+
@ColumnAccessControl({
|
|
220
|
+
create: [
|
|
221
|
+
Permission.ProjectOwner,
|
|
222
|
+
Permission.ProjectAdmin,
|
|
223
|
+
Permission.ProjectMember,
|
|
224
|
+
Permission.CreateCodeRepository,
|
|
225
|
+
],
|
|
226
|
+
read: [
|
|
227
|
+
Permission.ProjectOwner,
|
|
228
|
+
Permission.ProjectAdmin,
|
|
229
|
+
Permission.ProjectMember,
|
|
230
|
+
Permission.ReadCodeRepository,
|
|
231
|
+
],
|
|
232
|
+
update: [
|
|
233
|
+
Permission.ProjectOwner,
|
|
234
|
+
Permission.ProjectAdmin,
|
|
235
|
+
Permission.ProjectMember,
|
|
236
|
+
Permission.EditCodeRepository,
|
|
237
|
+
],
|
|
238
|
+
})
|
|
239
|
+
@TableColumn({
|
|
240
|
+
required: false,
|
|
241
|
+
type: TableColumnType.LongText,
|
|
242
|
+
title: "Description",
|
|
243
|
+
description: "A description of this code repository",
|
|
244
|
+
example: "Main backend API service for user authentication and data access",
|
|
245
|
+
})
|
|
246
|
+
@Column({
|
|
247
|
+
nullable: true,
|
|
248
|
+
type: ColumnType.LongText,
|
|
249
|
+
length: ColumnLength.LongText,
|
|
250
|
+
})
|
|
251
|
+
public description?: string = undefined;
|
|
252
|
+
|
|
253
|
+
@ColumnAccessControl({
|
|
254
|
+
create: [
|
|
255
|
+
Permission.ProjectOwner,
|
|
256
|
+
Permission.ProjectAdmin,
|
|
257
|
+
Permission.ProjectMember,
|
|
258
|
+
Permission.CreateCodeRepository,
|
|
259
|
+
],
|
|
260
|
+
read: [
|
|
261
|
+
Permission.ProjectOwner,
|
|
262
|
+
Permission.ProjectAdmin,
|
|
263
|
+
Permission.ProjectMember,
|
|
264
|
+
Permission.ReadCodeRepository,
|
|
265
|
+
],
|
|
266
|
+
update: [],
|
|
267
|
+
})
|
|
268
|
+
@TableColumn({
|
|
269
|
+
required: true,
|
|
270
|
+
type: TableColumnType.ShortText,
|
|
271
|
+
canReadOnRelationQuery: true,
|
|
272
|
+
title: "Repository Hosted At",
|
|
273
|
+
description: "Where is this repository hosted (GitHub, GitLab, etc.)",
|
|
274
|
+
example: "GitHub",
|
|
275
|
+
})
|
|
276
|
+
@Column({
|
|
277
|
+
nullable: false,
|
|
278
|
+
type: ColumnType.ShortText,
|
|
279
|
+
length: ColumnLength.ShortText,
|
|
280
|
+
})
|
|
281
|
+
public repositoryHostedAt?: CodeRepositoryType = undefined;
|
|
282
|
+
|
|
283
|
+
@ColumnAccessControl({
|
|
284
|
+
create: [
|
|
285
|
+
Permission.ProjectOwner,
|
|
286
|
+
Permission.ProjectAdmin,
|
|
287
|
+
Permission.ProjectMember,
|
|
288
|
+
Permission.CreateCodeRepository,
|
|
289
|
+
],
|
|
290
|
+
read: [
|
|
291
|
+
Permission.ProjectOwner,
|
|
292
|
+
Permission.ProjectAdmin,
|
|
293
|
+
Permission.ProjectMember,
|
|
294
|
+
Permission.ReadCodeRepository,
|
|
295
|
+
],
|
|
296
|
+
update: [],
|
|
297
|
+
})
|
|
298
|
+
@TableColumn({
|
|
299
|
+
required: true,
|
|
300
|
+
type: TableColumnType.ShortText,
|
|
301
|
+
canReadOnRelationQuery: true,
|
|
302
|
+
title: "Organization Name",
|
|
303
|
+
description: "GitHub organization or username that owns this repository",
|
|
304
|
+
example: "my-organization",
|
|
305
|
+
})
|
|
306
|
+
@Column({
|
|
307
|
+
nullable: false,
|
|
308
|
+
type: ColumnType.ShortText,
|
|
309
|
+
length: ColumnLength.ShortText,
|
|
310
|
+
})
|
|
311
|
+
public organizationName?: string = undefined;
|
|
312
|
+
|
|
313
|
+
@ColumnAccessControl({
|
|
314
|
+
create: [
|
|
315
|
+
Permission.ProjectOwner,
|
|
316
|
+
Permission.ProjectAdmin,
|
|
317
|
+
Permission.ProjectMember,
|
|
318
|
+
Permission.CreateCodeRepository,
|
|
319
|
+
],
|
|
320
|
+
read: [
|
|
321
|
+
Permission.ProjectOwner,
|
|
322
|
+
Permission.ProjectAdmin,
|
|
323
|
+
Permission.ProjectMember,
|
|
324
|
+
Permission.ReadCodeRepository,
|
|
325
|
+
],
|
|
326
|
+
update: [],
|
|
327
|
+
})
|
|
328
|
+
@TableColumn({
|
|
329
|
+
required: true,
|
|
330
|
+
type: TableColumnType.ShortText,
|
|
331
|
+
canReadOnRelationQuery: true,
|
|
332
|
+
title: "Repository Name",
|
|
333
|
+
description: "The name of the repository",
|
|
334
|
+
example: "my-backend-api",
|
|
335
|
+
})
|
|
336
|
+
@Column({
|
|
337
|
+
nullable: false,
|
|
338
|
+
type: ColumnType.ShortText,
|
|
339
|
+
length: ColumnLength.ShortText,
|
|
340
|
+
})
|
|
341
|
+
public repositoryName?: string = undefined;
|
|
342
|
+
|
|
343
|
+
@ColumnAccessControl({
|
|
344
|
+
create: [
|
|
345
|
+
Permission.ProjectOwner,
|
|
346
|
+
Permission.ProjectAdmin,
|
|
347
|
+
Permission.ProjectMember,
|
|
348
|
+
Permission.CreateCodeRepository,
|
|
349
|
+
],
|
|
350
|
+
read: [
|
|
351
|
+
Permission.ProjectOwner,
|
|
352
|
+
Permission.ProjectAdmin,
|
|
353
|
+
Permission.ProjectMember,
|
|
354
|
+
Permission.ReadCodeRepository,
|
|
355
|
+
],
|
|
356
|
+
update: [
|
|
357
|
+
Permission.ProjectOwner,
|
|
358
|
+
Permission.ProjectAdmin,
|
|
359
|
+
Permission.ProjectMember,
|
|
360
|
+
Permission.EditCodeRepository,
|
|
361
|
+
],
|
|
362
|
+
})
|
|
363
|
+
@TableColumn({
|
|
364
|
+
required: false,
|
|
365
|
+
type: TableColumnType.ShortText,
|
|
366
|
+
canReadOnRelationQuery: true,
|
|
367
|
+
title: "Main Branch Name",
|
|
368
|
+
description: "The name of the main/default branch",
|
|
369
|
+
example: "main",
|
|
370
|
+
})
|
|
371
|
+
@Column({
|
|
372
|
+
nullable: true,
|
|
373
|
+
type: ColumnType.ShortText,
|
|
374
|
+
length: ColumnLength.ShortText,
|
|
375
|
+
default: "main",
|
|
376
|
+
})
|
|
377
|
+
public mainBranchName?: string = undefined;
|
|
378
|
+
|
|
379
|
+
@ColumnAccessControl({
|
|
380
|
+
create: [
|
|
381
|
+
Permission.ProjectOwner,
|
|
382
|
+
Permission.ProjectAdmin,
|
|
383
|
+
Permission.ProjectMember,
|
|
384
|
+
Permission.CreateCodeRepository,
|
|
385
|
+
],
|
|
386
|
+
read: [
|
|
387
|
+
Permission.ProjectOwner,
|
|
388
|
+
Permission.ProjectAdmin,
|
|
389
|
+
Permission.ProjectMember,
|
|
390
|
+
Permission.ReadCodeRepository,
|
|
391
|
+
],
|
|
392
|
+
update: [],
|
|
393
|
+
})
|
|
394
|
+
@TableColumn({
|
|
395
|
+
required: false,
|
|
396
|
+
type: TableColumnType.LongURL,
|
|
397
|
+
canReadOnRelationQuery: true,
|
|
398
|
+
title: "Repository URL",
|
|
399
|
+
description: "The HTTPS URL to the repository",
|
|
400
|
+
example: "https://github.com/my-organization/my-backend-api",
|
|
401
|
+
})
|
|
402
|
+
@Column({
|
|
403
|
+
nullable: true,
|
|
404
|
+
type: ColumnType.LongURL,
|
|
405
|
+
transformer: URL.getDatabaseTransformer(),
|
|
406
|
+
})
|
|
407
|
+
public repositoryUrl?: URL = undefined;
|
|
408
|
+
|
|
409
|
+
// GitHub App specific fields
|
|
410
|
+
@ColumnAccessControl({
|
|
411
|
+
create: [
|
|
412
|
+
Permission.ProjectOwner,
|
|
413
|
+
Permission.ProjectAdmin,
|
|
414
|
+
Permission.CreateCodeRepository,
|
|
415
|
+
],
|
|
416
|
+
read: [
|
|
417
|
+
Permission.ProjectOwner,
|
|
418
|
+
Permission.ProjectAdmin,
|
|
419
|
+
Permission.ReadCodeRepository,
|
|
420
|
+
],
|
|
421
|
+
update: [],
|
|
422
|
+
})
|
|
423
|
+
@TableColumn({
|
|
424
|
+
required: false,
|
|
425
|
+
type: TableColumnType.LongText,
|
|
426
|
+
canReadOnRelationQuery: false,
|
|
427
|
+
title: "GitHub App Installation ID",
|
|
428
|
+
description:
|
|
429
|
+
"The GitHub App installation ID used to authenticate with this repository",
|
|
430
|
+
example: "12345678",
|
|
431
|
+
})
|
|
432
|
+
@Column({
|
|
433
|
+
nullable: true,
|
|
434
|
+
type: ColumnType.LongText,
|
|
435
|
+
length: ColumnLength.LongText,
|
|
436
|
+
})
|
|
437
|
+
public gitHubAppInstallationId?: string = undefined;
|
|
438
|
+
|
|
439
|
+
// GitLab specific fields
|
|
440
|
+
@ColumnAccessControl({
|
|
441
|
+
create: [
|
|
442
|
+
Permission.ProjectOwner,
|
|
443
|
+
Permission.ProjectAdmin,
|
|
444
|
+
Permission.CreateCodeRepository,
|
|
445
|
+
],
|
|
446
|
+
read: [
|
|
447
|
+
Permission.ProjectOwner,
|
|
448
|
+
Permission.ProjectAdmin,
|
|
449
|
+
Permission.ReadCodeRepository,
|
|
450
|
+
],
|
|
451
|
+
update: [],
|
|
452
|
+
})
|
|
453
|
+
@TableColumn({
|
|
454
|
+
required: false,
|
|
455
|
+
type: TableColumnType.LongText,
|
|
456
|
+
canReadOnRelationQuery: false,
|
|
457
|
+
title: "GitLab Project ID",
|
|
458
|
+
description: "The GitLab project ID for this repository",
|
|
459
|
+
example: "12345678",
|
|
460
|
+
})
|
|
461
|
+
@Column({
|
|
462
|
+
nullable: true,
|
|
463
|
+
type: ColumnType.LongText,
|
|
464
|
+
length: ColumnLength.LongText,
|
|
465
|
+
})
|
|
466
|
+
public gitLabProjectId?: string = undefined;
|
|
467
|
+
|
|
468
|
+
// Webhook secret for verifying incoming webhooks
|
|
469
|
+
@ColumnAccessControl({
|
|
470
|
+
create: [
|
|
471
|
+
Permission.ProjectOwner,
|
|
472
|
+
Permission.ProjectAdmin,
|
|
473
|
+
Permission.CreateCodeRepository,
|
|
474
|
+
],
|
|
475
|
+
read: [],
|
|
476
|
+
update: [
|
|
477
|
+
Permission.ProjectOwner,
|
|
478
|
+
Permission.ProjectAdmin,
|
|
479
|
+
Permission.EditCodeRepository,
|
|
480
|
+
],
|
|
481
|
+
})
|
|
482
|
+
@TableColumn({
|
|
483
|
+
required: false,
|
|
484
|
+
type: TableColumnType.VeryLongText,
|
|
485
|
+
canReadOnRelationQuery: false,
|
|
486
|
+
title: "Secret Token",
|
|
487
|
+
description: "Secret token used to verify incoming webhooks",
|
|
488
|
+
})
|
|
489
|
+
@Column({
|
|
490
|
+
nullable: true,
|
|
491
|
+
type: ColumnType.VeryLongText,
|
|
492
|
+
})
|
|
493
|
+
public secretToken?: string = undefined;
|
|
494
|
+
|
|
495
|
+
@ColumnAccessControl({
|
|
496
|
+
create: [
|
|
497
|
+
Permission.ProjectOwner,
|
|
498
|
+
Permission.ProjectAdmin,
|
|
499
|
+
Permission.ProjectMember,
|
|
500
|
+
Permission.CreateCodeRepository,
|
|
501
|
+
],
|
|
502
|
+
read: [
|
|
503
|
+
Permission.ProjectOwner,
|
|
504
|
+
Permission.ProjectAdmin,
|
|
505
|
+
Permission.ProjectMember,
|
|
506
|
+
Permission.ReadCodeRepository,
|
|
507
|
+
],
|
|
508
|
+
update: [],
|
|
509
|
+
})
|
|
510
|
+
@TableColumn({
|
|
511
|
+
manyToOneRelationColumn: "createdByUserId",
|
|
512
|
+
type: TableColumnType.Entity,
|
|
513
|
+
modelType: User,
|
|
514
|
+
title: "Created by User",
|
|
515
|
+
description:
|
|
516
|
+
"Relation to User who created this object (if this object was created by a User)",
|
|
517
|
+
})
|
|
518
|
+
@ManyToOne(
|
|
519
|
+
() => {
|
|
520
|
+
return User;
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
eager: false,
|
|
524
|
+
nullable: true,
|
|
525
|
+
onDelete: "SET NULL",
|
|
526
|
+
orphanedRowAction: "nullify",
|
|
527
|
+
},
|
|
528
|
+
)
|
|
529
|
+
@JoinColumn({ name: "createdByUserId" })
|
|
530
|
+
public createdByUser?: User = undefined;
|
|
531
|
+
|
|
532
|
+
@ColumnAccessControl({
|
|
533
|
+
create: [
|
|
534
|
+
Permission.ProjectOwner,
|
|
535
|
+
Permission.ProjectAdmin,
|
|
536
|
+
Permission.ProjectMember,
|
|
537
|
+
Permission.CreateCodeRepository,
|
|
538
|
+
],
|
|
539
|
+
read: [
|
|
540
|
+
Permission.ProjectOwner,
|
|
541
|
+
Permission.ProjectAdmin,
|
|
542
|
+
Permission.ProjectMember,
|
|
543
|
+
Permission.ReadCodeRepository,
|
|
544
|
+
],
|
|
545
|
+
update: [],
|
|
546
|
+
})
|
|
547
|
+
@TableColumn({
|
|
548
|
+
type: TableColumnType.ObjectID,
|
|
549
|
+
title: "Created by User ID",
|
|
550
|
+
description:
|
|
551
|
+
"User ID who created this object (if this object was created by a User)",
|
|
552
|
+
example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
|
553
|
+
})
|
|
554
|
+
@Column({
|
|
555
|
+
type: ColumnType.ObjectID,
|
|
556
|
+
nullable: true,
|
|
557
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
558
|
+
})
|
|
559
|
+
public createdByUserId?: ObjectID = undefined;
|
|
560
|
+
|
|
561
|
+
@ColumnAccessControl({
|
|
562
|
+
create: [],
|
|
563
|
+
read: [
|
|
564
|
+
Permission.ProjectOwner,
|
|
565
|
+
Permission.ProjectAdmin,
|
|
566
|
+
Permission.ProjectMember,
|
|
567
|
+
Permission.ReadCodeRepository,
|
|
568
|
+
],
|
|
569
|
+
update: [],
|
|
570
|
+
})
|
|
571
|
+
@TableColumn({
|
|
572
|
+
manyToOneRelationColumn: "deletedByUserId",
|
|
573
|
+
type: TableColumnType.Entity,
|
|
574
|
+
title: "Deleted by User",
|
|
575
|
+
modelType: User,
|
|
576
|
+
description:
|
|
577
|
+
"Relation to User who deleted this object (if this object was deleted by a User)",
|
|
578
|
+
})
|
|
579
|
+
@ManyToOne(
|
|
580
|
+
() => {
|
|
581
|
+
return User;
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
cascade: false,
|
|
585
|
+
eager: false,
|
|
586
|
+
nullable: true,
|
|
587
|
+
onDelete: "SET NULL",
|
|
588
|
+
orphanedRowAction: "nullify",
|
|
589
|
+
},
|
|
590
|
+
)
|
|
591
|
+
@JoinColumn({ name: "deletedByUserId" })
|
|
592
|
+
public deletedByUser?: User = undefined;
|
|
593
|
+
|
|
594
|
+
@ColumnAccessControl({
|
|
595
|
+
create: [],
|
|
596
|
+
read: [
|
|
597
|
+
Permission.ProjectOwner,
|
|
598
|
+
Permission.ProjectAdmin,
|
|
599
|
+
Permission.ProjectMember,
|
|
600
|
+
Permission.ReadCodeRepository,
|
|
601
|
+
],
|
|
602
|
+
update: [],
|
|
603
|
+
})
|
|
604
|
+
@TableColumn({
|
|
605
|
+
type: TableColumnType.ObjectID,
|
|
606
|
+
title: "Deleted by User ID",
|
|
607
|
+
description:
|
|
608
|
+
"User ID who deleted this object (if this object was deleted by a User)",
|
|
609
|
+
example: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
|
|
610
|
+
})
|
|
611
|
+
@Column({
|
|
612
|
+
type: ColumnType.ObjectID,
|
|
613
|
+
nullable: true,
|
|
614
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
615
|
+
})
|
|
616
|
+
public deletedByUserId?: ObjectID = undefined;
|
|
617
|
+
|
|
618
|
+
@ColumnAccessControl({
|
|
619
|
+
create: [
|
|
620
|
+
Permission.ProjectOwner,
|
|
621
|
+
Permission.ProjectAdmin,
|
|
622
|
+
Permission.ProjectMember,
|
|
623
|
+
Permission.CreateCodeRepository,
|
|
624
|
+
],
|
|
625
|
+
read: [
|
|
626
|
+
Permission.ProjectOwner,
|
|
627
|
+
Permission.ProjectAdmin,
|
|
628
|
+
Permission.ProjectMember,
|
|
629
|
+
Permission.ReadCodeRepository,
|
|
630
|
+
],
|
|
631
|
+
update: [
|
|
632
|
+
Permission.ProjectOwner,
|
|
633
|
+
Permission.ProjectAdmin,
|
|
634
|
+
Permission.ProjectMember,
|
|
635
|
+
Permission.EditCodeRepository,
|
|
636
|
+
],
|
|
637
|
+
})
|
|
638
|
+
@TableColumn({
|
|
639
|
+
required: false,
|
|
640
|
+
type: TableColumnType.EntityArray,
|
|
641
|
+
modelType: Label,
|
|
642
|
+
title: "Labels",
|
|
643
|
+
description:
|
|
644
|
+
"Relation to Labels Array where this object is categorized in.",
|
|
645
|
+
})
|
|
646
|
+
@ManyToMany(
|
|
647
|
+
() => {
|
|
648
|
+
return Label;
|
|
649
|
+
},
|
|
650
|
+
{ eager: false },
|
|
651
|
+
)
|
|
652
|
+
@JoinTable({
|
|
653
|
+
name: "CodeRepositoryLabel",
|
|
654
|
+
inverseJoinColumn: {
|
|
655
|
+
name: "labelId",
|
|
656
|
+
referencedColumnName: "_id",
|
|
657
|
+
},
|
|
658
|
+
joinColumn: {
|
|
659
|
+
name: "codeRepositoryId",
|
|
660
|
+
referencedColumnName: "_id",
|
|
661
|
+
},
|
|
662
|
+
})
|
|
663
|
+
public labels?: Array<Label> = undefined;
|
|
664
|
+
}
|
|
@@ -73,6 +73,7 @@ import Probe from "./Probe";
|
|
|
73
73
|
import ProbeOwnerTeam from "./ProbeOwnerTeam";
|
|
74
74
|
import ProbeOwnerUser from "./ProbeOwnerUser";
|
|
75
75
|
import LlmProvider from "./LlmProvider";
|
|
76
|
+
import LlmLog from "./LlmLog";
|
|
76
77
|
import Project from "./Project";
|
|
77
78
|
import ProjectCallSMSConfig from "./ProjectCallSMSConfig";
|
|
78
79
|
// Project SMTP Config.
|
|
@@ -96,6 +97,8 @@ import ScheduledMaintenanceStateTimeline from "./ScheduledMaintenanceStateTimeli
|
|
|
96
97
|
import ServiceCatalog from "./ServiceCatalog";
|
|
97
98
|
import ServiceCatalogOwnerTeam from "./ServiceCatalogOwnerTeam";
|
|
98
99
|
import ServiceCatalogOwnerUser from "./ServiceCatalogOwnerUser";
|
|
100
|
+
import ServiceCatalogCodeRepository from "./ServiceCatalogCodeRepository";
|
|
101
|
+
import CodeRepository from "./CodeRepository";
|
|
99
102
|
// Short link.
|
|
100
103
|
import ShortLink from "./ShortLink";
|
|
101
104
|
// SMS
|
|
@@ -368,11 +371,16 @@ const AllModelTypes: Array<{
|
|
|
368
371
|
ServiceCatalogDependency,
|
|
369
372
|
ServiceCatalogMonitor,
|
|
370
373
|
ServiceCatalogTelemetryService,
|
|
374
|
+
ServiceCatalogCodeRepository,
|
|
375
|
+
|
|
376
|
+
// Code Repository
|
|
377
|
+
CodeRepository,
|
|
371
378
|
|
|
372
379
|
ProbeOwnerTeam,
|
|
373
380
|
ProbeOwnerUser,
|
|
374
381
|
|
|
375
382
|
LlmProvider,
|
|
383
|
+
LlmLog,
|
|
376
384
|
|
|
377
385
|
UserSession,
|
|
378
386
|
UserTotpAuth,
|