From 5e081d54be00f279ca7a8cc2f926c884d4d77e7a Mon Sep 17 00:00:00 2001 From: sirosen <1300022+sirosen@users.noreply.github.com> Date: Sun, 4 Oct 2026 10:30:41 +0000 Subject: [PATCH] [vendor-schemas] automated update --- .venv | 1 + CHANGELOG.rst | 3 + .../builtin_schemas/vendor/buildkite.json | 9 +- .../builtin_schemas/vendor/circle-ci.json | 1145 +++++++++++++---- .../vendor/citation-file-format.json | 2 +- .../builtin_schemas/vendor/gitlab-ci.json | 5 +- .../builtin_schemas/vendor/mergify.json | 135 +- .../builtin_schemas/vendor/renovate.json | 15 +- .../vendor/sha256/buildkite.sha256 | 2 +- .../vendor/sha256/circle-ci.sha256 | 2 +- .../vendor/sha256/citation-file-format.sha256 | 2 +- .../vendor/sha256/gitlab-ci.sha256 | 2 +- .../vendor/sha256/mergify.sha256 | 2 +- .../vendor/sha256/renovate.sha256 | 2 +- .../vendor/sha256/snapcraft.sha256 | 2 +- .../builtin_schemas/vendor/snapcraft.json | 12 + 16 files changed, 1012 insertions(+), 329 deletions(-) create mode 100644 .venv diff --git a/.venv b/.venv new file mode 100644 index 000000000..767cba080 --- /dev/null +++ b/.venv @@ -0,0 +1 @@ +.tox/vendor-schemas diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 05bd6e8e2..7013312c2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -10,6 +10,9 @@ Unreleased .. vendor-insert-here +- Update vendored schemas: buildkite, circle-ci, citation-file-format, gitlab-ci, + mergify, renovate, snapcraft (2026-10-04) + 0.38.2 ------ diff --git a/src/check_jsonschema/builtin_schemas/vendor/buildkite.json b/src/check_jsonschema/builtin_schemas/vendor/buildkite.json index 9951afaf8..2eadb2475 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/buildkite.json +++ b/src/check_jsonschema/builtin_schemas/vendor/buildkite.json @@ -324,9 +324,14 @@ "description": "A unique identifier for a step, must not resemble a UUID", "examples": ["deploy-staging", "test-integration"], "maxLength": 100, - "pattern": "^[a-zA-Z0-9_\\-:${}.,]+$", + "pattern": "^[a-zA-Z0-9_\\-:${}]+$", "not": { - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" + "anyOf": [ + { + "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" + }, + { "pattern": "\\{\\{matrix" } + ] } }, "label": { diff --git a/src/check_jsonschema/builtin_schemas/vendor/circle-ci.json b/src/check_jsonschema/builtin_schemas/vendor/circle-ci.json index 9d85f558d..a6f31e32b 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/circle-ci.json +++ b/src/check_jsonschema/builtin_schemas/vendor/circle-ci.json @@ -10,6 +10,24 @@ ], "markdownDescription": "Specify when to enable or disable the step. Takes the following values: `always`, `on_success`, `on_fail` (default: `on_success`)" }, + "stringOrList": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "expression": { + "type": "string", + "pattern": "<<.*>>", + "markdownDescription": "An expression such as `<< parameters.name >>`, filled in when the config is compiled" + }, "jobInvocation": { "oneOf": [ { @@ -51,6 +69,57 @@ "plan_name": { "type": "string", "markdownDescription": "Required plan name for release jobs." + }, + "validation": { + "markdownDescription": "Turns on the release validation engine, which gates the release on signals from your monitoring tool and triggers your rollback pipeline when a release fails.", + "properties": { + "enabled": { + "markdownDescription": "Turns on release validation for this release job (required)." + }, + "evaluation_time": { + "default": "20m", + "markdownDescription": "How long the engine waits for validation signals before treating the release as successful, for example `30m` (default: `20m`)." + }, + "auto_rollback_on_failure": { + "markdownDescription": "When `true`, the engine triggers your rollback pipeline if validation fails during the evaluation window." + }, + "webhooks": { + "markdownDescription": "Webhook validation checks, each one named signal from a monitoring provider. When omitted, a catch-all check accepts any signal.", + "items": { + "properties": { + "name": { + "markdownDescription": "Identifier for this check. Your monitoring tool must send a matching `signal_name` (required)." + }, + "provider": { + "anyOf": [ + { + "enum": [ + "datadog", + "prometheus", + "grafana", + "alertmanager", + "custom" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "One of `datadog`, `prometheus`, `grafana`, `alertmanager` or `custom` (required)." + }, + "data_points": { + "markdownDescription": "Maps fields in the incoming webhook payload to the values CircleCI matches on. Provider defaults apply to any key you omit." + }, + "fail_when": { + "markdownDescription": "Expression that decides when a webhook event counts as a failure. Provider defaults apply when you omit it." + }, + "max_failures": { + "markdownDescription": "Number of matching failures before this check fails." + } + } + } + } + } } }, "additionalProperties": true @@ -75,12 +144,31 @@ "key" ], "properties": { + "type": { + "enum": [ + "lock", + "unlock" + ] + }, "key": { - "type": "string", - "markdownDescription": "Required key for lock/unlock jobs." + "markdownDescription": "Required key for lock/unlock jobs. At most 512 characters: letters, digits, `.`, `:`, `/`, `_` and `-`.", + "anyOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 512, + "pattern": "^[A-Za-z\\d.:/_-]*$" + }, + { + "$ref": "#/definitions/expression" + } + ] + }, + "parameters": { + "$ref": "#/definitions/jobParameters" } }, - "additionalProperties": true + "additionalProperties": false }, "else": { "if": { @@ -127,6 +215,7 @@ "markdownDescription": "Validation: The job must adhere to the structure of a build job.", "properties": { "description": { + "markdownDescription": "A description of the job.", "type": "string" }, "type": { @@ -134,26 +223,19 @@ "markdownDescription": "The job type. If not specified, defaults to build." }, "parallelism": { - "markdownDescription": "A integer or a parameter evaluating to a integer", + "markdownDescription": "An integer, or an expression that evaluates to one", "anyOf": [ { - "oneOf": [ - { - "type": "string", - "pattern": " *<< *parameters.([^ ]+) *>> *" - }, - { - "type": "string", - "pattern": " *<< *pipeline.parameters.([^ ]+) *>> *" - } - ] + "type": "integer", + "minimum": 1 }, { - "type": "integer" + "$ref": "#/definitions/expression" } ] }, "macos": { + "markdownDescription": "Options for the [macOS executor](https://circleci.com/docs/configuration-reference#macos)", "type": "object", "properties": { "xcode": { @@ -166,7 +248,26 @@ "type": "string" }, "shell": { - "type": "string" + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "code_signing": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9-]+$", + "maxLength": 50 + }, + "markdownDescription": "Names of the code signing bundles the job may install with the `install_signing_bundle` step" } }, "required": [ @@ -175,9 +276,10 @@ "additionalProperties": false }, "resource_class": { - "type": "string" + "$ref": "#/definitions/resourceClass" }, "docker": { + "markdownDescription": "Options for the [docker executor](https://circleci.com/docs/configuration-reference#docker)", "type": "array", "minItems": 1, "items": { @@ -280,6 +382,27 @@ } ] }, + "gcp_auth": { + "type": "object", + "markdownDescription": "Authenticate to Google Artifact Registry with OIDC", + "properties": { + "oidc_service_account": { + "type": "string" + }, + "workload_identity_pool": { + "type": "string" + }, + "workload_identity_provider": { + "type": "string" + } + }, + "required": [ + "oidc_service_account", + "workload_identity_pool", + "workload_identity_provider" + ], + "additionalProperties": false + }, "auth": { "type": "object", "properties": { @@ -304,6 +427,7 @@ } }, "steps": { + "markdownDescription": "https://circleci.com/docs/reference/configuration-reference/#steps\n\nThe steps the job runs, in order.", "type": "array", "items": { "$ref": "#/definitions/step" @@ -319,13 +443,20 @@ "properties": { "caches": { "type": "string", - "pattern": "^([1-9]|1[0-5])d$" + "pattern": "^([1-9]|[12][0-9]|30)d$" } }, "additionalProperties": false }, "circleci_ip_ranges": { - "type": "boolean", + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/expression" + } + ], "markdownDescription": "Enable running jobs with a set of well-defined IP address ranges." }, "machine": { @@ -374,27 +505,32 @@ }, "docker_layer_caching": { "markdownDescription": "Set to `true` to enable [Docker Layer Caching](https://circleci.com/docs/docker-layer-caching). Note: If you haven't already, you must open a support ticket to have a CircleCI Sales representative contact you about enabling this feature on your account for an additional fee.", - "anyOf": [ - { - "type": "string", - "pattern": " *<< *parameters.([^ ]+) *>> *" - }, - { - "type": "boolean" - }, + "type": "boolean" + }, + "resource_class": { + "type": "string" + }, + "shell": { + "oneOf": [ { - "type": "number" + "type": "string" }, { - "type": "string" + "type": "array", + "items": { + "type": "string" + } } ] }, - "resource_class": { - "type": "string" - }, - "shell": { - "type": "string" + "code_signing": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9-]+$", + "maxLength": 50 + }, + "markdownDescription": "Names of the code signing bundles the job may install with the `install_signing_bundle` step" } }, "additionalProperties": false @@ -402,6 +538,7 @@ ] }, "environment": { + "markdownDescription": "A map of environment variable names and values, for every step of the job.", "oneOf": [ { "markdownDescription": "A map of environment variable names and values.", @@ -432,6 +569,7 @@ ] }, "executor": { + "markdownDescription": "https://circleci.com/docs/reference/reusing-config/#executor\n\nThe executor to run the job in, defined in the top-level `executors` map or by an orb.", "oneOf": [ { "type": "string", @@ -454,6 +592,7 @@ ] }, "shell": { + "markdownDescription": "Shell to use for execution command in all steps. Can be overridden by shell in each step (default: See [Default Shell Options](https://circleci.com/docs/configuration-reference#default-shell-options)", "oneOf": [ { "type": "string" @@ -467,62 +606,7 @@ ] }, "parameters": { - "markdownDescription": "https://circleci.com/docs/reusing-config#using-the-parameters-declaration\n\nA map of parameter keys.", - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "boolean", - "string", - "steps", - "enum", - "executor", - "integer", - "env_var_name" - ], - "markdownDescription": "The parameter type. See [Parameter Types](https://circleci.com/docs/reusing-config#parameter-syntax) for details:\n- `boolean`: A boolean parameter\n- `string`: A string parameter \n- `integer`: An integer parameter\n- `enum`: An enum parameter (list of allowed string values)\n- `executor`: An executor parameter (allows job to choose executor)\n- `steps`: A steps parameter (allows mixing predefined and user-defined steps)\n- `env_var_name`: An environment variable name parameter (must match POSIX_NAME regexp)" - }, - "default": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "integer" - }, - { - "type": "array", - "items": { - "$ref": "#/definitions/step" - } - } - ] - }, - "description": { - "type": "string", - "markdownDescription": "A description of the parameter" - }, - "enum": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "markdownDescription": "List of allowed values for an `enum` type parameter" - } - }, - "additionalProperties": false, - "required": [ - "type" - ] - }, - "minProperties": 1 + "$ref": "#/definitions/jobParameters" } }, "required": [ @@ -700,7 +784,26 @@ "type": "string" }, "shell": { - "type": "string" + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "code_signing": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9-]+$", + "maxLength": 50 + }, + "markdownDescription": "Names of the code signing bundles the job may install with the `install_signing_bundle` step" } }, "required": [ @@ -709,7 +812,7 @@ "additionalProperties": false }, "resource_class": { - "type": "string" + "$ref": "#/definitions/resourceClass" }, "docker": { "type": "array", @@ -814,6 +917,27 @@ } ] }, + "gcp_auth": { + "type": "object", + "markdownDescription": "Authenticate to Google Artifact Registry with OIDC", + "properties": { + "oidc_service_account": { + "type": "string" + }, + "workload_identity_pool": { + "type": "string" + }, + "workload_identity_provider": { + "type": "string" + } + }, + "required": [ + "oidc_service_account", + "workload_identity_pool", + "workload_identity_provider" + ], + "additionalProperties": false + }, "auth": { "type": "object", "properties": { @@ -887,27 +1011,32 @@ }, "docker_layer_caching": { "markdownDescription": "Set to `true` to enable [Docker Layer Caching](https://circleci.com/docs/docker-layer-caching). Note: If you haven't already, you must open a support ticket to have a CircleCI Sales representative contact you about enabling this feature on your account for an additional fee.", - "anyOf": [ - { - "type": "string", - "pattern": " *<< *parameters.([^ ]+) *>> *" - }, - { - "type": "boolean" - }, + "type": "boolean" + }, + "resource_class": { + "type": "string" + }, + "shell": { + "oneOf": [ { - "type": "number" + "type": "string" }, { - "type": "string" + "type": "array", + "items": { + "type": "string" + } } ] }, - "resource_class": { - "type": "string" - }, - "shell": { - "type": "string" + "code_signing": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9-]+$", + "maxLength": 50 + }, + "markdownDescription": "Names of the code signing bundles the job may install with the `install_signing_bundle` step" } }, "additionalProperties": false @@ -1198,8 +1327,18 @@ "markdownDescription": "In which directory to run this step (default: `working_directory` of the job)" }, "no_output_timeout": { - "type": "string", - "pattern": "\\d+(\\.\\d+)?[mhs]", + "anyOf": [ + { + "type": "string", + "pattern": "\\d+(\\.\\d+)?[mhs]" + }, + { + "type": "integer" + }, + { + "$ref": "#/definitions/expression" + } + ], "default": "10m", "markdownDescription": "Elapsed time the command can run without output. The string is a decimal with unit suffix, such as \"20m\", \"1.25h\", \"5s\" (default: 10 minutes)" }, @@ -1207,15 +1346,231 @@ "$ref": "#/definitions/stepWhen" }, "max_auto_reruns": { - "type": "integer", - "minimum": 1, - "maximum": 5, + "anyOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 5 + }, + { + "$ref": "#/definitions/expression" + } + ], "markdownDescription": "Maximum number of automatic reruns for this step" }, "auto_rerun_delay": { - "type": "string", - "pattern": "^(10|[1-9])m|([1-9][0-9]*)s$", + "anyOf": [ + { + "type": "string", + "pattern": "^((10|[1-9])m|([1-9][0-9]*)s)$" + }, + { + "$ref": "#/definitions/expression" + } + ], "markdownDescription": "Delay before automatic rerun of this step" + }, + "teardown": { + "type": "array", + "markdownDescription": "Steps to run at the end of the job, in reverse order, whether or not it succeeded: `run`, `save_cache`, `persist_to_workspace`, `store_artifacts` and `store_test_results`.", + "items": { + "type": "object", + "minProperties": 1, + "maxProperties": 1, + "additionalProperties": false, + "properties": { + "run": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "markdownDescription": "Command to run via the shell" + }, + "name": { + "type": "string", + "markdownDescription": "Title of the step to be shown in the CircleCI UI (default: full `command`)" + }, + "when": { + "$ref": "#/definitions/stepWhen" + }, + "background": { + "enum": [ + false + ], + "markdownDescription": "A teardown step can't run in the background: it would be cancelled as soon as it started." + }, + "max_auto_reruns": { + "anyOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 5 + }, + { + "$ref": "#/definitions/expression" + } + ] + }, + "auto_rerun_delay": { + "anyOf": [ + { + "type": "string", + "pattern": "^((10|[1-9])m|([1-9][0-9]*)s)$" + }, + { + "$ref": "#/definitions/expression" + } + ] + } + }, + "not": { + "required": [ + "teardown" + ] + }, + "if": { + "required": [ + "auto_rerun_delay" + ] + }, + "then": { + "required": [ + "max_auto_reruns" + ] + } + } + ] + }, + "save_cache": { + "markdownDescription": "https://circleci.com/docs/configuration-reference#save_cache\n\nGenerates and stores a cache of a file or directory of files such as dependencies or source code in our object storage. Later jobs can restore this cache using the `restore_cache` step.", + "type": "object", + "required": [ + "paths", + "key" + ], + "properties": { + "paths": { + "$ref": "#/definitions/stringOrList", + "markdownDescription": "List of directories which should be added to the cache" + }, + "key": { + "type": "string", + "minLength": 1, + "markdownDescription": "Unique identifier for this cache" + }, + "name": { + "type": "string", + "markdownDescription": "Title of the step to be shown in the CircleCI UI (default: 'Saving Cache')" + }, + "when": { + "$ref": "#/definitions/stepWhen" + } + }, + "additionalProperties": false + }, + "persist_to_workspace": { + "markdownDescription": "https://circleci.com/docs/configuration-reference#persist_to_workspace\n\nSpecial step used to persist a temporary file to be used by another job in the workflow", + "type": "object", + "required": [ + "root" + ], + "oneOf": [ + { + "required": [ + "paths" + ] + }, + { + "required": [ + "path" + ] + } + ], + "properties": { + "root": { + "type": "string", + "markdownDescription": "Either an absolute path or a path relative to `working_directory`" + }, + "paths": { + "$ref": "#/definitions/stringOrList", + "markdownDescription": "Glob identifying file(s), or a non-glob path to a directory to add to the shared workspace. Interpreted as relative to the workspace root. Must not be the workspace root itself." + }, + "path": { + "type": "string", + "markdownDescription": "A single glob or path to add to the shared workspace, instead of `paths`" + }, + "name": { + "type": "string", + "markdownDescription": "Title of the step to be shown in the CircleCI UI" + }, + "when": { + "$ref": "#/definitions/stepWhen" + } + }, + "additionalProperties": false + }, + "store_artifacts": { + "markdownDescription": "https://circleci.com/docs/configuration-reference#store_artifacts\n\nStep to store artifacts (for example logs, binaries, etc) to be available in the web app or through the API.", + "type": "object", + "required": [ + "path" + ], + "properties": { + "path": { + "type": "string", + "markdownDescription": "Directory in the primary container to save as job artifacts" + }, + "destination": { + "type": "string", + "markdownDescription": "Prefix added to the artifact paths in the artifacts API (default: the directory of the file specified in `path`)" + }, + "name": { + "type": "string", + "markdownDescription": "Title of the step to be shown in the CircleCI UI" + }, + "when": { + "$ref": "#/definitions/stepWhen" + } + }, + "additionalProperties": false + }, + "store_test_results": { + "markdownDescription": "https://circleci.com/docs/configuration-reference#storetestresults\n\nSpecial step used to upload test results so they display in builds' Test Summary section and can be used for timing analysis. To also see test result as build artifacts, please use the `store_artifacts` step.", + "type": "object", + "required": [ + "path" + ], + "properties": { + "path": { + "type": "string", + "markdownDescription": "Path (absolute, or relative to your `working_directory`) to directory containing subdirectories of JUnit XML or Cucumber JSON test metadata files" + }, + "name": { + "type": "string", + "markdownDescription": "Title of the step to be shown in the CircleCI UI" + }, + "when": { + "$ref": "#/definitions/stepWhen" + } + }, + "additionalProperties": false + } + } + } + }, + "pwd": { + "type": "string" + }, + "path": { + "type": "string" } }, "required": [ @@ -1233,10 +1588,15 @@ "required": [ "max_auto_reruns" ] - } + }, + "additionalProperties": false } ] }, + "deploy": { + "markdownDescription": "https://circleci.com/docs/reference/configuration-reference/#deploy-deprecated\n\n**Deprecated.** Replace it with `run`, which takes the same options.", + "$ref": "#/definitions/step/oneOf/1/properties/run" + }, "checkout": { "markdownDescription": "https://circleci.com/docs/configuration-reference#checkout\n\nSpecial step used to check out source code to the configured `path` (defaults to the `working_directory`). The reason this is a special step is because it is more of a helper function designed to make checking out code easy for you. If you require doing git over HTTPS you should not use this step as it configures git to checkout over ssh.", "oneOf": [ @@ -1292,23 +1652,18 @@ "default": false, "markdownDescription": "When `docker_layer_caching` is set to `true`, CircleCI will try to reuse Docker Images (layers) built during a previous job or workflow (Paid feature)" }, + "prefer_same_region": { + "type": "boolean", + "default": false, + "markdownDescription": "Set this to `true` to pull images from the same region as the VM where possible. If the pull fails, CircleCI falls back to the image's original region" + }, "version": { - "markdownDescription": "If your build requires a specific docker image, you can set it as an image attribute", + "markdownDescription": "The Docker version to use, such as `docker29`, `edge` or `previous`, or `default`. The versions offered depend on the job's resource class.", "anyOf": [ { "type": "string", "enum": [ - "20.10.24", - "20.10.23", - "20.10.18", - "20.10.17", - "20.10.14", - "20.10.12", - "20.10.11", - "20.10.7", - "20.10.6", - "20.10.2", - "19.03.13" + "default" ] }, { @@ -1318,6 +1673,10 @@ }, "when": { "$ref": "#/definitions/stepWhen" + }, + "resource_class": { + "type": "string", + "markdownDescription": "Not a `setup_remote_docker` option. It is accepted, and ignored." } }, "additionalProperties": false @@ -1333,14 +1692,12 @@ ], "properties": { "paths": { - "type": "array", - "items": { - "type": "string" - }, + "$ref": "#/definitions/stringOrList", "markdownDescription": "List of directories which should be added to the cache" }, "key": { "type": "string", + "minLength": 1, "markdownDescription": "Unique identifier for this cache" }, "name": { @@ -1383,10 +1740,7 @@ ], "properties": { "keys": { - "type": "array", - "items": { - "type": "string" - }, + "$ref": "#/definitions/stringOrList", "markdownDescription": "List of cache keys to lookup for a cache to restore. Only first existing key will be restored." }, "name": { @@ -1451,8 +1805,19 @@ "markdownDescription": "https://circleci.com/docs/configuration-reference#persist_to_workspace\n\nSpecial step used to persist a temporary file to be used by another job in the workflow", "type": "object", "required": [ - "root", - "paths" + "root" + ], + "oneOf": [ + { + "required": [ + "paths" + ] + }, + { + "required": [ + "path" + ] + } ], "properties": { "root": { @@ -1460,12 +1825,13 @@ "markdownDescription": "Either an absolute path or a path relative to `working_directory`" }, "paths": { - "type": "array", - "items": { - "type": "string" - }, + "$ref": "#/definitions/stringOrList", "markdownDescription": "Glob identifying file(s), or a non-glob path to a directory to add to the shared workspace. Interpreted as relative to the workspace root. Must not be the workspace root itself." }, + "path": { + "type": "string", + "markdownDescription": "A single glob or path to add to the shared workspace, instead of `paths`" + }, "name": { "type": "string", "markdownDescription": "Title of the step to be shown in the CircleCI UI" @@ -1510,10 +1876,7 @@ "type": "object", "properties": { "fingerprints": { - "type": "array", - "items": { - "type": "string" - }, + "$ref": "#/definitions/stringOrList", "markdownDescription": "List of fingerprints corresponding to the keys to be added" }, "when": { @@ -1523,6 +1886,41 @@ "additionalProperties": false } ] + }, + "install_signing_bundle": { + "markdownDescription": "Installs the code signing bundles named in the executor's `code_signing` list. macOS and machine executors only.", + "type": [ + "object", + "null" + ] + }, + "with_tool_cache": { + "markdownDescription": "Runs `steps` with a cache kept for `tool` (beta).", + "type": "object", + "required": [ + "tool", + "steps" + ], + "properties": { + "tool": { + "enum": [ + "gradle", + "bazel", + "turborepo", + "xcode" + ], + "markdownDescription": "The tool whose cache is kept" + }, + "steps": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/step" + }, + "markdownDescription": "The steps to run with the cache" + } + }, + "additionalProperties": false } }, "additionalProperties": { @@ -1552,18 +1950,8 @@ "markdownDescription": "A logical condition that must evaluate to true for the steps to run" }, "steps": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/step" - } - }, - { - "$ref": "#/definitions/step" - } - ], - "markdownDescription": "A list of steps to be performed when the condition is true" + "markdownDescription": "A list of steps to be performed when the condition is true", + "$ref": "#/definitions/step" } } }, @@ -1580,22 +1968,19 @@ "markdownDescription": "A logical condition that must evaluate to false for the steps to run" }, "steps": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/step" - } - }, - { - "$ref": "#/definitions/step" - } - ], - "markdownDescription": "A list of steps to be performed when the condition is false" + "markdownDescription": "A list of steps to be performed when the condition is false", + "$ref": "#/definitions/step" } } } } + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/step" + }, + "markdownDescription": "A list of steps, such as one an anchor holds, which is flattened into the list it's in." } ] }, @@ -1611,6 +1996,12 @@ "additionalProperties": { "type": "object", "properties": { + "name": { + "type": "string", + "minLength": 1, + "pattern": ".*[^ ].*$", + "markdownDescription": "The name of this job in the workflow, in place of the job's own. Needed to invoke the same job more than once. In a matrix, `<< matrix.x >>` in it is filled in for each member." + }, "requires": { "type": "array", "markdownDescription": "Jobs are run in parallel by default, so you must explicitly require any dependencies by their job name.", @@ -1746,10 +2137,15 @@ }, "additionalProperties": false } - } + }, + "additionalProperties": false }, { - "type": "string" + "type": "string", + "not": { + "pattern": "<<.*>>" + }, + "markdownDescription": "An expression deciding whether the job runs. It refers to pipeline values without `<< >>`, as in `pipeline.git.branch == \"main\"`." } ] }, @@ -1771,22 +2167,44 @@ "type": "string" }, "pre-steps": { - "steps": { - "type": "array", - "items": { - "$ref": "#/definitions/step" - }, - "minItems": 1 - } + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/step" + }, + { + "description": "The compiler doesn't check these steps' shape, and compiles a step given no arguments.", + "type": "object", + "minProperties": 1, + "maxProperties": 1, + "additionalProperties": { + "type": "null" + } + } + ] + }, + "markdownDescription": "Steps to run before the job's own steps." }, "post-steps": { - "steps": { - "type": "array", - "items": { - "$ref": "#/definitions/step" - }, - "minItems": 1 - } + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/step" + }, + { + "description": "The compiler doesn't check these steps' shape, and compiles a step given no arguments.", + "type": "object", + "minProperties": 1, + "maxProperties": 1, + "additionalProperties": { + "type": "null" + } + } + ] + }, + "markdownDescription": "Steps to run after the job's own steps." }, "matrix": { "type": "object", @@ -1815,7 +2233,9 @@ "serial-group": { "markdownDescription": "`serial-group` allows a group of jobs to run in series, rather than concurrently, across an organization. Serial groups control the orchestration of jobs across an organization, not just within projects and pipelines.\nSee for more details.", "type": "string", - "minLength": 1 + "minLength": 1, + "maxLength": 512, + "pattern": ".*[^ ].*$" }, "override-with": { "type": "string" @@ -1824,6 +2244,123 @@ } } ] + }, + "jobParameters": { + "markdownDescription": "https://circleci.com/docs/reusing-config#using-the-parameters-declaration\n\nA map of parameter keys.", + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "boolean", + "string", + "steps", + "enum", + "executor", + "integer", + "env_var_name" + ], + "markdownDescription": "The parameter type. See [Parameter Types](https://circleci.com/docs/reusing-config#parameter-syntax) for details:\n- `boolean`: A boolean parameter\n- `string`: A string parameter \n- `integer`: An integer parameter\n- `enum`: An enum parameter (list of allowed string values)\n- `executor`: An executor parameter (allows job to choose executor)\n- `steps`: A steps parameter (allows mixing predefined and user-defined steps)\n- `env_var_name`: An environment variable name parameter (must match POSIX_NAME regexp)" + }, + "default": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "integer" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/step" + } + } + ] + }, + "description": { + "type": "string", + "markdownDescription": "A description of the parameter" + }, + "enum": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "markdownDescription": "List of allowed values for an `enum` type parameter" + } + }, + "additionalProperties": false, + "required": [ + "type" + ] + }, + "minProperties": 1 + }, + "resourceClass": { + "anyOf": [ + { + "type": "string", + "default": "medium", + "enum": [ + "small", + "medium", + "medium+", + "large", + "xlarge", + "2xlarge", + "2xlarge+", + "small.gen2", + "medium.gen2", + "medium+.gen2", + "large.gen2", + "xlarge.gen2", + "2xlarge.gen2", + "2xlarge+.gen2", + "medium.gen3", + "large.gen3", + "xlarge.gen3", + "2xlarge.gen3", + "2xlarge+.gen3", + "arm.medium", + "arm.large", + "arm.xlarge", + "arm.2xlarge", + "arm.medium.gen2", + "arm.large.gen2", + "arm.xlarge.gen2", + "arm.2xlarge.gen2", + "gpu.nvidia.small.gen2", + "gpu.nvidia.small.multi", + "gpu.nvidia.medium", + "gpu.nvidia.medium.multi", + "gpu.nvidia.large", + "windows.medium", + "windows.large", + "windows.xlarge", + "windows.2xlarge", + "windows.medium.gen2", + "windows.large.gen2", + "windows.xlarge.gen2", + "windows.2xlarge.gen2", + "windows.2xlarge+.gen2", + "windows.gpu.nvidia.medium", + "m4pro.medium", + "m4pro.large" + ] + }, + { + "title": "Any other resource class, a self-hosted runner, or a parameter", + "type": "string" + } + ], + "markdownDescription": "https://circleci.com/docs/reference/configuration-reference/#resourceclass\n\nResource class for the job. Can be either a predefined resource class (e.g., `medium`, `large`) or a self-hosted runner in the format `/`." } }, "type": "object", @@ -1860,7 +2397,26 @@ "type": "string" }, "shell": { - "type": "string" + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "code_signing": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9-]+$", + "maxLength": 50 + }, + "markdownDescription": "Names of the code signing bundles the job may install with the `install_signing_bundle` step" } }, "required": [ @@ -1869,43 +2425,7 @@ "additionalProperties": false }, "resource_class": { - "oneOf": [ - { - "type": "string", - "default": "medium", - "enum": [ - "small", - "medium", - "medium+", - "large", - "xlarge", - "2xlarge", - "2xlarge+", - "arm.medium", - "arm.large", - "arm.xlarge", - "arm.2xlarge", - "gpu.nvidia.small", - "gpu.nvidia.medium", - "windows.gpu.nvidia.medium", - "m4pro.medium", - "m4pro.large", - "small.gen2", - "medium.gen2", - "medium+.gen2", - "large.gen2", - "xlarge.gen2", - "2xlarge.gen2", - "2xlarge+.gen2" - ] - }, - { - "title": "Self-hosted runner", - "type": "string", - "pattern": "^[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+$" - } - ], - "markdownDescription": "https://circleci.com/docs/reference/configuration-reference/#resourceclass\n\nResource class for the job. Can be either a predefined resource class (e.g., `medium`, `large`) or a self-hosted runner in the format `/`." + "$ref": "#/definitions/resourceClass" }, "docker": { "type": "array", @@ -2017,6 +2537,27 @@ ], "markdownDescription": "Authentication for AWS EC2 Container Registry (ECR). You can use the access/secret keys or OIDC." }, + "gcp_auth": { + "type": "object", + "markdownDescription": "Authenticate to Google Artifact Registry with OIDC", + "properties": { + "oidc_service_account": { + "type": "string" + }, + "workload_identity_pool": { + "type": "string" + }, + "workload_identity_provider": { + "type": "string" + } + }, + "required": [ + "oidc_service_account", + "workload_identity_pool", + "workload_identity_provider" + ], + "additionalProperties": false + }, "auth": { "type": "object", "properties": { @@ -2093,27 +2634,32 @@ }, "docker_layer_caching": { "markdownDescription": "Set to `true` to enable [Docker Layer Caching](https://circleci.com/docs/docker-layer-caching). Note: If you haven't already, you must open a support ticket to have a CircleCI Sales representative contact you about enabling this feature on your account for an additional fee.", - "anyOf": [ - { - "type": "string", - "pattern": " *<< *parameters.([^ ]+) *>> *" - }, - { - "type": "boolean" - }, + "type": "boolean" + }, + "resource_class": { + "type": "string" + }, + "shell": { + "oneOf": [ { - "type": "number" + "type": "string" }, { - "type": "string" + "type": "array", + "items": { + "type": "string" + } } ] }, - "resource_class": { - "type": "string" - }, - "shell": { - "type": "string" + "code_signing": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9-]+$", + "maxLength": 50 + }, + "markdownDescription": "Names of the code signing bundles the job may install with the `install_signing_bundle` step" } }, "additionalProperties": false @@ -2274,12 +2820,12 @@ "branches" ], "additionalProperties": false + }, + "observability": { + "type": "object" } }, - "additionalProperties": false, - "required": [ - "notify" - ] + "additionalProperties": false }, "workflows": { "type": "object", @@ -2361,9 +2907,16 @@ "markdownDescription": "Specifies which triggers will cause this workflow to be executed. Default behavior is to trigger the workflow when pushing to a branch." }, "max_auto_reruns": { - "type": "integer", - "minimum": 1, - "maximum": 5, + "anyOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 5 + }, + { + "$ref": "#/definitions/expression" + } + ], "markdownDescription": "The maximum number of times a workflow will be automatically rerun if it fails" }, "when": { @@ -2419,7 +2972,7 @@ "type": "object", "propertyNames": { "type": "string", - "pattern": "^[A-Za-z][A-Za-z\\s\\d_-]*$" + "pattern": ".+" }, "additionalProperties": { "type": "object", @@ -2435,8 +2988,7 @@ "$ref": "#/definitions/workflowJobInvocation" } } - }, - "additionalProperties": false + } } }, "orbs": { @@ -2446,15 +2998,15 @@ ], "markdownDescription": "https://circleci.com/docs/configuration-reference#orbs-requires-version-21\n\nOrbs are reusable packages of CircleCI configuration that you may share across projects, enabling you to create encapsulated, parameterized commands, jobs, and executors that can be used across multiple projects.", "additionalProperties": { - "markdownDescription": "An orb reference can be specified in multiple ways:\n\n**String with semantic version:**\n- `namespace/orb-name@1.2.3` - specific version\n- `namespace/orb-name@1.2` - latest patch version of 1.2.x\n- `namespace/orb-name@1` - latest minor and patch of 1.x.x\n- `namespace/orb-name@volatile` - most recent release\n- `namespace/orb-name@dev:branch-name` - development version\n\n**String with parameter substitution:**\n- `namespace/orb-name@<>`\n- `namespace/orb-name@<>`\n\n**Inline orb object:** Define jobs, commands, and executors directly in this configuration.\n\n**URL orb:** A HTTPS URL to a YAML file containing the orb definition, for example in a GitHub repository.\n\nSee [Orb Concepts](https://circleci.com/docs/orbs/author/orb-concepts/#semantic-versioning) and [Creating Inline Orbs](https://circleci.com/docs/reference/reusing-config/#writing-inline-orbs) for more details.", + "markdownDescription": "An orb reference can be specified in multiple ways:\n\n**String with semantic version:**\n- `namespace/orb-name@1.2.3` - specific version\n- `namespace/orb-name@1.2` - latest patch version of 1.2.x\n- `namespace/orb-name@1` - latest minor and patch of 1.x.x\n- `namespace/orb-name@volatile` - most recent release\n- `namespace/orb-name@dev:branch-name` - development version\n\n**String with parameter substitution:**\n- `namespace/orb-name@<>`\n- `namespace/orb-name@<>`\n- `namespace/orb-name@dev:<>` - development version of the commit being built\n\n**Inline orb object:** Define jobs, commands, and executors directly in this configuration.\n\n**URL orb:** A HTTPS URL to a YAML file containing the orb definition, for example in a GitHub repository.\n\nSee [Orb Concepts](https://circleci.com/docs/orbs/author/orb-concepts/#semantic-versioning) and [Creating Inline Orbs](https://circleci.com/docs/reference/reusing-config/#writing-inline-orbs) for more details.", "oneOf": [ { "type": "string", - "pattern": "^[a-z][a-z0-9_-]+/[a-z][a-z0-9_-]+@(dev:[\\.a-z0-9_-]+|\\d+|\\d+\\.\\d+|\\d+\\.\\d+\\.\\d+|volatile)$" + "pattern": "^[a-z][a-z0-9_-]*/[a-z][a-z0-9_-]*@(dev:[^\\s\\p{Cc}]+|\\d+|\\d+\\.\\d+|\\d+\\.\\d+\\.\\d+|volatile)$" }, { "type": "string", - "pattern": "^[a-z][a-z0-9_-]+/[a-z][a-z0-9_-]+@ *<<.+>> *$" + "pattern": "^[a-z][a-z0-9_-]*/[a-z][a-z0-9_-]*@ *(dev:)?<<.+>> *$" }, { "type": "string", @@ -2592,7 +3144,26 @@ "type": "string" }, "shell": { - "type": "string" + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "code_signing": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9-]+$", + "maxLength": 50 + }, + "markdownDescription": "Names of the code signing bundles the job may install with the `install_signing_bundle` step" } }, "required": [ @@ -2601,7 +3172,7 @@ "additionalProperties": false }, "resource_class": { - "type": "string" + "$ref": "#/definitions/resourceClass" }, "docker": { "type": "array", @@ -2706,6 +3277,27 @@ } ] }, + "gcp_auth": { + "type": "object", + "markdownDescription": "Authenticate to Google Artifact Registry with OIDC", + "properties": { + "oidc_service_account": { + "type": "string" + }, + "workload_identity_pool": { + "type": "string" + }, + "workload_identity_provider": { + "type": "string" + } + }, + "required": [ + "oidc_service_account", + "workload_identity_pool", + "workload_identity_provider" + ], + "additionalProperties": false + }, "auth": { "type": "object", "properties": { @@ -2779,27 +3371,32 @@ }, "docker_layer_caching": { "markdownDescription": "Set to `true` to enable [Docker Layer Caching](https://circleci.com/docs/docker-layer-caching). Note: If you haven't already, you must open a support ticket to have a CircleCI Sales representative contact you about enabling this feature on your account for an additional fee.", - "anyOf": [ - { - "type": "string", - "pattern": " *<< *parameters.([^ ]+) *>> *" - }, - { - "type": "boolean" - }, + "type": "boolean" + }, + "resource_class": { + "type": "string" + }, + "shell": { + "oneOf": [ { - "type": "number" + "type": "string" }, { - "type": "string" + "type": "array", + "items": { + "type": "string" + } } ] }, - "resource_class": { - "type": "string" - }, - "shell": { - "type": "string" + "code_signing": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9-]+$", + "maxLength": 50 + }, + "markdownDescription": "Names of the code signing bundles the job may install with the `install_signing_bundle` step" } }, "additionalProperties": false @@ -3055,6 +3652,16 @@ ], "markdownDescription": "The version field is intended to be used in order to issue warnings for deprecation or breaking changes." }, + "setup": { + "type": "boolean", + "markdownDescription": "https://circleci.com/docs/dynamic-config\n\nMakes this a setup config: its workflow computes the config to continue the pipeline with, using the continuation orb or API." + }, + "functions": { + "markdownDescription": "Names the functions this config's steps can run, each as `host.tld/org/name@vX.Y.Z`. A step then runs one as `name` or `name/command`, with its flags under `with`.", + "additionalProperties": { + "markdownDescription": "A function, as `host.tld/org/name@vX.Y.Z`, for example `github.com/circleci-functions/setup-go@v0.5.1`" + } + }, "parameters": { "type": [ "object", diff --git a/src/check_jsonschema/builtin_schemas/vendor/citation-file-format.json b/src/check_jsonschema/builtin_schemas/vendor/citation-file-format.json index 762194bec..4d467315e 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/citation-file-format.json +++ b/src/check_jsonschema/builtin_schemas/vendor/citation-file-format.json @@ -994,7 +994,7 @@ "description": "The person's address." }, "affiliation": { - "description": "The person's affilitation.", + "description": "The person's affiliation.", "minLength": 1, "type": "string" }, diff --git a/src/check_jsonschema/builtin_schemas/vendor/gitlab-ci.json b/src/check_jsonschema/builtin_schemas/vendor/gitlab-ci.json index 4f2bc409f..dfb16e8d3 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/gitlab-ci.json +++ b/src/check_jsonschema/builtin_schemas/vendor/gitlab-ci.json @@ -2163,7 +2163,7 @@ "type": "string" }, "minItems": 1, - "maxItems": 2 + "maxItems": 10 }, "files_commits": { "markdownDescription": "Use the `cache:key:files_commits` keyword to generate a new cache key when the latest commit changes for the specified files. [Learn More](https://docs.gitlab.com/ci/yaml/#cachekeyfiles_commits)", @@ -2677,6 +2677,9 @@ "artifacts": { "type": "boolean" }, + "optional": { + "type": "boolean" + }, "parallel": { "$ref": "#/definitions/parallel_matrix" } diff --git a/src/check_jsonschema/builtin_schemas/vendor/mergify.json b/src/check_jsonschema/builtin_schemas/vendor/mergify.json index 4711635b5..d0b385a21 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/mergify.json +++ b/src/check_jsonschema/builtin_schemas/vendor/mergify.json @@ -1050,6 +1050,38 @@ "title": "CommitMessageFormatModel", "type": "object" }, + "ConflictResolverModel": { + "additionalProperties": false, + "properties": { + "paths": { + "description": "Glob patterns of the files this resolver applies to, matched against the path from the repository root exactly like `scopes` file patterns. `*` does not cross a `/`, so `*.md` matches only Markdown files at the root, and `docs/*.md` only those directly in `docs/` -- unlike `.gitattributes`, where a pattern with no `/` matches at any depth. `**` matches any number of directories, and `{a,b}` either alternative.", + "items": { + "type": "string" + }, + "minItems": 1, + "title": "Paths", + "type": "array" + }, + "strategy": { + "description": "How to merge a matching file when two pull requests of the same batch both change it. The names follow git's merge drivers. `ours` is always what the batch already holds, the base branch plus the pull requests queued ahead, and never the incoming pull request:\n\n- `union`: keep both sides' conflicting lines, ours first. For append-only files such as a changelog.\n- `ours`: keep our whole file and discard the incoming pull request's change to it, even where the two changes did not conflict.\n- `theirs`: take the incoming pull request's whole file and discard ours, even where the two changes did not conflict.\n- `prefer-ours`: merge normally, and keep our side only on the lines that conflict.\n- `prefer-theirs`: merge normally, and keep the incoming pull request's side only on the lines that conflict.\n\nA conflict on any other file still removes the pull request from the batch.", + "enum": [ + "union", + "ours", + "theirs", + "prefer-ours", + "prefer-theirs" + ], + "title": "Strategy", + "type": "string" + } + }, + "required": [ + "paths", + "strategy" + ], + "title": "ConflictResolverModel", + "type": "object" + }, "CopyActionModel": { "additionalProperties": false, "properties": { @@ -4254,7 +4286,7 @@ }, "queue_branch_prefix": { "default": "mergify/merge-queue/", - "description": "Prefix for the merge queue branch name. Branches under this prefix are eligible for automatic [queue branch cleanup](https://docs.mergify.com/merge-queue/lifecycle#queue-branch-cleanup).", + "description": "Prefix for the merge queue branch name. It must start valid git branch names, and cannot start with `refs/`, which GitHub refuses. Branches under this prefix are eligible for automatic [queue branch cleanup](https://docs.mergify.com/merge-queue/lifecycle#queue-branch-cleanup).", "title": "Queue Branch Prefix", "type": "string" }, @@ -4268,6 +4300,14 @@ "title": "Allow Queue Branch Edit", "type": "boolean" }, + "conflict_resolvers": { + "description": "Resolve conflicts on the files you name while Mergify builds a batch, instead of removing the pull request that conflicts from it. When several entries match a file, the last one wins.\n\nOnly takes effect when the batch branch Mergify built is what lands: `merge_method` set to `merge-batch` or `fast-forward`, or `queue_branch_merge_method` set to `fast-forward`. Otherwise `merge`, `squash` and `rebase` merge each pull request on its own, so a resolution made while building the batch would never land.", + "items": { + "$ref": "#/$defs/ConflictResolverModel" + }, + "title": "Conflict Resolvers", + "type": "array" + }, "batch_max_failure_resolution_attempts": { "anyOf": [ { @@ -4301,17 +4341,6 @@ "description": "Merge method to use. If no value is set, Mergify uses the first authorized method available in the repository configuration.\n\nAdditionally, `merge-batch` merges the draft pull request prepared by the merge queue using a merge commit. This requires `batch_size > 1`.", "title": "Merge Method" }, - "autosquash": { - "configuration_deprecated_attribute": { - "deprecated_summary_ghes_mode": "`autosquash` has been removed and this option is now ignored: the merge queue no longer squashes commits beginning with `squash!`, `fixup!` or `amend!` when it updates a pull request in place. Remove it from your configuration.", - "deprecated_summary_saas_mode": "`autosquash` has been removed and this option is now ignored: the merge queue no longer squashes commits beginning with `squash!`, `fixup!` or `amend!` when it updates a pull request in place. Remove it from your configuration." - }, - "default": false, - "deprecated": true, - "description": "Deprecated: the merge queue no longer squashes commits beginning with `squash!`, `fixup!` or `amend!` when it updates a pull request in place. The option is still accepted so configurations that set it keep validating; remove it from your configuration.", - "title": "Autosquash", - "type": "boolean" - }, "autoqueue": { "default": false, "deprecated": true, @@ -4530,7 +4559,7 @@ }, "queue_branch_prefix": { "default": "mergify/merge-queue/", - "description": "Prefix for the merge queue branch name. Branches under this prefix are eligible for automatic [queue branch cleanup](https://docs.mergify.com/merge-queue/lifecycle#queue-branch-cleanup).", + "description": "Prefix for the merge queue branch name. It must start valid git branch names, and cannot start with `refs/`, which GitHub refuses. Branches under this prefix are eligible for automatic [queue branch cleanup](https://docs.mergify.com/merge-queue/lifecycle#queue-branch-cleanup).", "title": "Queue Branch Prefix", "type": "string" }, @@ -4544,6 +4573,14 @@ "title": "Allow Queue Branch Edit", "type": "boolean" }, + "conflict_resolvers": { + "description": "Resolve conflicts on the files you name while Mergify builds a batch, instead of removing the pull request that conflicts from it. When several entries match a file, the last one wins.\n\nOnly takes effect when the batch branch Mergify built is what lands: `merge_method` set to `merge-batch` or `fast-forward`, or `queue_branch_merge_method` set to `fast-forward`. Otherwise `merge`, `squash` and `rebase` merge each pull request on its own, so a resolution made while building the batch would never land.", + "items": { + "$ref": "#/$defs/ConflictResolverModel" + }, + "title": "Conflict Resolvers", + "type": "array" + }, "batch_max_failure_resolution_attempts": { "anyOf": [ { @@ -4577,17 +4614,6 @@ "description": "Merge method to use. If no value is set, Mergify uses the first authorized method available in the repository configuration.\n\nAdditionally, `merge-batch` merges the draft pull request prepared by the merge queue using a merge commit. This requires `batch_size > 1`.", "title": "Merge Method" }, - "autosquash": { - "configuration_deprecated_attribute": { - "deprecated_summary_ghes_mode": "`autosquash` has been removed and this option is now ignored: the merge queue no longer squashes commits beginning with `squash!`, `fixup!` or `amend!` when it updates a pull request in place. Remove it from your configuration.", - "deprecated_summary_saas_mode": "`autosquash` has been removed and this option is now ignored: the merge queue no longer squashes commits beginning with `squash!`, `fixup!` or `amend!` when it updates a pull request in place. Remove it from your configuration." - }, - "default": false, - "deprecated": true, - "description": "Deprecated: the merge queue no longer squashes commits beginning with `squash!`, `fixup!` or `amend!` when it updates a pull request in place. The option is still accepted so configurations that set it keep validating; remove it from your configuration.", - "title": "Autosquash", - "type": "boolean" - }, "autoqueue": { "default": false, "deprecated": true, @@ -4725,17 +4751,6 @@ "default": null, "description": "To rebase, Mergify needs to impersonate a GitHub user. You can specify the account to use with this option. If no `bot_account` is set, Mergify picks the pull request author, or the user who sent the `@mergifyio rebase` command. The user account must have already been logged in Mergify dashboard once.\n\n**Warning:** Because of GitHub's security restrictions, Mergify cannot impersonate an account owned by another GitHub App. A rebase therefore fails whenever the account it falls back to is a bot, either because the pull request was opened by one or because one sent the command, unless `bot_account` names a user account.\n\n**Warning:** A pull request coming from a fork cannot be rebased, whether or not this option is set: rebasing one means impersonating a GitHub user to force-push the contributor's branch. Use the `update` action or the `@mergifyio update` command on those -- except where Mergify cannot write the head branch at all, such as a deleted fork, where `update` is refused too and the check run says what is wrong.", "title": "Bot Account" - }, - "autosquash": { - "configuration_deprecated_attribute": { - "deprecated_summary_ghes_mode": "`autosquash` has been removed and this option is now ignored: the `rebase` action no longer squashes commits beginning with `squash!`, `fixup!` or `amend!`. Remove it from your configuration.", - "deprecated_summary_saas_mode": "`autosquash` has been removed and this option is now ignored: the `rebase` action no longer squashes commits beginning with `squash!`, `fixup!` or `amend!`. Remove it from your configuration." - }, - "default": false, - "deprecated": true, - "description": "Deprecated: the `rebase` action no longer squashes commits beginning with `squash!`, `fixup!` or `amend!`. The option is still accepted so configurations that set it keep validating; remove it from your configuration.", - "title": "Autosquash", - "type": "boolean" } }, "title": "RebaseActionModel", @@ -4962,6 +4977,37 @@ }, "Scopes": { "additionalProperties": false, + "else": { + "properties": { + "capacities": { + "propertyNames": { + "anyOf": [ + { + "minLength": 2, + "pattern": "^[A-Za-z0-9_-]+$", + "type": "string" + }, + { + "pattern": "[\\*\\?\\[\\{]" + } + ] + } + } + } + }, + "if": { + "properties": { + "source": { + "required": [ + "manual" + ], + "type": "object" + } + }, + "required": [ + "source" + ] + }, "properties": { "source": { "anyOf": [ @@ -5000,17 +5046,14 @@ "type": "string" }, "capacities": { - "description": "How many speculative checks each scope may run at the same time, as a map of scope name to capacity. Works for any `source` (file globs or the manual scopes API just decide membership; capacity is declared here). A scope listed here runs against its own independent budget; a PR in several capped scopes consumes one slot from each. PRs whose scopes are all absent from this map share the repo-wide `merge_queue.max_parallel_checks` pool, unless `default_capacity` gives every scope a budget. Strict branch protection still forces an effective capacity of 1.", - "patternProperties": { - "^[A-Za-z0-9_-]+$": { - "maximum": 128, - "minimum": 1, - "type": "integer" - } + "additionalProperties": { + "maximum": 128, + "minimum": 1, + "type": "integer" }, + "description": "How many speculative checks each scope may run at the same time, as a map of scope name to capacity. Works for any `source` (file globs or the manual scopes API just decide membership; capacity is declared here). With a `manual` source a key may be any scope name the scopes API accepts, such as `//lib/core` or `@acme/web`; with any other source a key that is not a pattern must be a valid scope name. A key containing `*`, `?`, `[` or `{` is a glob pattern with the syntax of `files` filters, such as `@acme/*` or `//lib/**`: `*` and `?` stay within one `/`-separated segment and only a whole `**` segment crosses them, so `//lib/**` matches the packages below `//lib` but not `//lib` itself. In YAML, quote any key starting with `@`, `*`, `?`, `[` or `{`. A pattern gives every scope it matches its own budget, not one budget shared by all of them. A key equal to a scope's name wins over any pattern; when several patterns match a scope, the smallest capacity applies; `default_capacity` only covers scopes no key matches. A PR in several capped scopes consumes one slot from each. PRs whose scopes match no key share the repo-wide `merge_queue.max_parallel_checks` pool, unless `default_capacity` gives every scope a budget. Strict branch protection still forces an effective capacity of 1.", "propertyNames": { - "minLength": 2, - "pattern": "^[A-Za-z0-9_-]+$" + "maxLength": 1024 }, "title": "Capacities", "type": "object" @@ -5027,7 +5070,7 @@ } ], "default": null, - "description": "How many speculative checks a scope without an explicit `capacities` entry may run at the same time. Applies to every scope observed on queued pull requests, so dynamic scope sets (e.g. sent by a monorepo build tool through the manual scopes API) get a per-scope budget without enumerating names; an explicit `capacities` entry still wins for its scope. `merge_queue.max_parallel_checks` remains the global ceiling on the total. When unset, scopes without a `capacities` entry are unlimited, and pull requests with no scopes always draw from the repo-wide pool. Strict branch protection still forces an effective capacity of 1.", + "description": "How many speculative checks a scope that no `capacities` key matches may run at the same time. Applies to every scope observed on queued pull requests, so dynamic scope sets (e.g. sent by a monorepo build tool through the manual scopes API) get a per-scope budget without enumerating names; a matching `capacities` key or pattern still wins for its scope. `merge_queue.max_parallel_checks` remains the global ceiling on the total. When unset, scopes no `capacities` key matches are unlimited, and pull requests with no scopes always draw from the repo-wide pool. Strict branch protection still forces an effective capacity of 1.", "title": "Default Capacity" } }, @@ -5099,7 +5142,7 @@ }, "commit_message": { "default": "all-commits", - "description": "Defines what commit message to use for the squashed commit if no commit message is defined in the pull request body.\nPossible values are:\n\n- `all-commits` to use the same format as GitHub squashed merge commit.\n- `first-commit` to use the message of the first commit of the pull request.\n- `title+body` means to use the title and body from the pull request itself as the commit message. The pull request number will be added to end of the title.", + "description": "Defines the default commit message to use for the squashed commit.\nPossible values are:\n\n- `all-commits` to use the same format as GitHub squashed merge commit.\n- `first-commit` to use the message of the first commit of the pull request.\n- `title+body` means to use the title and body from the pull request itself as the commit message. The pull request number will be added to end of the title.", "enum": [ "all-commits", "first-commit", diff --git a/src/check_jsonschema/builtin_schemas/vendor/renovate.json b/src/check_jsonschema/builtin_schemas/vendor/renovate.json index 9c17e1b07..cd7811d08 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/renovate.json +++ b/src/check_jsonschema/builtin_schemas/vendor/renovate.json @@ -1,8 +1,8 @@ { "$id": "https://docs.renovatebot.com/renovate-schema.json", - "title": "JSON schema for Renovate 44.103.6 config files (https://renovatebot.com/)", + "title": "JSON schema for Renovate 44.132.5 config files (https://renovatebot.com/)", "$schema": "http://json-schema.org/draft-07/schema#", - "x-renovate-version": "44.103.6", + "x-renovate-version": "44.132.5", "allowComments": true, "type": "object", "definitions": { @@ -6087,6 +6087,11 @@ "markdownDescription": "A domain name, host name or base URL to match against.\n\nSee also: [matchHost](https://docs.renovatebot.com/configuration-options/#hostrulesmatchhost)", "type": "string" }, + "matchIsBreaking": { + "description": "Matches only if the update is considered breaking (e.g. major, or minor for 0.x in ecosystems like Cargo) when `true`, or non-breaking when `false`. Valid only within a `packageRules` object.\nSee also: https://docs.renovatebot.com/configuration-options/#packagerulesmatchisbreaking", + "markdownDescription": "Matches only if the update is considered breaking (e.g. major, or minor for 0.x in ecosystems like Cargo) when `true`, or non-breaking when `false`. Valid only within a `packageRules` object.\n\nSee also: [matchIsBreaking](https://docs.renovatebot.com/configuration-options/#packagerulesmatchisbreaking)", + "type": "boolean" + }, "matchJsonata": { "description": "A JSONata expression to match against the full config object. Valid only within a `packageRules` object.\nSee also: https://docs.renovatebot.com/configuration-options/#packagerulesmatchjsonata", "markdownDescription": "A JSONata expression to match against the full config object. Valid only within a `packageRules` object.\n\nSee also: [matchJsonata](https://docs.renovatebot.com/configuration-options/#packagerulesmatchjsonata)", @@ -7294,6 +7299,9 @@ "matchFileNames": { "$ref": "#/definitions/matchFileNames" }, + "matchIsBreaking": { + "$ref": "#/definitions/matchIsBreaking" + }, "matchJsonata": { "$ref": "#/definitions/matchJsonata" }, @@ -10343,6 +10351,7 @@ "github-actions", "glasskube", "go-mod-directive", + "gomod", "gradle", "hashicorp", "helm", @@ -11843,7 +11852,7 @@ }, { "required": [ - "allowCustomCrateRegistries" + "allowCustomCrateGitRegistries" ] }, { diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/buildkite.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/buildkite.sha256 index a4bc022e9..de0b1dcaa 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/buildkite.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/buildkite.sha256 @@ -1 +1 @@ -f5138ecff10e6d9faf54cc60942d9071d76c00cd4bf64a879a0e5d407d77e5f4 \ No newline at end of file +da8e5f1e0413b975ba599d65ec6bb707065f919d6231e3c7cab0a1759e4804a2 \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/circle-ci.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/circle-ci.sha256 index 2eb115aa0..cf976f103 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/circle-ci.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/circle-ci.sha256 @@ -1 +1 @@ -7f3b844597735a9f884faee304a2ba1d65a87fdf2fae6c731208c0c39510ec65 \ No newline at end of file +bcc3e60a5a1e137fc45ad2cb435953de5f525ae881c5f0fd371b82a9f20bdb7a \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/citation-file-format.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/citation-file-format.sha256 index 632c190ae..7dd816274 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/citation-file-format.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/citation-file-format.sha256 @@ -1 +1 @@ -0b8d22140da702d766df318dcff3a91af2f39521298dcf36d76315fd99cc169b \ No newline at end of file +17bc7993c67b95eec988dadca78b65cb29cd489d1fceba71040a141dfb9791df \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/gitlab-ci.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/gitlab-ci.sha256 index a686451ab..0dd1aeb55 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/gitlab-ci.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/gitlab-ci.sha256 @@ -1 +1 @@ -a4dc2b155aa574575fbfd51dcca99388db5ba1b563ab5e05ce8df005e7eb9ced \ No newline at end of file +98e54051f78236ae22281857ff38c7fc634b88b5008d1326a8d1a5b0b22d8da5 \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/mergify.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/mergify.sha256 index 5ee91a2af..f12a69062 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/mergify.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/mergify.sha256 @@ -1 +1 @@ -4d9cb3859bc4faaf484d62cdd59b670cb432b7a074149e047f7450029fafb712 \ No newline at end of file +21152daa27fb8c07aa124b2cc225432f8331e392d08d1057a6a015591cf63e5b \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/renovate.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/renovate.sha256 index 679f9d519..8792ad93f 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/renovate.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/renovate.sha256 @@ -1 +1 @@ -de289878a385024951abda389fa5dbbaefe0c74641e7cc41d77ca3c08593d83e \ No newline at end of file +d340916868eab2375718c6e6e9731fc3e4e6db62ed243aa9fda363fd4dcb8a70 \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/snapcraft.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/snapcraft.sha256 index 530ce4fe6..f6adea9c2 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/snapcraft.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/snapcraft.sha256 @@ -1 +1 @@ -09689bdaa55bff6ead8cda603511a6bf96b456525cfa3d138a274e2e82d1653f \ No newline at end of file +aa01dd62da8114630c82e26da289506a44e82e0f359cae30295b8721ad800523 \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/snapcraft.json b/src/check_jsonschema/builtin_schemas/vendor/snapcraft.json index 04295677e..141ef0086 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/snapcraft.json +++ b/src/check_jsonschema/builtin_schemas/vendor/snapcraft.json @@ -111,6 +111,9 @@ "start-timeout": { "anyOf": [ { + "description": "A duration string to be parsed by snapd.", + "examples": ["2s", "3m", "4ms", "5us", "6m7s8ms"], + "pattern": "^([0-9]+(ns|us|ms|s|m)){1,5}$", "type": "string" }, { @@ -125,6 +128,9 @@ "stop-timeout": { "anyOf": [ { + "description": "A duration string to be parsed by snapd.", + "examples": ["2s", "3m", "4ms", "5us", "6m7s8ms"], + "pattern": "^([0-9]+(ns|us|ms|s|m)){1,5}$", "type": "string" }, { @@ -139,6 +145,9 @@ "watchdog-timeout": { "anyOf": [ { + "description": "A duration string to be parsed by snapd.", + "examples": ["2s", "3m", "4ms", "5us", "6m7s8ms"], + "pattern": "^([0-9]+(ns|us|ms|s|m)){1,5}$", "type": "string" }, { @@ -167,6 +176,9 @@ "restart-delay": { "anyOf": [ { + "description": "A duration string to be parsed by snapd.", + "examples": ["2s", "3m", "4ms", "5us", "6m7s8ms"], + "pattern": "^([0-9]+(ns|us|ms|s|m)){1,5}$", "type": "string" }, {