chadtmiller.com/knotless

Git hosted in your atproto account, on any stock PDS, fast enough for agents.

git clone knotless://chadtmiller.com/knotless

needs the knotless git helper. set it up

main
126 lines · 5.1 KB Raw History
{
  "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" }
      }
    }
  }
}