|
1045 | 1045 | "versioning-strategy": { |
1046 | 1046 | "$ref": "#/definitions/versioning-strategy", |
1047 | 1047 | "description": "How to update manifest version requirements" |
| 1048 | + }, |
| 1049 | + "patterns": { |
| 1050 | + "description": "Array of dependency patterns to include in a multi-ecosystem group. Required when using multi-ecosystem-group. Use '*' to include all dependencies.", |
| 1051 | + "type": "array", |
| 1052 | + "items": { |
| 1053 | + "type": "string", |
| 1054 | + "minLength": 1 |
| 1055 | + }, |
| 1056 | + "minItems": 1, |
| 1057 | + "uniqueItems": true |
| 1058 | + }, |
| 1059 | + "multi-ecosystem-group": { |
| 1060 | + "description": "String identifier linking this ecosystem to a multi-ecosystem group", |
| 1061 | + "type": "string", |
| 1062 | + "minLength": 1 |
1048 | 1063 | } |
1049 | 1064 | }, |
1050 | 1065 | "allOf": [ |
|
1056 | 1071 | { "required": ["directories"] }, |
1057 | 1072 | { "required": ["directory"] } |
1058 | 1073 | ] |
| 1074 | + }, |
| 1075 | + { |
| 1076 | + "$comment": "If multi-ecosystem-group is specified, patterns is required", |
| 1077 | + "if": { |
| 1078 | + "required": ["multi-ecosystem-group"] |
| 1079 | + }, |
| 1080 | + "then": { |
| 1081 | + "required": ["patterns"] |
| 1082 | + } |
1059 | 1083 | } |
1060 | 1084 | ] |
1061 | 1085 | }, |
|
1132 | 1156 | } |
1133 | 1157 | }, |
1134 | 1158 | "minProperties": 1 |
| 1159 | + }, |
| 1160 | + "multi-ecosystem-group": { |
| 1161 | + "type": "object", |
| 1162 | + "description": "Define a group that spans multiple package ecosystems, allowing consolidated pull requests across different ecosystems", |
| 1163 | + "additionalProperties": false, |
| 1164 | + "properties": { |
| 1165 | + "schedule": { |
| 1166 | + "description": "Schedule preferences for the group", |
| 1167 | + "type": "object", |
| 1168 | + "properties": { |
| 1169 | + "interval": { |
| 1170 | + "$ref": "#/definitions/schedule-interval" |
| 1171 | + }, |
| 1172 | + "day": { |
| 1173 | + "$ref": "#/definitions/schedule-day", |
| 1174 | + "description": "Specify an alternative day to check for updates" |
| 1175 | + }, |
| 1176 | + "time": { |
| 1177 | + "type": "string", |
| 1178 | + "description": "Specify an alternative time of day to check for updates (format: hh:mm)", |
| 1179 | + "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$" |
| 1180 | + }, |
| 1181 | + "timezone": { |
| 1182 | + "$ref": "#/definitions/timezone", |
| 1183 | + "description": "The time zone identifier must be from the Time Zone database maintained by IANA" |
| 1184 | + }, |
| 1185 | + "cronjob": { |
| 1186 | + "type": "string", |
| 1187 | + "description": "Specify a valid cron expression for updates" |
| 1188 | + } |
| 1189 | + }, |
| 1190 | + "allOf": [ |
| 1191 | + { |
| 1192 | + "$comment": "If interval type is 'cron', enforce 'cronjob' property.", |
| 1193 | + "if": { |
| 1194 | + "properties": { |
| 1195 | + "interval": { |
| 1196 | + "const": "cron" |
| 1197 | + } |
| 1198 | + } |
| 1199 | + }, |
| 1200 | + "then": { |
| 1201 | + "required": ["interval", "cronjob"] |
| 1202 | + }, |
| 1203 | + "else": { |
| 1204 | + "required": ["interval"] |
| 1205 | + } |
| 1206 | + } |
| 1207 | + ] |
| 1208 | + }, |
| 1209 | + "labels": { |
| 1210 | + "description": "Labels to set on pull requests (additive - merges with ecosystem-level labels)", |
| 1211 | + "type": "array", |
| 1212 | + "items": { |
| 1213 | + "type": "string", |
| 1214 | + "minLength": 1 |
| 1215 | + }, |
| 1216 | + "minItems": 0, |
| 1217 | + "uniqueItems": true |
| 1218 | + }, |
| 1219 | + "assignees": { |
| 1220 | + "description": "Assignees to set on pull requests (additive - merges with ecosystem-level assignees)", |
| 1221 | + "type": "array", |
| 1222 | + "items": { |
| 1223 | + "type": "string", |
| 1224 | + "minLength": 1 |
| 1225 | + }, |
| 1226 | + "minItems": 1, |
| 1227 | + "uniqueItems": true |
| 1228 | + }, |
| 1229 | + "milestone": { |
| 1230 | + "description": "Associate all pull requests raised for this group with a milestone. You need to specify the numeric identifier of the milestone and not its label.", |
| 1231 | + "type": "integer", |
| 1232 | + "minimum": 1 |
| 1233 | + }, |
| 1234 | + "target-branch": { |
| 1235 | + "description": "Specify a different branch for manifest files and for pull requests.", |
| 1236 | + "type": "string", |
| 1237 | + "minLength": 1 |
| 1238 | + }, |
| 1239 | + "commit-message": { |
| 1240 | + "description": "Commit message preferences for the group", |
| 1241 | + "type": "object", |
| 1242 | + "properties": { |
| 1243 | + "prefix": { |
| 1244 | + "description": "A prefix for all commit messages", |
| 1245 | + "type": "string", |
| 1246 | + "maxLength": 50 |
| 1247 | + }, |
| 1248 | + "prefix-development": { |
| 1249 | + "description": "A separate prefix for all commit messages that update dependencies in the Development dependency group", |
| 1250 | + "type": "string", |
| 1251 | + "maxLength": 50 |
| 1252 | + }, |
| 1253 | + "include": { |
| 1254 | + "description": "Specifies that any prefix is followed by a list of the dependencies updated in the commit", |
| 1255 | + "type": "string", |
| 1256 | + "enum": ["scope"], |
| 1257 | + "default": "scope" |
| 1258 | + } |
| 1259 | + }, |
| 1260 | + "anyOf": [ |
| 1261 | + { "required": ["prefix"] }, |
| 1262 | + { "required": ["prefix-development"] }, |
| 1263 | + { "required": ["include"] } |
| 1264 | + ], |
| 1265 | + "additionalProperties": false |
| 1266 | + }, |
| 1267 | + "pull-request-branch-name": { |
| 1268 | + "description": "Pull request branch name preferences for the group", |
| 1269 | + "type": "object", |
| 1270 | + "properties": { |
| 1271 | + "separator": { |
| 1272 | + "description": "Change separator for PR branch name", |
| 1273 | + "type": "string", |
| 1274 | + "default": "/", |
| 1275 | + "enum": ["-", "_", "/"] |
| 1276 | + } |
| 1277 | + }, |
| 1278 | + "required": ["separator"], |
| 1279 | + "additionalProperties": false |
| 1280 | + } |
| 1281 | + }, |
| 1282 | + "required": ["schedule"] |
1135 | 1283 | } |
1136 | 1284 | }, |
1137 | 1285 | "properties": { |
|
1155 | 1303 | }, |
1156 | 1304 | "registries": { |
1157 | 1305 | "$ref": "#/definitions/registry" |
| 1306 | + }, |
| 1307 | + "multi-ecosystem-groups": { |
| 1308 | + "type": "object", |
| 1309 | + "description": "Define groups that span multiple package ecosystems, allowing consolidated pull requests across different ecosystems", |
| 1310 | + "additionalProperties": { |
| 1311 | + "$ref": "#/definitions/multi-ecosystem-group" |
| 1312 | + }, |
| 1313 | + "minProperties": 1 |
1158 | 1314 | } |
1159 | 1315 | }, |
1160 | 1316 | "required": ["version", "updates"], |
|
0 commit comments