A vibe coded tangled fork which supports pijul.
at 1237bf9f58e4ba5d13d5437f2f82a2078572e229 183 lines 4.2 kB view raw
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}