Keyed by the repository's name, so a clone URL resolves with one getRecord. `key` prefixes the record keys of everything the repository holds; a rename writes a record under the new name with the same key, deletes the old one and leaves a dev.knotless.redirect under the old name.
any
Any valid record key
Properties
agents
array
of
ref
#agent
Optional
Accounts, such as a coding agent, whose pulls the repository's runners check as they move, as they do a collaborator's, but as code no one vouches for: given no secrets, reading caches apart, and keeping nothing they write. An account named here counts as an agent even if it is a collaborator too.
maxLength: 32 itemsappviews
array
of
ref
#appview
Optional
Deprecated, and no longer read: knotless.dev indexes every private repository its members read there, named here or not. Was, for a private repository, the appviews its owner let keep an index of it.
maxLength: 32 itemscollaborators
array
of
ref
#collaborator
Optional
Accounts that may push. They push through a gateway the owner has delegated writes to, which checks this list.
maxLength: 1000 itemscreatedAt
string
datetime
Required
An RFC 3339 formatted timestamp.
defaultBranch
string
Optional
The branch HEAD points at, without refs/heads/.
maxLength: 255 bytesdescription
string
Optional
No description available.
maxLength: 3000 bytesmaxGraphemes: 300 graphemesforkOf
ref
dev.knotless.defs#repoRef
Optional
The repository this one was forked from.
gateway
string
did
Optional
A gateway the owner has delegated writes to. Collaborators push and commit through it; it batches concurrent commits to a branch into one write.
key
string
tid
Required
Minted when the repository is created; never reused. The `repo` of its dev.knotless.ref, dev.knotless.claim and dev.knotless.pack records.
labels
array
of
ref
#label
Optional
The labels its pulls and issues may carry. The owner and collaborators put them on with dev.knotless.label records; readers show none but these.
maxLength: 200 itemslinks
array
of
ref
dev.knotless.defs#link
Optional
Links shown on the repository's pages, in display order: its website first.
maxLength: 5 itemsname
string
Required
Equal to the record key.
maxLength: 100 bytesreaders
array
of
ref
#reader
Optional
For a private repository, the accounts it is shared with to read but not to push: members of its space. An appview takes this as the owner's word that they may hear of what is said there.
maxLength: 1000 itemsrules
array
of
ref
#rule
Optional
Protected branches. The gateway holds collaborators to them; the owner, who writes these records directly, is held only by their own client.
maxLength: 100 itemsrunners
array
of
ref
#runner
Optional
Accounts that run the repository's workflows. Readers show the dev.knotless.check records these accounts write about the repository, and no one else's.
maxLength: 32 itemstransfer
ref
dev.knotless.defs#repoRef
Optional
Where the owner has offered to move the repository: a record in another account, named before it exists. Once that account holds a dev.knotless.repo there whose `transferredFrom` names this one, the repository has moved, and readers follow.
transferredFrom
ref
dev.knotless.defs#repoRef
Optional
The repository this one was moved from. Readers count records naming that one as naming this one, if its owner agreed: its `transfer`, or the redirect left in its place, leads here.
triagers
array
of
ref
#triager
Optional
Accounts, such as a triage bot, whose dev.knotless.label records readers honor for the scopes named, and below anyone's who labels as the owner or a collaborator.
maxLength: 32 itemsView raw schema
{
"description": "Keyed by the repository's name, so a clone URL resolves with one getRecord. `key` prefixes the record keys of everything the repository holds; a rename writes a record under the new name with the same key, deletes the old one and leaves a dev.knotless.redirect under the old name.",
"key": "any",
"record": {
"properties": {
"agents": {
"description": "Accounts, such as a coding agent, whose pulls the repository's runners check as they move, as they do a collaborator's, but as code no one vouches for: given no secrets, reading caches apart, and keeping nothing they write. An account named here counts as an agent even if it is a collaborator too.",
"items": {
"ref": "#agent",
"type": "ref"
},
"maxLength": 32,
"type": "array"
},
"appviews": {
"description": "Deprecated, and no longer read: knotless.dev indexes every private repository its members read there, named here or not. Was, for a private repository, the appviews its owner let keep an index of it.",
"items": {
"ref": "#appview",
"type": "ref"
},
"maxLength": 32,
"type": "array"
},
"collaborators": {
"description": "Accounts that may push. They push through a gateway the owner has delegated writes to, which checks this list.",
"items": {
"ref": "#collaborator",
"type": "ref"
},
"maxLength": 1000,
"type": "array"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"defaultBranch": {
"description": "The branch HEAD points at, without refs/heads/.",
"maxLength": 255,
"type": "string"
},
"description": {
"maxGraphemes": 300,
"maxLength": 3000,
"type": "string"
},
"forkOf": {
"description": "The repository this one was forked from.",
"ref": "dev.knotless.defs#repoRef",
"type": "ref"
},
"gateway": {
"description": "A gateway the owner has delegated writes to. Collaborators push and commit through it; it batches concurrent commits to a branch into one write.",
"format": "did",
"type": "string"
},
"key": {
"description": "Minted when the repository is created; never reused. The `repo` of its dev.knotless.ref, dev.knotless.claim and dev.knotless.pack records.",
"format": "tid",
"type": "string"
},
"labels": {
"description": "The labels its pulls and issues may carry. The owner and collaborators put them on with dev.knotless.label records; readers show none but these.",
"items": {
"ref": "#label",
"type": "ref"
},
"maxLength": 200,
"type": "array"
},
"links": {
"description": "Links shown on the repository's pages, in display order: its website first.",
"items": {
"ref": "dev.knotless.defs#link",
"type": "ref"
},
"maxLength": 5,
"type": "array"
},
"name": {
"description": "Equal to the record key.",
"maxLength": 100,
"type": "string"
},
"readers": {
"description": "For a private repository, the accounts it is shared with to read but not to push: members of its space. An appview takes this as the owner's word that they may hear of what is said there.",
"items": {
"ref": "#reader",
"type": "ref"
},
"maxLength": 1000,
"type": "array"
},
"rules": {
"description": "Protected branches. The gateway holds collaborators to them; the owner, who writes these records directly, is held only by their own client.",
"items": {
"ref": "#rule",
"type": "ref"
},
"maxLength": 100,
"type": "array"
},
"runners": {
"description": "Accounts that run the repository's workflows. Readers show the dev.knotless.check records these accounts write about the repository, and no one else's.",
"items": {
"ref": "#runner",
"type": "ref"
},
"maxLength": 32,
"type": "array"
},
"transfer": {
"description": "Where the owner has offered to move the repository: a record in another account, named before it exists. Once that account holds a dev.knotless.repo there whose `transferredFrom` names this one, the repository has moved, and readers follow.",
"ref": "dev.knotless.defs#repoRef",
"type": "ref"
},
"transferredFrom": {
"description": "The repository this one was moved from. Readers count records naming that one as naming this one, if its owner agreed: its `transfer`, or the redirect left in its place, leads here.",
"ref": "dev.knotless.defs#repoRef",
"type": "ref"
},
"triagers": {
"description": "Accounts, such as a triage bot, whose dev.knotless.label records readers honor for the scopes named, and below anyone's who labels as the owner or a collaborator.",
"items": {
"ref": "#triager",
"type": "ref"
},
"maxLength": 32,
"type": "array"
}
},
"required": [
"key",
"name",
"createdAt"
],
"type": "object"
},
"type": "record"
}