Skip to content

Commit 6457e86

Browse files
Add multi-ecosystem support to the Dependabot schema (SchemaStore#5164)
1 parent c3565e4 commit 6457e86

File tree

1 file changed

+156
-0
lines changed

1 file changed

+156
-0
lines changed

src/schemas/json/dependabot-2.0.json

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,6 +1045,21 @@
10451045
"versioning-strategy": {
10461046
"$ref": "#/definitions/versioning-strategy",
10471047
"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
10481063
}
10491064
},
10501065
"allOf": [
@@ -1056,6 +1071,15 @@
10561071
{ "required": ["directories"] },
10571072
{ "required": ["directory"] }
10581073
]
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+
}
10591083
}
10601084
]
10611085
},
@@ -1132,6 +1156,130 @@
11321156
}
11331157
},
11341158
"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"]
11351283
}
11361284
},
11371285
"properties": {
@@ -1155,6 +1303,14 @@
11551303
},
11561304
"registries": {
11571305
"$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
11581314
}
11591315
},
11601316
"required": ["version", "updates"],

0 commit comments

Comments
 (0)