dev.knotless.getFeed

lexicons.knotless.dev

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "actorView": {
      "properties": {
        "avatar": {
          "description": "The account's picture, as in dev.knotless.getProfile#profileView.",
          "format": "uri",
          "type": "string"
        },
        "did": {
          "format": "did",
          "type": "string"
        },
        "handle": {
          "description": "The handle the account claims, when it resolves back to it; else the DID.",
          "type": "string"
        }
      },
      "required": [
        "did",
        "handle"
      ],
      "type": "object"
    },
    "changed": {
      "description": "A pull or an issue moved to another state.",
      "properties": {
        "state": {
          "knownValues": [
            "open",
            "closed",
            "merged"
          ],
          "type": "string"
        },
        "subject": {
          "format": "at-uri",
          "type": "string"
        },
        "title": {
          "description": "The subject's title.",
          "type": "string"
        }
      },
      "required": [
        "subject",
        "title",
        "state"
      ],
      "type": "object"
    },
    "commented": {
      "description": "A comment or review on a pull or an issue.",
      "properties": {
        "subject": {
          "format": "at-uri",
          "type": "string"
        },
        "text": {
          "description": "The comment, as Markdown.",
          "type": "string"
        },
        "title": {
          "description": "The subject's title.",
          "type": "string"
        },
        "verdict": {
          "knownValues": [
            "approve",
            "changes"
          ],
          "type": "string"
        }
      },
      "required": [
        "subject",
        "title",
        "text"
      ],
      "type": "object"
    },
    "commitView": {
      "properties": {
        "merge": {
          "description": "Whether the commit has more than one parent. Absent when not.",
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "sha": {
          "type": "string"
        }
      },
      "required": [
        "sha",
        "message"
      ],
      "type": "object"
    },
    "created": {
      "description": "A repository created, or forked from another.",
      "properties": {
        "description": {
          "maxGraphemes": 300,
          "maxLength": 3000,
          "type": "string"
        },
        "forkOf": {
          "ref": "#repoView",
          "type": "ref"
        }
      },
      "type": "object"
    },
    "deleted": {
      "description": "A ref deleted.",
      "properties": {
        "ref": {
          "type": "string"
        }
      },
      "required": [
        "ref"
      ],
      "type": "object"
    },
    "eventView": {
      "description": "Something an account did to a repository.",
      "properties": {
        "action": {
          "refs": [
            "#created",
            "#pushed",
            "#deleted",
            "#opened",
            "#commented",
            "#changed",
            "#starred"
          ],
          "type": "union"
        },
        "actor": {
          "ref": "#actorView",
          "type": "ref"
        },
        "createdAt": {
          "description": "When the record saying so was made.",
          "format": "datetime",
          "type": "string"
        },
        "repo": {
          "ref": "#repoView",
          "type": "ref"
        }
      },
      "required": [
        "createdAt",
        "actor",
        "repo",
        "action"
      ],
      "type": "object"
    },
    "main": {
      "description": "What happened on the public repositories an appview has indexed, newest first: repositories created and forked, refs pushed and deleted, pulls and issues opened, discussed and moved between states, and repositories starred. With filter `following`, what the account asking and those it follows did, and anything done on its repositories and those it starred; without, the same for anyone, but no stars.",
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "cursor": {
              "description": "Where the next page starts, when there may be one.",
              "type": "string"
            },
            "events": {
              "items": {
                "ref": "#eventView",
                "type": "ref"
              },
              "type": "array"
            }
          },
          "required": [
            "events"
          ],
          "type": "object"
        }
      },
      "parameters": {
        "properties": {
          "actor": {
            "description": "Only what this account did: the repositories it created, the refs it pushed, the pulls, issues, comments and changes of state it wrote, and the repositories it starred.",
            "format": "did",
            "type": "string"
          },
          "cursor": {
            "description": "Where the page starts: a previous page's cursor.",
            "type": "string"
          },
          "filter": {
            "default": "everyone",
            "description": "Whose doings: `everyone`'s, or with `following`, those of the account asking and whom it follows, which needs an account to ask.",
            "knownValues": [
              "everyone",
              "following"
            ],
            "type": "string"
          },
          "kind": {
            "description": "Only what is of this kind: refs pushed and deleted, pulls or issues opened and moved between states, comments, repositories starred, or repositories created and forked. A kind the appview does not know answers nothing.",
            "knownValues": [
              "pushes",
              "pulls",
              "issues",
              "comments",
              "stars",
              "repos"
            ],
            "type": "string"
          },
          "limit": {
            "default": 40,
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "params"
      },
      "type": "query"
    },
    "opened": {
      "description": "A pull or an issue opened.",
      "properties": {
        "subject": {
          "description": "The dev.knotless.pull or dev.knotless.issue record.",
          "format": "at-uri",
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "required": [
        "subject",
        "title"
      ],
      "type": "object"
    },
    "pushed": {
      "description": "A ref created or moved, or moved again and again by one account, each move within an hour of the last, as one. A new ref brings what the repository's default branch did not reach just before, nor its fork source's; a fork's copies of its source's refs are not events.",
      "properties": {
        "commits": {
          "description": "The newest of the new ones, newest first.",
          "items": {
            "ref": "#commitView",
            "type": "ref"
          },
          "maxLength": 10,
          "type": "array"
        },
        "count": {
          "description": "Commits the push brought; 100 means at least that many. A forced push's leave out those it brought again: the same author, at the same time, with the same message as a commit it left behind.",
          "maximum": 100,
          "minimum": 0,
          "type": "integer"
        },
        "created": {
          "description": "Whether the ref was new.",
          "type": "boolean"
        },
        "forced": {
          "description": "Whether the ref moved to where it no longer reaches some of what it did, as a rebase or a rewrite does. Absent when not.",
          "type": "boolean"
        },
        "new": {
          "description": "Of those, the commits no other ref of the repository had before, and no event before it on the same page lists; the rest are only counted.",
          "maximum": 100,
          "minimum": 0,
          "type": "integer"
        },
        "ref": {
          "description": "The full ref name, such as refs/heads/main.",
          "type": "string"
        }
      },
      "required": [
        "ref",
        "created",
        "count",
        "new",
        "commits"
      ],
      "type": "object"
    },
    "repoView": {
      "description": "A repository, under the name it has now.",
      "properties": {
        "did": {
          "description": "The repository's owner.",
          "format": "did",
          "type": "string"
        },
        "handle": {
          "description": "The owner's handle, as in #actorView.",
          "type": "string"
        },
        "name": {
          "maxLength": 100,
          "type": "string"
        }
      },
      "required": [
        "did",
        "handle",
        "name"
      ],
      "type": "object"
    },
    "starred": {
      "description": "The event's repository starred.",
      "properties": {
        "subject": {
          "description": "The dev.knotless.repo record starred.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "description": "What happened on the public repositories an appview has indexed, newest first.",
  "id": "dev.knotless.getFeed",
  "lexicon": 1
}

Validate Record

Validate a record against dev.knotless.getFeed

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:yqsg7znbbhfmj3a2nrpnaerk
CID
bafyreibyi2eijtxnxs4fcbgrpprcpfnzd4j62y3n3ouss5ipoe3k3q3pgu
Indexed At
2026-10-28 21:21 UTC
AT-URI
at://did:plc:yqsg7znbbhfmj3a2nrpnaerk/com.atproto.lexicon.schema/dev.knotless.getFeed

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

Lexicon Garden

@