pierre-review 0.1.0

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 (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +88 -0
  3. package/dist/api/plugins/error-handler.js +40 -0
  4. package/dist/api/routes/health.js +7 -0
  5. package/dist/api/routes/me.js +34 -0
  6. package/dist/api/routes/mergers.js +7 -0
  7. package/dist/api/routes/open-prs.js +21 -0
  8. package/dist/api/routes/prs.js +50 -0
  9. package/dist/api/routes/repos.js +188 -0
  10. package/dist/api/routes/threads.js +20 -0
  11. package/dist/api/routes/timeline.js +73 -0
  12. package/dist/api/routes/users.js +28 -0
  13. package/dist/app.js +48 -0
  14. package/dist/ascii.js +12 -0
  15. package/dist/cli.js +138 -0
  16. package/dist/config.js +41 -0
  17. package/dist/db/cleanup.js +22 -0
  18. package/dist/db/client.js +13 -0
  19. package/dist/db/migrate.js +15 -0
  20. package/dist/db/migrations/0000_purple_ben_grimm.sql +155 -0
  21. package/dist/db/migrations/0001_colorful_ozymandias.sql +31 -0
  22. package/dist/db/migrations/0002_famous_sersi.sql +9 -0
  23. package/dist/db/migrations/0003_clever_shinobi_shaw.sql +3 -0
  24. package/dist/db/migrations/0004_pale_scalphunter.sql +1 -0
  25. package/dist/db/migrations/0005_daffy_guardian.sql +2 -0
  26. package/dist/db/migrations/meta/0000_snapshot.json +1116 -0
  27. package/dist/db/migrations/meta/0001_snapshot.json +1321 -0
  28. package/dist/db/migrations/meta/0002_snapshot.json +1375 -0
  29. package/dist/db/migrations/meta/0003_snapshot.json +1396 -0
  30. package/dist/db/migrations/meta/0004_snapshot.json +1416 -0
  31. package/dist/db/migrations/meta/0005_snapshot.json +1430 -0
  32. package/dist/db/migrations/meta/_journal.json +48 -0
  33. package/dist/db/queries.js +837 -0
  34. package/dist/db/run-migrations.js +10 -0
  35. package/dist/db/schema.js +248 -0
  36. package/dist/db/triage.js +168 -0
  37. package/dist/github/auth.js +19 -0
  38. package/dist/github/client.js +30 -0
  39. package/dist/github/local-user.js +92 -0
  40. package/dist/github/queries.js +249 -0
  41. package/dist/index.js +49 -0
  42. package/dist/sync/bot-detection.js +24 -0
  43. package/dist/sync/commit-files.js +50 -0
  44. package/dist/sync/derive-thread-state.js +38 -0
  45. package/dist/sync/scheduler.js +28 -0
  46. package/dist/sync/sync-manager.js +150 -0
  47. package/dist/sync/sync-repo.js +122 -0
  48. package/dist/sync/upsert.js +528 -0
  49. package/package.json +46 -0
  50. package/public/assets/index-6p3C9xk7.css +10 -0
  51. package/public/assets/index-C-CZcLLq.js +1360 -0
  52. package/public/index.html +25 -0
@@ -0,0 +1,1116 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "c4637743-bd65-430f-be81-97420abd6b88",
5
+ "prevId": "00000000-0000-0000-0000-000000000000",
6
+ "tables": {
7
+ "commit_files": {
8
+ "name": "commit_files",
9
+ "columns": {
10
+ "sha": {
11
+ "name": "sha",
12
+ "type": "text",
13
+ "primaryKey": true,
14
+ "notNull": true,
15
+ "autoincrement": false
16
+ },
17
+ "paths": {
18
+ "name": "paths",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": true,
22
+ "autoincrement": false
23
+ },
24
+ "fetched_at": {
25
+ "name": "fetched_at",
26
+ "type": "integer",
27
+ "primaryKey": false,
28
+ "notNull": true,
29
+ "autoincrement": false,
30
+ "default": "(unixepoch())"
31
+ }
32
+ },
33
+ "indexes": {},
34
+ "foreignKeys": {},
35
+ "compositePrimaryKeys": {},
36
+ "uniqueConstraints": {},
37
+ "checkConstraints": {}
38
+ },
39
+ "commits": {
40
+ "name": "commits",
41
+ "columns": {
42
+ "id": {
43
+ "name": "id",
44
+ "type": "integer",
45
+ "primaryKey": true,
46
+ "notNull": true,
47
+ "autoincrement": true
48
+ },
49
+ "sha": {
50
+ "name": "sha",
51
+ "type": "text",
52
+ "primaryKey": false,
53
+ "notNull": true,
54
+ "autoincrement": false
55
+ },
56
+ "pr_id": {
57
+ "name": "pr_id",
58
+ "type": "integer",
59
+ "primaryKey": false,
60
+ "notNull": true,
61
+ "autoincrement": false
62
+ },
63
+ "author_id": {
64
+ "name": "author_id",
65
+ "type": "integer",
66
+ "primaryKey": false,
67
+ "notNull": false,
68
+ "autoincrement": false
69
+ },
70
+ "committer_id": {
71
+ "name": "committer_id",
72
+ "type": "integer",
73
+ "primaryKey": false,
74
+ "notNull": false,
75
+ "autoincrement": false
76
+ },
77
+ "message": {
78
+ "name": "message",
79
+ "type": "text",
80
+ "primaryKey": false,
81
+ "notNull": false,
82
+ "autoincrement": false
83
+ },
84
+ "committed_at": {
85
+ "name": "committed_at",
86
+ "type": "integer",
87
+ "primaryKey": false,
88
+ "notNull": true,
89
+ "autoincrement": false
90
+ }
91
+ },
92
+ "indexes": {
93
+ "commit_pr_idx": {
94
+ "name": "commit_pr_idx",
95
+ "columns": [
96
+ "pr_id"
97
+ ],
98
+ "isUnique": false
99
+ },
100
+ "commit_sha_pr_ux": {
101
+ "name": "commit_sha_pr_ux",
102
+ "columns": [
103
+ "sha",
104
+ "pr_id"
105
+ ],
106
+ "isUnique": true
107
+ }
108
+ },
109
+ "foreignKeys": {
110
+ "commits_pr_id_pull_requests_id_fk": {
111
+ "name": "commits_pr_id_pull_requests_id_fk",
112
+ "tableFrom": "commits",
113
+ "tableTo": "pull_requests",
114
+ "columnsFrom": [
115
+ "pr_id"
116
+ ],
117
+ "columnsTo": [
118
+ "id"
119
+ ],
120
+ "onDelete": "no action",
121
+ "onUpdate": "no action"
122
+ },
123
+ "commits_author_id_users_id_fk": {
124
+ "name": "commits_author_id_users_id_fk",
125
+ "tableFrom": "commits",
126
+ "tableTo": "users",
127
+ "columnsFrom": [
128
+ "author_id"
129
+ ],
130
+ "columnsTo": [
131
+ "id"
132
+ ],
133
+ "onDelete": "no action",
134
+ "onUpdate": "no action"
135
+ },
136
+ "commits_committer_id_users_id_fk": {
137
+ "name": "commits_committer_id_users_id_fk",
138
+ "tableFrom": "commits",
139
+ "tableTo": "users",
140
+ "columnsFrom": [
141
+ "committer_id"
142
+ ],
143
+ "columnsTo": [
144
+ "id"
145
+ ],
146
+ "onDelete": "no action",
147
+ "onUpdate": "no action"
148
+ }
149
+ },
150
+ "compositePrimaryKeys": {},
151
+ "uniqueConstraints": {},
152
+ "checkConstraints": {}
153
+ },
154
+ "events": {
155
+ "name": "events",
156
+ "columns": {
157
+ "id": {
158
+ "name": "id",
159
+ "type": "integer",
160
+ "primaryKey": true,
161
+ "notNull": true,
162
+ "autoincrement": true
163
+ },
164
+ "repo_id": {
165
+ "name": "repo_id",
166
+ "type": "integer",
167
+ "primaryKey": false,
168
+ "notNull": true,
169
+ "autoincrement": false
170
+ },
171
+ "actor_id": {
172
+ "name": "actor_id",
173
+ "type": "integer",
174
+ "primaryKey": false,
175
+ "notNull": false,
176
+ "autoincrement": false
177
+ },
178
+ "pr_id": {
179
+ "name": "pr_id",
180
+ "type": "integer",
181
+ "primaryKey": false,
182
+ "notNull": false,
183
+ "autoincrement": false
184
+ },
185
+ "type": {
186
+ "name": "type",
187
+ "type": "text",
188
+ "primaryKey": false,
189
+ "notNull": true,
190
+ "autoincrement": false
191
+ },
192
+ "occurred_at": {
193
+ "name": "occurred_at",
194
+ "type": "integer",
195
+ "primaryKey": false,
196
+ "notNull": true,
197
+ "autoincrement": false
198
+ },
199
+ "ref_table": {
200
+ "name": "ref_table",
201
+ "type": "text",
202
+ "primaryKey": false,
203
+ "notNull": false,
204
+ "autoincrement": false
205
+ },
206
+ "ref_id": {
207
+ "name": "ref_id",
208
+ "type": "integer",
209
+ "primaryKey": false,
210
+ "notNull": false,
211
+ "autoincrement": false
212
+ },
213
+ "dedupe_key": {
214
+ "name": "dedupe_key",
215
+ "type": "text",
216
+ "primaryKey": false,
217
+ "notNull": true,
218
+ "autoincrement": false
219
+ }
220
+ },
221
+ "indexes": {
222
+ "events_dedupe_key_unique": {
223
+ "name": "events_dedupe_key_unique",
224
+ "columns": [
225
+ "dedupe_key"
226
+ ],
227
+ "isUnique": true
228
+ },
229
+ "events_time_idx": {
230
+ "name": "events_time_idx",
231
+ "columns": [
232
+ "occurred_at"
233
+ ],
234
+ "isUnique": false
235
+ },
236
+ "events_repo_time_idx": {
237
+ "name": "events_repo_time_idx",
238
+ "columns": [
239
+ "repo_id",
240
+ "occurred_at"
241
+ ],
242
+ "isUnique": false
243
+ },
244
+ "events_actor_idx": {
245
+ "name": "events_actor_idx",
246
+ "columns": [
247
+ "actor_id"
248
+ ],
249
+ "isUnique": false
250
+ }
251
+ },
252
+ "foreignKeys": {
253
+ "events_repo_id_repos_id_fk": {
254
+ "name": "events_repo_id_repos_id_fk",
255
+ "tableFrom": "events",
256
+ "tableTo": "repos",
257
+ "columnsFrom": [
258
+ "repo_id"
259
+ ],
260
+ "columnsTo": [
261
+ "id"
262
+ ],
263
+ "onDelete": "no action",
264
+ "onUpdate": "no action"
265
+ },
266
+ "events_actor_id_users_id_fk": {
267
+ "name": "events_actor_id_users_id_fk",
268
+ "tableFrom": "events",
269
+ "tableTo": "users",
270
+ "columnsFrom": [
271
+ "actor_id"
272
+ ],
273
+ "columnsTo": [
274
+ "id"
275
+ ],
276
+ "onDelete": "no action",
277
+ "onUpdate": "no action"
278
+ },
279
+ "events_pr_id_pull_requests_id_fk": {
280
+ "name": "events_pr_id_pull_requests_id_fk",
281
+ "tableFrom": "events",
282
+ "tableTo": "pull_requests",
283
+ "columnsFrom": [
284
+ "pr_id"
285
+ ],
286
+ "columnsTo": [
287
+ "id"
288
+ ],
289
+ "onDelete": "no action",
290
+ "onUpdate": "no action"
291
+ }
292
+ },
293
+ "compositePrimaryKeys": {},
294
+ "uniqueConstraints": {},
295
+ "checkConstraints": {}
296
+ },
297
+ "pr_comments": {
298
+ "name": "pr_comments",
299
+ "columns": {
300
+ "id": {
301
+ "name": "id",
302
+ "type": "integer",
303
+ "primaryKey": true,
304
+ "notNull": true,
305
+ "autoincrement": true
306
+ },
307
+ "github_node_id": {
308
+ "name": "github_node_id",
309
+ "type": "text",
310
+ "primaryKey": false,
311
+ "notNull": true,
312
+ "autoincrement": false
313
+ },
314
+ "pr_id": {
315
+ "name": "pr_id",
316
+ "type": "integer",
317
+ "primaryKey": false,
318
+ "notNull": true,
319
+ "autoincrement": false
320
+ },
321
+ "author_id": {
322
+ "name": "author_id",
323
+ "type": "integer",
324
+ "primaryKey": false,
325
+ "notNull": false,
326
+ "autoincrement": false
327
+ },
328
+ "body": {
329
+ "name": "body",
330
+ "type": "text",
331
+ "primaryKey": false,
332
+ "notNull": true,
333
+ "autoincrement": false
334
+ },
335
+ "created_at": {
336
+ "name": "created_at",
337
+ "type": "integer",
338
+ "primaryKey": false,
339
+ "notNull": true,
340
+ "autoincrement": false
341
+ }
342
+ },
343
+ "indexes": {
344
+ "pr_comments_github_node_id_unique": {
345
+ "name": "pr_comments_github_node_id_unique",
346
+ "columns": [
347
+ "github_node_id"
348
+ ],
349
+ "isUnique": true
350
+ },
351
+ "prc_pr_idx": {
352
+ "name": "prc_pr_idx",
353
+ "columns": [
354
+ "pr_id"
355
+ ],
356
+ "isUnique": false
357
+ }
358
+ },
359
+ "foreignKeys": {
360
+ "pr_comments_pr_id_pull_requests_id_fk": {
361
+ "name": "pr_comments_pr_id_pull_requests_id_fk",
362
+ "tableFrom": "pr_comments",
363
+ "tableTo": "pull_requests",
364
+ "columnsFrom": [
365
+ "pr_id"
366
+ ],
367
+ "columnsTo": [
368
+ "id"
369
+ ],
370
+ "onDelete": "no action",
371
+ "onUpdate": "no action"
372
+ },
373
+ "pr_comments_author_id_users_id_fk": {
374
+ "name": "pr_comments_author_id_users_id_fk",
375
+ "tableFrom": "pr_comments",
376
+ "tableTo": "users",
377
+ "columnsFrom": [
378
+ "author_id"
379
+ ],
380
+ "columnsTo": [
381
+ "id"
382
+ ],
383
+ "onDelete": "no action",
384
+ "onUpdate": "no action"
385
+ }
386
+ },
387
+ "compositePrimaryKeys": {},
388
+ "uniqueConstraints": {},
389
+ "checkConstraints": {}
390
+ },
391
+ "pull_requests": {
392
+ "name": "pull_requests",
393
+ "columns": {
394
+ "id": {
395
+ "name": "id",
396
+ "type": "integer",
397
+ "primaryKey": true,
398
+ "notNull": true,
399
+ "autoincrement": true
400
+ },
401
+ "github_node_id": {
402
+ "name": "github_node_id",
403
+ "type": "text",
404
+ "primaryKey": false,
405
+ "notNull": true,
406
+ "autoincrement": false
407
+ },
408
+ "repo_id": {
409
+ "name": "repo_id",
410
+ "type": "integer",
411
+ "primaryKey": false,
412
+ "notNull": true,
413
+ "autoincrement": false
414
+ },
415
+ "number": {
416
+ "name": "number",
417
+ "type": "integer",
418
+ "primaryKey": false,
419
+ "notNull": true,
420
+ "autoincrement": false
421
+ },
422
+ "title": {
423
+ "name": "title",
424
+ "type": "text",
425
+ "primaryKey": false,
426
+ "notNull": true,
427
+ "autoincrement": false
428
+ },
429
+ "body": {
430
+ "name": "body",
431
+ "type": "text",
432
+ "primaryKey": false,
433
+ "notNull": false,
434
+ "autoincrement": false
435
+ },
436
+ "author_id": {
437
+ "name": "author_id",
438
+ "type": "integer",
439
+ "primaryKey": false,
440
+ "notNull": false,
441
+ "autoincrement": false
442
+ },
443
+ "state": {
444
+ "name": "state",
445
+ "type": "text",
446
+ "primaryKey": false,
447
+ "notNull": true,
448
+ "autoincrement": false
449
+ },
450
+ "is_draft": {
451
+ "name": "is_draft",
452
+ "type": "integer",
453
+ "primaryKey": false,
454
+ "notNull": true,
455
+ "autoincrement": false,
456
+ "default": false
457
+ },
458
+ "opened_at": {
459
+ "name": "opened_at",
460
+ "type": "integer",
461
+ "primaryKey": false,
462
+ "notNull": true,
463
+ "autoincrement": false
464
+ },
465
+ "first_review_at": {
466
+ "name": "first_review_at",
467
+ "type": "integer",
468
+ "primaryKey": false,
469
+ "notNull": false,
470
+ "autoincrement": false
471
+ },
472
+ "last_commit_at": {
473
+ "name": "last_commit_at",
474
+ "type": "integer",
475
+ "primaryKey": false,
476
+ "notNull": false,
477
+ "autoincrement": false
478
+ },
479
+ "merged_at": {
480
+ "name": "merged_at",
481
+ "type": "integer",
482
+ "primaryKey": false,
483
+ "notNull": false,
484
+ "autoincrement": false
485
+ },
486
+ "closed_at": {
487
+ "name": "closed_at",
488
+ "type": "integer",
489
+ "primaryKey": false,
490
+ "notNull": false,
491
+ "autoincrement": false
492
+ },
493
+ "updated_at": {
494
+ "name": "updated_at",
495
+ "type": "integer",
496
+ "primaryKey": false,
497
+ "notNull": true,
498
+ "autoincrement": false
499
+ }
500
+ },
501
+ "indexes": {
502
+ "pull_requests_github_node_id_unique": {
503
+ "name": "pull_requests_github_node_id_unique",
504
+ "columns": [
505
+ "github_node_id"
506
+ ],
507
+ "isUnique": true
508
+ },
509
+ "pr_repo_idx": {
510
+ "name": "pr_repo_idx",
511
+ "columns": [
512
+ "repo_id"
513
+ ],
514
+ "isUnique": false
515
+ },
516
+ "pr_opened_idx": {
517
+ "name": "pr_opened_idx",
518
+ "columns": [
519
+ "opened_at"
520
+ ],
521
+ "isUnique": false
522
+ }
523
+ },
524
+ "foreignKeys": {
525
+ "pull_requests_repo_id_repos_id_fk": {
526
+ "name": "pull_requests_repo_id_repos_id_fk",
527
+ "tableFrom": "pull_requests",
528
+ "tableTo": "repos",
529
+ "columnsFrom": [
530
+ "repo_id"
531
+ ],
532
+ "columnsTo": [
533
+ "id"
534
+ ],
535
+ "onDelete": "no action",
536
+ "onUpdate": "no action"
537
+ },
538
+ "pull_requests_author_id_users_id_fk": {
539
+ "name": "pull_requests_author_id_users_id_fk",
540
+ "tableFrom": "pull_requests",
541
+ "tableTo": "users",
542
+ "columnsFrom": [
543
+ "author_id"
544
+ ],
545
+ "columnsTo": [
546
+ "id"
547
+ ],
548
+ "onDelete": "no action",
549
+ "onUpdate": "no action"
550
+ }
551
+ },
552
+ "compositePrimaryKeys": {},
553
+ "uniqueConstraints": {},
554
+ "checkConstraints": {}
555
+ },
556
+ "repos": {
557
+ "name": "repos",
558
+ "columns": {
559
+ "id": {
560
+ "name": "id",
561
+ "type": "integer",
562
+ "primaryKey": true,
563
+ "notNull": true,
564
+ "autoincrement": true
565
+ },
566
+ "owner": {
567
+ "name": "owner",
568
+ "type": "text",
569
+ "primaryKey": false,
570
+ "notNull": true,
571
+ "autoincrement": false
572
+ },
573
+ "name": {
574
+ "name": "name",
575
+ "type": "text",
576
+ "primaryKey": false,
577
+ "notNull": true,
578
+ "autoincrement": false
579
+ },
580
+ "github_node_id": {
581
+ "name": "github_node_id",
582
+ "type": "text",
583
+ "primaryKey": false,
584
+ "notNull": true,
585
+ "autoincrement": false
586
+ },
587
+ "backfill_until": {
588
+ "name": "backfill_until",
589
+ "type": "integer",
590
+ "primaryKey": false,
591
+ "notNull": false,
592
+ "autoincrement": false
593
+ },
594
+ "created_at": {
595
+ "name": "created_at",
596
+ "type": "integer",
597
+ "primaryKey": false,
598
+ "notNull": true,
599
+ "autoincrement": false,
600
+ "default": "(unixepoch())"
601
+ }
602
+ },
603
+ "indexes": {
604
+ "repos_github_node_id_unique": {
605
+ "name": "repos_github_node_id_unique",
606
+ "columns": [
607
+ "github_node_id"
608
+ ],
609
+ "isUnique": true
610
+ },
611
+ "repos_owner_name": {
612
+ "name": "repos_owner_name",
613
+ "columns": [
614
+ "owner",
615
+ "name"
616
+ ],
617
+ "isUnique": true
618
+ }
619
+ },
620
+ "foreignKeys": {},
621
+ "compositePrimaryKeys": {},
622
+ "uniqueConstraints": {},
623
+ "checkConstraints": {}
624
+ },
625
+ "review_comments": {
626
+ "name": "review_comments",
627
+ "columns": {
628
+ "id": {
629
+ "name": "id",
630
+ "type": "integer",
631
+ "primaryKey": true,
632
+ "notNull": true,
633
+ "autoincrement": true
634
+ },
635
+ "github_node_id": {
636
+ "name": "github_node_id",
637
+ "type": "text",
638
+ "primaryKey": false,
639
+ "notNull": true,
640
+ "autoincrement": false
641
+ },
642
+ "thread_id": {
643
+ "name": "thread_id",
644
+ "type": "integer",
645
+ "primaryKey": false,
646
+ "notNull": true,
647
+ "autoincrement": false
648
+ },
649
+ "pr_id": {
650
+ "name": "pr_id",
651
+ "type": "integer",
652
+ "primaryKey": false,
653
+ "notNull": true,
654
+ "autoincrement": false
655
+ },
656
+ "author_id": {
657
+ "name": "author_id",
658
+ "type": "integer",
659
+ "primaryKey": false,
660
+ "notNull": false,
661
+ "autoincrement": false
662
+ },
663
+ "body": {
664
+ "name": "body",
665
+ "type": "text",
666
+ "primaryKey": false,
667
+ "notNull": true,
668
+ "autoincrement": false
669
+ },
670
+ "diff_hunk": {
671
+ "name": "diff_hunk",
672
+ "type": "text",
673
+ "primaryKey": false,
674
+ "notNull": false,
675
+ "autoincrement": false
676
+ },
677
+ "created_at": {
678
+ "name": "created_at",
679
+ "type": "integer",
680
+ "primaryKey": false,
681
+ "notNull": true,
682
+ "autoincrement": false
683
+ }
684
+ },
685
+ "indexes": {
686
+ "review_comments_github_node_id_unique": {
687
+ "name": "review_comments_github_node_id_unique",
688
+ "columns": [
689
+ "github_node_id"
690
+ ],
691
+ "isUnique": true
692
+ },
693
+ "rc_thread_idx": {
694
+ "name": "rc_thread_idx",
695
+ "columns": [
696
+ "thread_id"
697
+ ],
698
+ "isUnique": false
699
+ }
700
+ },
701
+ "foreignKeys": {
702
+ "review_comments_thread_id_review_threads_id_fk": {
703
+ "name": "review_comments_thread_id_review_threads_id_fk",
704
+ "tableFrom": "review_comments",
705
+ "tableTo": "review_threads",
706
+ "columnsFrom": [
707
+ "thread_id"
708
+ ],
709
+ "columnsTo": [
710
+ "id"
711
+ ],
712
+ "onDelete": "no action",
713
+ "onUpdate": "no action"
714
+ },
715
+ "review_comments_pr_id_pull_requests_id_fk": {
716
+ "name": "review_comments_pr_id_pull_requests_id_fk",
717
+ "tableFrom": "review_comments",
718
+ "tableTo": "pull_requests",
719
+ "columnsFrom": [
720
+ "pr_id"
721
+ ],
722
+ "columnsTo": [
723
+ "id"
724
+ ],
725
+ "onDelete": "no action",
726
+ "onUpdate": "no action"
727
+ },
728
+ "review_comments_author_id_users_id_fk": {
729
+ "name": "review_comments_author_id_users_id_fk",
730
+ "tableFrom": "review_comments",
731
+ "tableTo": "users",
732
+ "columnsFrom": [
733
+ "author_id"
734
+ ],
735
+ "columnsTo": [
736
+ "id"
737
+ ],
738
+ "onDelete": "no action",
739
+ "onUpdate": "no action"
740
+ }
741
+ },
742
+ "compositePrimaryKeys": {},
743
+ "uniqueConstraints": {},
744
+ "checkConstraints": {}
745
+ },
746
+ "review_threads": {
747
+ "name": "review_threads",
748
+ "columns": {
749
+ "id": {
750
+ "name": "id",
751
+ "type": "integer",
752
+ "primaryKey": true,
753
+ "notNull": true,
754
+ "autoincrement": true
755
+ },
756
+ "github_node_id": {
757
+ "name": "github_node_id",
758
+ "type": "text",
759
+ "primaryKey": false,
760
+ "notNull": true,
761
+ "autoincrement": false
762
+ },
763
+ "pr_id": {
764
+ "name": "pr_id",
765
+ "type": "integer",
766
+ "primaryKey": false,
767
+ "notNull": true,
768
+ "autoincrement": false
769
+ },
770
+ "path": {
771
+ "name": "path",
772
+ "type": "text",
773
+ "primaryKey": false,
774
+ "notNull": true,
775
+ "autoincrement": false
776
+ },
777
+ "line": {
778
+ "name": "line",
779
+ "type": "integer",
780
+ "primaryKey": false,
781
+ "notNull": false,
782
+ "autoincrement": false
783
+ },
784
+ "is_resolved": {
785
+ "name": "is_resolved",
786
+ "type": "integer",
787
+ "primaryKey": false,
788
+ "notNull": true,
789
+ "autoincrement": false
790
+ },
791
+ "is_outdated": {
792
+ "name": "is_outdated",
793
+ "type": "integer",
794
+ "primaryKey": false,
795
+ "notNull": true,
796
+ "autoincrement": false,
797
+ "default": false
798
+ },
799
+ "derived_state": {
800
+ "name": "derived_state",
801
+ "type": "text",
802
+ "primaryKey": false,
803
+ "notNull": true,
804
+ "autoincrement": false
805
+ },
806
+ "original_commenter_id": {
807
+ "name": "original_commenter_id",
808
+ "type": "integer",
809
+ "primaryKey": false,
810
+ "notNull": false,
811
+ "autoincrement": false
812
+ },
813
+ "created_at": {
814
+ "name": "created_at",
815
+ "type": "integer",
816
+ "primaryKey": false,
817
+ "notNull": true,
818
+ "autoincrement": false
819
+ }
820
+ },
821
+ "indexes": {
822
+ "review_threads_github_node_id_unique": {
823
+ "name": "review_threads_github_node_id_unique",
824
+ "columns": [
825
+ "github_node_id"
826
+ ],
827
+ "isUnique": true
828
+ },
829
+ "thread_pr_idx": {
830
+ "name": "thread_pr_idx",
831
+ "columns": [
832
+ "pr_id"
833
+ ],
834
+ "isUnique": false
835
+ }
836
+ },
837
+ "foreignKeys": {
838
+ "review_threads_pr_id_pull_requests_id_fk": {
839
+ "name": "review_threads_pr_id_pull_requests_id_fk",
840
+ "tableFrom": "review_threads",
841
+ "tableTo": "pull_requests",
842
+ "columnsFrom": [
843
+ "pr_id"
844
+ ],
845
+ "columnsTo": [
846
+ "id"
847
+ ],
848
+ "onDelete": "no action",
849
+ "onUpdate": "no action"
850
+ },
851
+ "review_threads_original_commenter_id_users_id_fk": {
852
+ "name": "review_threads_original_commenter_id_users_id_fk",
853
+ "tableFrom": "review_threads",
854
+ "tableTo": "users",
855
+ "columnsFrom": [
856
+ "original_commenter_id"
857
+ ],
858
+ "columnsTo": [
859
+ "id"
860
+ ],
861
+ "onDelete": "no action",
862
+ "onUpdate": "no action"
863
+ }
864
+ },
865
+ "compositePrimaryKeys": {},
866
+ "uniqueConstraints": {},
867
+ "checkConstraints": {}
868
+ },
869
+ "reviews": {
870
+ "name": "reviews",
871
+ "columns": {
872
+ "id": {
873
+ "name": "id",
874
+ "type": "integer",
875
+ "primaryKey": true,
876
+ "notNull": true,
877
+ "autoincrement": true
878
+ },
879
+ "github_node_id": {
880
+ "name": "github_node_id",
881
+ "type": "text",
882
+ "primaryKey": false,
883
+ "notNull": true,
884
+ "autoincrement": false
885
+ },
886
+ "pr_id": {
887
+ "name": "pr_id",
888
+ "type": "integer",
889
+ "primaryKey": false,
890
+ "notNull": true,
891
+ "autoincrement": false
892
+ },
893
+ "author_id": {
894
+ "name": "author_id",
895
+ "type": "integer",
896
+ "primaryKey": false,
897
+ "notNull": false,
898
+ "autoincrement": false
899
+ },
900
+ "state": {
901
+ "name": "state",
902
+ "type": "text",
903
+ "primaryKey": false,
904
+ "notNull": true,
905
+ "autoincrement": false
906
+ },
907
+ "body": {
908
+ "name": "body",
909
+ "type": "text",
910
+ "primaryKey": false,
911
+ "notNull": false,
912
+ "autoincrement": false
913
+ },
914
+ "submitted_at": {
915
+ "name": "submitted_at",
916
+ "type": "integer",
917
+ "primaryKey": false,
918
+ "notNull": true,
919
+ "autoincrement": false
920
+ }
921
+ },
922
+ "indexes": {
923
+ "reviews_github_node_id_unique": {
924
+ "name": "reviews_github_node_id_unique",
925
+ "columns": [
926
+ "github_node_id"
927
+ ],
928
+ "isUnique": true
929
+ },
930
+ "rv_pr_idx": {
931
+ "name": "rv_pr_idx",
932
+ "columns": [
933
+ "pr_id"
934
+ ],
935
+ "isUnique": false
936
+ }
937
+ },
938
+ "foreignKeys": {
939
+ "reviews_pr_id_pull_requests_id_fk": {
940
+ "name": "reviews_pr_id_pull_requests_id_fk",
941
+ "tableFrom": "reviews",
942
+ "tableTo": "pull_requests",
943
+ "columnsFrom": [
944
+ "pr_id"
945
+ ],
946
+ "columnsTo": [
947
+ "id"
948
+ ],
949
+ "onDelete": "no action",
950
+ "onUpdate": "no action"
951
+ },
952
+ "reviews_author_id_users_id_fk": {
953
+ "name": "reviews_author_id_users_id_fk",
954
+ "tableFrom": "reviews",
955
+ "tableTo": "users",
956
+ "columnsFrom": [
957
+ "author_id"
958
+ ],
959
+ "columnsTo": [
960
+ "id"
961
+ ],
962
+ "onDelete": "no action",
963
+ "onUpdate": "no action"
964
+ }
965
+ },
966
+ "compositePrimaryKeys": {},
967
+ "uniqueConstraints": {},
968
+ "checkConstraints": {}
969
+ },
970
+ "sync_state": {
971
+ "name": "sync_state",
972
+ "columns": {
973
+ "repo_id": {
974
+ "name": "repo_id",
975
+ "type": "integer",
976
+ "primaryKey": true,
977
+ "notNull": true,
978
+ "autoincrement": false
979
+ },
980
+ "last_full_sync_at": {
981
+ "name": "last_full_sync_at",
982
+ "type": "integer",
983
+ "primaryKey": false,
984
+ "notNull": false,
985
+ "autoincrement": false
986
+ },
987
+ "last_incremental_sync_at": {
988
+ "name": "last_incremental_sync_at",
989
+ "type": "integer",
990
+ "primaryKey": false,
991
+ "notNull": false,
992
+ "autoincrement": false
993
+ },
994
+ "last_sync_status": {
995
+ "name": "last_sync_status",
996
+ "type": "text",
997
+ "primaryKey": false,
998
+ "notNull": false,
999
+ "autoincrement": false
1000
+ },
1001
+ "last_sync_error": {
1002
+ "name": "last_sync_error",
1003
+ "type": "text",
1004
+ "primaryKey": false,
1005
+ "notNull": false,
1006
+ "autoincrement": false
1007
+ }
1008
+ },
1009
+ "indexes": {},
1010
+ "foreignKeys": {
1011
+ "sync_state_repo_id_repos_id_fk": {
1012
+ "name": "sync_state_repo_id_repos_id_fk",
1013
+ "tableFrom": "sync_state",
1014
+ "tableTo": "repos",
1015
+ "columnsFrom": [
1016
+ "repo_id"
1017
+ ],
1018
+ "columnsTo": [
1019
+ "id"
1020
+ ],
1021
+ "onDelete": "no action",
1022
+ "onUpdate": "no action"
1023
+ }
1024
+ },
1025
+ "compositePrimaryKeys": {},
1026
+ "uniqueConstraints": {},
1027
+ "checkConstraints": {}
1028
+ },
1029
+ "users": {
1030
+ "name": "users",
1031
+ "columns": {
1032
+ "id": {
1033
+ "name": "id",
1034
+ "type": "integer",
1035
+ "primaryKey": true,
1036
+ "notNull": true,
1037
+ "autoincrement": true
1038
+ },
1039
+ "github_login": {
1040
+ "name": "github_login",
1041
+ "type": "text",
1042
+ "primaryKey": false,
1043
+ "notNull": true,
1044
+ "autoincrement": false
1045
+ },
1046
+ "github_node_id": {
1047
+ "name": "github_node_id",
1048
+ "type": "text",
1049
+ "primaryKey": false,
1050
+ "notNull": false,
1051
+ "autoincrement": false
1052
+ },
1053
+ "display_name": {
1054
+ "name": "display_name",
1055
+ "type": "text",
1056
+ "primaryKey": false,
1057
+ "notNull": false,
1058
+ "autoincrement": false
1059
+ },
1060
+ "avatar_url": {
1061
+ "name": "avatar_url",
1062
+ "type": "text",
1063
+ "primaryKey": false,
1064
+ "notNull": false,
1065
+ "autoincrement": false
1066
+ },
1067
+ "is_bot": {
1068
+ "name": "is_bot",
1069
+ "type": "integer",
1070
+ "primaryKey": false,
1071
+ "notNull": true,
1072
+ "autoincrement": false,
1073
+ "default": false
1074
+ },
1075
+ "is_bot_overridden": {
1076
+ "name": "is_bot_overridden",
1077
+ "type": "integer",
1078
+ "primaryKey": false,
1079
+ "notNull": true,
1080
+ "autoincrement": false,
1081
+ "default": false
1082
+ }
1083
+ },
1084
+ "indexes": {
1085
+ "users_github_login_unique": {
1086
+ "name": "users_github_login_unique",
1087
+ "columns": [
1088
+ "github_login"
1089
+ ],
1090
+ "isUnique": true
1091
+ },
1092
+ "users_github_node_id_unique": {
1093
+ "name": "users_github_node_id_unique",
1094
+ "columns": [
1095
+ "github_node_id"
1096
+ ],
1097
+ "isUnique": true
1098
+ }
1099
+ },
1100
+ "foreignKeys": {},
1101
+ "compositePrimaryKeys": {},
1102
+ "uniqueConstraints": {},
1103
+ "checkConstraints": {}
1104
+ }
1105
+ },
1106
+ "views": {},
1107
+ "enums": {},
1108
+ "_meta": {
1109
+ "schemas": {},
1110
+ "tables": {},
1111
+ "columns": {}
1112
+ },
1113
+ "internal": {
1114
+ "indexes": {}
1115
+ }
1116
+ }