|
873 | 873 | "type": "object" |
874 | 874 | }, |
875 | 875 | "DisabledDict": { |
| 876 | + "additionalProperties": false, |
876 | 877 | "properties": { |
877 | 878 | "reason": { |
878 | 879 | "title": "Reason", |
|
995 | 996 | "title": "EditActionModel", |
996 | 997 | "type": "object" |
997 | 998 | }, |
| 999 | + "FileFilters": { |
| 1000 | + "properties": { |
| 1001 | + "include": { |
| 1002 | + "description": "Glob patterns of files to include for this scope. Empty means 'include everything' before exclusions. Examples: ('src/**/*.py', 'Makefile')", |
| 1003 | + "items": { |
| 1004 | + "type": "string" |
| 1005 | + }, |
| 1006 | + "title": "Include", |
| 1007 | + "type": "array" |
| 1008 | + }, |
| 1009 | + "exclude": { |
| 1010 | + "description": "Glob patterns of files to exclude from this scope. Evaluated after `include` and takes precedence. Examples: ('**/tests/**', '*.md')", |
| 1011 | + "items": { |
| 1012 | + "type": "string" |
| 1013 | + }, |
| 1014 | + "title": "Exclude", |
| 1015 | + "type": "array" |
| 1016 | + } |
| 1017 | + }, |
| 1018 | + "title": "FileFilters", |
| 1019 | + "type": "object" |
| 1020 | + }, |
998 | 1021 | "GhaActionModel": { |
999 | 1022 | "additionalProperties": false, |
1000 | 1023 | "properties": { |
|
1284 | 1307 | "title": "MergeProtectionRulesModel", |
1285 | 1308 | "type": "array" |
1286 | 1309 | }, |
1287 | | - "MergeProtectionsModel": { |
| 1310 | + "MergeProtections": { |
1288 | 1311 | "additionalProperties": false, |
1289 | 1312 | "properties": { |
1290 | 1313 | "reporting_method": { |
|
1304 | 1327 | "type": "boolean" |
1305 | 1328 | } |
1306 | 1329 | }, |
1307 | | - "title": "MergeProtectionsModel", |
| 1330 | + "title": "MergeProtections", |
1308 | 1331 | "type": "object" |
1309 | 1332 | }, |
1310 | | - "MergeQueueModel": { |
| 1333 | + "MergeQueue": { |
1311 | 1334 | "additionalProperties": false, |
1312 | 1335 | "properties": { |
1313 | 1336 | "max_parallel_checks": { |
|
1340 | 1363 | "default": "queued", |
1341 | 1364 | "description": "The label to add on pull requests when they are added to the merge queue.", |
1342 | 1365 | "title": "Queued Label" |
| 1366 | + }, |
| 1367 | + "dequeued_label": { |
| 1368 | + "anyOf": [ |
| 1369 | + { |
| 1370 | + "type": "string" |
| 1371 | + }, |
| 1372 | + { |
| 1373 | + "type": "null" |
| 1374 | + } |
| 1375 | + ], |
| 1376 | + "default": "dequeued", |
| 1377 | + "description": "The label to add on pull requests when they are removed from the merge queue.", |
| 1378 | + "title": "Dequeued Label" |
| 1379 | + }, |
| 1380 | + "mode": { |
| 1381 | + "default": "serial", |
| 1382 | + "description": "Defines how the merge queue schedules pull requests.\n- `serial`: PRs are tested cumulatively.\n- `parallel`: PRs whose scopes don't overlap are tested in parallel.\n", |
| 1383 | + "enum": [ |
| 1384 | + "serial", |
| 1385 | + "parallel" |
| 1386 | + ], |
| 1387 | + "title": "Mode", |
| 1388 | + "type": "string" |
1343 | 1389 | } |
1344 | 1390 | }, |
1345 | | - "title": "MergeQueueModel", |
| 1391 | + "title": "MergeQueue", |
1346 | 1392 | "type": "object" |
1347 | 1393 | }, |
1348 | 1394 | "NegationCondition": { |
|
2347 | 2393 | }, |
2348 | 2394 | "merge_conditions": { |
2349 | 2395 | "$ref": "#/$defs/QueueRuleMergeConditionsModel", |
2350 | | - "description": "The list of conditions to match to get the queued pull request merged. This automatically includes the `queue_conditions`. In case of speculative merge pull request, the merge conditions starting by check- are evaluated against the temporary pull request instead of the original one." |
| 2396 | + "description": "The list of conditions to match to get the queued pull request merged. In case of draft pull request, the merge conditions for checks are evaluated against the temporary pull request instead of the original one." |
2351 | 2397 | }, |
2352 | 2398 | "branch_protection_injection_mode": { |
2353 | 2399 | "default": "queue", |
|
2465 | 2511 | } |
2466 | 2512 | ], |
2467 | 2513 | "default": null, |
2468 | | - "description": "Merge method to use. If no value is set, Mergify uses the first authorized method available in the repository configuration. `fast-forward` is not supported on queues with `max_parallel_checks > 1`, `batch_size > 1`, or with `allow_inplace_checks` set to `false`.", |
| 2514 | + "description": "Merge method to use. If no value is set, Mergify uses the first authorized method available in the repository configuration. `fast-forward` is not supported on draft PR (`max_parallel_checks > 1`, or `batch_size > 1`, or two-step CI).", |
2469 | 2515 | "title": "Merge Method" |
2470 | 2516 | }, |
2471 | 2517 | "autosquash": { |
|
2565 | 2611 | }, |
2566 | 2612 | "merge_conditions": { |
2567 | 2613 | "$ref": "#/$defs/QueueRuleMergeConditionsModel", |
2568 | | - "description": "The list of conditions to match to get the queued pull request merged. This automatically includes the `queue_conditions`. In case of speculative merge pull request, the merge conditions starting by check- are evaluated against the temporary pull request instead of the original one." |
| 2614 | + "description": "The list of conditions to match to get the queued pull request merged. In case of draft pull request, the merge conditions for checks are evaluated against the temporary pull request instead of the original one." |
2569 | 2615 | }, |
2570 | 2616 | "branch_protection_injection_mode": { |
2571 | 2617 | "default": "queue", |
|
2683 | 2729 | } |
2684 | 2730 | ], |
2685 | 2731 | "default": null, |
2686 | | - "description": "Merge method to use. If no value is set, Mergify uses the first authorized method available in the repository configuration. `fast-forward` is not supported on queues with `max_parallel_checks > 1`, `batch_size > 1`, or with `allow_inplace_checks` set to `false`.", |
| 2732 | + "description": "Merge method to use. If no value is set, Mergify uses the first authorized method available in the repository configuration. `fast-forward` is not supported on draft PR (`max_parallel_checks > 1`, or `batch_size > 1`, or two-step CI).", |
2687 | 2733 | "title": "Merge Method" |
2688 | 2734 | }, |
2689 | 2735 | "autosquash": { |
|
2849 | 2895 | }, |
2850 | 2896 | { |
2851 | 2897 | "additionalProperties": { |
2852 | | - "default": 1, |
2853 | 2898 | "maximum": 65535, |
2854 | 2899 | "minimum": 1, |
2855 | 2900 | "type": "integer" |
|
2871 | 2916 | }, |
2872 | 2917 | { |
2873 | 2918 | "additionalProperties": { |
2874 | | - "default": 1, |
2875 | 2919 | "maximum": 65535, |
2876 | 2920 | "minimum": 1, |
2877 | 2921 | "type": "integer" |
|
2893 | 2937 | }, |
2894 | 2938 | { |
2895 | 2939 | "additionalProperties": { |
2896 | | - "default": 1, |
2897 | 2940 | "maximum": 65535, |
2898 | 2941 | "minimum": 1, |
2899 | 2942 | "type": "integer" |
|
2963 | 3006 | "title": "RuleConditionModel", |
2964 | 3007 | "type": "string" |
2965 | 3008 | }, |
| 3009 | + "Scopes": { |
| 3010 | + "additionalProperties": false, |
| 3011 | + "properties": { |
| 3012 | + "source": { |
| 3013 | + "anyOf": [ |
| 3014 | + { |
| 3015 | + "$ref": "#/$defs/SourceFiles" |
| 3016 | + }, |
| 3017 | + { |
| 3018 | + "$ref": "#/$defs/SourceManual" |
| 3019 | + }, |
| 3020 | + { |
| 3021 | + "type": "null" |
| 3022 | + } |
| 3023 | + ], |
| 3024 | + "default": null, |
| 3025 | + "description": "Where scopes come from. `files` uses file-pattern rules (`gha-mergify-ci-scopes` must have been setup on your pull request); `manual` uses scopes sent via API or `mergify scopes-send`; `None` disables scoping.", |
| 3026 | + "title": "Source" |
| 3027 | + }, |
| 3028 | + "merge_queue_scope": { |
| 3029 | + "anyOf": [ |
| 3030 | + { |
| 3031 | + "type": "string" |
| 3032 | + }, |
| 3033 | + { |
| 3034 | + "type": "null" |
| 3035 | + } |
| 3036 | + ], |
| 3037 | + "default": "merge-queue", |
| 3038 | + "description": "Optional scope name automatically applied to merge queue PRs. Set to `None` to disable.", |
| 3039 | + "title": "Merge Queue Scope" |
| 3040 | + } |
| 3041 | + }, |
| 3042 | + "title": "Scopes", |
| 3043 | + "type": "object" |
| 3044 | + }, |
| 3045 | + "SourceFiles": { |
| 3046 | + "properties": { |
| 3047 | + "files": { |
| 3048 | + "description": "Mapping of scope name to its file filters. A file belongs to a scope if it matches the scope's `include` patterns and not its `exclude` patterns.", |
| 3049 | + "patternProperties": { |
| 3050 | + "^[A-Za-z0-9_-]+$": { |
| 3051 | + "$ref": "#/$defs/FileFilters" |
| 3052 | + } |
| 3053 | + }, |
| 3054 | + "propertyNames": { |
| 3055 | + "minLength": 1 |
| 3056 | + }, |
| 3057 | + "title": "Files", |
| 3058 | + "type": "object" |
| 3059 | + } |
| 3060 | + }, |
| 3061 | + "required": [ |
| 3062 | + "files" |
| 3063 | + ], |
| 3064 | + "title": "SourceFiles", |
| 3065 | + "type": "object" |
| 3066 | + }, |
| 3067 | + "SourceManual": { |
| 3068 | + "properties": { |
| 3069 | + "manual": { |
| 3070 | + "description": "Scopes are manually sent via API or `mergify scopes-send`", |
| 3071 | + "title": "Manual", |
| 3072 | + "type": "null" |
| 3073 | + } |
| 3074 | + }, |
| 3075 | + "required": [ |
| 3076 | + "manual" |
| 3077 | + ], |
| 3078 | + "title": "SourceManual", |
| 3079 | + "type": "object" |
| 3080 | + }, |
2966 | 3081 | "SquashActionModel": { |
2967 | 3082 | "additionalProperties": false, |
2968 | 3083 | "properties": { |
|
3053 | 3168 | "defaults": { |
3054 | 3169 | "$ref": "#/$defs/DefaultsRulesModel" |
3055 | 3170 | }, |
| 3171 | + "scopes": { |
| 3172 | + "$ref": "#/$defs/Scopes" |
| 3173 | + }, |
3056 | 3174 | "commands_restrictions": { |
3057 | 3175 | "$ref": "#/$defs/CommandsRestrictionsRulesModel" |
3058 | 3176 | }, |
|
3072 | 3190 | "$ref": "#/$defs/PriorityRulesModel" |
3073 | 3191 | }, |
3074 | 3192 | "merge_queue": { |
3075 | | - "$ref": "#/$defs/MergeQueueModel" |
| 3193 | + "$ref": "#/$defs/MergeQueue" |
3076 | 3194 | }, |
3077 | 3195 | "merge_protections_settings": { |
3078 | | - "$ref": "#/$defs/MergeProtectionsModel" |
| 3196 | + "$ref": "#/$defs/MergeProtections" |
3079 | 3197 | } |
3080 | 3198 | }, |
3081 | 3199 | "$schema": "https://json-schema.org/draft/2020-12/schema", |
|
0 commit comments