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