dev.knotless.defs

lexicons.knotless.dev

Schema Diff

+50 -0

From

CID
bafyreifhhdt6qll...
Indexed At
2026-10-29 03:14 UTC
View this version

To

CID
bafyreifmrcakod5...
Indexed At
2026-10-29 04:27 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

5 breaking changes, 13 non-breaking changes.

Breaking Changes (5)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.reviewer", kind: "prop", name: Some("reviewer") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.verdict", kind: "prop", name: Some("verdict") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.maintainer", kind: "prop", name: Some("maintainer") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.outdated", kind: "prop", name: Some("outdated") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.uri", kind: "prop", name: Some("uri") }
Non-Breaking Changes (13)
  • AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#changesView.head" }
  • AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#commentView.commit" }
  • AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView" }
  • AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView.commit" }
  • AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView.maintainer" }
  • AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView.outdated" }
  • AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView.reviewer" }
  • AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView.uri" }
  • AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView.verdict" }
  • AddedEdge AddedEdge { src: "dev.knotless.defs#changesView", tgt: "dev.knotless.defs#changesView.head", kind: "prop", name: Some("head") }
  • AddedEdge AddedEdge { src: "dev.knotless.defs#commentView", tgt: "dev.knotless.defs#commentView.commit", kind: "prop", name: Some("commit") }
  • AddedEdge AddedEdge { src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.commit", kind: "prop", name: Some("commit") }
  • AddedEdge AddedEdge { src: "dev.knotless.defs#reviewView.reviewer", tgt: "dev.knotless.defs#actorView", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "dev.knotless.defs#changesView.head" }
  • AddedVertex { vertex_id: "dev.knotless.defs#commentView.commit" }
  • AddedVertex { vertex_id: "dev.knotless.defs#reviewView" }
  • AddedVertex { vertex_id: "dev.knotless.defs#reviewView.commit" }
  • AddedVertex { vertex_id: "dev.knotless.defs#reviewView.maintainer" }
  • AddedVertex { vertex_id: "dev.knotless.defs#reviewView.outdated" }
  • AddedVertex { vertex_id: "dev.knotless.defs#reviewView.reviewer" }
  • AddedVertex { vertex_id: "dev.knotless.defs#reviewView.uri" }
  • AddedVertex { vertex_id: "dev.knotless.defs#reviewView.verdict" }

Additional Notes

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

Compare Other Versions

Lexicon Garden

@