dev.knotless.defs
Schema Diff
+19 -0
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 2 non-breaking changes.
Breaking Changes (1)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#image", src: "dev.knotless.defs#image", tgt: "dev.knotless.defs#image.image", kind: "prop", name: Some("image") }
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#image" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#image.image" }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "dev.knotless.defs#image" }AddedVertex { vertex_id: "dev.knotless.defs#image.image" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#image", src: "dev.knotless.defs#image", tgt: "dev.knotless.defs#image.image", kind: "prop", name: Some("image") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"actorView": {
5
5
"description": "An account, as an appview shows it beside what it did.",
6
6
"properties": {
7
7
"avatar": {
8
8
"description": "The account's picture, as in dev.knotless.getProfile#profileView.",
9
9
"format": "uri",
10
10
"type": "string"
11
11
},
12
12
"did": {
13
13
"format": "did",
14
14
"type": "string"
15
15
},
16
16
"handle": {
17
17
"description": "The handle the account claims, when it resolves back to it; else the DID.",
18
18
"type": "string"
19
19
}
20
20
},
21
21
"required": [
22
22
"did",
23
23
"handle"
24
24
],
25
25
"type": "object"
26
26
},
27
27
"actorViewerState": {
28
28
"description": "What the account asking a query has to do with an account.",
29
29
"properties": {
30
30
"blocking": {
31
31
"description": "Its dev.knotless.block record keeping the account out of all its repositories, if it has one.",
32
32
"format": "at-uri",
33
33
"type": "string"
34
34
},
35
35
"following": {
36
36
"description": "Its dev.knotless.follow record naming the account, if it follows it.",
37
37
"format": "at-uri",
38
38
"type": "string"
39
39
}
40
40
},
41
41
"type": "object"
42
42
},
43
43
"changesView": {
44
44
"description": "What a pull brings in: for a merged one, what its merge brought into the base; otherwise what its branch has since it left the base.",
45
45
"properties": {
46
46
"commits": {
47
47
"description": "Oldest first.",
48
48
"items": {
49
49
"ref": "#commitView",
50
50
"type": "ref"
51
51
},
52
52
"type": "array"
53
53
},
54
54
"files": {
55
55
"items": {
56
56
"ref": "#fileDiffView",
57
57
"type": "ref"
58
58
},
59
59
"type": "array"
60
60
},
61
61
"repo": {
62
62
"description": "The repository whose commit pages show its commits.",
63
63
"ref": "#repoViewBasic",
64
64
"type": "ref"
65
65
}
66
66
},
67
67
"required": [
68
68
"repo",
69
69
"commits",
70
70
"files"
71
71
],
72
72
"type": "object"
73
73
},
74
74
"checkImageView": {
75
75
"description": "A picture a check made: screenshots of the pages a change moved, say.",
76
76
"properties": {
77
77
"alt": {
78
78
"description": "What it shows.",
79
79
"type": "string"
80
80
},
81
81
"url": {
82
82
"description": "Where this appview serves it, as a path.",
83
83
"type": "string"
84
84
}
85
85
},
86
86
"required": [
87
87
"alt",
88
88
"url"
89
89
],
90
90
"type": "object"
91
91
},
92
92
"checkView": {
93
93
"description": "The newest run of a workflow, as a runner the repository names in its record reported it.",
94
94
"properties": {
95
95
"commit": {
96
96
"description": "The commit it ran at, in hex.",
97
97
"type": "string"
98
98
},
99
99
"error": {
100
100
"description": "Why it could not run.",
101
101
"type": "string"
102
102
},
103
103
"finishedAt": {
104
104
"format": "datetime",
105
105
"type": "string"
106
106
},
107
107
"images": {
108
108
"description": "The pictures it made to be looked at, in order.",
109
109
"items": {
110
110
"ref": "#checkImageView",
111
111
"type": "ref"
112
112
},
113
113
"type": "array"
114
114
},
115
115
"repo": {
116
116
"description": "The repository it is of, whose pages show it.",
117
117
"ref": "#repoViewBasic",
118
118
"type": "ref"
119
119
},
120
120
"skipped": {
121
121
"description": "For a `success` that ran nothing, as the change touched none of the paths its workflow names: why.",
122
122
"type": "string"
123
123
},
124
124
"startedAt": {
125
125
"format": "datetime",
126
126
"type": "string"
127
127
},
128
128
"status": {
129
129
"description": "`queued` is a run filed and waiting for a job on its runner, no step started yet.",
130
130
"knownValues": [
131
131
"queued",
132
132
"running",
133
133
"success",
134
134
"failure",
135
135
"error",
136
136
"cancelled"
137
137
],
138
138
"type": "string"
139
139
},
140
140
"uri": {
141
141
"description": "Its dev.knotless.check record.",
142
142
"format": "at-uri",
143
143
"type": "string"
144
144
},
145
145
"workflow": {
146
146
"type": "string"
147
147
}
148
148
},
149
149
"required": [
150
150
"uri",
151
151
"repo",
152
152
"workflow",
153
153
"status",
154
154
"commit",
155
155
"startedAt",
156
156
"images"
157
157
],
158
158
"type": "object"
159
159
},
160
160
"commentView": {
161
161
"description": "Something said on a pull or an issue.",
162
162
"properties": {
163
163
"author": {
164
164
"ref": "#actorView",
165
165
"type": "ref"
166
166
},
167
167
"body": {
168
168
"description": "What it says, as its author wrote it, in Markdown.",
169
169
"type": "string"
170
170
},
171
171
"createdAt": {
172
172
"format": "datetime",
173
173
"type": "string"
174
174
},
175
175
"html": {
176
176
"description": "What it says, its Markdown made into HTML: raw HTML shown as text, and links made relative to the repository.",
177
177
"type": "string"
178
178
},
179
179
"reactions": {
180
180
"description": "How accounts reacted to it, by content, in the order dev.knotless.defs#reactionContent lists them. Absent when none did.",
181
181
"items": {
182
182
"ref": "#reactionCountView",
183
183
"type": "ref"
184
184
},
185
185
"type": "array"
186
186
},
187
187
"updatedAt": {
188
188
"description": "When its author last changed it, if they have.",
189
189
"format": "datetime",
190
190
"type": "string"
191
191
},
192
192
"uri": {
193
193
"description": "Its dev.knotless.comment record.",
194
194
"format": "at-uri",
195
195
"type": "string"
196
196
},
197
197
"verdict": {
198
198
"description": "For a review, what it found.",
199
199
"knownValues": [
200
200
"approve",
201
201
"changes"
202
202
],
203
203
"type": "string"
204
204
}
205
205
},
206
206
"required": [
207
207
"author",
208
208
"createdAt",
209
209
"html"
210
210
],
211
211
"type": "object"
212
212
},
213
213
"commitAuthorView": {
214
214
"description": "Who wrote a commit or helped to: by the name git gives, and by account when that is one of the repository's people whose address it is.",
215
215
"properties": {
216
216
"actor": {
217
217
"ref": "#actorView",
218
218
"type": "ref"
219
219
},
220
220
"agent": {
221
221
"description": "The coding agent whose address it is, when it is one the pages know the face of.",
222
222
"knownValues": [
223
223
"claude"
224
224
],
225
225
"type": "string"
226
226
},
227
227
"name": {
228
228
"description": "The name git records.",
229
229
"type": "string"
230
230
}
231
231
},
232
232
"required": [
233
233
"name"
234
234
],
235
235
"type": "object"
236
236
},
237
237
"commitRefView": {
238
238
"description": "A commit, by its object name.",
239
239
"properties": {
240
240
"sha": {
241
241
"description": "In hex.",
242
242
"type": "string"
243
243
}
244
244
},
245
245
"required": [
246
246
"sha"
247
247
],
248
248
"type": "object"
249
249
},
250
250
"commitView": {
251
251
"description": "A commit, with the accounts that wrote it where the repository's pages believe their claims (dev.knotless.emails).",
252
252
"properties": {
253
253
"author": {
254
254
"ref": "#commitAuthorView",
255
255
"type": "ref"
256
256
},
257
257
"coauthors": {
258
258
"description": "Who its message's `Co-authored-by` trailers name.",
259
259
"items": {
260
260
"ref": "#commitAuthorView",
261
261
"type": "ref"
262
262
},
263
263
"type": "array"
264
264
},
265
265
"committedAt": {
266
266
"description": "When it was committed: what history runs in, as its author's date need not.",
267
267
"format": "datetime",
268
268
"type": "string"
269
269
},
270
270
"committer": {
271
271
"description": "Who committed it, when someone other than its author did.",
272
272
"ref": "#commitAuthorView",
273
273
"type": "ref"
274
274
},
275
275
"date": {
276
276
"description": "When its author made it, which a rebase or a squash keeps.",
277
277
"format": "datetime",
278
278
"type": "string"
279
279
},
280
280
"message": {
281
281
"description": "Its message, less the last line naming the pull it merged, if it did.",
282
282
"type": "string"
283
283
},
284
284
"parents": {
285
285
"items": {
286
286
"ref": "#commitRefView",
287
287
"type": "ref"
288
288
},
289
289
"type": "array"
290
290
},
291
291
"pull": {
292
292
"description": "The pull its message's last line names, as a squash merge records it, when that is a pull on this repository.",
293
293
"ref": "#itemViewBasic",
294
294
"type": "ref"
295
295
},
296
296
"sha": {
297
297
"description": "Its object name, in hex.",
298
298
"type": "string"
299
299
}
300
300
},
301
301
"required": [
302
302
"sha",
303
303
"parents",
304
304
"author",
305
305
"coauthors",
306
306
"date",
307
307
"message"
308
308
],
309
309
"type": "object"
310
310
},
311
311
"diffRowView": {
312
312
"description": "One row of a file's diff: a hunk header, a note, or a line with its old and new numbers.",
313
313
"properties": {
314
314
"kind": {
315
315
"description": "`h` for a hunk header, `x` for a note, `a` for a line added, `d` for one removed, or empty for context.",
316
316
"type": "string"
317
317
},
318
318
"line": {
319
319
"description": "Whether it is a line of the file.",
320
320
"type": "boolean"
321
321
},
322
322
"new": {
323
323
"description": "Its number after.",
324
324
"minimum": 0,
325
325
"type": "integer"
326
326
},
327
327
"old": {
328
328
"description": "Its number before.",
329
329
"minimum": 0,
330
330
"type": "integer"
331
331
},
332
332
"text": {
333
333
"type": "string"
334
334
}
335
335
},
336
336
"required": [
337
337
"kind",
338
338
"line",
339
339
"text"
340
340
],
341
341
"type": "object"
342
342
},
343
343
"fileDiffView": {
344
344
"description": "One file of a diff, or why its rows are not shown.",
345
345
"properties": {
346
346
"added": {
347
347
"description": "Lines added.",
348
348
"minimum": 0,
349
349
"type": "integer"
350
350
},
351
351
"hunkCount": {
352
352
"description": "Of those rows, how many are hunk headers, which a page may draw taller than a line.",
353
353
"minimum": 0,
354
354
"type": "integer"
355
355
},
356
356
"new": {
357
357
"description": "Its path after.",
358
358
"type": "string"
359
359
},
360
360
"note": {
361
361
"description": "Why its rows are not shown, when they are not.",
362
362
"type": "string"
363
363
},
364
364
"old": {
365
365
"description": "Its path before.",
366
366
"type": "string"
367
367
},
368
368
"ranges": {
369
369
"description": "The ranges its highlighting paints, encoded as the pages read them.",
370
370
"type": "string"
371
371
},
372
372
"removed": {
373
373
"description": "Lines removed.",
374
374
"minimum": 0,
375
375
"type": "integer"
376
376
},
377
377
"rowCount": {
378
378
"description": "Where its rows are left out but would be shown, as dev.knotless.getThread's filesOnly leaves them, how many there are: the room a page keeps for them until they come.",
379
379
"minimum": 0,
380
380
"type": "integer"
381
381
},
382
382
"rows": {
383
383
"items": {
384
384
"ref": "#diffRowView",
385
385
"type": "ref"
386
386
},
387
387
"type": "array"
388
388
},
389
389
"status": {
390
390
"knownValues": [
391
391
"added",
392
392
"deleted",
393
393
"renamed",
394
394
"modified"
395
395
],
396
396
"type": "string"
397
397
}
398
398
},
399
399
"required": [
400
400
"old",
401
401
"new",
402
402
"status",
403
403
"added",
404
404
"removed",
405
405
"rows"
406
406
],
407
407
"type": "object"
408
408
},
409
409
"followState": {
410
410
"description": "An account's followers, as following or unfollowing it leaves them.",
411
411
"properties": {
412
412
"followersCount": {
413
413
"description": "How many accounts follow it now.",
414
414
"minimum": 0,
415
415
"type": "integer"
416
416
},
417
417
"following": {
418
418
"description": "The asker's dev.knotless.follow record naming it; absent once unfollowed.",
419
419
"format": "at-uri",
420
420
"type": "string"
421
421
}
422
422
},
423
423
"required": [
424
424
"followersCount"
425
425
],
426
426
"type": "object"
427
427
},
428
+
"image": {
429
+
"description": "A picture a pull's, an issue's or a comment's body shows, attached so its author's PDS keeps it. The body links to it on that PDS, as `com.atproto.sync.getBlob` serves it, saying what it shows as Markdown's alt text; readers may show it from elsewhere, as dev.knotless.getAttachment does.",
430
+
"properties": {
431
+
"image": {
432
+
"accept": [
433
+
"image/png",
434
+
"image/jpeg",
435
+
"image/webp",
436
+
"image/gif"
437
+
],
438
+
"maxSize": 1000000,
439
+
"type": "blob"
440
+
}
441
+
},
442
+
"required": [
443
+
"image"
444
+
],
445
+
"type": "object"
446
+
},
428
447
"itemView": {
429
448
"description": "A pull or an issue in a list of them.",
430
449
"properties": {
431
450
"author": {
432
451
"description": "Who opened it.",
433
452
"ref": "#actorView",
434
453
"type": "ref"
435
454
},
436
455
"comments": {
437
456
"description": "How many comments are on it, its own body aside.",
438
457
"minimum": 0,
439
458
"type": "integer"
440
459
},
441
460
"createdAt": {
442
461
"format": "datetime",
443
462
"type": "string"
444
463
},
445
464
"kind": {
446
465
"knownValues": [
447
466
"pull",
448
467
"issue"
449
468
],
450
469
"type": "string"
451
470
},
452
471
"labels": {
453
472
"description": "The labels it carries, as the repository defines them, in the order it does. Absent when it carries none.",
454
473
"items": {
455
474
"ref": "dev.knotless.repo#label",
456
475
"type": "ref"
457
476
},
458
477
"type": "array"
459
478
},
460
479
"state": {
461
480
"description": "A merged pull is merged; a closed one, or an issue, closed.",
462
481
"knownValues": [
463
482
"open",
464
483
"closed",
465
484
"merged"
466
485
],
467
486
"type": "string"
468
487
},
469
488
"title": {
470
489
"type": "string"
471
490
},
472
491
"updatedAt": {
473
492
"description": "When its author last changed its title or body, if they have.",
474
493
"format": "datetime",
475
494
"type": "string"
476
495
},
477
496
"uri": {
478
497
"description": "Its dev.knotless.pull or dev.knotless.issue record.",
479
498
"format": "at-uri",
480
499
"type": "string"
481
500
}
482
501
},
483
502
"required": [
484
503
"uri",
485
504
"kind",
486
505
"title",
487
506
"state",
488
507
"author",
489
508
"createdAt",
490
509
"comments"
491
510
],
492
511
"type": "object"
493
512
},
494
513
"itemViewBasic": {
495
514
"description": "A pull or an issue, by its record and its title.",
496
515
"properties": {
497
516
"title": {
498
517
"type": "string"
499
518
},
500
519
"uri": {
501
520
"description": "Its dev.knotless.pull or dev.knotless.issue record.",
502
521
"format": "at-uri",
503
522
"type": "string"
504
523
}
505
524
},
506
525
"required": [
507
526
"uri",
508
527
"title"
509
528
],
510
529
"type": "object"
511
530
},
512
531
"languageView": {
513
532
"description": "One language a repository is written in.",
514
533
"properties": {
515
534
"bytes": {
516
535
"minimum": 0,
517
536
"type": "integer"
518
537
},
519
538
"color": {
520
539
"description": "Its color, as linguist has it.",
521
540
"type": "string"
522
541
},
523
542
"name": {
524
543
"description": "Its name, or `Other` for the languages each under one percent.",
525
544
"type": "string"
526
545
},
527
546
"permille": {
528
547
"description": "Its share of all the bytes counted, in tenths of a percent.",
529
548
"maximum": 1000,
530
549
"minimum": 0,
531
550
"type": "integer"
532
551
}
533
552
},
534
553
"required": [
535
554
"name",
536
555
"color",
537
556
"bytes",
538
557
"permille"
539
558
],
540
559
"type": "object"
541
560
},
542
561
"link": {
543
562
"description": "A link shown on an account's profile or a repository's pages.",
544
563
"properties": {
545
564
"title": {
546
565
"description": "What to call it. Readers fall back to the address's host.",
547
566
"maxGraphemes": 40,
548
567
"maxLength": 320,
549
568
"type": "string"
550
569
},
551
570
"url": {
552
571
"description": "Where it goes: an http or https address.",
553
572
"format": "uri",
554
573
"type": "string"
555
574
}
556
575
},
557
576
"required": [
558
577
"url"
559
578
],
560
579
"type": "object"
561
580
},
562
581
"minutesView": {
563
582
"description": "The minutes a runner the repository names counts for its owner's public repositories, from its dev.knotless.minutes record.",
564
583
"properties": {
565
584
"allowance": {
566
585
"description": "The minutes in 30 days it gives the owner's runs before they go one at a time. Absent when there is no limit.",
567
586
"minimum": 1,
568
587
"type": "integer"
569
588
},
570
589
"freeing": {
571
590
"description": "When minutes counted now stop counting, soonest first.",
572
591
"items": {
573
592
"ref": "dev.knotless.minutes#freeing",
574
593
"type": "ref"
575
594
},
576
595
"type": "array"
577
596
},
578
597
"minutes": {
579
598
"description": "The minutes steps took in the 30 days up to `updatedAt`.",
580
599
"minimum": 0,
581
600
"type": "integer"
582
601
},
583
602
"runner": {
584
603
"description": "The runner's account.",
585
604
"ref": "#actorView",
586
605
"type": "ref"
587
606
},
588
607
"updatedAt": {
589
608
"description": "When the runner last counted.",
590
609
"format": "datetime",
591
610
"type": "string"
592
611
}
593
612
},
594
613
"required": [
595
614
"runner",
596
615
"minutes",
597
616
"updatedAt"
598
617
],
599
618
"type": "object"
600
619
},
601
620
"packageView": {
602
621
"description": "One package a repository publishes.",
603
622
"properties": {
604
623
"image": {
605
624
"description": "True when its latest version, or its newest when none is latest, is a container image.",
606
625
"type": "boolean"
607
626
},
608
627
"latest": {
609
628
"description": "Its latest version: the highest with no pre-release part. Absent when it has only pre-releases.",
610
629
"type": "string"
611
630
},
612
631
"name": {
613
632
"description": "The package's name.",
614
633
"type": "string"
615
634
},
616
635
"releaseCount": {
617
636
"description": "How many versions of it are published.",
618
637
"minimum": 0,
619
638
"type": "integer"
620
639
}
621
640
},
622
641
"required": [
623
642
"name"
624
643
],
625
644
"type": "object"
626
645
},
627
646
"pullHeadView": {
628
647
"description": "What a pull brings in: a branch of a repository.",
629
648
"properties": {
630
649
"branch": {
631
650
"type": "string"
632
651
},
633
652
"repo": {
634
653
"description": "The repository the branch is on, if the index knows it.",
635
654
"ref": "#repoViewBasic",
636
655
"type": "ref"
637
656
}
638
657
},
639
658
"required": [
640
659
"branch"
641
660
],
642
661
"type": "object"
643
662
},
644
663
"queueStateView": {
645
664
"description": "Where an open pull stands in its target branch's merge queue.",
646
665
"properties": {
647
666
"checks": {
648
667
"description": "While its batch is being checked or landing, the batch's checks; once ejected by checks that failed, those.",
649
668
"items": {
650
669
"ref": "#checkView",
651
670
"type": "ref"
652
671
},
653
672
"type": "array"
654
673
},
655
674
"createdAt": {
656
675
"description": "When it was queued or ejected.",
657
676
"format": "datetime",
658
677
"type": "string"
659
678
},
660
679
"reason": {
661
680
"description": "Why it was ejected, as the runner said.",
662
681
"type": "string"
663
682
},
664
683
"said": {
665
684
"description": "Where it stands, in words: `Queued, 3rd of 5`, `In a batch of 4 being checked`, `Landing`, or why it was ejected.",
666
685
"type": "string"
667
686
},
668
687
"state": {
669
688
"knownValues": [
670
689
"queued",
671
690
"ejected"
672
691
],
673
692
"type": "string"
674
693
}
675
694
},
676
695
"required": [
677
696
"state",
678
697
"createdAt",
679
698
"said",
680
699
"checks"
681
700
],
682
701
"type": "object"
683
702
},
684
703
"reactionContent": {
685
704
"description": "What a reaction says, as GitHub's eight: a thumbs up, a thumbs down, a laugh, a party popper, a confused face, a heart, a rocket and eyes.",
686
705
"knownValues": [
687
706
"+1",
688
707
"-1",
689
708
"laugh",
690
709
"hooray",
691
710
"confused",
692
711
"heart",
693
712
"rocket",
694
713
"eyes"
695
714
],
696
715
"maxLength": 32,
697
716
"type": "string"
698
717
},
699
718
"reactionCountView": {
700
719
"description": "How many accounts reacted to something with one content.",
701
720
"properties": {
702
721
"content": {
703
722
"ref": "#reactionContent",
704
723
"type": "ref"
705
724
},
706
725
"count": {
707
726
"description": "How many accounts reacted so, each once.",
708
727
"minimum": 0,
709
728
"type": "integer"
710
729
},
711
730
"reaction": {
712
731
"description": "The asker's dev.knotless.reaction record of this content on it, if they reacted so.",
713
732
"format": "at-uri",
714
733
"type": "string"
715
734
}
716
735
},
717
736
"required": [
718
737
"content",
719
738
"count"
720
739
],
721
740
"type": "object"
722
741
},
723
742
"reactionState": {
724
743
"description": "The reactions to a pull, an issue or a comment.",
725
744
"properties": {
726
745
"reactions": {
727
746
"description": "By content, in the order dev.knotless.defs#reactionContent lists them; a content no account reacted with is left out.",
728
747
"items": {
729
748
"ref": "#reactionCountView",
730
749
"type": "ref"
731
750
},
732
751
"type": "array"
733
752
},
734
753
"subject": {
735
754
"description": "The pull, issue or comment.",
736
755
"format": "at-uri",
737
756
"type": "string"
738
757
}
739
758
},
740
759
"required": [
741
760
"subject",
742
761
"reactions"
743
762
],
744
763
"type": "object"
745
764
},
746
765
"releaseFileView": {
747
766
"description": "One file of a release.",
748
767
"properties": {
749
768
"name": {
750
769
"description": "Its name, as it is downloaded.",
751
770
"type": "string"
752
771
},
753
772
"sha256": {
754
773
"description": "The lowercase hex SHA-256 of the file, which a reader checks it against.",
755
774
"type": "string"
756
775
},
757
776
"size": {
758
777
"description": "Bytes in the file.",
759
778
"minimum": 1,
760
779
"type": "integer"
761
780
}
762
781
},
763
782
"required": [
764
783
"name",
765
784
"size",
766
785
"sha256"
767
786
],
768
787
"type": "object"
769
788
},
770
789
"releaseView": {
771
790
"description": "One version of a package a repository publishes, from its dev.knotless.release record, with its files and notes.",
772
791
"properties": {
773
792
"check": {
774
793
"description": "The dev.knotless.check of the run that built it, if its record names one.",
775
794
"format": "at-uri",
776
795
"type": "string"
777
796
},
778
797
"commit": {
779
798
"description": "The hex object ID of the commit its files were built from, if its record names one.",
780
799
"type": "string"
781
800
},
782
801
"createdAt": {
783
802
"description": "As its record says.",
784
803
"format": "datetime",
785
804
"type": "string"
786
805
},
787
806
"files": {
788
807
"description": "What it publishes, in its record's order.",
789
808
"items": {
790
809
"ref": "#releaseFileView",
791
810
"type": "ref"
792
811
},
793
812
"type": "array"
794
813
},
795
814
"html": {
796
815
"description": "`notes` made into HTML, as dev.knotless.getThread's comments are: raw HTML shown as text, and links made relative to the repository.",
797
816
"type": "string"
798
817
},
799
818
"image": {
800
819
"description": "True when its files are a container image's OCI layout: an `index.json` beside blobs named `sha256-<hex>`, pulled by `docker pull` rather than downloaded.",
801
820
"type": "boolean"
802
821
},
803
822
"latest": {
804
823
"description": "True for its package's latest version: the highest with no pre-release part.",
805
824
"type": "boolean"
806
825
},
807
826
"notes": {
808
827
"description": "What changed since the version before, in Markdown, as its record says.",
809
828
"type": "string"
810
829
},
811
830
"package": {
812
831
"description": "The package's name.",
813
832
"type": "string"
814
833
},
815
834
"uri": {
816
835
"description": "Its dev.knotless.release record.",
817
836
"format": "at-uri",
818
837
"type": "string"
819
838
},
820
839
"version": {
821
840
"description": "Its Semantic Versioning 2.0 version.",
822
841
"type": "string"
823
842
}
824
843
},
825
844
"required": [
826
845
"uri",
827
846
"package",
828
847
"version",
829
848
"files",
830
849
"createdAt"
831
850
],
832
851
"type": "object"
833
852
},
834
853
"releaseViewBasic": {
835
854
"description": "One version of a package a repository publishes, from its dev.knotless.release record: which, and when.",
836
855
"properties": {
837
856
"createdAt": {
838
857
"description": "As its record says.",
839
858
"format": "datetime",
840
859
"type": "string"
841
860
},
842
861
"image": {
843
862
"description": "True when its files are a container image's OCI layout, pulled by `docker pull` rather than downloaded.",
844
863
"type": "boolean"
845
864
},
846
865
"latest": {
847
866
"description": "True for its package's latest version: the highest with no pre-release part.",
848
867
"type": "boolean"
849
868
},
850
869
"package": {
851
870
"description": "The package's name.",
852
871
"type": "string"
853
872
},
854
873
"uri": {
855
874
"description": "Its dev.knotless.release record.",
856
875
"format": "at-uri",
857
876
"type": "string"
858
877
},
859
878
"version": {
860
879
"description": "Its Semantic Versioning 2.0 version.",
861
880
"type": "string"
862
881
}
863
882
},
864
883
"required": [
865
884
"uri",
866
885
"package",
867
886
"version",
868
887
"createdAt"
869
888
],
870
889
"type": "object"
871
890
},
872
891
"releasesView": {
873
892
"description": "What a repository publishes, in brief, for its pages to show under its name.",
874
893
"properties": {
875
894
"count": {
876
895
"description": "How many releases it has published, of all its packages.",
877
896
"minimum": 0,
878
897
"type": "integer"
879
898
},
880
899
"packages": {
881
900
"description": "Each package it publishes, by name.",
882
901
"items": {
883
902
"ref": "#packageView",
884
903
"type": "ref"
885
904
},
886
905
"type": "array"
887
906
},
888
907
"release": {
889
908
"description": "The release to show for it: the latest of the package named as the repository, else the newest that is its package's latest, or the newest of all when each is a pre-release.",
890
909
"ref": "#releaseViewBasic",
891
910
"type": "ref"
892
911
}
893
912
},
894
913
"required": [
895
914
"count",
896
915
"release",
897
916
"packages"
898
917
],
899
918
"type": "object"
900
919
},
901
920
"repoMade": {
902
921
"description": "A repository the pages made: created, forked, renamed or taken up.",
903
922
"properties": {
904
923
"name": {
905
924
"description": "Its name, the record key.",
906
925
"maxLength": 100,
907
926
"type": "string"
908
927
},
909
928
"uri": {
910
929
"description": "Its dev.knotless.repo record, by its owner's DID.",
911
930
"format": "at-uri",
912
931
"type": "string"
913
932
}
914
933
},
915
934
"required": [
916
935
"uri",
917
936
"name"
918
937
],
919
938
"type": "object"
920
939
},
921
940
"repoRef": {
922
941
"description": "A repository, as another record names it. The URI's name is the one the repository had when the record was written; a rename changes it, and a later repository can take it. The owner in the URI and `key` stay the repository's own, and are what a reader matches on.",
923
942
"properties": {
924
943
"key": {
925
944
"description": "The repository's `key`.",
926
945
"format": "tid",
927
946
"type": "string"
928
947
},
929
948
"uri": {
930
949
"description": "The dev.knotless.repo record, as it was named when this was written.",
931
950
"format": "at-uri",
932
951
"type": "string"
933
952
}
934
953
},
935
954
"required": [
936
955
"uri",
937
956
"key"
938
957
],
939
958
"type": "object"
940
959
},
941
960
"repoView": {
942
961
"description": "A repository among others, from its dev.knotless.repo record.",
943
962
"properties": {
944
963
"createdAt": {
945
964
"description": "As its record says.",
946
965
"format": "datetime",
947
966
"type": "string"
948
967
},
949
968
"description": {
950
969
"type": "string"
951
970
},
952
971
"forkOf": {
953
972
"description": "The repository it was forked from, if the appview knows it.",
954
973
"ref": "#repoViewBasic",
955
974
"type": "ref"
956
975
},
957
976
"name": {
958
977
"description": "The repository's name: its record key.",
959
978
"type": "string"
960
979
},
961
980
"owner": {
962
981
"ref": "#actorView",
963
982
"type": "ref"
964
983
},
965
984
"private": {
966
985
"description": "Whether it is private, in a space: listed only to its owner, asking.",
967
986
"type": "boolean"
968
987
},
969
988
"uri": {
970
989
"description": "Its dev.knotless.repo record, under the name it has now.",
971
990
"format": "at-uri",
972
991
"type": "string"
973
992
}
974
993
},
975
994
"required": [
976
995
"uri",
977
996
"owner",
978
997
"name",
979
998
"createdAt"
980
999
],
981
1000
"type": "object"
982
1001
},
983
1002
"repoViewBasic": {
984
1003
"description": "A repository, under the name it has now.",
985
1004
"properties": {
986
1005
"did": {
987
1006
"description": "The repository's owner.",
988
1007
"format": "did",
989
1008
"type": "string"
990
1009
},
991
1010
"handle": {
992
1011
"description": "The owner's handle, as in #actorView.",
993
1012
"type": "string"
994
1013
},
995
1014
"name": {
996
1015
"description": "The repository's name: its record key.",
997
1016
"type": "string"
998
1017
}
999
1018
},
1000
1019
"required": [
1001
1020
"did",
1002
1021
"handle",
1003
1022
"name"
1004
1023
],
1005
1024
"type": "object"
1006
1025
},
1007
1026
"repoViewDetailed": {
1008
1027
"description": "A repository, with what its pages show above themselves.",
1009
1028
"properties": {
1010
1029
"card": {
1011
1030
"description": "The path, on this appview, of the picture a link to its pages unfurls into: a new one whenever the picture changes.",
1012
1031
"type": "string"
1013
1032
},
1014
1033
"defaultBranch": {
1015
1034
"description": "The branch its HEAD names: empty, for a repository never pushed.",
1016
1035
"type": "string"
1017
1036
},
1018
1037
"description": {
1019
1038
"type": "string"
1020
1039
},
1021
1040
"forkOf": {
1022
1041
"description": "The repository it was forked from, if the appview knows it.",
1023
1042
"ref": "#repoViewBasic",
1024
1043
"type": "ref"
1025
1044
},
1026
1045
"links": {
1027
1046
"description": "Links its pages show, in display order, as its record names them: its website first. Only http and https addresses.",
1028
1047
"items": {
1029
1048
"ref": "#link",
1030
1049
"type": "ref"
1031
1050
},
1032
1051
"type": "array"
1033
1052
},
1034
1053
"name": {
1035
1054
"description": "The repository's name: its record key.",
1036
1055
"type": "string"
1037
1056
},
1038
1057
"openIssues": {
1039
1058
"minimum": 0,
1040
1059
"type": "integer"
1041
1060
},
1042
1061
"openPulls": {
1043
1062
"minimum": 0,
1044
1063
"type": "integer"
1045
1064
},
1046
1065
"owner": {
1047
1066
"ref": "#actorView",
1048
1067
"type": "ref"
1049
1068
},
1050
1069
"private": {
1051
1070
"description": "Whether it is private, in a space: shown only to its members, each logged in to this appview.",
1052
1071
"type": "boolean"
1053
1072
},
1054
1073
"releases": {
1055
1074
"description": "What it publishes, in brief, as the appview has indexed. Absent when it has published nothing, for a private repository, which cannot publish, and from an appview that keeps no index.",
1056
1075
"ref": "#releasesView",
1057
1076
"type": "ref"
1058
1077
},
1059
1078
"starCount": {
1060
1079
"description": "How many accounts starred it, as the appview has indexed. Absent for a private repository, which cannot be starred, and from an appview that keeps no index.",
1061
1080
"minimum": 0,
1062
1081
"type": "integer"
1063
1082
},
1064
1083
"uri": {
1065
1084
"description": "Its dev.knotless.repo record, under the name it has now.",
1066
1085
"format": "at-uri",
1067
1086
"type": "string"
1068
1087
},
1069
1088
"viewer": {
1070
1089
"description": "What the account asking has to do with it; absent when no one asks.",
1071
1090
"ref": "#repoViewerState",
1072
1091
"type": "ref"
1073
1092
}
1074
1093
},
1075
1094
"required": [
1076
1095
"uri",
1077
1096
"owner",
1078
1097
"name",
1079
1098
"defaultBranch",
1080
1099
"openPulls",
1081
1100
"openIssues",
1082
1101
"card"
1083
1102
],
1084
1103
"type": "object"
1085
1104
},
1086
1105
"repoViewerState": {
1087
1106
"description": "What the account asking a query has to do with a repository.",
1088
1107
"properties": {
1089
1108
"star": {
1090
1109
"description": "Its dev.knotless.star record naming the repository, if it starred it.",
1091
1110
"format": "at-uri",
1092
1111
"type": "string"
1093
1112
},
1094
1113
"transfer": {
1095
1114
"description": "Where the owner has offered to move the repository, when it is offered to the account asking, which can take it up (dev.knotless.acceptTransfer).",
1096
1115
"ref": "#repoViewBasic",
1097
1116
"type": "ref"
1098
1117
}
1099
1118
},
1100
1119
"type": "object"
1101
1120
},
1102
1121
"starState": {
1103
1122
"description": "A repository's stars, as starring or unstarring it leaves them.",
1104
1123
"properties": {
1105
1124
"star": {
1106
1125
"description": "The asker's dev.knotless.star record naming it; absent once unstarred.",
1107
1126
"format": "at-uri",
1108
1127
"type": "string"
1109
1128
},
1110
1129
"starCount": {
1111
1130
"description": "How many accounts starred it now.",
1112
1131
"minimum": 0,
1113
1132
"type": "integer"
1114
1133
}
1115
1134
},
1116
1135
"required": [
1117
1136
"starCount"
1118
1137
],
1119
1138
"type": "object"
1120
1139
}
1121
1140
},
1122
1141
"description": "Definitions shared by the knotless lexicons.",
1123
1142
"id": "dev.knotless.defs",
1124
1143
"lexicon": 1
1125
1144
}