Monorepo for Tangled
tangled.org
1{
2 "lexicon": 1,
3 "id": "sh.tangled.repo.blob",
4 "defs": {
5 "main": {
6 "type": "query",
7 "parameters": {
8 "type": "params",
9 "required": [
10 "repo",
11 "ref",
12 "path"
13 ],
14 "properties": {
15 "repo": {
16 "type": "string",
17 "format": "did",
18 "description": "DID of the repository"
19 },
20 "ref": {
21 "type": "string",
22 "description": "Git reference (branch, tag, or commit SHA)"
23 },
24 "path": {
25 "type": "string",
26 "description": "Path to the file within the repository"
27 },
28 "raw": {
29 "type": "boolean",
30 "description": "Return raw file content instead of JSON response",
31 "default": false
32 }
33 }
34 },
35 "output": {
36 "encoding": "application/json",
37 "schema": {
38 "type": "object",
39 "required": [
40 "ref",
41 "path"
42 ],
43 "properties": {
44 "ref": {
45 "type": "string",
46 "description": "The git reference used"
47 },
48 "path": {
49 "type": "string",
50 "description": "The file path"
51 },
52 "content": {
53 "type": "string",
54 "description": "File content (base64 encoded for binary files)"
55 },
56 "encoding": {
57 "type": "string",
58 "description": "Content encoding",
59 "enum": [
60 "utf-8",
61 "base64"
62 ]
63 },
64 "size": {
65 "type": "integer",
66 "description": "File size in bytes"
67 },
68 "isBinary": {
69 "type": "boolean",
70 "description": "Whether the file is binary"
71 },
72 "mimeType": {
73 "type": "string",
74 "description": "MIME type of the file"
75 },
76 "submodule": {
77 "type": "ref",
78 "ref": "#submodule",
79 "description": "Submodule information if path is a submodule"
80 },
81 "lastCommit": {
82 "type": "ref",
83 "ref": "#lastCommit"
84 },
85 "fileTooLarge": {
86 "type": "boolean"
87 }
88 }
89 }
90 },
91 "errors": [
92 {
93 "name": "RepoNotFound",
94 "description": "Repository not found or access denied"
95 },
96 {
97 "name": "RefNotFound",
98 "description": "Git reference not found"
99 },
100 {
101 "name": "FileNotFound",
102 "description": "File not found at the specified path"
103 },
104 {
105 "name": "InvalidRequest",
106 "description": "Invalid request parameters"
107 }
108 ]
109 },
110 "lastCommit": {
111 "type": "object",
112 "required": [
113 "hash",
114 "message",
115 "when"
116 ],
117 "properties": {
118 "hash": {
119 "type": "string",
120 "description": "Commit hash"
121 },
122 "message": {
123 "type": "string",
124 "description": "Commit message"
125 },
126 "author": {
127 "type": "ref",
128 "ref": "#signature"
129 },
130 "when": {
131 "type": "string",
132 "format": "datetime",
133 "description": "Commit timestamp"
134 }
135 }
136 },
137 "signature": {
138 "type": "object",
139 "required": [
140 "name",
141 "email",
142 "when"
143 ],
144 "properties": {
145 "name": {
146 "type": "string",
147 "description": "Author name"
148 },
149 "email": {
150 "type": "string",
151 "description": "Author email"
152 },
153 "when": {
154 "type": "string",
155 "format": "datetime",
156 "description": "Author timestamp"
157 }
158 }
159 },
160 "submodule": {
161 "type": "object",
162 "required": [
163 "name",
164 "url"
165 ],
166 "properties": {
167 "name": {
168 "type": "string",
169 "description": "Submodule name"
170 },
171 "url": {
172 "type": "string",
173 "description": "Submodule repository URL"
174 },
175 "branch": {
176 "type": "string",
177 "description": "Branch to track in the submodule"
178 }
179 }
180 }
181 }
182}