Skip to content

Commit ee51df1

Browse files
feat(gitprovider): GitLab sync — Issue entity (#777)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 789575d commit ee51df1

187 files changed

Lines changed: 8123 additions & 1495 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ application-live-local.yml
174174
server/application-server/postgres-data/
175175
server/application-server/postgres-data-temp/
176176
server/application-server/postgres-data-local/
177+
server/application-server/postgres-data*.tgz
177178
server/application-server/logs/
178179

179180
# Private keys
@@ -257,4 +258,4 @@ MISSION.md
257258
**/http-client.private.env.json
258259

259260
# Github Copilot persisted session migrations, see: https://github.com/microsoft/copilot-intellij-feedback/issues/712#issuecomment-3322062215
260-
**/.idea/**/copilot.data.migration.*.xml
261+
**/.idea/**/copilot.data.migration.*.xml

.graphqlrc.yml

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,39 @@
11
# GraphQL Configuration for Hephaestus
2-
# Enables VSCode IntelliSense for GraphQL operations against GitHub API
2+
# Enables VSCode IntelliSense for GraphQL operations against GitHub and GitLab APIs
33
# Extension: GraphQL.vscode-graphql
44
# Docs: https://the-guild.dev/graphql/config
55

66
projects:
77
github:
88
# GitHub GraphQL API schema (downloaded from docs.github.com)
99
schema: "server/application-server/src/main/resources/graphql/github/schema.github.graphql"
10-
11-
# GraphQL operations (Spring's standard location)
12-
documents: "server/application-server/src/main/resources/graphql-documents/**/*.graphql"
13-
10+
11+
# GraphQL operations (queries, mutations, fragments)
12+
documents:
13+
- "server/application-server/src/main/resources/graphql/github/operations/**/*.graphql"
14+
- "server/application-server/src/main/resources/graphql/github/fragments/**/*.graphql"
15+
16+
# Restrict this project to GitHub files only (prevents cross-schema validation)
17+
include:
18+
- "server/application-server/src/main/resources/graphql/github/**"
19+
20+
extensions:
21+
languageService:
22+
enableHover: true
23+
enableAutoComplete: true
24+
enableValidation: true
25+
26+
gitlab:
27+
# GitLab GraphQL API schema
28+
schema: "server/application-server/src/main/resources/graphql/gitlab/schema.gitlab.graphql"
29+
30+
# GitLab GraphQL operations
31+
documents: "server/application-server/src/main/resources/graphql/gitlab/operations/**/*.graphql"
32+
33+
# Restrict this project to GitLab files only (prevents cross-schema validation)
34+
include:
35+
- "server/application-server/src/main/resources/graphql/gitlab/**"
36+
1437
extensions:
1538
languageService:
1639
enableHover: true

docs/contributor/erd/schema.mmd

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ erDiagram
120120
VARCHAR(128) category_id FK
121121
BIGINT answer_chosen_by_id FK
122122
BIGINT answer_comment_id FK,UK
123+
BIGINT native_id UK "NOT NULL"
124+
BIGINT provider_id FK,UK "NOT NULL"
123125
}
124126

125127
DiscussionCategory {
@@ -148,6 +150,8 @@ erDiagram
148150
BIGINT discussion_id FK
149151
BIGINT author_id FK
150152
BIGINT parent_comment_id FK
153+
BIGINT native_id UK "NOT NULL"
154+
BIGINT provider_id FK,UK "NOT NULL"
151155
}
152156

153157
DiscussionLabel {
@@ -197,6 +201,13 @@ erDiagram
197201
VARCHAR(255) on_behalf_of_login
198202
}
199203

204+
GitProvider {
205+
BIGINT id PK
206+
VARCHAR(10) type UK "NOT NULL"
207+
VARCHAR(512) server_url UK "NOT NULL"
208+
TIMESTAMPTZ created_at "NOT NULL"
209+
}
210+
200211
Issue {
201212
VARCHAR(31) issue_type "NOT NULL"
202213
BIGINT id PK
@@ -235,6 +246,8 @@ erDiagram
235246
VARCHAR(40) head_ref_oid
236247
VARCHAR(255) base_ref_name
237248
VARCHAR(40) base_ref_oid
249+
BIGINT native_id UK "NOT NULL"
250+
BIGINT provider_id FK,UK "NOT NULL"
238251
}
239252

240253
IssueAssignee {
@@ -256,6 +269,8 @@ erDiagram
256269
BIGINT author_id FK
257270
BIGINT issue_id FK
258271
TEXT body
272+
BIGINT native_id UK "NOT NULL"
273+
BIGINT provider_id FK,UK "NOT NULL"
259274
}
260275

261276
IssueLabel {
@@ -300,18 +315,21 @@ erDiagram
300315
INTEGER closed_issues_count "NOT NULL"
301316
INTEGER open_issues_count "NOT NULL"
302317
TIMESTAMPTZ last_sync_at
318+
BIGINT native_id UK "NOT NULL"
319+
BIGINT provider_id FK,UK "NOT NULL"
303320
}
304321

305322
Organization {
306323
BIGINT id PK
307324
TIMESTAMPTZ created_at
308325
TIMESTAMPTZ updated_at
309326
VARCHAR(255) avatar_url
310-
BIGINT github_id UK "NOT NULL"
327+
BIGINT native_id UK "NOT NULL"
311328
VARCHAR(255) html_url
312329
VARCHAR(255) login UK "NOT NULL"
313330
VARCHAR(255) name
314331
TIMESTAMPTZ last_sync_at
332+
BIGINT provider_id FK,UK "NOT NULL"
315333
}
316334

317335
OrganizationMembership {
@@ -344,6 +362,8 @@ erDiagram
344362
TIMESTAMPTZ status_updates_synced_at
345363
TIMESTAMPTZ created_at
346364
TIMESTAMPTZ updated_at
365+
BIGINT native_id UK "NOT NULL"
366+
BIGINT provider_id FK,UK "NOT NULL"
347367
}
348368

349369
ProjectField {
@@ -381,6 +401,8 @@ erDiagram
381401
BIGINT creator_id FK
382402
TIMESTAMPTZ created_at
383403
TIMESTAMPTZ updated_at
404+
BIGINT native_id UK "NOT NULL"
405+
BIGINT provider_id FK,UK "NOT NULL"
384406
}
385407

386408
ProjectStatusUpdate {
@@ -395,6 +417,8 @@ erDiagram
395417
BIGINT creator_id FK
396418
TIMESTAMPTZ created_at
397419
TIMESTAMPTZ updated_at
420+
BIGINT native_id UK "NOT NULL"
421+
BIGINT provider_id FK,UK "NOT NULL"
398422
}
399423

400424
PullRequestBadPractice {
@@ -452,6 +476,8 @@ erDiagram
452476
TEXT body
453477
TEXT diff_hunk
454478
BOOLEAN outdated
479+
BIGINT native_id UK "NOT NULL"
480+
BIGINT provider_id FK,UK "NOT NULL"
455481
}
456482

457483
PullRequestReviewThread {
@@ -470,6 +496,8 @@ erDiagram
470496
BOOLEAN outdated
471497
BOOLEAN collapsed
472498
BIGINT resolved_by_id FK
499+
BIGINT native_id UK "NOT NULL"
500+
BIGINT provider_id FK,UK "NOT NULL"
473501
}
474502

475503
Repository {
@@ -489,6 +517,8 @@ erDiagram
489517
BIGINT organization_id FK
490518
TIMESTAMPTZ last_sync_at
491519
BOOLEAN has_discussions_enabled "NOT NULL"
520+
BIGINT native_id UK "NOT NULL"
521+
BIGINT provider_id FK,UK "NOT NULL"
492522
}
493523

494524
RepositoryCollaborator {
@@ -529,6 +559,8 @@ erDiagram
529559
BIGINT parent_id
530560
VARCHAR(32) privacy
531561
TIMESTAMPTZ updated_at
562+
BIGINT native_id UK "NOT NULL"
563+
BIGINT provider_id FK,UK "NOT NULL"
532564
}
533565

534566
TeamMembership {
@@ -553,6 +585,8 @@ erDiagram
553585
VARCHAR(255) login
554586
VARCHAR(255) name
555587
VARCHAR(255) type
588+
BIGINT native_id UK "NOT NULL"
589+
BIGINT provider_id FK,UK "NOT NULL"
556590
}
557591

558592
UserPreference {
@@ -637,17 +671,31 @@ erDiagram
637671
ChatMessage ||--|| ChatThread : references
638672
GitCommit ||--|| CommitContributor : has
639673
DiscussionComment ||--|| Discussion : references
674+
GitProvider ||--|| Discussion : references
640675
Repository ||--|| Discussion : has
641676
Repository ||--|| DiscussionCategory : has
677+
GitProvider ||--|| DiscussionComment : commented_on
642678
Repository ||--|| GitCommit : has
679+
GitProvider ||--|| Issue : references
643680
Repository ||--|| Issue : has
681+
GitProvider ||--|| IssueComment : commented_on
644682
Repository ||--|| Label : labeled
683+
GitProvider ||--|| Milestone : references
645684
Repository ||--|| Milestone : has
685+
GitProvider ||--|| Organization : references
686+
GitProvider ||--|| Project : references
646687
Project ||--|| ProjectField : has
647688
ProjectField ||--|| ProjectFieldValue : has
648689
ProjectItem ||--|| ProjectFieldValue : has
649690
Project ||--|| ProjectItem : has
691+
GitProvider ||--|| ProjectItem : references
692+
GitProvider ||--|| ProjectStatusUpdate : references
693+
GitProvider ||--|| PullRequestReviewComment : commented_on
694+
GitProvider ||--|| PullRequestReviewThread : reviewed
650695
PullRequestReviewComment ||--|| PullRequestReviewThread : reviewed
696+
GitProvider ||--|| Repository : references
697+
GitProvider ||--|| Team : references
698+
GitProvider ||--|| User : references
651699
User ||--|| UserPreference : has
652700
Organization ||--|| Workspace : has
653701
User ||--|| WorkspaceMembership : belongs_to

scripts/generate-mermaid-erd.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ class MermaidErdGenerator {
167167
CASE WHEN uk.column_name IS NOT NULL THEN 'YES' ELSE 'NO' END as is_unique_key
168168
FROM information_schema.columns c
169169
LEFT JOIN (
170-
SELECT ku.column_name
170+
SELECT DISTINCT ku.column_name
171171
FROM information_schema.table_constraints tc
172172
JOIN information_schema.key_column_usage ku
173173
ON tc.constraint_name = ku.constraint_name
@@ -177,7 +177,7 @@ class MermaidErdGenerator {
177177
AND tc.constraint_type = 'PRIMARY KEY'
178178
) pk ON c.column_name = pk.column_name
179179
LEFT JOIN (
180-
SELECT ku.column_name
180+
SELECT DISTINCT ku.column_name
181181
FROM information_schema.table_constraints tc
182182
JOIN information_schema.key_column_usage ku
183183
ON tc.constraint_name = ku.constraint_name
@@ -187,7 +187,7 @@ class MermaidErdGenerator {
187187
AND tc.constraint_type = 'FOREIGN KEY'
188188
) fk ON c.column_name = fk.column_name
189189
LEFT JOIN (
190-
SELECT ku.column_name
190+
SELECT DISTINCT ku.column_name
191191
FROM information_schema.table_constraints tc
192192
JOIN information_schema.key_column_usage ku
193193
ON tc.constraint_name = ku.constraint_name

0 commit comments

Comments
 (0)