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,1321 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "dd7da49b-8fc6-46a8-8525-f1bd596bf438",
5
+ "prevId": "c4637743-bd65-430f-be81-97420abd6b88",
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
+ "local_user": {
298
+ "name": "local_user",
299
+ "columns": {
300
+ "id": {
301
+ "name": "id",
302
+ "type": "integer",
303
+ "primaryKey": true,
304
+ "notNull": true,
305
+ "autoincrement": false
306
+ },
307
+ "github_login": {
308
+ "name": "github_login",
309
+ "type": "text",
310
+ "primaryKey": false,
311
+ "notNull": true,
312
+ "autoincrement": false
313
+ },
314
+ "github_id": {
315
+ "name": "github_id",
316
+ "type": "text",
317
+ "primaryKey": false,
318
+ "notNull": true,
319
+ "autoincrement": false
320
+ },
321
+ "avatar_url": {
322
+ "name": "avatar_url",
323
+ "type": "text",
324
+ "primaryKey": false,
325
+ "notNull": false,
326
+ "autoincrement": false
327
+ },
328
+ "cached_at": {
329
+ "name": "cached_at",
330
+ "type": "integer",
331
+ "primaryKey": false,
332
+ "notNull": true,
333
+ "autoincrement": false
334
+ }
335
+ },
336
+ "indexes": {},
337
+ "foreignKeys": {},
338
+ "compositePrimaryKeys": {},
339
+ "uniqueConstraints": {},
340
+ "checkConstraints": {}
341
+ },
342
+ "pr_comments": {
343
+ "name": "pr_comments",
344
+ "columns": {
345
+ "id": {
346
+ "name": "id",
347
+ "type": "integer",
348
+ "primaryKey": true,
349
+ "notNull": true,
350
+ "autoincrement": true
351
+ },
352
+ "github_node_id": {
353
+ "name": "github_node_id",
354
+ "type": "text",
355
+ "primaryKey": false,
356
+ "notNull": true,
357
+ "autoincrement": false
358
+ },
359
+ "pr_id": {
360
+ "name": "pr_id",
361
+ "type": "integer",
362
+ "primaryKey": false,
363
+ "notNull": true,
364
+ "autoincrement": false
365
+ },
366
+ "author_id": {
367
+ "name": "author_id",
368
+ "type": "integer",
369
+ "primaryKey": false,
370
+ "notNull": false,
371
+ "autoincrement": false
372
+ },
373
+ "body": {
374
+ "name": "body",
375
+ "type": "text",
376
+ "primaryKey": false,
377
+ "notNull": true,
378
+ "autoincrement": false
379
+ },
380
+ "created_at": {
381
+ "name": "created_at",
382
+ "type": "integer",
383
+ "primaryKey": false,
384
+ "notNull": true,
385
+ "autoincrement": false
386
+ }
387
+ },
388
+ "indexes": {
389
+ "pr_comments_github_node_id_unique": {
390
+ "name": "pr_comments_github_node_id_unique",
391
+ "columns": [
392
+ "github_node_id"
393
+ ],
394
+ "isUnique": true
395
+ },
396
+ "prc_pr_idx": {
397
+ "name": "prc_pr_idx",
398
+ "columns": [
399
+ "pr_id"
400
+ ],
401
+ "isUnique": false
402
+ }
403
+ },
404
+ "foreignKeys": {
405
+ "pr_comments_pr_id_pull_requests_id_fk": {
406
+ "name": "pr_comments_pr_id_pull_requests_id_fk",
407
+ "tableFrom": "pr_comments",
408
+ "tableTo": "pull_requests",
409
+ "columnsFrom": [
410
+ "pr_id"
411
+ ],
412
+ "columnsTo": [
413
+ "id"
414
+ ],
415
+ "onDelete": "no action",
416
+ "onUpdate": "no action"
417
+ },
418
+ "pr_comments_author_id_users_id_fk": {
419
+ "name": "pr_comments_author_id_users_id_fk",
420
+ "tableFrom": "pr_comments",
421
+ "tableTo": "users",
422
+ "columnsFrom": [
423
+ "author_id"
424
+ ],
425
+ "columnsTo": [
426
+ "id"
427
+ ],
428
+ "onDelete": "no action",
429
+ "onUpdate": "no action"
430
+ }
431
+ },
432
+ "compositePrimaryKeys": {},
433
+ "uniqueConstraints": {},
434
+ "checkConstraints": {}
435
+ },
436
+ "pr_views": {
437
+ "name": "pr_views",
438
+ "columns": {
439
+ "pr_id": {
440
+ "name": "pr_id",
441
+ "type": "integer",
442
+ "primaryKey": true,
443
+ "notNull": true,
444
+ "autoincrement": false
445
+ },
446
+ "last_viewed_sha": {
447
+ "name": "last_viewed_sha",
448
+ "type": "text",
449
+ "primaryKey": false,
450
+ "notNull": false,
451
+ "autoincrement": false
452
+ },
453
+ "last_viewed_at": {
454
+ "name": "last_viewed_at",
455
+ "type": "integer",
456
+ "primaryKey": false,
457
+ "notNull": true,
458
+ "autoincrement": false
459
+ }
460
+ },
461
+ "indexes": {},
462
+ "foreignKeys": {
463
+ "pr_views_pr_id_pull_requests_id_fk": {
464
+ "name": "pr_views_pr_id_pull_requests_id_fk",
465
+ "tableFrom": "pr_views",
466
+ "tableTo": "pull_requests",
467
+ "columnsFrom": [
468
+ "pr_id"
469
+ ],
470
+ "columnsTo": [
471
+ "id"
472
+ ],
473
+ "onDelete": "no action",
474
+ "onUpdate": "no action"
475
+ }
476
+ },
477
+ "compositePrimaryKeys": {},
478
+ "uniqueConstraints": {},
479
+ "checkConstraints": {}
480
+ },
481
+ "pull_requests": {
482
+ "name": "pull_requests",
483
+ "columns": {
484
+ "id": {
485
+ "name": "id",
486
+ "type": "integer",
487
+ "primaryKey": true,
488
+ "notNull": true,
489
+ "autoincrement": true
490
+ },
491
+ "github_node_id": {
492
+ "name": "github_node_id",
493
+ "type": "text",
494
+ "primaryKey": false,
495
+ "notNull": true,
496
+ "autoincrement": false
497
+ },
498
+ "repo_id": {
499
+ "name": "repo_id",
500
+ "type": "integer",
501
+ "primaryKey": false,
502
+ "notNull": true,
503
+ "autoincrement": false
504
+ },
505
+ "number": {
506
+ "name": "number",
507
+ "type": "integer",
508
+ "primaryKey": false,
509
+ "notNull": true,
510
+ "autoincrement": false
511
+ },
512
+ "title": {
513
+ "name": "title",
514
+ "type": "text",
515
+ "primaryKey": false,
516
+ "notNull": true,
517
+ "autoincrement": false
518
+ },
519
+ "body": {
520
+ "name": "body",
521
+ "type": "text",
522
+ "primaryKey": false,
523
+ "notNull": false,
524
+ "autoincrement": false
525
+ },
526
+ "author_id": {
527
+ "name": "author_id",
528
+ "type": "integer",
529
+ "primaryKey": false,
530
+ "notNull": false,
531
+ "autoincrement": false
532
+ },
533
+ "state": {
534
+ "name": "state",
535
+ "type": "text",
536
+ "primaryKey": false,
537
+ "notNull": true,
538
+ "autoincrement": false
539
+ },
540
+ "is_draft": {
541
+ "name": "is_draft",
542
+ "type": "integer",
543
+ "primaryKey": false,
544
+ "notNull": true,
545
+ "autoincrement": false,
546
+ "default": false
547
+ },
548
+ "opened_at": {
549
+ "name": "opened_at",
550
+ "type": "integer",
551
+ "primaryKey": false,
552
+ "notNull": true,
553
+ "autoincrement": false
554
+ },
555
+ "first_review_at": {
556
+ "name": "first_review_at",
557
+ "type": "integer",
558
+ "primaryKey": false,
559
+ "notNull": false,
560
+ "autoincrement": false
561
+ },
562
+ "last_commit_at": {
563
+ "name": "last_commit_at",
564
+ "type": "integer",
565
+ "primaryKey": false,
566
+ "notNull": false,
567
+ "autoincrement": false
568
+ },
569
+ "merged_at": {
570
+ "name": "merged_at",
571
+ "type": "integer",
572
+ "primaryKey": false,
573
+ "notNull": false,
574
+ "autoincrement": false
575
+ },
576
+ "closed_at": {
577
+ "name": "closed_at",
578
+ "type": "integer",
579
+ "primaryKey": false,
580
+ "notNull": false,
581
+ "autoincrement": false
582
+ },
583
+ "updated_at": {
584
+ "name": "updated_at",
585
+ "type": "integer",
586
+ "primaryKey": false,
587
+ "notNull": true,
588
+ "autoincrement": false
589
+ },
590
+ "head_sha": {
591
+ "name": "head_sha",
592
+ "type": "text",
593
+ "primaryKey": false,
594
+ "notNull": false,
595
+ "autoincrement": false
596
+ },
597
+ "ci_status": {
598
+ "name": "ci_status",
599
+ "type": "text",
600
+ "primaryKey": false,
601
+ "notNull": false,
602
+ "autoincrement": false
603
+ },
604
+ "mergeable": {
605
+ "name": "mergeable",
606
+ "type": "text",
607
+ "primaryKey": false,
608
+ "notNull": false,
609
+ "autoincrement": false
610
+ },
611
+ "merge_state_status": {
612
+ "name": "merge_state_status",
613
+ "type": "text",
614
+ "primaryKey": false,
615
+ "notNull": false,
616
+ "autoincrement": false
617
+ },
618
+ "labels": {
619
+ "name": "labels",
620
+ "type": "text",
621
+ "primaryKey": false,
622
+ "notNull": false,
623
+ "autoincrement": false
624
+ }
625
+ },
626
+ "indexes": {
627
+ "pull_requests_github_node_id_unique": {
628
+ "name": "pull_requests_github_node_id_unique",
629
+ "columns": [
630
+ "github_node_id"
631
+ ],
632
+ "isUnique": true
633
+ },
634
+ "pr_repo_idx": {
635
+ "name": "pr_repo_idx",
636
+ "columns": [
637
+ "repo_id"
638
+ ],
639
+ "isUnique": false
640
+ },
641
+ "pr_opened_idx": {
642
+ "name": "pr_opened_idx",
643
+ "columns": [
644
+ "opened_at"
645
+ ],
646
+ "isUnique": false
647
+ }
648
+ },
649
+ "foreignKeys": {
650
+ "pull_requests_repo_id_repos_id_fk": {
651
+ "name": "pull_requests_repo_id_repos_id_fk",
652
+ "tableFrom": "pull_requests",
653
+ "tableTo": "repos",
654
+ "columnsFrom": [
655
+ "repo_id"
656
+ ],
657
+ "columnsTo": [
658
+ "id"
659
+ ],
660
+ "onDelete": "no action",
661
+ "onUpdate": "no action"
662
+ },
663
+ "pull_requests_author_id_users_id_fk": {
664
+ "name": "pull_requests_author_id_users_id_fk",
665
+ "tableFrom": "pull_requests",
666
+ "tableTo": "users",
667
+ "columnsFrom": [
668
+ "author_id"
669
+ ],
670
+ "columnsTo": [
671
+ "id"
672
+ ],
673
+ "onDelete": "no action",
674
+ "onUpdate": "no action"
675
+ }
676
+ },
677
+ "compositePrimaryKeys": {},
678
+ "uniqueConstraints": {},
679
+ "checkConstraints": {}
680
+ },
681
+ "repos": {
682
+ "name": "repos",
683
+ "columns": {
684
+ "id": {
685
+ "name": "id",
686
+ "type": "integer",
687
+ "primaryKey": true,
688
+ "notNull": true,
689
+ "autoincrement": true
690
+ },
691
+ "owner": {
692
+ "name": "owner",
693
+ "type": "text",
694
+ "primaryKey": false,
695
+ "notNull": true,
696
+ "autoincrement": false
697
+ },
698
+ "name": {
699
+ "name": "name",
700
+ "type": "text",
701
+ "primaryKey": false,
702
+ "notNull": true,
703
+ "autoincrement": false
704
+ },
705
+ "github_node_id": {
706
+ "name": "github_node_id",
707
+ "type": "text",
708
+ "primaryKey": false,
709
+ "notNull": true,
710
+ "autoincrement": false
711
+ },
712
+ "backfill_until": {
713
+ "name": "backfill_until",
714
+ "type": "integer",
715
+ "primaryKey": false,
716
+ "notNull": false,
717
+ "autoincrement": false
718
+ },
719
+ "created_at": {
720
+ "name": "created_at",
721
+ "type": "integer",
722
+ "primaryKey": false,
723
+ "notNull": true,
724
+ "autoincrement": false,
725
+ "default": "(unixepoch())"
726
+ }
727
+ },
728
+ "indexes": {
729
+ "repos_github_node_id_unique": {
730
+ "name": "repos_github_node_id_unique",
731
+ "columns": [
732
+ "github_node_id"
733
+ ],
734
+ "isUnique": true
735
+ },
736
+ "repos_owner_name": {
737
+ "name": "repos_owner_name",
738
+ "columns": [
739
+ "owner",
740
+ "name"
741
+ ],
742
+ "isUnique": true
743
+ }
744
+ },
745
+ "foreignKeys": {},
746
+ "compositePrimaryKeys": {},
747
+ "uniqueConstraints": {},
748
+ "checkConstraints": {}
749
+ },
750
+ "review_comments": {
751
+ "name": "review_comments",
752
+ "columns": {
753
+ "id": {
754
+ "name": "id",
755
+ "type": "integer",
756
+ "primaryKey": true,
757
+ "notNull": true,
758
+ "autoincrement": true
759
+ },
760
+ "github_node_id": {
761
+ "name": "github_node_id",
762
+ "type": "text",
763
+ "primaryKey": false,
764
+ "notNull": true,
765
+ "autoincrement": false
766
+ },
767
+ "thread_id": {
768
+ "name": "thread_id",
769
+ "type": "integer",
770
+ "primaryKey": false,
771
+ "notNull": true,
772
+ "autoincrement": false
773
+ },
774
+ "pr_id": {
775
+ "name": "pr_id",
776
+ "type": "integer",
777
+ "primaryKey": false,
778
+ "notNull": true,
779
+ "autoincrement": false
780
+ },
781
+ "author_id": {
782
+ "name": "author_id",
783
+ "type": "integer",
784
+ "primaryKey": false,
785
+ "notNull": false,
786
+ "autoincrement": false
787
+ },
788
+ "body": {
789
+ "name": "body",
790
+ "type": "text",
791
+ "primaryKey": false,
792
+ "notNull": true,
793
+ "autoincrement": false
794
+ },
795
+ "diff_hunk": {
796
+ "name": "diff_hunk",
797
+ "type": "text",
798
+ "primaryKey": false,
799
+ "notNull": false,
800
+ "autoincrement": false
801
+ },
802
+ "created_at": {
803
+ "name": "created_at",
804
+ "type": "integer",
805
+ "primaryKey": false,
806
+ "notNull": true,
807
+ "autoincrement": false
808
+ }
809
+ },
810
+ "indexes": {
811
+ "review_comments_github_node_id_unique": {
812
+ "name": "review_comments_github_node_id_unique",
813
+ "columns": [
814
+ "github_node_id"
815
+ ],
816
+ "isUnique": true
817
+ },
818
+ "rc_thread_idx": {
819
+ "name": "rc_thread_idx",
820
+ "columns": [
821
+ "thread_id"
822
+ ],
823
+ "isUnique": false
824
+ }
825
+ },
826
+ "foreignKeys": {
827
+ "review_comments_thread_id_review_threads_id_fk": {
828
+ "name": "review_comments_thread_id_review_threads_id_fk",
829
+ "tableFrom": "review_comments",
830
+ "tableTo": "review_threads",
831
+ "columnsFrom": [
832
+ "thread_id"
833
+ ],
834
+ "columnsTo": [
835
+ "id"
836
+ ],
837
+ "onDelete": "no action",
838
+ "onUpdate": "no action"
839
+ },
840
+ "review_comments_pr_id_pull_requests_id_fk": {
841
+ "name": "review_comments_pr_id_pull_requests_id_fk",
842
+ "tableFrom": "review_comments",
843
+ "tableTo": "pull_requests",
844
+ "columnsFrom": [
845
+ "pr_id"
846
+ ],
847
+ "columnsTo": [
848
+ "id"
849
+ ],
850
+ "onDelete": "no action",
851
+ "onUpdate": "no action"
852
+ },
853
+ "review_comments_author_id_users_id_fk": {
854
+ "name": "review_comments_author_id_users_id_fk",
855
+ "tableFrom": "review_comments",
856
+ "tableTo": "users",
857
+ "columnsFrom": [
858
+ "author_id"
859
+ ],
860
+ "columnsTo": [
861
+ "id"
862
+ ],
863
+ "onDelete": "no action",
864
+ "onUpdate": "no action"
865
+ }
866
+ },
867
+ "compositePrimaryKeys": {},
868
+ "uniqueConstraints": {},
869
+ "checkConstraints": {}
870
+ },
871
+ "review_requests": {
872
+ "name": "review_requests",
873
+ "columns": {
874
+ "id": {
875
+ "name": "id",
876
+ "type": "integer",
877
+ "primaryKey": true,
878
+ "notNull": true,
879
+ "autoincrement": true
880
+ },
881
+ "pr_id": {
882
+ "name": "pr_id",
883
+ "type": "integer",
884
+ "primaryKey": false,
885
+ "notNull": true,
886
+ "autoincrement": false
887
+ },
888
+ "user_id": {
889
+ "name": "user_id",
890
+ "type": "integer",
891
+ "primaryKey": false,
892
+ "notNull": false,
893
+ "autoincrement": false
894
+ },
895
+ "team_name": {
896
+ "name": "team_name",
897
+ "type": "text",
898
+ "primaryKey": false,
899
+ "notNull": false,
900
+ "autoincrement": false
901
+ }
902
+ },
903
+ "indexes": {
904
+ "rr_pr_idx": {
905
+ "name": "rr_pr_idx",
906
+ "columns": [
907
+ "pr_id"
908
+ ],
909
+ "isUnique": false
910
+ },
911
+ "rr_user_idx": {
912
+ "name": "rr_user_idx",
913
+ "columns": [
914
+ "user_id"
915
+ ],
916
+ "isUnique": false
917
+ }
918
+ },
919
+ "foreignKeys": {
920
+ "review_requests_pr_id_pull_requests_id_fk": {
921
+ "name": "review_requests_pr_id_pull_requests_id_fk",
922
+ "tableFrom": "review_requests",
923
+ "tableTo": "pull_requests",
924
+ "columnsFrom": [
925
+ "pr_id"
926
+ ],
927
+ "columnsTo": [
928
+ "id"
929
+ ],
930
+ "onDelete": "no action",
931
+ "onUpdate": "no action"
932
+ },
933
+ "review_requests_user_id_users_id_fk": {
934
+ "name": "review_requests_user_id_users_id_fk",
935
+ "tableFrom": "review_requests",
936
+ "tableTo": "users",
937
+ "columnsFrom": [
938
+ "user_id"
939
+ ],
940
+ "columnsTo": [
941
+ "id"
942
+ ],
943
+ "onDelete": "no action",
944
+ "onUpdate": "no action"
945
+ }
946
+ },
947
+ "compositePrimaryKeys": {},
948
+ "uniqueConstraints": {},
949
+ "checkConstraints": {}
950
+ },
951
+ "review_threads": {
952
+ "name": "review_threads",
953
+ "columns": {
954
+ "id": {
955
+ "name": "id",
956
+ "type": "integer",
957
+ "primaryKey": true,
958
+ "notNull": true,
959
+ "autoincrement": true
960
+ },
961
+ "github_node_id": {
962
+ "name": "github_node_id",
963
+ "type": "text",
964
+ "primaryKey": false,
965
+ "notNull": true,
966
+ "autoincrement": false
967
+ },
968
+ "pr_id": {
969
+ "name": "pr_id",
970
+ "type": "integer",
971
+ "primaryKey": false,
972
+ "notNull": true,
973
+ "autoincrement": false
974
+ },
975
+ "path": {
976
+ "name": "path",
977
+ "type": "text",
978
+ "primaryKey": false,
979
+ "notNull": true,
980
+ "autoincrement": false
981
+ },
982
+ "line": {
983
+ "name": "line",
984
+ "type": "integer",
985
+ "primaryKey": false,
986
+ "notNull": false,
987
+ "autoincrement": false
988
+ },
989
+ "is_resolved": {
990
+ "name": "is_resolved",
991
+ "type": "integer",
992
+ "primaryKey": false,
993
+ "notNull": true,
994
+ "autoincrement": false
995
+ },
996
+ "is_outdated": {
997
+ "name": "is_outdated",
998
+ "type": "integer",
999
+ "primaryKey": false,
1000
+ "notNull": true,
1001
+ "autoincrement": false,
1002
+ "default": false
1003
+ },
1004
+ "derived_state": {
1005
+ "name": "derived_state",
1006
+ "type": "text",
1007
+ "primaryKey": false,
1008
+ "notNull": true,
1009
+ "autoincrement": false
1010
+ },
1011
+ "original_commenter_id": {
1012
+ "name": "original_commenter_id",
1013
+ "type": "integer",
1014
+ "primaryKey": false,
1015
+ "notNull": false,
1016
+ "autoincrement": false
1017
+ },
1018
+ "created_at": {
1019
+ "name": "created_at",
1020
+ "type": "integer",
1021
+ "primaryKey": false,
1022
+ "notNull": true,
1023
+ "autoincrement": false
1024
+ }
1025
+ },
1026
+ "indexes": {
1027
+ "review_threads_github_node_id_unique": {
1028
+ "name": "review_threads_github_node_id_unique",
1029
+ "columns": [
1030
+ "github_node_id"
1031
+ ],
1032
+ "isUnique": true
1033
+ },
1034
+ "thread_pr_idx": {
1035
+ "name": "thread_pr_idx",
1036
+ "columns": [
1037
+ "pr_id"
1038
+ ],
1039
+ "isUnique": false
1040
+ }
1041
+ },
1042
+ "foreignKeys": {
1043
+ "review_threads_pr_id_pull_requests_id_fk": {
1044
+ "name": "review_threads_pr_id_pull_requests_id_fk",
1045
+ "tableFrom": "review_threads",
1046
+ "tableTo": "pull_requests",
1047
+ "columnsFrom": [
1048
+ "pr_id"
1049
+ ],
1050
+ "columnsTo": [
1051
+ "id"
1052
+ ],
1053
+ "onDelete": "no action",
1054
+ "onUpdate": "no action"
1055
+ },
1056
+ "review_threads_original_commenter_id_users_id_fk": {
1057
+ "name": "review_threads_original_commenter_id_users_id_fk",
1058
+ "tableFrom": "review_threads",
1059
+ "tableTo": "users",
1060
+ "columnsFrom": [
1061
+ "original_commenter_id"
1062
+ ],
1063
+ "columnsTo": [
1064
+ "id"
1065
+ ],
1066
+ "onDelete": "no action",
1067
+ "onUpdate": "no action"
1068
+ }
1069
+ },
1070
+ "compositePrimaryKeys": {},
1071
+ "uniqueConstraints": {},
1072
+ "checkConstraints": {}
1073
+ },
1074
+ "reviews": {
1075
+ "name": "reviews",
1076
+ "columns": {
1077
+ "id": {
1078
+ "name": "id",
1079
+ "type": "integer",
1080
+ "primaryKey": true,
1081
+ "notNull": true,
1082
+ "autoincrement": true
1083
+ },
1084
+ "github_node_id": {
1085
+ "name": "github_node_id",
1086
+ "type": "text",
1087
+ "primaryKey": false,
1088
+ "notNull": true,
1089
+ "autoincrement": false
1090
+ },
1091
+ "pr_id": {
1092
+ "name": "pr_id",
1093
+ "type": "integer",
1094
+ "primaryKey": false,
1095
+ "notNull": true,
1096
+ "autoincrement": false
1097
+ },
1098
+ "author_id": {
1099
+ "name": "author_id",
1100
+ "type": "integer",
1101
+ "primaryKey": false,
1102
+ "notNull": false,
1103
+ "autoincrement": false
1104
+ },
1105
+ "state": {
1106
+ "name": "state",
1107
+ "type": "text",
1108
+ "primaryKey": false,
1109
+ "notNull": true,
1110
+ "autoincrement": false
1111
+ },
1112
+ "body": {
1113
+ "name": "body",
1114
+ "type": "text",
1115
+ "primaryKey": false,
1116
+ "notNull": false,
1117
+ "autoincrement": false
1118
+ },
1119
+ "submitted_at": {
1120
+ "name": "submitted_at",
1121
+ "type": "integer",
1122
+ "primaryKey": false,
1123
+ "notNull": true,
1124
+ "autoincrement": false
1125
+ }
1126
+ },
1127
+ "indexes": {
1128
+ "reviews_github_node_id_unique": {
1129
+ "name": "reviews_github_node_id_unique",
1130
+ "columns": [
1131
+ "github_node_id"
1132
+ ],
1133
+ "isUnique": true
1134
+ },
1135
+ "rv_pr_idx": {
1136
+ "name": "rv_pr_idx",
1137
+ "columns": [
1138
+ "pr_id"
1139
+ ],
1140
+ "isUnique": false
1141
+ }
1142
+ },
1143
+ "foreignKeys": {
1144
+ "reviews_pr_id_pull_requests_id_fk": {
1145
+ "name": "reviews_pr_id_pull_requests_id_fk",
1146
+ "tableFrom": "reviews",
1147
+ "tableTo": "pull_requests",
1148
+ "columnsFrom": [
1149
+ "pr_id"
1150
+ ],
1151
+ "columnsTo": [
1152
+ "id"
1153
+ ],
1154
+ "onDelete": "no action",
1155
+ "onUpdate": "no action"
1156
+ },
1157
+ "reviews_author_id_users_id_fk": {
1158
+ "name": "reviews_author_id_users_id_fk",
1159
+ "tableFrom": "reviews",
1160
+ "tableTo": "users",
1161
+ "columnsFrom": [
1162
+ "author_id"
1163
+ ],
1164
+ "columnsTo": [
1165
+ "id"
1166
+ ],
1167
+ "onDelete": "no action",
1168
+ "onUpdate": "no action"
1169
+ }
1170
+ },
1171
+ "compositePrimaryKeys": {},
1172
+ "uniqueConstraints": {},
1173
+ "checkConstraints": {}
1174
+ },
1175
+ "sync_state": {
1176
+ "name": "sync_state",
1177
+ "columns": {
1178
+ "repo_id": {
1179
+ "name": "repo_id",
1180
+ "type": "integer",
1181
+ "primaryKey": true,
1182
+ "notNull": true,
1183
+ "autoincrement": false
1184
+ },
1185
+ "last_full_sync_at": {
1186
+ "name": "last_full_sync_at",
1187
+ "type": "integer",
1188
+ "primaryKey": false,
1189
+ "notNull": false,
1190
+ "autoincrement": false
1191
+ },
1192
+ "last_incremental_sync_at": {
1193
+ "name": "last_incremental_sync_at",
1194
+ "type": "integer",
1195
+ "primaryKey": false,
1196
+ "notNull": false,
1197
+ "autoincrement": false
1198
+ },
1199
+ "last_sync_status": {
1200
+ "name": "last_sync_status",
1201
+ "type": "text",
1202
+ "primaryKey": false,
1203
+ "notNull": false,
1204
+ "autoincrement": false
1205
+ },
1206
+ "last_sync_error": {
1207
+ "name": "last_sync_error",
1208
+ "type": "text",
1209
+ "primaryKey": false,
1210
+ "notNull": false,
1211
+ "autoincrement": false
1212
+ }
1213
+ },
1214
+ "indexes": {},
1215
+ "foreignKeys": {
1216
+ "sync_state_repo_id_repos_id_fk": {
1217
+ "name": "sync_state_repo_id_repos_id_fk",
1218
+ "tableFrom": "sync_state",
1219
+ "tableTo": "repos",
1220
+ "columnsFrom": [
1221
+ "repo_id"
1222
+ ],
1223
+ "columnsTo": [
1224
+ "id"
1225
+ ],
1226
+ "onDelete": "no action",
1227
+ "onUpdate": "no action"
1228
+ }
1229
+ },
1230
+ "compositePrimaryKeys": {},
1231
+ "uniqueConstraints": {},
1232
+ "checkConstraints": {}
1233
+ },
1234
+ "users": {
1235
+ "name": "users",
1236
+ "columns": {
1237
+ "id": {
1238
+ "name": "id",
1239
+ "type": "integer",
1240
+ "primaryKey": true,
1241
+ "notNull": true,
1242
+ "autoincrement": true
1243
+ },
1244
+ "github_login": {
1245
+ "name": "github_login",
1246
+ "type": "text",
1247
+ "primaryKey": false,
1248
+ "notNull": true,
1249
+ "autoincrement": false
1250
+ },
1251
+ "github_node_id": {
1252
+ "name": "github_node_id",
1253
+ "type": "text",
1254
+ "primaryKey": false,
1255
+ "notNull": false,
1256
+ "autoincrement": false
1257
+ },
1258
+ "display_name": {
1259
+ "name": "display_name",
1260
+ "type": "text",
1261
+ "primaryKey": false,
1262
+ "notNull": false,
1263
+ "autoincrement": false
1264
+ },
1265
+ "avatar_url": {
1266
+ "name": "avatar_url",
1267
+ "type": "text",
1268
+ "primaryKey": false,
1269
+ "notNull": false,
1270
+ "autoincrement": false
1271
+ },
1272
+ "is_bot": {
1273
+ "name": "is_bot",
1274
+ "type": "integer",
1275
+ "primaryKey": false,
1276
+ "notNull": true,
1277
+ "autoincrement": false,
1278
+ "default": false
1279
+ },
1280
+ "is_bot_overridden": {
1281
+ "name": "is_bot_overridden",
1282
+ "type": "integer",
1283
+ "primaryKey": false,
1284
+ "notNull": true,
1285
+ "autoincrement": false,
1286
+ "default": false
1287
+ }
1288
+ },
1289
+ "indexes": {
1290
+ "users_github_login_unique": {
1291
+ "name": "users_github_login_unique",
1292
+ "columns": [
1293
+ "github_login"
1294
+ ],
1295
+ "isUnique": true
1296
+ },
1297
+ "users_github_node_id_unique": {
1298
+ "name": "users_github_node_id_unique",
1299
+ "columns": [
1300
+ "github_node_id"
1301
+ ],
1302
+ "isUnique": true
1303
+ }
1304
+ },
1305
+ "foreignKeys": {},
1306
+ "compositePrimaryKeys": {},
1307
+ "uniqueConstraints": {},
1308
+ "checkConstraints": {}
1309
+ }
1310
+ },
1311
+ "views": {},
1312
+ "enums": {},
1313
+ "_meta": {
1314
+ "schemas": {},
1315
+ "tables": {},
1316
+ "columns": {}
1317
+ },
1318
+ "internal": {
1319
+ "indexes": {}
1320
+ }
1321
+ }