lexicon: rework to avoid nested object types #283

merged
opened by oppi.li targeting master from push-myqmppunmplu
Changed files
+85 -54
lexicons
+85 -54
lexicons/pipeline.json
··· 9 9 "key": "tid", 10 10 "record": { 11 11 "type": "object", 12 - "required": ["triggerMetadata", "workflows"], 12 + "required": [ 13 + "triggerMetadata", 14 + "workflows" 15 + ], 13 16 "properties": { 14 17 "triggerMetadata": { 15 18 "type": "ref", ··· 27 30 }, 28 31 "triggerMetadata": { 29 32 "type": "object", 30 - "required": ["kind", "repo"], 33 + "required": [ 34 + "kind", 35 + "repo" 36 + ], 31 37 "properties": { 32 38 "kind": { 33 39 "type": "string", 34 - "enum": ["push", "pull_request", "manual"] 40 + "enum": [ 41 + "push", 42 + "pull_request", 43 + "manual" 44 + ] 35 45 }, 36 46 "repo": { 37 47 "type": "ref", ··· 53 63 }, 54 64 "triggerRepo": { 55 65 "type": "object", 56 - "required": ["knot", "did", "repo", "defaultBranch"], 66 + "required": [ 67 + "knot", 68 + "did", 69 + "repo", 70 + "defaultBranch" 71 + ], 57 72 "properties": { 58 73 "knot": { 59 74 "type": "string" ··· 72 87 }, 73 88 "pushTriggerData": { 74 89 "type": "object", 75 - "required": ["ref", "newSha", "oldSha"], 90 + "required": [ 91 + "ref", 92 + "newSha", 93 + "oldSha" 94 + ], 76 95 "properties": { 77 96 "ref": { 78 97 "type": "string" ··· 91 110 }, 92 111 "pullRequestTriggerData": { 93 112 "type": "object", 94 - "required": ["sourceBranch", "targetBranch", "sourceSha", "action"], 113 + "required": [ 114 + "sourceBranch", 115 + "targetBranch", 116 + "sourceSha", 117 + "action" 118 + ], 95 119 "properties": { 96 120 "sourceBranch": { 97 121 "type": "string" ··· 115 139 "inputs": { 116 140 "type": "array", 117 141 "items": { 118 - "type": "object", 119 - "required": ["key", "value"], 120 - "properties": { 121 - "key": { 122 - "type": "string" 123 - }, 124 - "value": { 125 - "type": "string" 126 - } 127 - } 142 + "type": "ref", 143 + "ref": "#pair" 128 144 } 129 145 } 130 146 } 131 147 }, 132 148 "workflow": { 133 149 "type": "object", 134 - "required": ["name", "dependencies", "steps", "environment", "clone"], 150 + "required": [ 151 + "name", 152 + "dependencies", 153 + "steps", 154 + "environment", 155 + "clone" 156 + ], 135 157 "properties": { 136 158 "name": { 137 159 "type": "string" 138 160 }, 139 161 "dependencies": { 140 - "type": "ref", 141 - "ref": "#dependencies" 162 + "type": "array", 163 + "items": { 164 + "type": "ref", 165 + "ref": "#dependency" 166 + } 142 167 }, 143 168 "steps": { 144 169 "type": "array", ··· 150 175 "environment": { 151 176 "type": "array", 152 177 "items": { 153 - "type": "object", 154 - "required": ["key", "value"], 155 - "properties": { 156 - "key": { 157 - "type": "string" 158 - }, 159 - "value": { 160 - "type": "string" 161 - } 162 - } 178 + "type": "ref", 179 + "ref": "#pair" 163 180 } 164 181 }, 165 182 "clone": { ··· 168 185 } 169 186 } 170 187 }, 171 - "dependencies": { 172 - "type": "array", 173 - "items": { 174 - "type": "object", 175 - "required": ["registry", "packages"], 176 - "properties": { 177 - "registry": { 188 + "dependency": { 189 + "type": "object", 190 + "required": [ 191 + "registry", 192 + "packages" 193 + ], 194 + "properties": { 195 + "registry": { 196 + "type": "string" 197 + }, 198 + "packages": { 199 + "type": "array", 200 + "items": { 178 201 "type": "string" 179 - }, 180 - "packages": { 181 - "type": "array", 182 - "items": { 183 - "type": "string" 184 - } 185 202 } 186 203 } 187 204 } 188 205 }, 189 206 "cloneOpts": { 190 207 "type": "object", 191 - "required": ["skip", "depth", "submodules"], 208 + "required": [ 209 + "skip", 210 + "depth", 211 + "submodules" 212 + ], 192 213 "properties": { 193 214 "skip": { 194 215 "type": "boolean" ··· 203 224 }, 204 225 "step": { 205 226 "type": "object", 206 - "required": ["name", "command"], 227 + "required": [ 228 + "name", 229 + "command" 230 + ], 207 231 "properties": { 208 232 "name": { 209 233 "type": "string" ··· 214 238 "environment": { 215 239 "type": "array", 216 240 "items": { 217 - "type": "object", 218 - "required": ["key", "value"], 219 - "properties": { 220 - "key": { 221 - "type": "string" 222 - }, 223 - "value": { 224 - "type": "string" 225 - } 226 - } 241 + "type": "ref", 242 + "ref": "#pair" 227 243 } 228 244 } 229 245 } 246 + }, 247 + "pair": { 248 + "type": "object", 249 + "required": [ 250 + "key", 251 + "value" 252 + ], 253 + "properties": { 254 + "key": { 255 + "type": "string" 256 + }, 257 + "value": { 258 + "type": "string" 259 + } 260 + } 230 261 } 231 262 } 232 263 }