dev.knotless.defs

lexicons.knotless.dev

Schema Diff

+234 -0

From

CID
bafyreicsqa7c5cw...
Indexed At
2026-10-28 21:21 UTC
View this version

To

CID
bafyreic7gmox6tq...
Indexed At
2026-10-29 06:54 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

16 breaking changes, 68 non-breaking changes.

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

Compare Other Versions

Lexicon Garden

@