chadtmiller.com/knotless
Git hosted in your atproto account, on any stock PDS, fast enough for agents.
git clone knotless://chadtmiller.com/knotlessneeds the knotless git helper. set it up
{
"lexicon": 1,
"id": "dev.knotless.getFeed",
"description": "What happened on the public repositories an appview has indexed, newest first.",
"defs": {
"main": {
"type": "query",
"description": "What happened on the public repositories an appview has indexed, newest first: repositories created and forked, refs pushed and deleted, and pulls and issues opened, discussed and moved between states. No authentication; responses are not personalized.",
"parameters": {
"type": "params",
"properties": {
"limit": { "type": "integer", "minimum": 1, "maximum": 100, "default": 40 },
"cursor": { "type": "string", "description": "Where the page starts: a previous page's cursor." }
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["events"],
"properties": {
"events": { "type": "array", "items": { "type": "ref", "ref": "#eventView" } },
"cursor": { "type": "string", "description": "Where the next page starts, when there may be one." }
}
}
}
},
"eventView": {
"type": "object",
"description": "Something an account did to a repository.",
"required": ["createdAt", "actor", "repo", "action"],
"properties": {
"createdAt": { "type": "string", "format": "datetime", "description": "When the record saying so was made." },
"actor": { "type": "ref", "ref": "#actorView" },
"repo": { "type": "ref", "ref": "#repoView" },
"action": {
"type": "union",
"refs": ["#created", "#pushed", "#deleted", "#opened", "#commented", "#changed"]
}
}
},
"actorView": {
"type": "object",
"required": ["did", "handle"],
"properties": {
"did": { "type": "string", "format": "did" },
"handle": { "type": "string", "description": "The handle the account claims, when it resolves back to it; else the DID." }
}
},
"repoView": {
"type": "object",
"description": "A repository, under the name it has now.",
"required": ["did", "handle", "name"],
"properties": {
"did": { "type": "string", "format": "did", "description": "The repository's owner." },
"handle": { "type": "string", "description": "The owner's handle, as in #actorView." },
"name": { "type": "string", "maxLength": 100 }
}
},
"created": {
"type": "object",
"description": "A repository created, or forked from another.",
"properties": {
"description": { "type": "string", "maxGraphemes": 300, "maxLength": 3000 },
"forkOf": { "type": "ref", "ref": "#repoView" }
}
},
"pushed": {
"type": "object",
"description": "A ref created or moved. 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.",
"required": ["ref", "created", "count", "commits"],
"properties": {
"ref": { "type": "string", "description": "The full ref name, such as refs/heads/main." },
"created": { "type": "boolean", "description": "Whether the ref was new." },
"count": { "type": "integer", "minimum": 0, "maximum": 100, "description": "Commits the push brought; 100 means at least that many." },
"commits": { "type": "array", "maxLength": 10, "items": { "type": "ref", "ref": "#commitView" }, "description": "The newest of them, newest first." }
}
},
"deleted": {
"type": "object",
"description": "A ref deleted.",
"required": ["ref"],
"properties": {
"ref": { "type": "string" }
}
},
"opened": {
"type": "object",
"description": "A pull or an issue opened.",
"required": ["subject", "title"],
"properties": {
"subject": { "type": "string", "format": "at-uri", "description": "The dev.knotless.pull or dev.knotless.issue record." },
"title": { "type": "string" }
}
},
"commented": {
"type": "object",
"description": "A comment or review on a pull or an issue.",
"required": ["subject", "title", "text"],
"properties": {
"subject": { "type": "string", "format": "at-uri" },
"title": { "type": "string", "description": "The subject's title." },
"text": { "type": "string", "description": "The comment, as Markdown." },
"verdict": { "type": "string", "knownValues": ["approve", "changes"] }
}
},
"changed": {
"type": "object",
"description": "A pull or an issue moved to another state.",
"required": ["subject", "title", "state"],
"properties": {
"subject": { "type": "string", "format": "at-uri" },
"title": { "type": "string", "description": "The subject's title." },
"state": { "type": "string", "knownValues": ["open", "closed", "merged"] }
}
},
"commitView": {
"type": "object",
"required": ["sha", "message"],
"properties": {
"sha": { "type": "string" },
"message": { "type": "string" }
}
}
}
}