-
Notifications
You must be signed in to change notification settings - Fork 0
/
reposchema.json
128 lines (128 loc) · 4.51 KB
/
reposchema.json
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://taya.one/obsplugins.schema.json",
"title": "OBS Plugins Repo",
"description": "A Repository File to store OBS plugin info for OBS Plugin Manager",
"type": "object",
"required": ["plugins"],
"properties": {
"plugins": {
"type": "object",
"description": "Mapping of unique plugin identifiers to their data",
"minProperties": 1,
"additionalProperties": {
"type": "object",
"required": ["name", "versions"],
"properties": {
"name": {
"type": "string",
"description": "The title or name of the plugin",
"minLength": 1
},
"author": {
"type": "string",
"description": "The name of the author of the plugin",
"minLength": 1
},
"icon": {
"type": "string",
"description": "A url to the plugin's icon",
"minLength": 1
},
"summary": {
"type": "string",
"description": "A short description of the plugin",
"minLength": 1
},
"description": {
"type": "string",
"description": "A long form description of the plugin",
"minLength": 1
},
"license": {
"type": "string",
"description": "The SPDX license ID of a plugin",
"minLength": 1
},
"homepage": {
"type": "string",
"description": "A link to the plugin's homepage or other relevant information",
"minLength": 1
},
"versions": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"patternProperties": {
"^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$": {
"type": "object",
"additionalProperties": false,
"required": ["files"],
"properties": {
"channel": {
"type": "string",
"enum": [
"release",
"beta",
"alpha"
],
"description": "The release channel for this version"
},
"obs_versions": {
"type": "string",
"description": "A range of versions of OBS that this version supports",
"minLength": 1
},
"files": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["url"],
"properties": {
"os": {
"type": "string",
"enum": [
"windows",
"mac",
"linux"
],
"description": "The operating system for which this file is"
},
"arch": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"x64",
"x86",
"arm64"
]
},
"description": "A list of system architectures which this file supports",
"minItems": 1
},
"url": {
"type": "string",
"description": "A url from where to download this file",
"minLength": 1
},
"sha256": {
"type": "string",
"description": "The sha256 hash of the file",
"pattern": "^[A-Fa-f0-9]{64}$"
}
}
}
}
}
}
}
}
}
}
}
}
}