Monorepo for Tangled tangled.org

lexicons: introduce repo.temp xrpc methods #1163

merged opened by boltless.me targeting master from sl/knotmirror

These experimental xrpc methods use at-uri instead of did/name format to reference the repository.

Signed-off-by: Seongmin Lee git@boltless.me

Labels

None yet.

assignee

None yet.

Participants 2
AT URI
at://did:plc:xasnlahkri4ewmbuzly2rlc5/sh.tangled.repo.pull/3mh3qbj6yd322
+1004 -2
Diff #4
api/tangled/tempanalyzeMerge.go

This is a binary file and will not be displayed.

api/tangled/tempdefs.go

This is a binary file and will not be displayed.

api/tangled/tempgetArchive.go

This is a binary file and will not be displayed.

api/tangled/tempgetBlob.go

This is a binary file and will not be displayed.

api/tangled/tempgetBranch.go

This is a binary file and will not be displayed.

api/tangled/tempgetCommit.go

This is a binary file and will not be displayed.

api/tangled/tempgetDiff.go

This is a binary file and will not be displayed.

api/tangled/tempgetEntity.go

This is a binary file and will not be displayed.

api/tangled/tempgetHead.go

This is a binary file and will not be displayed.

api/tangled/tempgetTag.go

This is a binary file and will not be displayed.

api/tangled/tempgetTree.go

This is a binary file and will not be displayed.

api/tangled/templistBranches.go

This is a binary file and will not be displayed.

api/tangled/templistCommits.go

This is a binary file and will not be displayed.

api/tangled/templistLanguages.go

This is a binary file and will not be displayed.

api/tangled/templistTags.go

This is a binary file and will not be displayed.

+2 -2
knotmirror/db/db.go
··· 37 37 did text not null, 38 38 rkey text not null, 39 39 at_uri text generated always as ('at://' || did || '/' || 'sh.tangled.repo' || '/' || rkey) stored, 40 - cid text not null, 40 + cid text, 41 41 42 42 -- record content 43 43 name text not null, 44 44 knot_domain text not null, 45 45 46 - -- sync data 46 + -- sync info 47 47 git_rev text not null, 48 48 repo_sha text not null, 49 49 state text not null default 'pending',
+64
lexicons/git/temp/analyzeMerge.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.analyzeMerge", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "description": "Check if a merge is possible between two branches", 8 + "parameters": { 9 + "type": "params", 10 + "required": ["repo", "patch", "branch"], 11 + "properties": { 12 + "repo": { 13 + "type": "string", 14 + "format": "at-uri", 15 + "description": "AT-URI of the repository" 16 + }, 17 + "patch": { 18 + "type": "string", 19 + "description": "Patch or pull request to check for merge conflicts" 20 + }, 21 + "branch": { 22 + "type": "string", 23 + "description": "Target branch to merge into" 24 + } 25 + } 26 + }, 27 + "output": { 28 + "encoding": "application/json", 29 + "schema": { 30 + "type": "object", 31 + "required": ["is_conflicted"], 32 + "properties": { 33 + "is_conflicted": { 34 + "type": "boolean", 35 + "description": "Whether the merge has conflicts" 36 + }, 37 + "conflicts": { 38 + "type": "array", 39 + "description": "List of files with merge conflicts", 40 + "items": { 41 + "type": "ref", 42 + "ref": "#conflictInfo" 43 + } 44 + } 45 + } 46 + } 47 + } 48 + }, 49 + "conflictInfo": { 50 + "type": "object", 51 + "required": ["filename", "reason"], 52 + "properties": { 53 + "filename": { 54 + "type": "string", 55 + "description": "Name of the conflicted file" 56 + }, 57 + "reason": { 58 + "type": "string", 59 + "description": "Reason for the conflict" 60 + } 61 + } 62 + } 63 + } 64 + }
+112
lexicons/git/temp/defs.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.defs", 4 + "defs": { 5 + "blob": { 6 + "type": "object", 7 + "description": "blob metadata. This object doesn't include the blob content", 8 + "required": ["name", "mode", "size", "lastCommit"], 9 + "properties": { 10 + "name": { 11 + "type": "string", 12 + "description": "The file name" 13 + }, 14 + "mode": { 15 + "type": "string" 16 + }, 17 + "size": { 18 + "type": "integer", 19 + "description": "File size in bytes" 20 + }, 21 + "lastCommit": { 22 + "type": "ref", 23 + "ref": "#commit" 24 + }, 25 + "submodule": { 26 + "type": "ref", 27 + "ref": "#submodule", 28 + "description": "Submodule information if path is a submodule" 29 + } 30 + } 31 + }, 32 + "branch": { 33 + "type": "object", 34 + "required": ["name", "commit"], 35 + "properties": { 36 + "name": { 37 + "type": "string", 38 + "description": "branch name" 39 + }, 40 + "commit": { 41 + "type": "ref", 42 + "ref": "#commit", 43 + "description": "hydrated commit object" 44 + } 45 + } 46 + }, 47 + "tag": { 48 + "type": "object", 49 + "required": ["name", "tagger", "target"], 50 + "properties": { 51 + "name": { 52 + "type": "string", 53 + "description": "tag name" 54 + }, 55 + "tagger": { "type": "ref", "ref": "#signature" }, 56 + "message": { "type": "string" }, 57 + "target": { "type": "unknown" } 58 + } 59 + }, 60 + "commit": { 61 + "type": "object", 62 + "required": ["hash", "author", "committer", "message", "tree"], 63 + "properties": { 64 + "hash": { "type": "ref", "ref": "#hash" }, 65 + "author": { "type": "ref", "ref": "#signature" }, 66 + "committer": { "type": "ref", "ref": "#signature" }, 67 + "message": { "type": "string" }, 68 + "tree": { "type": "ref", "ref": "#hash" } 69 + } 70 + }, 71 + "hash": { 72 + "type": "string" 73 + }, 74 + "signature": { 75 + "type": "object", 76 + "required": ["name", "email", "when"], 77 + "properties": { 78 + "name": { 79 + "type": "string", 80 + "description": "Person name" 81 + }, 82 + "email": { 83 + "type": "string", 84 + "description": "Person email" 85 + }, 86 + "when": { 87 + "type": "string", 88 + "format": "datetime", 89 + "description": "Timestamp of the signature" 90 + } 91 + } 92 + }, 93 + "submodule": { 94 + "type": "object", 95 + "required": ["name", "url"], 96 + "properties": { 97 + "name": { 98 + "type": "string", 99 + "description": "Submodule name" 100 + }, 101 + "url": { 102 + "type": "string", 103 + "description": "Submodule repository URL" 104 + }, 105 + "branch": { 106 + "type": "string", 107 + "description": "Branch to track in the submodule" 108 + } 109 + } 110 + } 111 + } 112 + }
+56
lexicons/git/temp/getArchive.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.getArchive", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "parameters": { 8 + "type": "params", 9 + "required": ["repo", "ref"], 10 + "properties": { 11 + "repo": { 12 + "type": "string", 13 + "format": "at-uri", 14 + "description": "AT-URI of the repository" 15 + }, 16 + "ref": { 17 + "type": "string", 18 + "description": "Git reference (branch, tag, or commit SHA)" 19 + }, 20 + "format": { 21 + "type": "string", 22 + "description": "Archive format", 23 + "enum": ["tar", "zip", "tar.gz", "tar.bz2", "tar.xz"], 24 + "default": "tar.gz" 25 + }, 26 + "prefix": { 27 + "type": "string", 28 + "description": "Prefix for files in the archive" 29 + } 30 + } 31 + }, 32 + "output": { 33 + "encoding": "*/*", 34 + "description": "Binary archive data" 35 + }, 36 + "errors": [ 37 + { 38 + "name": "RepoNotFound", 39 + "description": "Repository not found or access denied" 40 + }, 41 + { 42 + "name": "RefNotFound", 43 + "description": "Git reference not found" 44 + }, 45 + { 46 + "name": "InvalidRequest", 47 + "description": "Invalid request parameters" 48 + }, 49 + { 50 + "name": "ArchiveError", 51 + "description": "Failed to create archive" 52 + } 53 + ] 54 + } 55 + } 56 + }
+47
lexicons/git/temp/getBlob.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.getBlob", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "parameters": { 8 + "type": "params", 9 + "required": ["repo", "path"], 10 + "properties": { 11 + "repo": { 12 + "type": "string", 13 + "format": "at-uri", 14 + "description": "AT-URI of the repository" 15 + }, 16 + "ref": { 17 + "type": "string", 18 + "description": "Git reference (branch, tag, or commit SHA)", 19 + "default": "HEAD" 20 + }, 21 + "path": { 22 + "type": "string", 23 + "description": "Path within the repository tree" 24 + } 25 + } 26 + }, 27 + "output": { 28 + "encoding": "*/*", 29 + "description": "raw blob served in octet-stream" 30 + }, 31 + "errors": [ 32 + { 33 + "name": "RepoNotFound", 34 + "description": "Repository not found or access denied" 35 + }, 36 + { 37 + "name": "BlobNotFound", 38 + "description": "Blob not found" 39 + }, 40 + { 41 + "name": "InvalidRequest", 42 + "description": "Invalid request parameters" 43 + } 44 + ] 45 + } 46 + } 47 + }
+68
lexicons/git/temp/getBranch.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.getBranch", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "parameters": { 8 + "type": "params", 9 + "required": ["repo", "name"], 10 + "properties": { 11 + "repo": { 12 + "type": "string", 13 + "format": "at-uri", 14 + "description": "AT-URI of the repository" 15 + }, 16 + "name": { 17 + "type": "string", 18 + "description": "Branch name to get information for" 19 + } 20 + } 21 + }, 22 + "output": { 23 + "encoding": "application/json", 24 + "schema": { 25 + "type": "object", 26 + "required": ["name", "hash", "when"], 27 + "properties": { 28 + "name": { 29 + "type": "string", 30 + "description": "Branch name" 31 + }, 32 + "hash": { 33 + "type": "string", 34 + "description": "Latest commit hash on this branch" 35 + }, 36 + "when": { 37 + "type": "string", 38 + "format": "datetime", 39 + "description": "Timestamp of latest commit" 40 + }, 41 + "message": { 42 + "type": "string", 43 + "description": "Latest commit message" 44 + }, 45 + "author": { 46 + "type": "ref", 47 + "ref": "sh.tangled.git.temp.defs#signature" 48 + } 49 + } 50 + } 51 + }, 52 + "errors": [ 53 + { 54 + "name": "RepoNotFound", 55 + "description": "Repository not found or access denied" 56 + }, 57 + { 58 + "name": "BranchNotFound", 59 + "description": "Branch not found" 60 + }, 61 + { 62 + "name": "InvalidRequest", 63 + "description": "Invalid request parameters" 64 + } 65 + ] 66 + } 67 + } 68 + }
+46
lexicons/git/temp/getCommit.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.getCommit", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "description": "resolve commit from given ref", 8 + "parameters": { 9 + "type": "params", 10 + "required": ["repo", "ref"], 11 + "properties": { 12 + "repo": { 13 + "type": "string", 14 + "format": "at-uri", 15 + "description": "AT-URI of the repository" 16 + }, 17 + "ref": { 18 + "type": "string", 19 + "description": "reference name to resolve" 20 + } 21 + } 22 + }, 23 + "output": { 24 + "encoding": "application/json", 25 + "schema": { 26 + "type": "ref", 27 + "ref": "sh.tangled.git.temp.defs#commit" 28 + } 29 + }, 30 + "errors": [ 31 + { 32 + "name": "RepoNotFound", 33 + "description": "Repository not found or access denied" 34 + }, 35 + { 36 + "name": "CommitNotFound", 37 + "description": "Commit not found" 38 + }, 39 + { 40 + "name": "InvalidRequest", 41 + "description": "Invalid request parameters" 42 + } 43 + ] 44 + } 45 + } 46 + }
+50
lexicons/git/temp/getDiff.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.getDiff", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "parameters": { 8 + "type": "params", 9 + "required": ["repo", "rev1", "rev2"], 10 + "properties": { 11 + "repo": { 12 + "type": "string", 13 + "format": "at-uri", 14 + "description": "AT-URI of the repository" 15 + }, 16 + "rev1": { 17 + "type": "string", 18 + "description": "First revision (commit, branch, or tag)" 19 + }, 20 + "rev2": { 21 + "type": "string", 22 + "description": "Second revision (commit, branch, or tag)" 23 + } 24 + } 25 + }, 26 + "output": { 27 + "encoding": "*/*", 28 + "description": "Compare output in application/json" 29 + }, 30 + "errors": [ 31 + { 32 + "name": "RepoNotFound", 33 + "description": "Repository not found or access denied" 34 + }, 35 + { 36 + "name": "RevisionNotFound", 37 + "description": "One or both revisions not found" 38 + }, 39 + { 40 + "name": "InvalidRequest", 41 + "description": "Invalid request parameters" 42 + }, 43 + { 44 + "name": "CompareError", 45 + "description": "Failed to compare revisions" 46 + } 47 + ] 48 + } 49 + } 50 + }
+51
lexicons/git/temp/getEntity.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.getEntity", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "description": "get metadata of blob by ref and path", 8 + "parameters": { 9 + "type": "params", 10 + "required": ["repo", "path"], 11 + "properties": { 12 + "repo": { 13 + "type": "string", 14 + "format": "at-uri", 15 + "description": "AT-URI of the repository" 16 + }, 17 + "ref": { 18 + "type": "string", 19 + "description": "Git reference (branch, tag, or commit SHA)", 20 + "default": "HEAD" 21 + }, 22 + "path": { 23 + "type": "string", 24 + "description": "path of the entity" 25 + } 26 + } 27 + }, 28 + "output": { 29 + "encoding": "application/json", 30 + "schema": { 31 + "type": "ref", 32 + "ref": "sh.tangled.git.temp.defs#blob" 33 + } 34 + }, 35 + "errors": [ 36 + { 37 + "name": "RepoNotFound", 38 + "description": "Repository not found or access denied" 39 + }, 40 + { 41 + "name": "BlobNotFound", 42 + "description": "Blob not found" 43 + }, 44 + { 45 + "name": "InvalidRequest", 46 + "description": "Invalid request parameters" 47 + } 48 + ] 49 + } 50 + } 51 + }
+37
lexicons/git/temp/getHead.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.getHead", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "parameters": { 8 + "type": "params", 9 + "required": ["repo"], 10 + "properties": { 11 + "repo": { 12 + "type": "string", 13 + "format": "at-uri", 14 + "description": "AT-URI of the repository" 15 + } 16 + } 17 + }, 18 + "output": { 19 + "encoding": "application/json", 20 + "schema": { 21 + "type": "ref", 22 + "ref": "sh.tangled.git.temp.defs#branch" 23 + } 24 + }, 25 + "errors": [ 26 + { 27 + "name": "RepoNotFound", 28 + "description": "Repository not found or access denied" 29 + }, 30 + { 31 + "name": "InvalidRequest", 32 + "description": "Invalid request parameters" 33 + } 34 + ] 35 + } 36 + } 37 + }
+44
lexicons/git/temp/getTag.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.getTag", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "parameters": { 8 + "type": "params", 9 + "required": [ 10 + "repo", 11 + "tag" 12 + ], 13 + "properties": { 14 + "repo": { 15 + "type": "string", 16 + "format": "at-uri", 17 + "description": "AT-URI of the repository" 18 + }, 19 + "tag": { 20 + "type": "string", 21 + "description": "Name of tag, such as v1.3.0" 22 + } 23 + } 24 + }, 25 + "output": { 26 + "encoding": "*/*" 27 + }, 28 + "errors": [ 29 + { 30 + "name": "RepoNotFound", 31 + "description": "Repository not found or access denied" 32 + }, 33 + { 34 + "name": "TagNotFound", 35 + "description": "Tag not found" 36 + }, 37 + { 38 + "name": "InvalidRequest", 39 + "description": "Invalid request parameters" 40 + } 41 + ] 42 + } 43 + } 44 + }
+183
lexicons/git/temp/getTree.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.getTree", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "parameters": { 8 + "type": "params", 9 + "required": [ 10 + "repo", 11 + "ref" 12 + ], 13 + "properties": { 14 + "repo": { 15 + "type": "string", 16 + "format": "at-uri", 17 + "description": "AT-URI of the repository" 18 + }, 19 + "ref": { 20 + "type": "string", 21 + "description": "Git reference (branch, tag, or commit SHA)" 22 + }, 23 + "path": { 24 + "type": "string", 25 + "description": "Path within the repository tree", 26 + "default": "" 27 + } 28 + } 29 + }, 30 + "output": { 31 + "encoding": "application/json", 32 + "schema": { 33 + "type": "object", 34 + "required": [ 35 + "ref", 36 + "files" 37 + ], 38 + "properties": { 39 + "ref": { 40 + "type": "string", 41 + "description": "The git reference used" 42 + }, 43 + "parent": { 44 + "type": "string", 45 + "description": "The parent path in the tree" 46 + }, 47 + "dotdot": { 48 + "type": "string", 49 + "description": "Parent directory path" 50 + }, 51 + "readme": { 52 + "type": "ref", 53 + "ref": "#readme", 54 + "description": "Readme for this file tree" 55 + }, 56 + "lastCommit": { 57 + "type": "ref", 58 + "ref": "#lastCommit" 59 + }, 60 + "files": { 61 + "type": "array", 62 + "items": { 63 + "type": "ref", 64 + "ref": "#treeEntry" 65 + } 66 + } 67 + } 68 + } 69 + }, 70 + "errors": [ 71 + { 72 + "name": "RepoNotFound", 73 + "description": "Repository not found or access denied" 74 + }, 75 + { 76 + "name": "RefNotFound", 77 + "description": "Git reference not found" 78 + }, 79 + { 80 + "name": "PathNotFound", 81 + "description": "Path not found in repository tree" 82 + }, 83 + { 84 + "name": "InvalidRequest", 85 + "description": "Invalid request parameters" 86 + } 87 + ] 88 + }, 89 + "readme": { 90 + "type": "object", 91 + "required": [ 92 + "filename", 93 + "contents" 94 + ], 95 + "properties": { 96 + "filename": { 97 + "type": "string", 98 + "description": "Name of the readme file" 99 + }, 100 + "contents": { 101 + "type": "string", 102 + "description": "Contents of the readme file" 103 + } 104 + } 105 + }, 106 + "treeEntry": { 107 + "type": "object", 108 + "required": [ 109 + "name", 110 + "mode", 111 + "size" 112 + ], 113 + "properties": { 114 + "name": { 115 + "type": "string", 116 + "description": "Relative file or directory name" 117 + }, 118 + "mode": { 119 + "type": "string", 120 + "description": "File mode" 121 + }, 122 + "size": { 123 + "type": "integer", 124 + "description": "File size in bytes" 125 + }, 126 + "last_commit": { 127 + "type": "ref", 128 + "ref": "#lastCommit" 129 + } 130 + } 131 + }, 132 + "lastCommit": { 133 + "type": "object", 134 + "required": [ 135 + "hash", 136 + "message", 137 + "when" 138 + ], 139 + "properties": { 140 + "hash": { 141 + "type": "string", 142 + "description": "Commit hash" 143 + }, 144 + "message": { 145 + "type": "string", 146 + "description": "Commit message" 147 + }, 148 + "author": { 149 + "type": "ref", 150 + "ref": "#signature" 151 + }, 152 + "when": { 153 + "type": "string", 154 + "format": "datetime", 155 + "description": "Commit timestamp" 156 + } 157 + } 158 + }, 159 + "signature": { 160 + "type": "object", 161 + "required": [ 162 + "name", 163 + "email", 164 + "when" 165 + ], 166 + "properties": { 167 + "name": { 168 + "type": "string", 169 + "description": "Author name" 170 + }, 171 + "email": { 172 + "type": "string", 173 + "description": "Author email" 174 + }, 175 + "when": { 176 + "type": "string", 177 + "format": "datetime", 178 + "description": "Author timestamp" 179 + } 180 + } 181 + } 182 + } 183 + }
+44
lexicons/git/temp/listBranches.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.listBranches", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "parameters": { 8 + "type": "params", 9 + "required": ["repo"], 10 + "properties": { 11 + "repo": { 12 + "type": "string", 13 + "format": "at-uri", 14 + "description": "AT-URI of the repository" 15 + }, 16 + "limit": { 17 + "type": "integer", 18 + "description": "Maximum number of branches to return", 19 + "minimum": 1, 20 + "maximum": 100, 21 + "default": 50 22 + }, 23 + "cursor": { 24 + "type": "string", 25 + "description": "Pagination cursor" 26 + } 27 + } 28 + }, 29 + "output": { 30 + "encoding": "*/*" 31 + }, 32 + "errors": [ 33 + { 34 + "name": "RepoNotFound", 35 + "description": "Repository not found or access denied" 36 + }, 37 + { 38 + "name": "InvalidRequest", 39 + "description": "Invalid request parameters" 40 + } 41 + ] 42 + } 43 + } 44 + }
+56
lexicons/git/temp/listCommits.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.listCommits", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "parameters": { 8 + "type": "params", 9 + "required": ["repo"], 10 + "properties": { 11 + "repo": { 12 + "type": "string", 13 + "format": "at-uri", 14 + "description": "AT-URI of the repository" 15 + }, 16 + "ref": { 17 + "type": "string", 18 + "description": "Git reference (branch, tag, or commit SHA)" 19 + }, 20 + "limit": { 21 + "type": "integer", 22 + "description": "Maximum number of commits to return", 23 + "minimum": 1, 24 + "maximum": 100, 25 + "default": 50 26 + }, 27 + "cursor": { 28 + "type": "string", 29 + "description": "Pagination cursor (commit SHA)" 30 + } 31 + } 32 + }, 33 + "output": { 34 + "encoding": "*/*" 35 + }, 36 + "errors": [ 37 + { 38 + "name": "RepoNotFound", 39 + "description": "Repository not found or access denied" 40 + }, 41 + { 42 + "name": "RefNotFound", 43 + "description": "Git reference not found" 44 + }, 45 + { 46 + "name": "PathNotFound", 47 + "description": "Path not found in repository" 48 + }, 49 + { 50 + "name": "InvalidRequest", 51 + "description": "Invalid request parameters" 52 + } 53 + ] 54 + } 55 + } 56 + }
+100
lexicons/git/temp/listLanguages.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.listLanguages", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "parameters": { 8 + "type": "params", 9 + "required": ["repo"], 10 + "properties": { 11 + "repo": { 12 + "type": "string", 13 + "format": "at-uri", 14 + "description": "AT-URI of the repository" 15 + }, 16 + "ref": { 17 + "type": "string", 18 + "description": "Git reference (branch, tag, or commit SHA)", 19 + "default": "HEAD" 20 + } 21 + } 22 + }, 23 + "output": { 24 + "encoding": "application/json", 25 + "schema": { 26 + "type": "object", 27 + "required": ["ref", "languages"], 28 + "properties": { 29 + "ref": { 30 + "type": "string", 31 + "description": "The git reference used" 32 + }, 33 + "languages": { 34 + "type": "array", 35 + "items": { 36 + "type": "ref", 37 + "ref": "#language" 38 + } 39 + }, 40 + "totalSize": { 41 + "type": "integer", 42 + "description": "Total size of all analyzed files in bytes" 43 + }, 44 + "totalFiles": { 45 + "type": "integer", 46 + "description": "Total number of files analyzed" 47 + } 48 + } 49 + } 50 + }, 51 + "errors": [ 52 + { 53 + "name": "RepoNotFound", 54 + "description": "Repository not found or access denied" 55 + }, 56 + { 57 + "name": "RefNotFound", 58 + "description": "Git reference not found" 59 + }, 60 + { 61 + "name": "InvalidRequest", 62 + "description": "Invalid request parameters" 63 + } 64 + ] 65 + }, 66 + "language": { 67 + "type": "object", 68 + "required": ["name", "size", "percentage"], 69 + "properties": { 70 + "name": { 71 + "type": "string", 72 + "description": "Programming language name" 73 + }, 74 + "size": { 75 + "type": "integer", 76 + "description": "Total size of files in this language (bytes)" 77 + }, 78 + "percentage": { 79 + "type": "integer", 80 + "description": "Percentage of total codebase (0-100)" 81 + }, 82 + "fileCount": { 83 + "type": "integer", 84 + "description": "Number of files in this language" 85 + }, 86 + "color": { 87 + "type": "string", 88 + "description": "Hex color code for this language" 89 + }, 90 + "extensions": { 91 + "type": "array", 92 + "items": { 93 + "type": "string" 94 + }, 95 + "description": "File extensions associated with this language" 96 + } 97 + } 98 + } 99 + } 100 + }
+44
lexicons/git/temp/listTags.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "sh.tangled.git.temp.listTags", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "parameters": { 8 + "type": "params", 9 + "required": ["repo"], 10 + "properties": { 11 + "repo": { 12 + "type": "string", 13 + "format": "at-uri", 14 + "description": "AT-URI of the repository" 15 + }, 16 + "limit": { 17 + "type": "integer", 18 + "description": "Maximum number of tags to return", 19 + "minimum": 1, 20 + "maximum": 100, 21 + "default": 50 22 + }, 23 + "cursor": { 24 + "type": "string", 25 + "description": "Pagination cursor" 26 + } 27 + } 28 + }, 29 + "output": { 30 + "encoding": "*/*" 31 + }, 32 + "errors": [ 33 + { 34 + "name": "RepoNotFound", 35 + "description": "Repository not found or access denied" 36 + }, 37 + { 38 + "name": "InvalidRequest", 39 + "description": "Invalid request parameters" 40 + } 41 + ] 42 + } 43 + } 44 + }

History

5 rounds 3 comments
sign up or login to add to the discussion
1 commit
expand
lexicons: introduce git.temp xrpc methods
2/3 failed, 1/3 success
expand
expand 0 comments
pull request successfully merged
1 commit
expand
lexicons: introduce git.temp xrpc methods
expand 0 comments
1 commit
expand
lexicons: introduce git.temp xrpc methods
expand 0 comments
1 commit
expand
lexicons: introduce repo.temp xrpc methods
expand 3 comments

ill not comment on the nomenclature here, because i understand that these are temp and can be upgraded at any time? am i right in understanding that the only affected bits will be knotmirror and appview and we can easily upgrade those services?

correct. For general naming, I'm trying to follow the official guidelines here.

sounds good! my only nit would be with analyzeMerge (maybe getMergeStatus or something?). but no immediate change required for this patch.

1 commit
expand
lexicons: introduce repo.temp xrpc methods
expand 0 comments