Monorepo for Tangled
tangled.org
1{
2 "lexicon": 1,
3 "id": "sh.tangled.pipeline",
4 "needsCbor": true,
5 "needsType": true,
6 "defs": {
7 "main": {
8 "type": "record",
9 "key": "tid",
10 "record": {
11 "type": "object",
12 "description": "DEPRECATED: use sh.tangled.ci.pipeline instead",
13 "required": [
14 "triggerMetadata",
15 "workflows"
16 ],
17 "properties": {
18 "triggerMetadata": {
19 "type": "ref",
20 "ref": "#triggerMetadata"
21 },
22 "workflows": {
23 "type": "array",
24 "items": {
25 "type": "ref",
26 "ref": "#workflow"
27 }
28 }
29 }
30 }
31 },
32 "triggerMetadata": {
33 "type": "object",
34 "required": [
35 "kind",
36 "repo"
37 ],
38 "properties": {
39 "kind": {
40 "type": "string",
41 "enum": [
42 "push",
43 "pull_request",
44 "manual"
45 ]
46 },
47 "repo": {
48 "type": "ref",
49 "ref": "#triggerRepo"
50 },
51 "push": {
52 "type": "ref",
53 "ref": "#pushTriggerData"
54 },
55 "pullRequest": {
56 "type": "ref",
57 "ref": "#pullRequestTriggerData"
58 },
59 "manual": {
60 "type": "ref",
61 "ref": "#manualTriggerData"
62 },
63 "sourceRepo": {
64 "type": "string",
65 "format": "did",
66 "description": "Repository DID that code and workflow definitions are checked out from, when different from repo (e.g. a fork's commit for a fork-based manual trigger). If absent, source uses repo itself."
67 }
68 }
69 },
70 "triggerRepo": {
71 "type": "object",
72 "required": [
73 "knot",
74 "did",
75 "defaultBranch"
76 ],
77 "properties": {
78 "knot": {
79 "type": "string"
80 },
81 "did": {
82 "type": "string",
83 "format": "did"
84 },
85 "repoDid": {
86 "type": "string",
87 "description": "DID of the repo itself",
88 "format": "did"
89 },
90 "repo": {
91 "type": "string"
92 },
93 "defaultBranch": {
94 "type": "string"
95 }
96 }
97 },
98 "pushTriggerData": {
99 "type": "object",
100 "required": [
101 "ref",
102 "newSha",
103 "oldSha"
104 ],
105 "properties": {
106 "ref": {
107 "type": "string"
108 },
109 "newSha": {
110 "type": "string",
111 "minLength": 40,
112 "maxLength": 40
113 },
114 "oldSha": {
115 "type": "string",
116 "minLength": 40,
117 "maxLength": 40
118 }
119 }
120 },
121 "pullRequestTriggerData": {
122 "type": "object",
123 "required": [
124 "sourceBranch",
125 "targetBranch",
126 "sourceSha"
127 ],
128 "properties": {
129 "sourceBranch": {
130 "type": "string"
131 },
132 "targetBranch": {
133 "type": "string"
134 },
135 "sourceSha": {
136 "type": "string",
137 "minLength": 40,
138 "maxLength": 40
139 },
140 "pull": {
141 "type": "string",
142 "format": "at-uri",
143 "description": "AT-URI of the sh.tangled.repo.pull record this run belongs to"
144 }
145 }
146 },
147 "manualTriggerData": {
148 "type": "object",
149 "required": [
150 "sha"
151 ],
152 "properties": {
153 "sha": {
154 "type": "string",
155 "description": "commit SHA the manual run targets",
156 "minLength": 40,
157 "maxLength": 40
158 },
159 "ref": {
160 "type": "string",
161 "description": "optional ref the SHA was resolved from, for display and TANGLED_REF"
162 },
163 "inputs": {
164 "type": "array",
165 "items": {
166 "type": "ref",
167 "ref": "#pair"
168 }
169 }
170 }
171 },
172 "workflow": {
173 "type": "object",
174 "required": [
175 "name",
176 "engine",
177 "clone",
178 "raw"
179 ],
180 "properties": {
181 "name": {
182 "type": "string"
183 },
184 "engine": {
185 "type": "string"
186 },
187 "clone": {
188 "type": "ref",
189 "ref": "#cloneOpts"
190 },
191 "raw": {
192 "type": "string"
193 }
194 }
195 },
196 "cloneOpts": {
197 "type": "object",
198 "required": [
199 "skip",
200 "depth",
201 "submodules",
202 "tags"
203 ],
204 "properties": {
205 "skip": {
206 "type": "boolean"
207 },
208 "depth": {
209 "type": "integer"
210 },
211 "submodules": {
212 "type": "boolean"
213 },
214 "tags": {
215 "type": "boolean"
216 }
217 }
218 },
219 "pair": {
220 "type": "object",
221 "required": [
222 "key",
223 "value"
224 ],
225 "properties": {
226 "key": {
227 "type": "string"
228 },
229 "value": {
230 "type": "string"
231 }
232 }
233 }
234 }
235}