Repository navigation
Expand file tree
/
Copy pathfiles.schema.json
More file actions
76 lines (76 loc) · 3.86 KB
/
Copy pathfiles.schema.json
File metadata and controls
76 lines (76 loc) · 3.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/ptr727/ProjectTemplate/spec/files.schema.json",
"title": "Standardization baseline files",
"type": "object",
"required": ["baseline", "trees"],
"properties": {
"$schema": { "type": "string" },
"note": { "type": "string" },
"trees": {
"type": "array",
"items": {
"type": "object",
"required": ["source", "target", "fidelity", "appliesTo", "include", "prune"],
"additionalProperties": false,
"properties": {
"source": { "type": "string", "minLength": 1, "not": { "const": "." } },
"target": { "type": "string", "minLength": 1, "not": { "const": "." } },
"fidelity": { "const": "verbatim-tree" },
"appliesTo": { "type": ["string", "array"], "items": { "type": "string" }, "minItems": 1 },
"include": { "type": "array", "items": { "type": "string", "minLength": 1 }, "minItems": 1 },
"prune": { "type": "boolean" },
"allowHubTarget": { "type": "boolean" }
}
}
},
"baseline": {
"type": "array",
"items": {
"type": "object",
"required": ["path"],
"additionalProperties": false,
"properties": {
"path": { "type": "string" },
"alternatives": { "type": "array", "items": { "type": "string", "minLength": 1 }, "minItems": 1, "uniqueItems": true },
"whole": { "type": "boolean" },
"sections": {
"type": "array",
"items": {
"oneOf": [
{ "type": "string" },
{
"type": "object",
"required": ["name"],
"additionalProperties": false,
"properties": {
"name": { "type": "string", "minLength": 1 },
"appliesTo": { "type": ["string", "array"], "items": { "type": "string" }, "minItems": 1 },
"fidelity": { "enum": ["intent", "verbatim"] }
}
}
]
}
},
"placeholders": { "type": "array", "items": { "type": "string" } },
"reference": { "type": "string" },
"intentRef": { "type": "string" },
"appliesTo": { "type": ["string", "array"], "items": { "type": "string" }, "minItems": 1 },
"fidelity": { "enum": ["presence", "intent", "verbatim", "interface"] },
"contract": {
"type": "object",
"additionalProperties": false,
"properties": {
"requiredJobKeys": { "type": "array", "items": { "type": "string" } },
"requiredCheckName": { "type": "string" },
"artifactNameToken": { "type": "string" },
"requireTokensInJob": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } },
"forbidTokensInJob": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } },
"verbatimJobs": { "type": "array", "items": { "type": "string" } }
}
}
}
}
}
}
}