dev.knotless.shareRepo
Names the account among the collaborators of the repository's dev.knotless.repo record, as `knotless share --write` does: it pushes and commits through the gateway the owner delegated writes to, which must be named first, as `knotless delegate` names it. Its owner can, logged in to this appview's web pages: the appview writes with the session it keeps for that account, which the pages' session cookie names. For an organization's repository, so can an admin who joined it, logged in to the pages or with a service token from their own PDS for this method: the appview's gateway, which the organization delegated its writes to, writes as the organization.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | knotless.dev |
| Indexed |
Showing version bafyreihsbz4wkd7jfb3gitgus3brrug34wku5zglnmqm5fllxansp3h7rq. Show the latest
Checks
Valid Lint pass{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Names the account among the collaborators of the repository's dev.knotless.repo record, as `knotless share --write` does: it pushes and commits through the gateway the owner delegated writes to, which must be named first, as `knotless delegate` names it. Its owner can, logged in to this appview's web pages: the appview writes with the session it keeps for that account, which the pages' session cookie names. For an organization's repository, so can an admin who joined it, logged in to the pages or with a service token from their own PDS for this method: the appview's gateway, which the organization delegated its writes to, writes as the organization.",
"errors": [
{
"description": "No such repository.",
"name": "NotFound"
},
{
"description": "There is no such account, the owner has delegated writes to no gateway, or a public repository was shared for reading, which anyone may.",
"name": "InvalidRequest"
},
{
"description": "No account is logged in to the pages, or its session has ended.",
"name": "AuthenticationRequired"
},
{
"description": "The account logged in is not the repository's owner.",
"name": "Forbidden"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"repo": {
"description": "The repository's dev.knotless.repo record, as dev.knotless.getRepo takes it.",
"format": "at-uri",
"type": "string"
},
"with": {
"description": "The account, by handle or DID.",
"format": "at-identifier",
"type": "string"
},
"write": {
"description": "Whether it may push, as `knotless share --write` lets it; false lets it only read a private repository, and open pulls and issues there, as `knotless share` does, taking back any push it had. True when absent.",
"type": "boolean"
}
},
"required": [
"repo",
"with"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"collaborators": {
"description": "The accounts that may push to it now.",
"items": {
"ref": "dev.knotless.defs#actorView",
"type": "ref"
},
"type": "array"
}
},
"required": [
"collaborators"
],
"type": "object"
}
},
"type": "procedure"
}
},
"description": "Lets an account push to a repository, or read a private one.",
"id": "dev.knotless.shareRepo",
"lexicon": 1
}