From 4d1c9759e5eee7f5cf8730a6ed0f4bd1b2c12021 Mon Sep 17 00:00:00 2001 From: sirosen <1300022+sirosen@users.noreply.github.com> Date: Sun, 2 Aug 2026 06:39:19 +0000 Subject: [PATCH 1/3] [vendor-schemas] automated update --- CHANGELOG.rst | 3 + .../builtin_schemas/vendor/buildkite.json | 124 +- .../builtin_schemas/vendor/codecov.json | 178 ++- .../builtin_schemas/vendor/compose-spec.json | 214 ++- .../builtin_schemas/vendor/dependabot.json | 151 +- .../builtin_schemas/vendor/mergify.json | 1407 +++++++++++++++-- .../builtin_schemas/vendor/readthedocs.json | 7 +- .../builtin_schemas/vendor/renovate.json | 96 +- .../vendor/sha256/buildkite.sha256 | 2 +- .../vendor/sha256/codecov.sha256 | 2 +- .../vendor/sha256/compose-spec.sha256 | 2 +- .../vendor/sha256/dependabot.sha256 | 2 +- .../vendor/sha256/mergify.sha256 | 2 +- .../vendor/sha256/readthedocs.sha256 | 2 +- .../vendor/sha256/renovate.sha256 | 2 +- .../vendor/sha256/taskfile.sha256 | 2 +- .../vendor/sha256/woodpecker-ci.sha256 | 2 +- .../builtin_schemas/vendor/taskfile.json | 35 +- .../builtin_schemas/vendor/woodpecker-ci.json | 106 +- 19 files changed, 2036 insertions(+), 303 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 4630b456a..01437c73f 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -10,6 +10,9 @@ Unreleased .. vendor-insert-here +- Update vendored schemas: buildkite, codecov, compose-spec, dependabot, mergify, + readthedocs, renovate, taskfile, woodpecker-ci (2026-08-02) + - Add a dedicated ``check-github-workflows-require-timeout`` pre-commit hook for requiring ``timeout-minutes`` on all GitHub Workflow jobs. (:issue:`639`) diff --git a/src/check_jsonschema/builtin_schemas/vendor/buildkite.json b/src/check_jsonschema/builtin_schemas/vendor/buildkite.json index 3524aa63b..8d7260e6d 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/buildkite.json +++ b/src/check_jsonschema/builtin_schemas/vendor/buildkite.json @@ -172,6 +172,116 @@ "description": "Whether to cancel the job as soon as the build is marked as failing", "default": false }, + "checkout": { + "type": "object", + "description": "Configure git checkout behavior. Pipeline-level values are inherited by each step unless that step overrides the same key", + "properties": { + "depth": { + "type": ["integer", "string"], + "description": "Number of commits to fetch when performing a shallow clone; omit for full history", + "minimum": 1, + "pattern": "^[1-9][0-9]*$", + "examples": [1] + }, + "skip": { + "enum": [true, false, "true", "false", null], + "description": "Skip the git checkout phase. An explicit null is treated as unset", + "default": false + }, + "submodules": { + "enum": [true, false, "true", "false", null], + "description": "Initialize, sync, update, and clean submodules recursively as part of checkout. An explicit null is treated as unset", + "default": true + }, + "commit_verification": { + "type": "string", + "description": "Verify the checked-out commit is on the expected branch; strict fails the job on a definitive mismatch, warn only logs", + "enum": ["strict", "warn"] + }, + "flags": { + "type": "object", + "description": "Custom flags passed to git commands during checkout. Flag strings are passed to git verbatim and are not sanitized; do not interpolate untrusted input. See the agent documentation for precedence and defaults: https://buildkite.com/docs/agent/v3/configuration", + "properties": { + "clone": { + "type": "string", + "description": "Flags for the git clone command", + "default": "-v", + "examples": ["--depth 1 --single-branch"] + }, + "fetch": { + "type": "string", + "description": "Flags for the git fetch command", + "default": "-v --prune", + "examples": ["--prune --tags"] + }, + "checkout": { + "type": "string", + "description": "Flags for the git checkout command", + "default": "-f", + "examples": ["-q"] + }, + "clean": { + "type": "string", + "description": "Flags for the git clean command", + "default": "-ffxdq", + "examples": ["-fxd"] + } + }, + "additionalProperties": false, + "examples": [ + { "clone": "--depth 1 --single-branch" }, + { "fetch": "--prune --tags" }, + { "clone": "", "fetch": "" } + ] + }, + "ssh_secret": { + "type": "string", + "description": "Name of an SSH private key secret from Buildkite Secrets to use for git clone/fetch operations. The name must start with a letter, contain only letters, numbers, and underscores, and must not start with `buildkite` or `bk` (case-insensitive).", + "minLength": 1, + "maxLength": 255, + "pattern": "^[A-Za-z][A-Za-z0-9_]*$", + "not": { + "pattern": "^([Bb][Uu][Ii][Ll][Dd][Kk][Ii][Tt][Ee]|[Bb][Kk])" + }, + "examples": ["deploy_key", "github_readonly", "bitbucket_ssh_key"] + }, + "lfs": { + "enum": [true, false, "true", "false", null], + "description": "Whether to install Git LFS and fetch LFS objects after checkout. An explicit null is treated as unset", + "default": false + }, + "sparse": { + "type": "object", + "description": "Check out only the specified paths in git cone mode; requires git 2.27+ on the agent", + "properties": { + "paths": { + "description": "Repository-relative directory paths within the worktree, as one path or a list of paths; cone mode includes each directory recursively, not file globs", + "anyOf": [ + { "$ref": "#/definitions/checkoutSparsePath" }, + { + "type": "array", + "items": { "$ref": "#/definitions/checkoutSparsePath" }, + "minItems": 1, + "uniqueItems": true + } + ], + "examples": ["src/", ["src/", "docs/"]] + } + }, + "required": ["paths"], + "additionalProperties": false, + "examples": [{ "paths": ["src/", "docs/"] }] + } + }, + "additionalProperties": false + }, + "checkoutSparsePath": { + "type": "string", + "pattern": "^[^,\\t\\n\\v\\f\\r]+$", + "not": { + "pattern": "^[-\\t\\n\\v\\f\\r \u0085\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]|[\\t\\n\\v\\f\\r \u0085\u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]$" + } + }, "dependsOnList": { "type": "array", "items": { @@ -261,7 +371,7 @@ "items": { "description": "A Slack channel as `#channel`, `team#channel`, `@user`, `team@user`, or a Slack ID. Must not be empty or contain whitespace.", "type": "string", - "pattern": "^\\S+$" + "pattern": "^[^ \\t\\n\\v\\f\\r]+$" } }, "message": { @@ -278,7 +388,7 @@ { "description": "A Slack channel as `#channel`, `team#channel`, `@user`, `team@user`, or a Slack ID. Must not be empty or contain whitespace.", "type": "string", - "pattern": "^\\S+$" + "pattern": "^[^ \\t\\n\\v\\f\\r]+$" }, { "$ref": "#/definitions/notifySlackObject" @@ -1113,6 +1223,9 @@ "cancel_on_build_failing": { "$ref": "#/definitions/cancelOnBuildFailing" }, + "checkout": { + "$ref": "#/definitions/checkout" + }, "command": { "$ref": "#/definitions/commandStepCommand" }, @@ -1534,6 +1647,13 @@ "priority": { "$ref": "#/definitions/priority" }, + "checkout": { + "description": "Configure git checkout behavior. Pipeline-level values are inherited by each step unless that step overrides the same key. ssh_secret is step-level only and is not valid here", + "allOf": [{ "$ref": "#/definitions/checkout" }], + "properties": { + "ssh_secret": false + } + }, "steps": { "$ref": "#/definitions/pipelineSteps" } diff --git a/src/check_jsonschema/builtin_schemas/vendor/codecov.json b/src/check_jsonschema/builtin_schemas/vendor/codecov.json index 98decea44..534b61ac4 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/codecov.json +++ b/src/check_jsonschema/builtin_schemas/vendor/codecov.json @@ -4,10 +4,18 @@ "definitions": { "default": { "$comment": "See https://docs.codecov.com/docs/commit-status#basic-configuration", + "type": "object", "properties": { "target": { - "type": ["string", "number"], - "pattern": "^(([0-9]+\\.?[0-9]*|\\.[0-9]+)%?|auto)$", + "anyOf": [ + { + "type": "string", + "pattern": "^(([0-9]+\\.?[0-9]*|\\.[0-9]+)%?|auto)$" + }, + { + "type": "number" + } + ], "default": "auto" }, "threshold": { @@ -25,7 +33,14 @@ "default": [] }, "paths": { - "type": ["array", "string"], + "anyOf": [ + { + "type": "array" + }, + { + "type": "string" + } + ], "default": [] }, "branches": { @@ -77,10 +92,17 @@ } }, "assume": { - "type": ["boolean", "array"], - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] } } }, @@ -169,7 +191,17 @@ "type": "string" }, "max_report_age": { - "type": ["string", "integer", "boolean"] + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "boolean" + } + ] }, "disable_default_path_fixes": { "type": "boolean" @@ -209,16 +241,30 @@ "type": "object", "properties": { "hide_density": { - "type": ["boolean", "array"], - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] }, "hide_complexity": { - "type": ["boolean", "array"], - "items": { - "type": "string" - } + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] }, "hide_contextual": { "type": "boolean" @@ -481,44 +527,73 @@ }, "status": { "description": "Commit status. See https://docs.codecov.io/docs/commit-status for details.", - "type": ["boolean", "object"], - "additionalProperties": false, - "properties": { - "default_rules": { - "type": "object" + "anyOf": [ + { + "type": "boolean" }, - "project": { + { + "type": "object", + "additionalProperties": false, "properties": { - "default": { - "$ref": "#/definitions/default", - "type": ["object", "boolean"] - } - }, - "additionalProperties": { - "$ref": "#/definitions/default", - "type": ["object", "boolean"] - } - }, - "patch": { - "anyOf": [ - { - "$ref": "#/definitions/default", + "default_rules": { "type": "object" }, - { - "type": "string", - "enum": ["off"] + "project": { + "type": "object", + "properties": { + "default": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/default", + "type": "object" + } + ] + } + }, + "additionalProperties": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/default", + "type": "object" + } + ] + } }, - { - "type": "boolean" + "patch": { + "anyOf": [ + { + "$ref": "#/definitions/default", + "type": "object" + }, + { + "type": "string", + "enum": ["off"] + }, + { + "type": "boolean" + } + ] + }, + "changes": { + "$ref": "#/definitions/default", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "object" + } + ] } - ] - }, - "changes": { - "$ref": "#/definitions/default", - "type": ["object", "boolean"] + } } - } + ] } } }, @@ -610,8 +685,13 @@ } } }, - { "type": "boolean" }, - { "type": "string", "enum": ["off"] } + { + "type": "boolean" + }, + { + "type": "string", + "const": "off" + } ] } }, diff --git a/src/check_jsonschema/builtin_schemas/vendor/compose-spec.json b/src/check_jsonschema/builtin_schemas/vendor/compose-spec.json index 5db97d0fb..fe0e45d68 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/compose-spec.json +++ b/src/check_jsonschema/builtin_schemas/vendor/compose-spec.json @@ -1,5 +1,5 @@ { - "$schema": "https://json-schema.org/draft-07/schema", + "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "compose_spec.json", "type": "object", "title": "Compose Specification", @@ -20,7 +20,7 @@ "include": { "type": "array", "items": { - "$ref": "#/definitions/include" + "$ref": "#/$defs/include" }, "description": "compose sub-projects to be included." }, @@ -29,7 +29,7 @@ "type": "object", "patternProperties": { "^[a-zA-Z0-9._-]+$": { - "$ref": "#/definitions/service" + "$ref": "#/$defs/service" } }, "additionalProperties": false, @@ -40,7 +40,7 @@ "type": "object", "patternProperties": { "^[a-zA-Z0-9._-]+$": { - "$ref": "#/definitions/model" + "$ref": "#/$defs/model" } }, "description": "Language models that will be used by your application." @@ -51,7 +51,7 @@ "type": "object", "patternProperties": { "^[a-zA-Z0-9._-]+$": { - "$ref": "#/definitions/network" + "$ref": "#/$defs/network" } }, "description": "Networks that are shared among multiple services." @@ -61,7 +61,7 @@ "type": "object", "patternProperties": { "^[a-zA-Z0-9._-]+$": { - "$ref": "#/definitions/volume" + "$ref": "#/$defs/volume" } }, "additionalProperties": false, @@ -72,7 +72,7 @@ "type": "object", "patternProperties": { "^[a-zA-Z0-9._-]+$": { - "$ref": "#/definitions/secret" + "$ref": "#/$defs/secret" } }, "additionalProperties": false, @@ -83,7 +83,7 @@ "type": "object", "patternProperties": { "^[a-zA-Z0-9._-]+$": { - "$ref": "#/definitions/config" + "$ref": "#/$defs/config" } }, "additionalProperties": false, @@ -94,15 +94,15 @@ "patternProperties": {"^x-": {}}, "additionalProperties": false, - "definitions": { + "$defs": { "service": { "type": "object", "description": "Configuration for a service.", "properties": { - "develop": {"$ref": "#/definitions/development"}, - "deploy": {"$ref": "#/definitions/deployment"}, - "annotations": {"$ref": "#/definitions/list_or_dict"}, + "develop": {"$ref": "#/$defs/development"}, + "deploy": {"$ref": "#/$defs/deployment"}, + "annotations": {"$ref": "#/$defs/list_or_dict"}, "attach": {"type": ["boolean", "string"]}, "build": { "description": "Configuration options for building the service's image.", @@ -115,25 +115,26 @@ "dockerfile": {"type": "string", "description": "Name of the Dockerfile to use for building the image."}, "dockerfile_inline": {"type": "string", "description": "Inline Dockerfile content to use instead of a Dockerfile from the build context."}, "entitlements": {"type": "array", "items": {"type": "string"}, "description": "List of extra privileged entitlements to grant to the build process."}, - "args": {"$ref": "#/definitions/list_or_dict", "description": "Build-time variables, specified as a map or a list of KEY=VAL pairs."}, - "ssh": {"$ref": "#/definitions/list_or_dict", "description": "SSH agent socket or keys to expose to the build. Format is either a string or a list of 'default|[=|[,]]'."}, - "labels": {"$ref": "#/definitions/list_or_dict", "description": "Labels to apply to the built image."}, + "args": {"$ref": "#/$defs/list_or_dict", "description": "Build-time variables, specified as a map or a list of KEY=VAL pairs."}, + "ssh": {"$ref": "#/$defs/list_or_dict", "description": "SSH agent socket or keys to expose to the build. Format is either a string or a list of 'default|[=|[,]]'."}, + "labels": {"$ref": "#/$defs/list_or_dict", "description": "Labels to apply to the built image."}, "cache_from": {"type": "array", "items": {"type": "string"}, "description": "List of sources the image builder should use for cache resolution"}, "cache_to": {"type": "array", "items": {"type": "string"}, "description": "Cache destinations for the build cache."}, "no_cache": {"type": ["boolean", "string"], "description": "Do not use cache when building the image."}, - "additional_contexts": {"$ref": "#/definitions/list_or_dict", "description": "Additional build contexts to use, specified as a map of name to context path or URL."}, + "no_cache_filter": {"$ref": "#/$defs/string_or_list", "description": "Do not use build cache for the specified stages."}, + "additional_contexts": {"$ref": "#/$defs/list_or_dict", "description": "Additional build contexts to use, specified as a map of name to context path or URL."}, "network": {"type": "string", "description": "Network mode to use for the build. Options include 'default', 'none', 'host', or a network name."}, "provenance": {"type": ["string","boolean"], "description": "Add a provenance attestation"}, "sbom": {"type": ["string","boolean"], "description": "Add a SBOM attestation"}, "pull": {"type": ["boolean", "string"], "description": "Always attempt to pull a newer version of the image."}, "target": {"type": "string", "description": "Build stage to target in a multi-stage Dockerfile."}, "shm_size": {"type": ["integer", "string"], "description": "Size of /dev/shm for the build container. A string value can use suffix like '2g' for 2 gigabytes."}, - "extra_hosts": {"$ref": "#/definitions/extra_hosts", "description": "Add hostname mappings for the build container."}, + "extra_hosts": {"$ref": "#/$defs/extra_hosts", "description": "Add hostname mappings for the build container."}, "isolation": {"type": "string", "description": "Container isolation technology to use for the build process."}, "privileged": {"type": ["boolean", "string"], "description": "Give extended privileges to the build container."}, - "secrets": {"$ref": "#/definitions/service_config_or_secret", "description": "Secrets to expose to the build. These are accessible at build-time."}, + "secrets": {"$ref": "#/$defs/service_config_or_secret", "description": "Secrets to expose to the build. These are accessible at build-time."}, "tags": {"type": "array", "items": {"type": "string"}, "description": "Additional tags to apply to the built image."}, - "ulimits": {"$ref": "#/definitions/ulimits", "description": "Override the default ulimits for the build container."}, + "ulimits": {"$ref": "#/$defs/ulimits", "description": "Override the default ulimits for the build container."}, "platforms": {"type": "array", "items": {"type": "string"}, "description": "Platforms to build for, e.g., 'linux/amd64', 'linux/arm64', or 'windows/amd64'."} }, "additionalProperties": false, @@ -148,22 +149,22 @@ "device_read_bps": { "type": "array", "description": "Limit read rate (bytes per second) from a device.", - "items": {"$ref": "#/definitions/blkio_limit"} + "items": {"$ref": "#/$defs/blkio_limit"} }, "device_read_iops": { "type": "array", "description": "Limit read rate (IO per second) from a device.", - "items": {"$ref": "#/definitions/blkio_limit"} + "items": {"$ref": "#/$defs/blkio_limit"} }, "device_write_bps": { "type": "array", "description": "Limit write rate (bytes per second) to a device.", - "items": {"$ref": "#/definitions/blkio_limit"} + "items": {"$ref": "#/$defs/blkio_limit"} }, "device_write_iops": { "type": "array", "description": "Limit write rate (IO per second) to a device.", - "items": {"$ref": "#/definitions/blkio_limit"} + "items": {"$ref": "#/$defs/blkio_limit"} }, "weight": { "type": ["integer", "string"], @@ -172,7 +173,7 @@ "weight_device": { "type": "array", "description": "Block IO weight (relative weight) for specific devices.", - "items": {"$ref": "#/definitions/blkio_weight"} + "items": {"$ref": "#/$defs/blkio_weight"} } }, "additionalProperties": false @@ -199,11 +200,11 @@ "description": "Specify an optional parent cgroup for the container." }, "command": { - "$ref": "#/definitions/command", + "$ref": "#/$defs/command", "description": "Override the default command declared by the container image, for example 'CMD' in Dockerfile." }, "configs": { - "$ref": "#/definitions/service_config_or_secret", + "$ref": "#/$defs/service_config_or_secret", "description": "Grant access to Configs on a per-service basis." }, "container_name": { @@ -275,7 +276,7 @@ }, "depends_on": { "oneOf": [ - {"$ref": "#/definitions/list_of_strings"}, + {"$ref": "#/$defs/list_of_strings"}, { "type": "object", "additionalProperties": false, @@ -308,7 +309,7 @@ "description": "Express dependency between services. Service dependencies cause services to be started in dependency order. The dependent service will wait for the dependency to be ready before starting." }, "device_cgroup_rules": { - "$ref": "#/definitions/list_of_strings", + "$ref": "#/$defs/list_of_strings", "description": "Add rules to the cgroup allowed devices list." }, "devices": { @@ -341,7 +342,7 @@ } }, "dns": { - "$ref": "#/definitions/string_or_list", + "$ref": "#/$defs/string_or_list", "description": "Custom DNS servers to set for the service container." }, "dns_opt": { @@ -351,7 +352,7 @@ "description": "Custom DNS options to be passed to the container's DNS resolver." }, "dns_search": { - "$ref": "#/definitions/string_or_list", + "$ref": "#/$defs/string_or_list", "description": "Custom DNS search domains to set on the service container." }, "domainname": { @@ -359,19 +360,19 @@ "description": "Custom domain name to use for the service container." }, "entrypoint": { - "$ref": "#/definitions/command", + "$ref": "#/$defs/command", "description": "Override the default entrypoint declared by the container image, for example 'ENTRYPOINT' in Dockerfile." }, "env_file": { - "$ref": "#/definitions/env_file", + "$ref": "#/$defs/env_file", "description": "Add environment variables from a file or multiple files. Can be a single file path or a list of file paths." }, "label_file": { - "$ref": "#/definitions/label_file", + "$ref": "#/$defs/label_file", "description": "Add metadata to containers using files containing Docker labels." }, "environment": { - "$ref": "#/definitions/list_or_dict", + "$ref": "#/$defs/list_or_dict", "description": "Add environment variables. You can use either an array or a list of KEY=VAL pairs." }, "expose": { @@ -433,11 +434,11 @@ "description": "Link to services started outside this Compose application. Specify services as :." }, "extra_hosts": { - "$ref": "#/definitions/extra_hosts", + "$ref": "#/$defs/extra_hosts", "description": "Add hostname mappings to the container network interface configuration." }, "gpus": { - "$ref": "#/definitions/gpus", + "$ref": "#/$defs/gpus", "description": "Define GPU devices to use. Can be set to 'all' to use all GPUs, or a list of specific GPU devices." }, "group_add": { @@ -449,7 +450,7 @@ "description": "Add additional groups which user inside the container should be member of." }, "healthcheck": { - "$ref": "#/definitions/healthcheck", + "$ref": "#/$defs/healthcheck", "description": "Configure a health check for the container to monitor its health status." }, "hostname": { @@ -473,7 +474,7 @@ "description": "Container isolation technology to use. Supported values are platform-specific." }, "labels": { - "$ref": "#/definitions/list_or_dict", + "$ref": "#/$defs/list_or_dict", "description": "Add metadata to containers using Docker labels. You can use either an array or a list." }, "links": { @@ -527,23 +528,28 @@ }, "models": { "oneOf": [ - {"$ref": "#/definitions/list_of_strings"}, + {"$ref": "#/$defs/list_of_strings"}, {"type": "object", "patternProperties": { "^[a-zA-Z0-9._-]+$": { - "type": "object", - "properties": { - "endpoint_var": { - "type": "string", - "description": "Environment variable set to AI model endpoint." + "oneOf": [ + { + "type": "object", + "properties": { + "endpoint_var": { + "type": "string", + "description": "Environment variable set to AI model endpoint." + }, + "model_var": { + "type": "string", + "description": "Environment variable set to AI model name." + } + }, + "additionalProperties": false, + "patternProperties": {"^x-": {}} }, - "model_var": { - "type": "string", - "description": "Environment variable set to AI model name." - } - }, - "additionalProperties": false, - "patternProperties": {"^x-": {}} + {"type": "null"} + ] } } } @@ -552,7 +558,7 @@ }, "networks": { "oneOf": [ - {"$ref": "#/definitions/list_of_strings"}, + {"$ref": "#/$defs/list_of_strings"}, { "type": "object", "patternProperties": { @@ -562,7 +568,7 @@ "type": "object", "properties": { "aliases": { - "$ref": "#/definitions/list_of_strings", + "$ref": "#/$defs/list_of_strings", "description": "Alternative hostnames for this service on the network." }, "interface_name": { @@ -578,7 +584,7 @@ "description": "Specify a static IPv6 address for this service on this network." }, "link_local_ips": { - "$ref": "#/definitions/list_of_strings", + "$ref": "#/$defs/list_of_strings", "description": "List of link-local IPs." }, "mac_address": { @@ -682,14 +688,19 @@ }, "uniqueItems": true }, + "pre_start": { + "type": "array", + "items": {"$ref": "#/$defs/pre_start_hook"}, + "description": "Init containers to run to completion before the service container is started. Each step runs in its own ephemeral container, in declared order; a non-zero exit fails the bring-up of the service and its dependents." + }, "post_start": { "type": "array", - "items": {"$ref": "#/definitions/service_hook"}, + "items": {"$ref": "#/$defs/service_hook"}, "description": "Commands to run after the container starts. If any command fails, the container stops." }, "pre_stop": { "type": "array", - "items": {"$ref": "#/definitions/service_hook"}, + "items": {"$ref": "#/$defs/service_hook"}, "description": "Commands to run before the container stops. If any command fails, the container stop is aborted." }, "privileged": { @@ -697,7 +708,7 @@ "description": "Give extended privileges to the service container." }, "profiles": { - "$ref": "#/definitions/list_of_strings", + "$ref": "#/$defs/list_of_strings", "description": "List of profiles for this service. When profiles are specified, services are only started when the profile is activated." }, "pull_policy": { @@ -736,11 +747,11 @@ "description": "Size of /dev/shm. A string value can use suffix like '2g' for 2 gigabytes." }, "secrets": { - "$ref": "#/definitions/service_config_or_secret", + "$ref": "#/$defs/service_config_or_secret", "description": "Grant access to Secrets on a per-service basis." }, "sysctls": { - "$ref": "#/definitions/list_or_dict", + "$ref": "#/$defs/list_or_dict", "description": "Kernel parameters to set in the container. You can use either an array or a list." }, "stdin_open": { @@ -760,7 +771,7 @@ "description": "Storage driver options for the container." }, "tmpfs": { - "$ref": "#/definitions/string_or_list", + "$ref": "#/$defs/string_or_list", "description": "Mount a temporary filesystem (tmpfs) into the container. Can be a single value or a list." }, "tty": { @@ -768,7 +779,7 @@ "description": "Allocate a pseudo-TTY to service container." }, "ulimits": { - "$ref": "#/definitions/ulimits", + "$ref": "#/$defs/ulimits", "description": "Override the default ulimits for a container." }, "use_api_socket": { @@ -849,7 +860,7 @@ "description": "Configuration specific to volume mounts.", "properties": { "labels": { - "$ref": "#/definitions/list_or_dict", + "$ref": "#/$defs/list_or_dict", "description": "Labels to apply to the volume." }, "nocopy": { @@ -969,11 +980,11 @@ "required": ["path", "action"], "properties": { "ignore": { - "$ref": "#/definitions/string_or_list", + "$ref": "#/$defs/string_or_list", "description": "Patterns to exclude from watching." }, "include": { - "$ref": "#/definitions/string_or_list", + "$ref": "#/$defs/string_or_list", "description": "Patterns to include in watching." }, "path": { @@ -990,7 +1001,7 @@ "description": "Target path in the container for sync operations." }, "exec": { - "$ref": "#/definitions/service_hook", + "$ref": "#/$defs/service_hook", "description": "Command to execute when a change is detected and action is sync+exec." }, "initial_sync": { @@ -1023,7 +1034,7 @@ "description": "Number of replicas of the service container to run." }, "labels": { - "$ref": "#/definitions/list_or_dict", + "$ref": "#/$defs/list_or_dict", "description": "Labels to apply to the service." }, "rollback_config": { @@ -1129,11 +1140,11 @@ "description": "Reservation on the amount of memory a container can allocate (e.g., '1g', '1024m')." }, "generic_resources": { - "$ref": "#/definitions/generic_resources", + "$ref": "#/$defs/generic_resources", "description": "User-defined resources to reserve." }, "devices": { - "$ref": "#/definitions/devices", + "$ref": "#/$defs/devices", "description": "Device reservations for the container." } }, @@ -1240,7 +1251,7 @@ "type": "object", "properties": { "capabilities": { - "$ref": "#/definitions/list_of_strings", + "$ref": "#/$defs/list_of_strings", "description": "List of capabilities the device needs to have (e.g., 'gpu', 'compute', 'utility')." }, "count": { @@ -1248,7 +1259,7 @@ "description": "Number of devices of this type to reserve." }, "device_ids": { - "$ref": "#/definitions/list_of_strings", + "$ref": "#/$defs/list_of_strings", "description": "List of specific device IDs to reserve." }, "driver": { @@ -1256,7 +1267,7 @@ "description": "Device driver to use (e.g., 'nvidia')." }, "options": { - "$ref": "#/definitions/list_or_dict", + "$ref": "#/$defs/list_or_dict", "description": "Driver-specific options for the device." } }, @@ -1282,7 +1293,7 @@ "type": "object", "properties": { "capabilities": { - "$ref": "#/definitions/list_of_strings", + "$ref": "#/$defs/list_of_strings", "description": "List of capabilities the GPU needs to have (e.g., 'compute', 'utility')." }, "count": { @@ -1290,7 +1301,7 @@ "description": "Number of GPUs to use." }, "device_ids": { - "$ref": "#/definitions/list_of_strings", + "$ref": "#/$defs/list_of_strings", "description": "List of specific GPU device IDs to use." }, "driver": { @@ -1298,7 +1309,7 @@ "description": "GPU driver to use (e.g., 'nvidia')." }, "options": { - "$ref": "#/definitions/list_or_dict", + "$ref": "#/$defs/list_or_dict", "description": "Driver-specific options for the GPU." } } @@ -1317,11 +1328,11 @@ "type": "object", "properties": { "path": { - "$ref": "#/definitions/string_or_list", + "$ref": "#/$defs/string_or_list", "description": "Path to the Compose application or sub-project files to include." }, "env_file": { - "$ref": "#/definitions/string_or_list", + "$ref": "#/$defs/string_or_list", "description": "Path to the environment files to use to define default values when interpolating variables in the Compose files being parsed." }, "project_directory": { @@ -1430,7 +1441,7 @@ "description": "If true, standalone containers can attach to this network." }, "labels": { - "$ref": "#/definitions/list_or_dict", + "$ref": "#/$defs/list_or_dict", "description": "Add metadata to the network using labels." } }, @@ -1471,7 +1482,7 @@ "patternProperties": {"^x-": {}} }, "labels": { - "$ref": "#/definitions/list_or_dict", + "$ref": "#/$defs/list_or_dict", "description": "Add metadata to the volume using labels." } }, @@ -1506,7 +1517,7 @@ } }, "labels": { - "$ref": "#/definitions/list_or_dict", + "$ref": "#/$defs/list_or_dict", "description": "Add metadata to the secret using labels." }, "driver": { @@ -1561,7 +1572,7 @@ } }, "labels": { - "$ref": "#/definitions/list_or_dict", + "$ref": "#/$defs/list_or_dict", "description": "Add metadata to the config using labels." }, "template_driver": { @@ -1626,7 +1637,7 @@ "description": "Configuration for service lifecycle hooks, which are commands executed at specific points in a container's lifecycle.", "properties": { "command": { - "$ref": "#/definitions/command", + "$ref": "#/$defs/command", "description": "Command to execute as part of the hook." }, "user": { @@ -1642,7 +1653,7 @@ "description": "Working directory for the command." }, "environment": { - "$ref": "#/definitions/list_or_dict", + "$ref": "#/$defs/list_or_dict", "description": "Environment variables for the command." } }, @@ -1651,6 +1662,43 @@ "required": ["command"] }, + "pre_start_hook": { + "type": "object", + "description": "Configuration for a pre_start init container, run to completion before the service container starts.", + "properties": { + "command": { + "$ref": "#/$defs/command", + "description": "Command to execute. Optional when the chosen image's entrypoint already runs the intended command." + }, + "image": { + "type": "string", + "description": "Image used for the ephemeral container. If omitted, the parent service's image is used." + }, + "user": { + "type": "string", + "description": "User to run the command as. Defaults to the user declared in image (or to the service's user when image is omitted)." + }, + "privileged": { + "type": ["boolean", "string"], + "description": "Whether to run the command with extended privileges." + }, + "working_dir": { + "type": "string", + "description": "Working directory for the command. Defaults to the service's working directory." + }, + "environment": { + "$ref": "#/$defs/list_or_dict", + "description": "Environment variables for the command. Appended to or overriding the service environment." + }, + "per_replica": { + "type": ["boolean", "string"], + "description": "Whether the hook runs once per service replica (true), or once for the service as a whole before any replica starts (false, the default)." + } + }, + "additionalProperties": false, + "patternProperties": {"^x-": {}} + }, + "env_file": { "oneOf": [ { @@ -1719,7 +1767,7 @@ "description": "A single string value." }, { - "$ref": "#/definitions/list_of_strings", + "$ref": "#/$defs/list_of_strings", "description": "A list of string values." } ], diff --git a/src/check_jsonschema/builtin_schemas/vendor/dependabot.json b/src/check_jsonschema/builtin_schemas/vendor/dependabot.json index ed7572625..7d5896fd1 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/dependabot.json +++ b/src/check_jsonschema/builtin_schemas/vendor/dependabot.json @@ -700,6 +700,7 @@ "pre-commit", "pub", "rust-toolchain", + "sbt", "swift", "terraform", "uv", @@ -753,9 +754,19 @@ }, "anyOf": [ { + "properties": { + "dependency-name": { + "$ref": "#/definitions/update/properties/allow/items/properties/dependency-name" + } + }, "required": ["dependency-name"] }, { + "properties": { + "dependency-type": { + "$ref": "#/definitions/dependency-type" + } + }, "required": ["dependency-type"] } ], @@ -789,18 +800,32 @@ "include": { "description": "Specifies that any prefix is followed by a list of the dependencies updated in the commit.", "type": "string", - "enum": ["scope"], - "default": "scope" + "const": "scope" } }, "anyOf": [ { + "properties": { + "prefix": { + "$ref": "#/definitions/update/properties/commit-message/properties/prefix" + } + }, "required": ["prefix"] }, { + "properties": { + "prefix-development": { + "$ref": "#/definitions/update/properties/commit-message/properties/prefix-development" + } + }, "required": ["prefix-development"] }, { + "properties": { + "include": { + "$ref": "#/definitions/update/properties/commit-message/properties/include" + } + }, "required": ["include"] } ], @@ -926,7 +951,7 @@ "group-by": { "description": "Configure how dependencies are grouped within this group.", "type": "string", - "enum": ["dependency-name"] + "const": "dependency-name" } }, "additionalProperties": false @@ -966,12 +991,27 @@ }, "anyOf": [ { + "properties": { + "dependency-name": { + "$ref": "#/definitions/update/properties/ignore/items/properties/dependency-name" + } + }, "required": ["dependency-name"] }, { + "properties": { + "update-types": { + "$ref": "#/definitions/update/properties/ignore/items/properties/update-types" + } + }, "required": ["update-types"] }, { + "properties": { + "versions": { + "$ref": "#/definitions/update/properties/ignore/items/properties/versions" + } + }, "required": ["versions"] } ], @@ -1080,12 +1120,9 @@ "timezone": { "$ref": "#/definitions/timezone", "description": "The time zone identifier must be from the Time Zone database maintained by IANA" - }, - "cronjob": { - "type": "string", - "description": "Specify a valid cron expression for updates" } }, + "required": ["interval"], "allOf": [ { "$comment": "If interval type is 'cron', enforce 'cronjob' property.", @@ -1097,10 +1134,13 @@ } }, "then": { - "required": ["interval", "cronjob"] - }, - "else": { - "required": ["interval"] + "properties": { + "cronjob": { + "type": "string", + "description": "Specify a valid cron expression for updates" + } + }, + "required": ["cronjob"] } } ] @@ -1134,25 +1174,43 @@ "minLength": 1 } }, + "required": ["package-ecosystem"], "allOf": [ { "$comment": "Schedule is required UNLESS multi-ecosystem-group is specified", "if": { - "required": ["multi-ecosystem-group"] + "not": { + "properties": { + "multi-ecosystem-group": {} + }, + "required": ["multi-ecosystem-group"] + } }, "then": { - "required": ["package-ecosystem"] - }, - "else": { - "required": ["package-ecosystem", "schedule"] + "properties": { + "schedule": { + "$ref": "#/definitions/update/properties/schedule" + } + }, + "required": ["schedule"] } }, { "oneOf": [ { + "properties": { + "directories": { + "$ref": "#/definitions/update/properties/directories" + } + }, "required": ["directories"] }, { + "properties": { + "directory": { + "$ref": "#/definitions/update/properties/directory" + } + }, "required": ["directory"] } ] @@ -1163,6 +1221,11 @@ "required": ["multi-ecosystem-group"] }, "then": { + "properties": { + "patterns": { + "$ref": "#/definitions/update/properties/patterns" + } + }, "required": ["patterns"] } } @@ -1219,6 +1282,25 @@ "description": "For registries with type: python-index, if the boolean value is true, pip resolves dependencies by using the specified URL rather than the base URL of the Python Package Index (by default https://pypi.org/simple).", "type": "boolean" }, + "scope": { + "$comment": "'scope' must be either a single npm scope, or an array of them.", + "description": "For registries with type: npm-registry, the npm scope or scopes served by this registry, for example '@my-org'. Dependabot binds only the listed scopes to this registry when generating the .npmrc, so packages outside those scopes continue to resolve from the base registry. This value takes precedence over scope inference from an existing .npmrc or from the lockfile.", + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + { + "type": "string", + "minLength": 1 + } + ] + }, "organization": { "description": "", "type": "string" @@ -1308,12 +1390,9 @@ "timezone": { "$ref": "#/definitions/timezone", "description": "The time zone identifier must be from the Time Zone database maintained by IANA" - }, - "cronjob": { - "type": "string", - "description": "Specify a valid cron expression for updates" } }, + "required": ["interval"], "allOf": [ { "$comment": "If interval type is 'cron', enforce 'cronjob' property.", @@ -1325,10 +1404,13 @@ } }, "then": { - "required": ["interval", "cronjob"] - }, - "else": { - "required": ["interval"] + "properties": { + "cronjob": { + "type": "string", + "description": "Specify a valid cron expression for updates" + } + }, + "required": ["cronjob"] } } ] @@ -1380,17 +1462,32 @@ "include": { "description": "Specifies that any prefix is followed by a list of the dependencies updated in the commit", "type": "string", - "enum": ["scope"] + "const": "scope" } }, "anyOf": [ { + "properties": { + "prefix": { + "$ref": "#/definitions/multi-ecosystem-group/properties/commit-message/properties/prefix" + } + }, "required": ["prefix"] }, { + "properties": { + "prefix-development": { + "$ref": "#/definitions/multi-ecosystem-group/properties/commit-message/properties/prefix-development" + } + }, "required": ["prefix-development"] }, { + "properties": { + "include": { + "$ref": "#/definitions/multi-ecosystem-group/properties/commit-message/properties/include" + } + }, "required": ["include"] } ], @@ -1450,7 +1547,7 @@ "title": "Config file version", "description": "Dependabot configuration files require this key, and its value must be 2", "type": "integer", - "enum": [2] + "const": 2 }, "enable-beta-ecosystems": { "description": "Enable ecosystems that have beta-level support", @@ -1494,7 +1591,9 @@ "else": { "properties": { "updates": { + "type": "array", "items": { + "type": "object", "properties": { "package-ecosystem": { "$ref": "#/definitions/package-ecosystem-values" diff --git a/src/check_jsonschema/builtin_schemas/vendor/mergify.json b/src/check_jsonschema/builtin_schemas/vendor/mergify.json index a0354a378..bfd179d11 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/mergify.json +++ b/src/check_jsonschema/builtin_schemas/vendor/mergify.json @@ -101,7 +101,12 @@ "type": "null" } ], - "default": null + "configuration_deprecated_attribute": { + "deprecated_summary_ghes_mode": "The `github_actions` action is deprecated and will be removed on 2027-03-31. Trigger your workflow from GitHub Actions directly instead: https://docs.mergify.com/workflow/actions/github_actions", + "deprecated_summary_saas_mode": "The `github_actions` action is deprecated and will be removed on 2027-03-31. Trigger your workflow from GitHub Actions directly instead: https://docs.mergify.com/workflow/actions/github_actions" + }, + "default": null, + "deprecated": true }, "label": { "anyOf": [ @@ -469,11 +474,7 @@ ], "description": "Reporting modes for the action's result. Check will create a check on the pull request, and comment will post a comment on the pull request.", "items": { - "enum": [ - "check", - "comment" - ], - "type": "string" + "$ref": "#/$defs/ReportMode" }, "minItems": 1, "title": "Report Mode", @@ -493,6 +494,33 @@ "title": "BackportActionModel", "type": "object" }, + "BarrierFileFilters": { + "additionalProperties": false, + "properties": { + "include": { + "description": "Glob patterns of files that impact every scope. At least one pattern is required. Examples: ('.github/workflows/**', 'Makefile')", + "items": { + "type": "string" + }, + "minItems": 1, + "title": "Include", + "type": "array" + }, + "exclude": { + "description": "Glob patterns of files to exclude from this scope. Evaluated after `include` and takes precedence. Examples: ('**/tests/**', '*.md')", + "items": { + "type": "string" + }, + "title": "Exclude", + "type": "array" + } + }, + "required": [ + "include" + ], + "title": "BarrierFileFilters", + "type": "object" + }, "BatchSizeBounds": { "anyOf": [ { @@ -1165,11 +1193,7 @@ ], "description": "Reporting modes for the action's result. Check will create a check on the pull request, and comment will post a comment on the pull request.", "items": { - "enum": [ - "check", - "comment" - ], - "type": "string" + "$ref": "#/$defs/ReportMode" }, "minItems": 1, "title": "Report Mode", @@ -1617,8 +1641,13 @@ "type": "null" } ], + "configuration_deprecated_attribute": { + "deprecated_summary_ghes_mode": "`commit_message_template` is deprecated and will be removed on 2026-09-30. Use the declarative `commit_message_format` instead: https://docs.mergify.com/workflow/actions/merge#migrating-from-commit_message_template", + "deprecated_summary_saas_mode": "`commit_message_template` is deprecated and will be removed on 2026-09-30. Use the declarative `commit_message_format` instead: https://docs.mergify.com/workflow/actions/merge#migrating-from-commit_message_template" + }, "default": null, - "description": "Template to use as the commit message when using the merge or squash merge method.", + "deprecated": true, + "description": "Template to use as the commit message when using the merge or squash merge method. Deprecated: use `commit_message_format` instead.", "title": "Commit Message Template" }, "commit_message_format": { @@ -1787,6 +1816,19 @@ "description": "The label to add on pull requests when they are added to the merge queue.", "title": "Queued Label" }, + "checking_label": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The label to add on pull requests while the merge queue is checking them, from the moment they enter a batch until they leave the queue. It stays on a pull request parked in a bisection, whose own CI has not started yet.", + "title": "Checking Label" + }, "dequeued_label": { "anyOf": [ { @@ -1802,7 +1844,7 @@ }, "mode": { "default": "serial", - "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- `isolated`: PRs are grouped into batches by changed-files similarity; each batch runs as a fully isolated car, with no dependency on any other batch.\n", + "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- `isolated`: PRs are grouped into batches by changed-files similarity; each batch runs as a fully isolated batch, with no dependency on any other batch.\n", "enum": [ "serial", "parallel", @@ -1976,10 +2018,11 @@ ], "default": "medium", "description": "The priority of the pull request.", - "title": "Priority" + "title": "Priority", + "x-has-data-type": true }, "allow_checks_interruption": { - "default": true, + "default": false, "description": "Allow interrupting the ongoing checks when the pull request entering the queue has a higher priority than the queued one(s). If set to false, a pull request with higher priority will be inserted just after the pull requests that have checks running.", "title": "Allow Checks Interruption", "type": "boolean" @@ -2005,37 +2048,79 @@ "draft": { "description": "Whether the pull request is in draft state.", "title": "Draft", - "type": "boolean" + "type": "boolean", + "x-allowed-operators": [], + "x-modifiers": [ + { + "type": "negate" + } + ] }, "merged": { "description": "Whether the pull request is merged.", "title": "Merged", - "type": "boolean" + "type": "boolean", + "x-allowed-operators": [], + "x-modifiers": [ + { + "type": "negate" + } + ] }, "mergify-configuration-changed": { "description": "Whether the pull request contains changes in the configuration file.", "title": "Mergify configuration changed", - "type": "boolean" + "type": "boolean", + "x-allowed-operators": [], + "x-modifiers": [ + { + "type": "negate" + } + ] }, "closed": { "description": "Whether the pull request is closed.", "title": "Closed", - "type": "boolean" + "type": "boolean", + "x-allowed-operators": [], + "x-modifiers": [ + { + "type": "negate" + } + ] }, "locked": { "description": "Whether the pull request is locked.", "title": "Locked", - "type": "boolean" + "type": "boolean", + "x-allowed-operators": [], + "x-modifiers": [ + { + "type": "negate" + } + ] }, "linear-history": { "description": "Whether the pull request commits history is linear (no merge commit).", "title": "Linear history", - "type": "boolean" + "type": "boolean", + "x-allowed-operators": [], + "x-modifiers": [ + { + "type": "negate" + } + ] }, "conflict": { "description": "Whether the pull request is conflicting with its base branch.", "title": "Conflict", - "type": "boolean" + "type": "boolean", + "x-allowed-operators": [], + "x-modifiers": [ + { + "type": "negate" + } + ] }, "github-review-decision": { "anyOf": [ @@ -2052,44 +2137,145 @@ } ], "description": "The review decision computed by GitHub from its `pullRequest.reviewDecision` field, driven by either classic branch protection or repository / organization rulesets. Typically reflects whether required approvals and `CODEOWNERS` reviews have been satisfied.", - "title": "GitHub review decision" + "title": "GitHub review decision", + "x-allowed-operators": [ + "=", + "!=", + "~=" + ], + "x-mergify-attribute-metadata": { + "documentation_url": "https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-pull-request-reviews-before-merging", + "source": "github" + }, + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "github-require-review-from-specific-teams": { "description": "Whether every `required_reviewers` entry on the branch's active GitHub rulesets is satisfied (each named team has the requested number of approvals, each named user has approved). When the rule scopes the requirement to a subset of files via `file_patterns`, the check only applies to PRs that touch a matching file. Returns `false` if an entry references a team or user id that cannot be resolved.", "title": "GitHub require review from specific teams", - "type": "boolean" + "type": "boolean", + "x-allowed-operators": [], + "x-mergify-attribute-metadata": { + "documentation_url": "https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets#required-reviewers", + "source": "github" + }, + "x-modifiers": [ + { + "type": "negate" + } + ] }, "github-code-owner-review-satisfied": { "description": "Whether every file the pull request touches that is owned in the repository's `CODEOWNERS` file has at least one approval from one of its owners (a user, or any member of an owning team). Mirrors GitHub's 'Require review from Code Owners', covering the case where GitHub blocks the merge on a code-owner review while `pullRequest.reviewDecision` is `null`. Returns `true` when there is no `CODEOWNERS` file or no touched file is owned, and `false` when an owner cannot be resolved to a GitHub login (an email address, or a team in another org).", "title": "GitHub code owner review satisfied", - "type": "boolean" + "type": "boolean", + "x-allowed-operators": [], + "x-mergify-attribute-metadata": { + "documentation_url": "https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners", + "source": "github" + }, + "x-modifiers": [ + { + "type": "negate" + } + ] }, "github-review-approved": { "description": "Whether GitHub's effective review enforcement is satisfied: the required approvals are in and no eligible reviewer is blocking with an active 'Request changes'. When the rule requires at least one approval, this mirrors GitHub's `pullRequest.reviewDecision` (so a blocking review from a reviewer other than the approver is honored, unlike a bare approval count). When the rule requires a pull request with no approval count, it blocks only on a write+ reviewer's active 'Request changes'. Returns `true` when no rule on the base branch requires a review.", "title": "GitHub review approved", - "type": "boolean" + "type": "boolean", + "x-allowed-operators": [], + "x-mergify-attribute-metadata": { + "documentation_url": "https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-pull-request-reviews-before-merging", + "source": "github" + }, + "x-modifiers": [ + { + "type": "negate" + } + ] }, "github-require-last-push-approval": { "description": "Whether GitHub's 'Require approval of the most recent reviewable push' is satisfied: the required number of approvals are in from reviewers other than the user who pushed the most recent commit, and approvals submitted against an earlier head no longer count. Mirrors how GitHub's `pullRequest.reviewDecision` evaluates the `require_last_push_approval` branch protection / ruleset option. Returns `true` when no rule on the base branch requires last-push approval, and (leniently) when Mergify has not recorded the most recent push, such as pull requests opened before push tracking.", "title": "GitHub require last push approval", - "type": "boolean" + "type": "boolean", + "x-allowed-operators": [], + "x-mergify-attribute-metadata": { + "documentation_url": "https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-pull-request-reviews-before-merging", + "source": "github" + }, + "x-modifiers": [ + { + "type": "negate" + } + ] }, "number": { "description": "The pull request number.", "maximum": 9223372036854775807, "minimum": 0, "title": "Number", - "type": "integer" + "type": "integer", + "x-allowed-operators": [ + "=", + "!=", + ">=", + "<=", + "<", + ">" + ], + "x-modifiers": [ + { + "type": "negate" + } + ] }, "queue-position": { "description": "The position of the pull request in its queue if queued. The first pull request in the queue has position 0. The value is set to -1 if the pull request is not queued.", "title": "Queue position", - "type": "integer" + "type": "integer", + "x-allowed-operators": [ + "=", + "!=", + ">=", + "<=", + "<", + ">" + ], + "x-modifiers": [ + { + "type": "negate" + } + ] }, "author": { "description": "The GitHub user or team login of the author of the pull request.", "title": "Author", - "type": "string" + "type": "string", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "merged-by": { "anyOf": [ @@ -2101,7 +2287,25 @@ } ], "description": "The GitHub user that merged the pull request.", - "title": "Merged by" + "title": "Merged by", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "merge-commit-sha": { "anyOf": [ @@ -2113,7 +2317,25 @@ } ], "description": "The merge commit SHA of the pull request returned by GitHub.", - "title": "Merge commit sha" + "title": "Merge commit sha", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "milestone": { "anyOf": [ @@ -2125,47 +2347,208 @@ } ], "description": "The milestone title associated to the pull request.", - "title": "Milestone" + "title": "Milestone", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "base": { "description": "The name of the branch the pull request should be pulled into.", "title": "Base", - "type": "string" + "type": "string", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "head": { "description": "The name of the branch where the pull request changes are implemented.", "title": "Head", - "type": "string" + "type": "string", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "head-repo-full-name": { "description": "The head branch repository full name (complete version with the organization name).", "title": "Head repo full name", - "type": "string" + "type": "string", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "title": { "description": "The title of the pull request.", "title": "Title", - "type": "string" + "type": "string", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "body": { "description": "The content of the pull request description without Markdown/HTML comments.", "title": "Body", - "type": "string" + "type": "string", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "body-raw": { "description": "The content of the pull request description.", "title": "Body raw", - "type": "string" + "type": "string", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "repository-name": { "description": "The current repository name (short version without the organization name).", "title": "Repository name", - "type": "string" + "type": "string", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "repository-full-name": { "description": "The current repository full name (complete version with the organization name).", "title": "Repository full name", - "type": "string" + "type": "string", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "queue-dequeue-reason": { "anyOf": [ @@ -2191,6 +2574,7 @@ "SPECULATIVE_CHECK_NUMBER_REDUCED", "CHECKS_TIMEOUT", "CHECKS_FAILED", + "DROPPED_BY_BISECTION_ELIMINATION", "QUEUE_RULE_MISSING", "BASE_BRANCH_MISSING", "BASE_BRANCH_CHANGED", @@ -2215,7 +2599,9 @@ "INTERMEDIATE_RESULTS_SKIPPED", "CHECKS_RETRIED", "SCHEDULE_BLOCKED_AHEAD_YIELDED", - "BASE_REF_ALIGNMENT_TIMEOUT" + "BASE_REF_ALIGNMENT_TIMEOUT", + "GITHUB_STACKED_PULL_REQUEST_MERGE_UNSUPPORTED", + "BATCH_SCOPES_CHANGED" ], "type": "string" }, @@ -2223,8 +2609,64 @@ "type": "null" } ], - "description": "A dequeue code for when a pull request has been dequeued from the merge queue.", - "title": "Queue dequeue reason" + "description": "The code identifying why a pull request's merge queue checks ended \u2014 the pull request may have left the queue, or had its checks interrupted while staying in the queue.", + "title": "Queue dequeue reason", + "x-allowed-operators": [ + "=", + "!=", + "~=" + ], + "x-enum-descriptions": { + "BASE_BRANCH_CHANGED": "The pull request's base branch changed.", + "BASE_BRANCH_MISSING": "The pull request's base branch no longer exists.", + "BASE_REF_ALIGNMENT_TIMEOUT": "The pull request could not be retargeted onto the queue base branch, for example a stacked pull request GitHub never retargeted.", + "BATCH_AHEAD_FAILED": "A batch ahead in the queue failed, so this pull request's speculative checks are restarted. It stays in the queue.", + "BATCH_MAX_FAILURE_RESOLUTION_ATTEMPTS": "The maximum number of `batch_max_failure_resolution_attempts` was reached while isolating a batch failure.", + "BATCH_PULL_REQUEST_CLOSED": "The merge queue batch pull request was closed.", + "BATCH_SCOPES_CHANGED": "A pull request's scopes changed after it was embarked, so its batch was recomposed. It stays in the queue.", + "BRANCH_UPDATE_FAILED": "Updating the pull request's head branch failed.", + "CHECKS_FAILED": "The queue conditions cannot be satisfied because required checks failed.", + "CHECKS_RETRIED": "The pull request's failed checks are being retried. It stays in the queue.", + "CHECKS_TIMEOUT": "The configured `checks_timeout` was reached before the queue conditions were satisfied.", + "CONFIGURATION_CHANGED": "The Mergify configuration changed while the pull request was queued.", + "CONFLICT_WITH_BASE_BRANCH": "The pull request conflicts with its base branch.", + "CONFLICT_WITH_PULL_AHEAD": "The pull request conflicts with a pull request ahead of it in the queue.", + "DRAFT_PULL_REQUEST_CHANGED": "The merge queue draft pull request received commits that Mergify did not create.", + "DRAFT_PULL_REQUEST_CREATION_BRANCH_NOT_INDEXED": "Mergify could not create the merge queue draft pull request because GitHub had not yet indexed the new branch.", + "DRAFT_PULL_REQUEST_CREATION_FAILED": "Mergify could not create the merge queue draft pull request.", + "DROPPED_BY_BISECTION_ELIMINATION": "Batch bisection isolated the failure to other pull requests and dropped this one without testing it individually.", + "GITHUB_STACKED_PULL_REQUEST_MERGE_UNSUPPORTED": "The pull request is a GitHub stacked pull request, which GitHub does not support merging through its API.", + "INCOMPATIBILITY_WITH_BRANCH_PROTECTIONS": "The pull request cannot be checked because of an incompatibility between the queue and the repository's branch protections.", + "INTERMEDIATE_RESULTS_SKIPPED": "The pull request's intermediate speculative results were skipped. It stays in the queue.", + "MERGE_QUEUE_RESET": "The merge queue was reset.", + "NONE": "The pull request is not, and never was, in a merge queue.", + "PR_AHEAD_DEQUEUED": "A pull request ahead in the queue was removed, so this pull request's speculative checks are restarted. It stays in the queue.", + "PR_CHECKS_STOPPED_BECAUSE_MERGE_QUEUE_PAUSE": "The pull request's checks were interrupted because the merge queue is paused on the repository. It stays in the queue.", + "PR_DEQUEUED": "The pull request was removed from the queue, for example because its queue conditions no longer match.", + "PR_DEQUEUED_FROM_PARTITION": "The pull request stopped matching a partition's rules and was removed from that partition.", + "PR_MANUALLY_DEQUEUED": "The pull request was manually removed from the queue.", + "PR_MANUALLY_MERGED": "The pull request was merged manually, outside of the merge queue.", + "PR_MERGED": "The pull request was merged by the merge queue.", + "PR_MERGED_INTERMEDIATE_RESULTS_SKIPPED": "The pull request was merged based on the successful result of a later pull request in the same speculative batch, skipping its own intermediate checks.", + "PR_UNEXPECTEDLY_FAILED_TO_MERGE": "An unexpected error happened while merging the pull request.", + "PR_WITH_HIGHER_PRIORITY_QUEUED": "A higher-priority pull request was queued ahead of this one. It stays in the queue.", + "PULL_REQUEST_UPDATED": "The pull request was manually updated.", + "QUEUE_RULE_MISSING": "The queue rule referenced by the pull request no longer exists in the configuration.", + "SCHEDULED_FREEZE_STATUS_CHANGED": "A scheduled queue freeze changed the freeze status of the batch's pull requests, so the batch was split. It stays in the queue.", + "SCHEDULE_BLOCKED_AHEAD_YIELDED": "A pull request ahead that was waiting for its merge schedule yielded its position so ready pull requests behind it can merge first. It stays in the queue.", + "SPECULATIVE_CHECK_NUMBER_REDUCED": "The number of speculative checks was reduced. The pull request stays in the queue.", + "STACK_PREDECESSOR_DEQUEUED": "A predecessor pull request in the same stack was dequeued, so this one was removed as well.", + "UNPROCESSABLE_PULL_REQUEST": "Mergify cannot process the pull request, for example because it has too many check runs, comments, or files." + }, + "x-has-data-type": true, + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "queue-name": { "anyOf": [ @@ -2236,7 +2678,25 @@ } ], "description": "The name of the queue containing the pull request.", - "title": "Queue name" + "title": "Queue name", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "assignee": { "description": "The list of GitHub user or team login that are assigned to the pull request. Team logins are prefixed with the `@` character and must belong to the repository organization.", @@ -2244,7 +2704,25 @@ "type": "string" }, "title": "Assignee", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "label": { "description": "The list of labels of the pull request.", @@ -2252,7 +2730,25 @@ "type": "string" }, "title": "Label", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "review-requested": { "description": "The list of GitHub user or team login that were requested to review the pull request. Team logins are prefixed with the @ character. This only matches reviewers with `admin`, `write` or `maintain` permission on the repository.", @@ -2260,7 +2756,25 @@ "type": "string" }, "title": "Review requested", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "approved-reviews-by": { "description": "The list of GitHub user or team login that approved the pull request. Team logins are prefixed with the `@` character and must belong to the repository organization. This only matches reviewers with `admin`, `write` or `maintain` permission on the repository.", @@ -2268,7 +2782,25 @@ "type": "string" }, "title": "Approved reviews by", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "dismissed-reviews-by": { "description": "The list of GitHub user login that have their review dismissed in the pull request.", @@ -2276,7 +2808,25 @@ "type": "string" }, "title": "Dismissed reviews by", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "changes-requested-reviews-by": { "description": "The list of GitHub user or team login that have requested changes in a review for the pull request.", @@ -2284,7 +2834,25 @@ "type": "string" }, "title": "Changes requested reviews by", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "commented-reviews-by": { "description": "The list of GitHub user that have commented in a review for the pull request. This only matches reviewers with `admin`, `write` or `maintain` permission on the repository.", @@ -2292,7 +2860,25 @@ "type": "string" }, "title": "Commented reviews by", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "check-success": { "description": "The list of checks that successfully passed for the pull request.", @@ -2300,7 +2886,25 @@ "type": "string" }, "title": "Check success", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "check-failure": { "description": "The list of checks that failed for the pull request. Checks that report being cancelled, timed out, and action required are also considered as failures.", @@ -2308,7 +2912,25 @@ "type": "string" }, "title": "Check failure", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "check-neutral": { "description": "The list of checks that are neutral for the pull request. ", @@ -2316,7 +2938,25 @@ "type": "string" }, "title": "Check neutral", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "check-timed-out": { "description": "The list of checks that timed out for the pull request.", @@ -2324,7 +2964,25 @@ "type": "string" }, "title": "Check timed out", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "check-skipped": { "description": "The list of checks that was skipped for the pull request.", @@ -2332,7 +2990,25 @@ "type": "string" }, "title": "Check skipped", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "check-cancelled": { "description": "The list of checks that were cancelled for the pull request. Cancelled checks are also matched by `check-failure`; use `check-cancelled` to address them independently.", @@ -2340,7 +3016,25 @@ "type": "string" }, "title": "Check cancelled", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "check-pending": { "description": "The list of checks that are pending for the pull request.", @@ -2348,7 +3042,25 @@ "type": "string" }, "title": "Check pending", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "check": { "description": "The list of checks for that pull request.", @@ -2364,7 +3076,25 @@ "type": "string" }, "title": "Check stale", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "commits-unverified": { "description": "The list of commit messages that are marked as unverified by GitHub.", @@ -2372,7 +3102,25 @@ "type": "string" }, "title": "Commits unverified", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "deployment-success": { "description": "The list of deployments that successfully passed for the pull request.", @@ -2380,7 +3128,25 @@ "type": "string" }, "title": "Deployment success", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "deployment-failure": { "description": "The list of deployments that failed for the pull request.", @@ -2388,7 +3154,25 @@ "type": "string" }, "title": "Deployment failure", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "review-threads-resolved": { "description": "The list of ids associated to review threads that are marked as resolved by GitHub.", @@ -2396,7 +3180,25 @@ "type": "string" }, "title": "Review threads resolved", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "review-threads-unresolved": { "description": "The list of ids associated to review threads that are NOT marked as resolved by GitHub.", @@ -2404,39 +3206,129 @@ "type": "string" }, "title": "Review threads unresolved", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "files": { - "description": "The files that are modified, deleted or added by the pull request.", + "description": "The files that are modified, deleted or added by the pull request. A renamed file counts at both of its paths, so it appears twice; `#files` reports GitHub's own changed-file count, which counts it once.", "items": { "type": "string" }, "title": "Files", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "added-files": { - "description": "The files that are added by the pull request.", + "description": "The files that are added by the pull request, including the destination of a renamed file.", "items": { "type": "string" }, "title": "Added files", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "modified-files": { - "description": "The files that are modified by the pull request.", + "description": "The files that are modified in place by the pull request. A renamed file is not modified: it is removed at its previous path and added at its new one.", "items": { "type": "string" }, "title": "Modified files", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "removed-files": { - "description": "The files that are removed by the pull request.", + "description": "The files that are removed by the pull request, including the previous path of a renamed file.", "items": { "type": "string" }, "title": "Removed files", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "added-lines": { "description": "The lines that are added by the pull request. Only usable as `#added-lines` for the number of added lines.", @@ -2444,7 +3336,25 @@ "type": "string" }, "title": "Added lines", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "modified-lines": { "description": "The lines that are modified by the pull request. Only usable as `#modified-lines` for the number of modified lines.", @@ -2452,7 +3362,25 @@ "type": "string" }, "title": "Modified lines", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "deleted-lines": { "description": "The lines that are deleted by the pull request. Only usable as `#deleted-lines` for the number of deleted lines.", @@ -2460,7 +3388,25 @@ "type": "string" }, "title": "Deleted lines", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "co-authors": { "description": "The list of co-authors on the pull request (excluding merge commits and bots).", @@ -2476,7 +3422,24 @@ "type": "string" }, "title": "Commits behind", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + ">=", + "<=", + "<", + ">" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "required": true, + "type": "length" + } + ] }, "depends-on": { "description": "The list of dependencies to other pull request in the format `owner/repo#prnumber`.", @@ -2484,7 +3447,25 @@ "type": "string" }, "title": "Depends on", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "dependabot-dependency-name": { "description": "The dependency-name value included in the Dependabot commit message.", @@ -2492,7 +3473,25 @@ "type": "string" }, "title": "Dependabot dependency name", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "dependabot-dependency-type": { "description": "The dependency-type value included in the Dependabot commit message.", @@ -2500,7 +3499,25 @@ "type": "string" }, "title": "Dependabot dependency type", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "dependabot-update-type": { "description": "The update-type value included in the Dependabot commit message.", @@ -2508,15 +3525,51 @@ "type": "string" }, "title": "Dependabot update type", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "scope": { - "description": "The list of scopes associated with the pull request for merge queue batching.", + "description": "The list of scopes associated with the pull request for merge queue batching. With a `files` source, a renamed file counts at both of its paths, so moving a file out of a scope reports that scope as well as the destination's.", "items": { "type": "string" }, "title": "Scope", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "commits": { "description": "The list of commits of the pull request. The index 0 is the first commit, while -1 is the last commit.", @@ -2524,25 +3577,66 @@ "$ref": "#/$defs/Commit" }, "title": "Commits", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "current-datetime": { "description": "The current date and time.", "format": "date-time", "title": "Current datetime", - "type": "string" + "type": "string", + "x-allowed-operators": [ + "=", + "!=", + ">=", + "<=", + "<", + ">" + ], + "x-modifiers": [] }, "updated-at": { "description": "The time the pull request was updated at.", "format": "date-time", "title": "Updated at", - "type": "string" + "type": "string", + "x-allowed-operators": [ + ">=", + "<=", + "<", + ">" + ], + "x-modifiers": [] }, "created-at": { "description": "The time the pull request was created at.", "format": "date-time", "title": "Created at", - "type": "string" + "type": "string", + "x-allowed-operators": [ + ">=", + "<=", + "<", + ">" + ], + "x-modifiers": [] }, "closed-at": { "anyOf": [ @@ -2555,7 +3649,14 @@ } ], "description": "The time the pull request was closed at.", - "title": "Closed at" + "title": "Closed at", + "x-allowed-operators": [ + ">=", + "<=", + "<", + ">" + ], + "x-modifiers": [] }, "merged-at": { "anyOf": [ @@ -2568,7 +3669,14 @@ } ], "description": "The time the pull request was merged at.", - "title": "Merged at" + "title": "Merged at", + "x-allowed-operators": [ + ">=", + "<=", + "<", + ">" + ], + "x-modifiers": [] }, "queued-at": { "anyOf": [ @@ -2581,7 +3689,14 @@ } ], "description": "The time the pull request was queued at for merge.", - "title": "Queued at" + "title": "Queued at", + "x-allowed-operators": [ + ">=", + "<=", + "<", + ">" + ], + "x-modifiers": [] }, "queue-merge-started-at": { "anyOf": [ @@ -2594,22 +3709,69 @@ } ], "description": "The time the pull request mergeability checks have started at.", - "title": "Queue merge started at" + "title": "Queue merge started at", + "x-allowed-operators": [ + ">=", + "<=", + "<", + ">" + ], + "x-modifiers": [] }, "schedule": { "description": "The current time will be compared against this schedule to validate this attribute.", "title": "Schedule", - "type": "string" + "type": "string", + "x-allowed-operators": [ + "=", + "!=" + ], + "x-has-data-type": true, + "x-modifiers": [] }, "sender-permission": { "$ref": "#/$defs/GitHubRepositoryPermission", "description": "The permission of the command author.", - "title": "Sender permission" + "title": "Sender permission", + "x-allowed-operators": [ + "=", + "!=", + ">=", + "<=", + "<", + ">" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "sender": { "description": "The GitHub login of the command author.", "title": "Sender", - "type": "string" + "type": "string", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] }, "updates": { "description": "The list of updates done on an opened pull request.", @@ -2617,7 +3779,25 @@ "$ref": "#/$defs/PullRequestHeadShaHistoryDict" }, "title": "Updates", - "type": "array" + "type": "array", + "x-allowed-operators": [ + "=", + "!=", + "~=", + ">=", + "<=", + "<", + ">", + "*=" + ], + "x-modifiers": [ + { + "type": "negate" + }, + { + "type": "length" + } + ] } }, "required": [ @@ -2876,6 +4056,7 @@ }, "batch_size": { "$ref": "#/$defs/BatchSizeBounds", + "default": 1, "description": "The number of pull requests per speculative check in the queue. Either a single integer (fixed size, 1-128) or an object `{min, max}` for dynamic batching: the queue uses `min` when parallel-check slots are plentiful and grows toward `max` to keep the backlog at zero." }, "batch_max_wait_time": { @@ -3042,8 +4223,13 @@ "type": "null" } ], + "configuration_deprecated_attribute": { + "deprecated_summary_ghes_mode": "`commit_message_template` is deprecated and will be removed on 2026-09-30. Use the declarative `commit_message_format` instead: https://docs.mergify.com/workflow/actions/merge#migrating-from-commit_message_template", + "deprecated_summary_saas_mode": "`commit_message_template` is deprecated and will be removed on 2026-09-30. Use the declarative `commit_message_format` instead: https://docs.mergify.com/workflow/actions/merge#migrating-from-commit_message_template" + }, "default": null, - "description": "Template to use as the commit message when using the merge or squash merge method.", + "deprecated": true, + "description": "Template to use as the commit message when using the merge or squash merge method. Deprecated: use `commit_message_format` instead.", "title": "Commit Message Template" }, "commit_message_format": { @@ -3138,6 +4324,7 @@ }, "batch_size": { "$ref": "#/$defs/BatchSizeBounds", + "default": 1, "description": "The number of pull requests per speculative check in the queue. Either a single integer (fixed size, 1-128) or an object `{min, max}` for dynamic batching: the queue uses `min` when parallel-check slots are plentiful and grows toward `max` to keep the backlog at zero." }, "batch_max_wait_time": { @@ -3304,8 +4491,13 @@ "type": "null" } ], + "configuration_deprecated_attribute": { + "deprecated_summary_ghes_mode": "`commit_message_template` is deprecated and will be removed on 2026-09-30. Use the declarative `commit_message_format` instead: https://docs.mergify.com/workflow/actions/merge#migrating-from-commit_message_template", + "deprecated_summary_saas_mode": "`commit_message_template` is deprecated and will be removed on 2026-09-30. Use the declarative `commit_message_format` instead: https://docs.mergify.com/workflow/actions/merge#migrating-from-commit_message_template" + }, "default": null, - "description": "Template to use as the commit message when using the merge or squash merge method.", + "deprecated": true, + "description": "Template to use as the commit message when using the merge or squash merge method. Deprecated: use `commit_message_format` instead.", "title": "Commit Message Template" }, "commit_message_format": { @@ -3412,6 +4604,15 @@ "title": "RebaseActionModel", "type": "object" }, + "ReportMode": { + "enum": [ + "check", + "comment" + ], + "title": "Report Mode", + "type": "string", + "x-has-data-type": true + }, "RequestReviewsActionModel": { "additionalProperties": false, "properties": { @@ -3641,6 +4842,18 @@ "description": "Where scopes come from. `files` derives scopes from the pull request's changed files using file-pattern rules; `manual` uses scopes sent via API or `mergify scopes-send`; `None` disables scoping.", "title": "Source" }, + "barrier_files": { + "anyOf": [ + { + "$ref": "#/$defs/BarrierFileFilters" + }, + { + "type": "null" + } + ], + "default": null, + "description": "File filters marking files that impact every scope. Only valid with a `files` source; a `manual` source reports the barrier flag via the API instead. A pull request changing a matching file becomes a merge-queue barrier: it runs alone and serializes the queue at that point. A renamed file counts at both of its paths, so moving a file out of a matching pattern is a barrier too. At least one `include` pattern is required. Examples: ('.github/workflows/**', 'Makefile')" + }, "merge_queue_scope": { "default": "merge-queue", "description": "Scope name automatically applied to merge queue PRs.", diff --git a/src/check_jsonschema/builtin_schemas/vendor/readthedocs.json b/src/check_jsonschema/builtin_schemas/vendor/readthedocs.json index 4cb0fba15..52c133b4d 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/readthedocs.json +++ b/src/check_jsonschema/builtin_schemas/vendor/readthedocs.json @@ -205,14 +205,15 @@ "mambaforge-23.11", "mambaforge-latest", "miniforge3-25.11", + "miniforge3-26.3", "miniforge3-latest" ] }, "nodejs": { - "enum": ["14", "16", "18", "19", "20", "22", "23", "24", "25", "latest"] + "enum": ["14", "16", "18", "19", "20", "22", "23", "24", "25", "26", "latest"] }, "ruby": { - "enum": ["3.3", "3.4", "latest"] + "enum": ["3.3", "3.4", "4.0", "latest"] }, "rust": { "enum": [ @@ -225,6 +226,7 @@ "1.82", "1.86", "1.91", + "1.96", "latest" ] }, @@ -239,6 +241,7 @@ "1.23", "1.24", "1.25", + "1.26", "latest" ] } diff --git a/src/check_jsonschema/builtin_schemas/vendor/renovate.json b/src/check_jsonschema/builtin_schemas/vendor/renovate.json index 70de9127a..e67e87789 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 43.248.0 config files (https://renovatebot.com/)", + "title": "JSON schema for Renovate 44.6.0 config files (https://renovatebot.com/)", "$schema": "http://json-schema.org/draft-07/schema#", - "x-renovate-version": "43.248.0", + "x-renovate-version": "44.6.0", "allowComments": true, "type": "object", "definitions": { @@ -430,6 +430,12 @@ "type": "integer", "default": 0 }, + "azureWorkItemType": { + "description": "The work item type Renovate uses for its issues (e.g. the Dependency Dashboard) on Azure DevOps.\nSee also: https://docs.renovatebot.com/configuration-options/#azureworkitemtype", + "markdownDescription": "The work item type Renovate uses for its issues (e.g. the Dependency Dashboard) on Azure DevOps.\n\nSee also: [azureWorkItemType](https://docs.renovatebot.com/configuration-options/#azureworkitemtype)", + "type": "string", + "default": "Issue" + }, "baseBranchPatterns": { "description": "List of one or more custom base branches defined as exact strings and/or via regex expressions.\nSee also: https://docs.renovatebot.com/configuration-options/#basebranchpatterns", "markdownDescription": "List of one or more custom base branches defined as exact strings and/or via regex expressions.\n\nSee also: [baseBranchPatterns](https://docs.renovatebot.com/configuration-options/#basebranchpatterns)", @@ -1453,6 +1459,18 @@ "type": "string", "default": "dependency {{depName}}" }, + "commitTrailers": { + "description": "Structured git trailers (`Key: value` lines) to add in the final block of the commit message.\nSee also: https://docs.renovatebot.com/configuration-options/#committrailers", + "markdownDescription": "Structured git trailers (`Key: value` lines) to add in the final block of the commit message.\n\nSee also: [commitTrailers](https://docs.renovatebot.com/configuration-options/#committrailers)", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + }, + "default": null + }, "composer": { "description": "Configuration object for the composer manager\nSee also: https://docs.renovatebot.com/configuration-options/#composer", "markdownDescription": "Configuration object for the composer manager\n\nSee also: [composer](https://docs.renovatebot.com/configuration-options/#composer)", @@ -1799,7 +1817,7 @@ }, "%goMod": { "type": "string", - "description": "Used in the `gomod` manager to determine the [minimum version of Go required to use this module](https://go.dev/ref/mod#go-mod-file-go).\n\nNote that this is prefixed with a `%` to explicilty note that this is not a tool that Containerbase knows." + "description": "Used in the `gomod` manager to determine the [minimum version of Go required to use this module](https://go.dev/ref/mod#go-mod-file-go).\n\nNote that this is prefixed with a `%` to explicitly note that this is not a tool that Containerbase knows." } } }, @@ -1858,7 +1876,7 @@ }, "%goMod": { "type": "string", - "description": "Used in the `gomod` manager to determine the [minimum version of Go required to use this module](https://go.dev/ref/mod#go-mod-file-go).\n\nNote that this is prefixed with a `%` to explicilty note that this is not a tool that Containerbase knows." + "description": "Used in the `gomod` manager to determine the [minimum version of Go required to use this module](https://go.dev/ref/mod#go-mod-file-go).\n\nNote that this is prefixed with a `%` to explicitly note that this is not a tool that Containerbase knows." } } }, @@ -5573,12 +5591,20 @@ "type": "object", "default": { "managerFilePatterns": [ - "/\\.(?:cs|fs|vb)proj$/", + "/\\.(?:cs|fs|vb|sql)proj$/", "/\\.(?:props|targets)$/", "/(^|/)dotnet-tools\\.json$/", "/(^|/)global\\.json$/" ], - "rangeStrategy": "bump" + "rangeStrategy": "bump", + "packageRules": [ + { + "matchDepTypes": [ + "msbuild-sdk" + ], + "rangeStrategy": "bump" + } + ] }, "$ref": "#", "items": { @@ -6532,7 +6558,7 @@ "description": "Text added here will be placed last in the PR body, with a divider separator before it.\nSee also: https://docs.renovatebot.com/configuration-options/#prfooter", "markdownDescription": "Text added here will be placed last in the PR body, with a divider separator before it.\n\nSee also: [prFooter](https://docs.renovatebot.com/configuration-options/#prfooter)", "type": "string", - "default": "This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate)." + "default": "This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate)." }, "prHeader": { "description": "Text added here will be placed first in the PR body.\nSee also: https://docs.renovatebot.com/configuration-options/#prheader", @@ -7463,6 +7489,47 @@ ], "default": null }, + "smithy": { + "description": "Configuration object for the smithy manager\nSee also: https://docs.renovatebot.com/configuration-options/#smithy", + "markdownDescription": "Configuration object for the smithy manager\n\nSee also: [smithy](https://docs.renovatebot.com/configuration-options/#smithy)", + "type": "object", + "default": { + "managerFilePatterns": [ + "/(^|/)smithy-build\\.json$/" + ] + }, + "$ref": "#", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "description": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "description": "A custom description for this configuration object" + } + }, + { + "type": "string", + "description": "A custom description for this configuration object" + } + ] + }, + "enabled": { + "$ref": "#/definitions/enabled" + }, + "managerFilePatterns": { + "$ref": "#/definitions/managerFilePatterns" + } + } + } + ] + } + }, "sourceDirectory": { "description": "The source directory in which the package is present at its source.\nSee also: https://docs.renovatebot.com/configuration-options/#packagerulessourcedirectory", "markdownDescription": "The source directory in which the package is present at its source.\n\nSee also: [sourceDirectory](https://docs.renovatebot.com/configuration-options/#packagerulessourcedirectory)", @@ -8218,6 +8285,7 @@ "node", "npm", "nuget", + "paket", "pep440", "perl", "poetry", @@ -8463,6 +8531,9 @@ "azureWorkItemId": { "$ref": "#/definitions/azureWorkItemId" }, + "azureWorkItemType": { + "$ref": "#/definitions/azureWorkItemType" + }, "baseBranchPatterns": { "$ref": "#/definitions/baseBranchPatterns" }, @@ -8589,6 +8660,9 @@ "commitMessageTopic": { "$ref": "#/definitions/commitMessageTopic" }, + "commitTrailers": { + "$ref": "#/definitions/commitTrailers" + }, "composer": { "$ref": "#/definitions/composer" }, @@ -9192,6 +9266,9 @@ "skipInstalls": { "$ref": "#/definitions/skipInstalls" }, + "smithy": { + "$ref": "#/definitions/smithy" + }, "statusCheckNames": { "$ref": "#/definitions/statusCheckNames" }, @@ -9767,6 +9844,11 @@ "checkedBranches" ] }, + { + "required": [ + "rebaseAllOpenBranches" + ] + }, { "required": [ "httpCacheTtlDays" diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/buildkite.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/buildkite.sha256 index 56421f008..37345a784 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/buildkite.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/buildkite.sha256 @@ -1 +1 @@ -6755edc3eaaf3eee2010c349273dbe98d767827e48139de29fb6574450cd31de \ No newline at end of file +48df24429e67b7364454391c8e70395087dec52db4133f7760603574f662b450 \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/codecov.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/codecov.sha256 index a412c5762..4e07f6e05 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/codecov.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/codecov.sha256 @@ -1 +1 @@ -5bd8ea99586b82003c5dbaadc8fad6added566466221c065584f6db57e04238e \ No newline at end of file +b1c166a4d737b85a58c6e20a0063f85a0e279fd0787f1aad2d7926b7e5d49c2c \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/compose-spec.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/compose-spec.sha256 index 4e808f89d..94cfd11ce 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/compose-spec.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/compose-spec.sha256 @@ -1 +1 @@ -1f91e091f16b2dd50ab8860e02bb391d22df553d91c145eacedb1b6eff9c3f0e \ No newline at end of file +73ca5878c77570ba222a558016c7b3c6770ba5f3377786593e32180666512f8f \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/dependabot.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/dependabot.sha256 index df0404259..732894bae 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/dependabot.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/dependabot.sha256 @@ -1 +1 @@ -02285d6a056356921ef03aae69add8a57b13691fdaa0ab1f2cf7eaec9763e662 \ No newline at end of file +46255f692a8d661325e9d044b50f4b687aff68633b716420b64e460fb212b471 \ 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 561e80889..f9a6d5ae8 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/mergify.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/mergify.sha256 @@ -1 +1 @@ -8e6a09b8608bfc9bf26154aeb88c836e00844c89a19d0fd5100ab55ec510d197 \ No newline at end of file +fe867096cf73c722f95c7a9995fb182b733050f88e17e929262214bf019185f4 \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/readthedocs.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/readthedocs.sha256 index 643913ee7..42e2a97ec 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/readthedocs.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/readthedocs.sha256 @@ -1 +1 @@ -94a4af1da3f9d1152dc82dc5ace12ea7b504504f63baff3d4dacb6bf78586c4f \ No newline at end of file +9cbf6059a2b60f68867e650e45f74bfbde6ed1f28d4bcaebe766b5c184030e74 \ 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 ddd9757ad..2e355c650 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/renovate.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/renovate.sha256 @@ -1 +1 @@ -0835792462428365ba6ab2a517233b714f00609a52062c314f7a55aae5fb329e \ No newline at end of file +d4b69e41e11d86878b80586b09c3394fbae1e6a84b76b07df290b6e180a9b5bb \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/taskfile.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/taskfile.sha256 index 1c44415b6..b20925fe7 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/taskfile.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/taskfile.sha256 @@ -1 +1 @@ -04d7f12c851f02d43e78ebaccf418a1b694596f19ba7d1c6e67b5144a4adffa1 \ No newline at end of file +c12ec913625a91c15aa49f8d30bd975fb4faab0b27009c3421f9bfdaa0e1980d \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/woodpecker-ci.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/woodpecker-ci.sha256 index 9ebb3d417..503333fe1 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/woodpecker-ci.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/woodpecker-ci.sha256 @@ -1 +1 @@ -bacd7215582ed771bcb729291e270f9f07b70e95b00535e0b4534ada9a21184d \ No newline at end of file +d40f30a65b4e138ea2abe41a9ff811516e4988ff7a89a0ca552bc12452c49057 \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/taskfile.json b/src/check_jsonschema/builtin_schemas/vendor/taskfile.json index 2210952d6..df0637b7e 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/taskfile.json +++ b/src/check_jsonschema/builtin_schemas/vendor/taskfile.json @@ -1,5 +1,5 @@ { - "$schema": "http://json-schema.org/draft-07/schema", + "$schema": "http://json-schema.org/draft-07/schema#", "title": "Taskfile YAML Schema", "description": "Schema for Taskfile files.", "definitions": { @@ -177,6 +177,11 @@ "enum": ["none", "checksum", "timestamp"], "default": "none" }, + "use_gitignore": { + "description": "When set to true, files matching .gitignore rules will be excluded from sources and generates glob resolution. Overrides the global gitignore setting.", + "type": "boolean", + "default": false + }, "prefix": { "description": "Defines a string to prefix the output of tasks running in parallel. Only used when the output mode is `prefixed`.", "type": "string" @@ -318,6 +323,13 @@ "map": { "type": "object", "description": "The value will be treated as a literal map type and stored in the variable" + }, + "value": { + "description": "A literal value assigned to the variable. Useful together with other keys such as 'secret'" + }, + "secret": { + "type": "boolean", + "description": "Marks the variable as secret. Secret values will be masked as ***** in command logs to prevent accidental exposure of sensitive information." } }, "additionalProperties": false @@ -687,6 +699,11 @@ "enum": ["none", "checksum", "timestamp"], "default": "checksum" }, + "use_gitignore": { + "description": "When set to true, files matching .gitignore rules will be excluded from sources and generates glob resolution for all tasks. Can be overridden per task.", + "type": "boolean", + "default": false + }, "includes": { "description": "Imports tasks from the specified taskfiles. The tasks described in the given Taskfiles will be available with the informed namespace.", "type": "object", @@ -701,11 +718,13 @@ "properties": { "taskfile": { "description": "The path for the Taskfile or directory to be included. If a directory, Task will look for files named `Taskfile.yml` or `Taskfile.yaml` inside that directory. If a relative path, resolved relative to the directory containing the including Taskfile.", - "type": "string" + "type": "string", + "minLength": 1 }, "dir": { "description": "The working directory of the included tasks when run.", - "type": "string" + "type": "string", + "minLength": 1 }, "optional": { "description": "If `true`, no errors will be thrown if the specified file does not exist.", @@ -741,7 +760,15 @@ "description": "The checksum of the file you expect to include. If the checksum does not match, the file will not be included.", "type": "string" } - } + }, + "anyOf": [ + { + "required": ["taskfile"] + }, + { + "required": ["dir"] + } + ] } ] } diff --git a/src/check_jsonschema/builtin_schemas/vendor/woodpecker-ci.json b/src/check_jsonschema/builtin_schemas/vendor/woodpecker-ci.json index 76fd06744..07653be86 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/woodpecker-ci.json +++ b/src/check_jsonschema/builtin_schemas/vendor/woodpecker-ci.json @@ -717,25 +717,44 @@ "type": "string" }, "step_backend_options": { - "description": "Advanced options for the different agent backends", + "description": "Advanced options for the different agent backends. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#backend_options", "type": "object", "properties": { + "docker": { + "$ref": "#/definitions/step_backend_docker" + }, "kubernetes": { "$ref": "#/definitions/step_backend_kubernetes" } } }, + "step_backend_docker": { + "description": "Advanced options for the Docker backend. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/docker#step-specific-configuration", + "type": "object", + "properties": { + "user": { + "description": "User or user:group used to run the container. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/docker#run-user", + "type": "string" + } + } + }, "step_backend_kubernetes": { - "description": "Advanced options for the kubernetes agent backends", + "description": "Advanced options for the Kubernetes backend. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#step-specific-configuration", "type": "object", "properties": { + "resources": { + "description": "CPU, memory, and other resource requests and limits. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#resources", + "$ref": "#/definitions/step_backend_kubernetes_resources" + }, "labels": { + "description": "Additional Kubernetes pod labels. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#annotations-and-labels", "type": "object", "additionalProperties": { "type": ["boolean", "string", "number"] } }, "annotations": { + "description": "Additional Kubernetes pod annotations. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#annotations-and-labels", "type": "object", "additionalProperties": { "type": ["boolean", "string", "number"] @@ -750,14 +769,38 @@ "minLength": 1 }, "securityContext": { + "description": "Kubernetes pod and container security context. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", "$ref": "#/definitions/step_backend_kubernetes_security_context" }, "runtimeClassName": { "description": "Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#runtimeclassname", "type": "string" }, + "serviceAccountName": { + "description": "Name of the Kubernetes service account mounted into the pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#service-account", + "type": "string" + }, + "workspaceVolume": { + "description": "Whether the default workspace volume is mounted into a service pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#workspace-volume", + "type": "boolean" + }, + "hostUsers": { + "description": "Whether the pod uses the host user namespace. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#user-namespaces", + "type": "boolean" + }, + "nodeSelector": { + "description": "Labels used to select the node on which the step is executed. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#node-selector", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "affinity": { + "description": "Kubernetes affinity and anti-affinity rules for the pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#affinity", + "type": "object" + }, "secrets": { - "description": "The secrets section defines a list of references to the native Kubernetes secrets", + "description": "The secrets section defines a list of references to native Kubernetes secrets. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#step-specific-configuration", "type": "array", "items": { "$ref": "#/definitions/step_kubernetes_secret" @@ -783,61 +826,76 @@ "type": "object", "properties": { "privileged": { + "description": "Whether the container runs in privileged mode. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", "type": "boolean" }, "runAsNonRoot": { + "description": "Whether the pod must run as a non-root user. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", "type": "boolean" }, "runAsUser": { + "description": "User ID used to run the pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", "type": "number" }, "runAsGroup": { + "description": "Group ID used to run the pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", "type": "number" }, "fsGroup": { + "description": "Filesystem group ID for mounted volumes. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", "type": "number" }, + "fsGroupChangePolicy": { + "description": "Policy for changing mounted-volume ownership. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", + "type": "string" + }, "seccompProfile": { + "description": "Seccomp profile for the pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", "$ref": "#/definitions/step_backend_kubernetes_secprofile" }, "apparmorProfile": { + "description": "AppArmor profile for the pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", "$ref": "#/definitions/step_backend_kubernetes_secprofile" + }, + "allowPrivilegeEscalation": { + "description": "Whether the container can gain additional privileges. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", + "type": "boolean" + }, + "capabilities": { + "description": "Linux capabilities removed from the container. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", + "$ref": "#/definitions/step_backend_kubernetes_capabilities" + } + } + }, + "step_backend_kubernetes_capabilities": { + "description": "Linux capabilities to remove from the container. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", + "type": "object", + "properties": { + "drop": { + "description": "Linux capabilities to remove. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", + "type": "array", + "items": { + "type": "string" + } } } }, "step_backend_kubernetes_secprofile": { - "description": "Pods / containers security profile. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#step-specific-configuration", + "description": "Pod or container security profile. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", "type": "object", "properties": { "type": { + "description": "Security profile type. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", "type": "string" }, "localhostProfile": { + "description": "Path to the local security profile. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context", "type": "string" } } }, "step_kubernetes_resources_object": { - "description": "A list of kubernetes resource mappings", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "step_backend_kubernetes_service_account": { - "description": "serviceAccountName to be use by job. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#service-account", - "type": "object", - "properties": { - "requests": { - "$ref": "#/definitions/step_kubernetes_service_account_object" - }, - "limits": { - "$ref": "#/definitions/step_kubernetes_service_account_object" - } - } - }, - "step_kubernetes_service_account_object": { - "description": "A list of kubernetes resource mappings", + "description": "Kubernetes resource quantities keyed by resource name. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#resources", "type": "object", "additionalProperties": { "type": "string" From 068f555603a359aa02a68bcd799e7d3c51d1405c Mon Sep 17 00:00:00 2001 From: Stephen Rosen Date: Sat, 8 Aug 2026 22:59:32 -0500 Subject: [PATCH 2/3] Fix gitlab schema source, update vendored schemas GitLab's CI schema now needs to be fetched via their public API. --- CHANGELOG.rst | 5 +- .../vendor/bitbucket-pipelines.json | 2 +- .../builtin_schemas/vendor/circle-ci.json | 7 +- .../builtin_schemas/vendor/mergify.json | 238 +++++++++++++----- .../builtin_schemas/vendor/renovate.json | 4 +- .../vendor/sha256/bitbucket-pipelines.sha256 | 2 +- .../vendor/sha256/circle-ci.sha256 | 2 +- .../vendor/sha256/mergify.sha256 | 2 +- .../vendor/sha256/renovate.sha256 | 2 +- src/check_jsonschema/catalog.py | 16 +- 10 files changed, 200 insertions(+), 80 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 01437c73f..e8f27daca 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -10,8 +10,9 @@ Unreleased .. vendor-insert-here -- Update vendored schemas: buildkite, codecov, compose-spec, dependabot, mergify, - readthedocs, renovate, taskfile, woodpecker-ci (2026-08-02) +- Update vendored schemas: bitbucket-pipelines, buildkite, circle-ci, codecov, + compose-spec, dependabot, gitlab-ci, mergify, readthedocs, renovate, taskfile, + woodpecker-ci (2026-08-08) - Add a dedicated ``check-github-workflows-require-timeout`` pre-commit hook for requiring ``timeout-minutes`` on all GitHub Workflow jobs. (:issue:`639`) diff --git a/src/check_jsonschema/builtin_schemas/vendor/bitbucket-pipelines.json b/src/check_jsonschema/builtin_schemas/vendor/bitbucket-pipelines.json index 78f9ec9ea..3ae9ddf80 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/bitbucket-pipelines.json +++ b/src/check_jsonschema/builtin_schemas/vendor/bitbucket-pipelines.json @@ -1 +1 @@ -{"$id": "https://bitbucket.org/product/features/pipelines", "$ref": "#/components/schemas/pipelines_configuration", "$schema": "http://json-schema.org/draft-07/schema#", "components": {"schemas": {"agent_config": {"description": "Optional agent config path and inline overrides.", "properties": {"overrides": {"additionalProperties": true, "description": "Inline config overrides for the agent.", "title": "Agent Config Overrides", "type": "object"}, "path": {"description": "Path to a config file used by the agent.", "title": "Agent Config Path", "type": "string"}}, "title": "Agent Config", "type": "object"}, "agent_definition": {"description": "Defines an agent that can be referenced by agent tasks.", "properties": {"config": {"$ref": "#/components/schemas/agent_config"}, "permissions": {"$ref": "#/components/schemas/agent_permissions"}, "prompt": {"description": "Prompt used by the agent definition.", "title": "Agent Prompt", "type": "string"}, "provider": {"$ref": "#/components/schemas/agent_provider"}}, "required": ["prompt"], "title": "Agent Definition", "type": "object"}, "agent_permissions": {"description": "Optional permissions configuration for the agent.", "properties": {"on-ask": {"$ref": "#/components/schemas/agent_permissions_on_ask"}}, "title": "Agent Permissions", "type": "object"}, "agent_permissions_on_ask": {"description": "How to respond when the agent asks for permissions.", "enum": ["allow", "deny"], "title": "On Ask Permission Mode", "type": "string"}, "agent_provider": {"description": "Agent provider used to run the task.", "enum": ["rovodev", "claude"], "title": "Agent Provider", "type": "string"}, "agent_task": {"description": "The agentic task to execute.", "properties": {"agent": {"description": "Name of the agent definition referenced by this task.", "title": "Agent Name", "type": "string"}, "config": {"$ref": "#/components/schemas/agent_config"}, "permissions": {"$ref": "#/components/schemas/agent_permissions"}, "prompt": {"description": "Optional prompt override for the agent task.", "title": "Agent Prompt Override", "type": "string"}, "provider": {"$ref": "#/components/schemas/agent_provider"}}, "required": ["agent"], "title": "Agent Task", "type": "object"}, "artifacts": {"oneOf": [{"$ref": "#/components/schemas/artifacts_paths"}, {"$ref": "#/components/schemas/artifacts_expanded"}]}, "artifacts_expanded": {"properties": {"download": {"oneOf": [{"default": true, "description": "Enables downloading of all available artifacts at the end of a step.", "type": "boolean"}, {"description": "Define the list of filtered artifacts to be downloaded by the step.", "items": {"type": "string"}, "minItems": 1, "type": "array"}]}, "paths": {"$ref": "#/components/schemas/artifacts_paths"}, "upload": {"oneOf": [{"items": {"$ref": "#/components/schemas/artifacts_upload"}, "minItems": 1, "type": "array"}, {"items": {"type": "string"}, "minItems": 1, "type": "array"}]}}, "type": "object"}, "artifacts_paths": {"items": {"description": "Glob pattern for the path to the artifacts.", "title": "Artifact Path Pattern", "type": "string"}, "minItems": 1, "type": "array"}, "artifacts_upload": {"description": "The artifact to be uploaded.", "properties": {"capture-on": {"description": "The capture on field for the artifact.", "enum": ["success", "failed", "always"], "title": "Artifact Capture On", "type": "string"}, "depth": {"description": "The depth to search for the artifact files.", "minimum": 1, "title": "Artifact Depth", "type": "integer"}, "ignore-paths": {"description": "The ignore paths for the artifact.", "items": {"description": "Glob pattern for paths to ignore when capturing artifacts.", "title": "Ignore Path Pattern", "type": "string"}, "title": "Artifact Ignore Paths", "type": "array"}, "name": {"description": "The name of the artifact.", "title": "Artifact Name", "type": "string"}, "paths": {"$ref": "#/components/schemas/artifacts_paths"}, "type": {"default": "shared", "description": "The type of the artifact.", "enum": ["shared", "scoped", "test-reports"], "title": "Artifact Type", "type": "string"}}, "required": ["name", "paths"], "title": "Artifact Upload object", "type": "object"}, "cache": {"oneOf": [{"$ref": "#/components/schemas/cache_path"}, {"$ref": "#/components/schemas/cache_expanded"}]}, "cache_expanded": {"properties": {"key": {"properties": {"files": {"description": "Checksum of these file paths will be used to generate the cache key.", "items": {"description": "Path to a file or glob pattern of files in the repository which form the cache key.", "type": "string"}, "minItems": 1, "type": "array"}}, "required": ["files"], "title": "Cache Key", "type": "object"}, "path": {"$ref": "#/components/schemas/cache_path"}}, "required": ["path"], "title": "Cache", "type": "object"}, "cache_path": {"description": "Path to the directory to be cached, can be absolute or relative to the clone directory.", "title": "Cache Path", "type": "string"}, "clone": {"description": "Settings for cloning a repository into a container.", "properties": {"depth": {"default": 50, "description": "The depth argument of Git clone operation. It can be either number or \"full\" value", "example": "full", "oneOf": [{"minimum": 1, "type": "integer"}, {"enum": ["full"], "type": "string"}], "title": "Git Clone Depth"}, "enabled": {"default": true, "description": "Enables cloning of the repository.", "type": "boolean"}, "lfs": {"default": false, "description": "Enables the download of files from LFS storage when cloning.", "type": "boolean"}, "skip-ssl-verify": {"default": false, "description": "Disables SSL verification during Git clone operation, allowing the use of self-signed certificates.", "type": "boolean"}}, "title": "Clone Repository Settings", "type": "object"}, "cloud": {"description": "Custom cloud step runtime", "properties": {"arch": {"default": "x86", "description": "Architecture type used to run the step.", "enum": ["x86", "arm"], "type": "string"}, "atlassian-ip-ranges": {"default": false, "description": "Whether it uses Atlassian ip ranges.", "type": "boolean"}, "instance-type": {"description": "Instance type for the cloud runtime.", "type": "string"}, "platform": {"default": "linux", "description": "Platform type used to run the step.", "enum": ["linux", "windows"], "type": "string"}, "version": {"description": "Cloud Runtime version.", "type": "string"}}, "title": "Cloud step runtime", "type": "object"}, "condition": {"properties": {"changesets": {"additionalProperties": false, "description": "Condition on the changesets involved in the pipeline.", "maxProperties": 1, "properties": {"excludePaths": {"description": "Condition which holds only if all of the modified files match any of the specified patterns.", "items": {"description": "Glob pattern to match the file path.", "title": "File Path Pattern", "type": "string"}, "minItems": 1, "title": "Exclude Paths", "type": "array"}, "includePaths": {"description": "Condition which holds only if any of the modified files match any of the specified patterns.", "items": {"description": "Glob pattern to match the file path.", "title": "File Path Pattern", "type": "string"}, "minItems": 1, "title": "Include Paths", "type": "array"}}, "title": "Changeset Condition", "type": "object"}, "state": {"description": "Only execute a step or stage when a boolean expression evaluates to true.", "example": "PROD_DEPLOYMENT_ENABLED == true", "maxLength": 1000, "minLength": 1, "title": "Boolean expression condition", "type": "string"}}, "type": "object"}, "custom_pipeline": {"oneOf": [{"$ref": "#/components/schemas/items_with_variables"}, {"$ref": "#/components/schemas/import_pipeline"}]}, "fail_fast": {"default": false, "title": "Fail Fast", "type": "boolean"}, "final_item": {"additionalProperties": false, "properties": {"final": {"$ref": "#/components/schemas/final_step"}}, "type": "object"}, "final_step": {"allOf": [{"$ref": "#/components/schemas/step_base"}, {"description": "A special step that always runs at the end of a pipeline, even if earlier steps fail or the pipeline is stopped. Only one final step is allowed per pipeline and it must be the last item.", "properties": {"deployment": {"not": {}}, "fail-fast": {"not": {}}, "trigger": {"description": "The final step always runs automatically. Manual trigger is not supported.", "enum": ["automatic"], "type": "string"}}, "title": "Final Pipeline Step", "type": "object"}]}, "image": {"oneOf": [{"$ref": "#/components/schemas/image_no_auth"}, {"$ref": "#/components/schemas/image_basic_auth"}, {"$ref": "#/components/schemas/image_aws_auth"}, {"$ref": "#/components/schemas/image_name"}]}, "image_aws_auth": {"allOf": [{"$ref": "#/components/schemas/image_base"}, {"properties": {"aws": {"oneOf": [{"properties": {"access-key": {"description": "The access key for Amazon Elastic Container Registry (AWS ECR).", "title": "AWS Access Key", "type": "string"}, "secret-key": {"description": "The secret key for Amazon Elastic Container Registry (AWS ECR).", "title": "AWS Secret Key", "type": "string"}}, "required": ["access-key", "secret-key"], "type": "object"}, {"properties": {"oidc-role": {"description": "OIDC role with access to private Docker images hosted in Amazon Elastic Container Registry (AWS ECR).", "title": "OpenID Connect Role", "type": "string"}}, "required": ["oidc-role"], "type": "object"}]}}, "required": ["aws"], "type": "object"}]}, "image_base": {"description": "The parameters of the Docker image to use when running a step.", "properties": {"name": {"$ref": "#/components/schemas/image_name"}, "run-as-user": {"default": 0, "description": "The UID of a user in the docker image to run as. Overrides image's default user, specified user UID must be an existing user in the image with a valid home directory.", "title": "User ID", "type": "integer"}}, "required": ["name"], "title": "Docker Image Configuration", "type": "object"}, "image_basic_auth": {"allOf": [{"$ref": "#/components/schemas/image_base"}, {"properties": {"password": {"description": "The password to use when fetching the Docker image.", "title": "Docker Registry Password", "type": "string"}, "username": {"description": "The username to use when fetching the Docker image.", "title": "Docker Registry Username", "type": "string"}}, "required": ["username", "password"], "type": "object"}]}, "image_name": {"default": "atlassian/default-image:latest", "description": "The name of the Docker image which may or may not include registry URL, tag, and digest value.", "title": "Docker Image Name", "type": "string"}, "image_no_auth": {"allOf": [{"$ref": "#/components/schemas/image_base"}, {"properties": {"aws": {"not": {}}, "password": {"not": {}}, "username": {"not": {}}}, "type": "object"}]}, "import_inline_pipeline": {"additionalProperties": false, "properties": {"import": {"description": "The import needs to match the following format: {repo-slug|repo-uuid}:{tag-name|branch-name}:{pipeline-name}.", "pattern": "^[^:]+:[^:]+:[^:]+$", "title": "Identifier of the pipeline configuration to import", "type": "string"}, "variables": {"$ref": "#/components/schemas/pipeline_variables"}}, "required": ["import"], "type": "object"}, "import_pipeline": {"oneOf": [{"$ref": "#/components/schemas/import_inline_pipeline"}, {"$ref": "#/components/schemas/import_source_pipeline"}]}, "import_source": {"additionalProperties": false, "properties": {"import": {"description": "The import needs to match one of the following formats: {file-path} or {repo-slug|repo-uuid}:{tag-name|branch-name} or {repo-slug|repo-uuid}:{tag-name|branch-name}:{file-path}.", "pattern": "^[^:]+(:[^:]+)?(:[^:]+)?$", "title": "Location of pipeline configuration to import pipelines from", "type": "string"}}, "required": ["import"], "type": "object"}, "import_source_pipeline": {"additionalProperties": false, "properties": {"import": {"description": "The import needs to match the following format: {pipeline-name}@{import-source-name}.", "pattern": "^[^@]+@[^@]+$", "title": "Identifier of the pipeline configuration to import", "type": "string"}, "variables": {"$ref": "#/components/schemas/pipeline_variables"}}, "required": ["import"], "type": "object"}, "items": {"description": "List of steps, stages and parallel groups of the pipeline.", "items": {"oneOf": [{"$ref": "#/components/schemas/step_item"}, {"$ref": "#/components/schemas/parallel_item"}, {"$ref": "#/components/schemas/stage_item"}, {"$ref": "#/components/schemas/final_item"}]}, "minItems": 1, "title": "Pipeline Items", "type": "array"}, "items_with_variables": {"description": "List of variables, steps, stages and parallel groups of the custom pipeline.", "items": {"oneOf": [{"$ref": "#/components/schemas/variables_item"}, {"$ref": "#/components/schemas/step_item"}, {"$ref": "#/components/schemas/parallel_item"}, {"$ref": "#/components/schemas/stage_item"}]}, "minItems": 1, "title": "Custom Pipeline Items", "type": "array"}, "max_time": {"default": 120, "description": "The maximum time a step can execute for in minutes.", "example": 60, "exclusiveMinimum": 0, "type": "integer"}, "parallel": {"oneOf": [{"$ref": "#/components/schemas/parallel_steps"}, {"$ref": "#/components/schemas/parallel_expanded"}]}, "parallel_expanded": {"properties": {"fail-fast": {"$ref": "#/components/schemas/fail_fast", "description": "Stop the whole parallel group in case one of its steps fails."}, "steps": {"$ref": "#/components/schemas/parallel_steps"}}, "required": ["steps"], "type": "object"}, "parallel_item": {"additionalProperties": false, "properties": {"parallel": {"$ref": "#/components/schemas/parallel"}}, "type": "object"}, "parallel_steps": {"description": "List of steps in the parallel group to run concurrently.", "items": {"$ref": "#/components/schemas/step_item"}, "minItems": 1, "title": "Parallel Group Steps", "type": "array"}, "pipe": {"description": "The pipe to execute.", "example": {"pipe": "atlassian/test-pipe:2.2.0", "variables": {"BAZ": ["QUX", "QUZ"], "FOO": "BAR"}}, "properties": {"pipe": {"description": "The full pipe identifier.", "title": "Pipe Identifier", "type": "string"}, "variables": {"additionalProperties": {"description": "Environment variable value", "oneOf": [{"type": "string"}, {"items": {"type": "string"}, "type": "array"}]}, "description": "Environment variables passed to the pipe container.", "title": "Pipe Variables", "type": "object"}}, "required": ["pipe"], "title": "Pipe", "type": "object"}, "pipeline": {"oneOf": [{"$ref": "#/components/schemas/items"}, {"$ref": "#/components/schemas/import_pipeline"}]}, "pipeline_variables": {"description": "List of variables for the custom pipeline.", "items": {"description": "Settings for the custom variable.", "properties": {"allowed-values": {"description": "A list of values that are allowed for the variable.", "items": {"title": "Allowed Variable Value", "type": "string"}, "minItems": 1, "title": "Allowed Variable Values", "type": "array"}, "default": {"title": "Default Variable Value", "type": "string"}, "description": {"title": "Variable Description", "type": "string"}, "name": {"title": "Variable Name", "type": "string"}}, "required": ["name"], "title": "Custom Pipeline Variable", "type": "object"}, "minItems": 1, "title": "Custom Pipeline Variables", "type": "array"}, "pipelines_configuration": {"properties": {"clone": {"$ref": "#/components/schemas/clone"}, "definitions": {"description": "The definitions of caches and services used in the declared pipelines.", "properties": {"agents": {"additionalProperties": {"$ref": "#/components/schemas/agent_definition"}, "title": "Agent definitions", "type": "object"}, "caches": {"additionalProperties": {"$ref": "#/components/schemas/cache"}, "title": "Custom cache definitions", "type": "object"}, "imports": {"pipelines": {"additionalProperties": {"$ref": "#/components/schemas/import_source"}, "description": "Definitions of the pipelines imports that can be used in this file.", "title": "Import source definitions", "type": "object"}}, "pipelines": {"additionalProperties": {"$ref": "#/components/schemas/custom_pipeline"}, "description": "Definitions of the pipelines which can be used in other repositories of the same Bitbucket workspace.", "title": "Shared pipeline definitions", "type": "object"}, "services": {"additionalProperties": {"$ref": "#/components/schemas/service"}, "title": "Service definitions", "type": "object"}}, "title": "Global Definitions", "type": "object"}, "export": {"default": false, "description": "Allows other Bitbucket repositories to import pipeline definitions from this file. A shared pipeline definition can't contain another `import` property.", "title": "Enables shared pipelines definitions.", "type": "boolean"}, "image": {"$ref": "#/components/schemas/image"}, "labels": {"description": "Additional key value data supplied in the configuration YAML.", "example": {"buildTool": "maven", "jvm": "jdk17"}, "title": "Pipeline Labels", "type": "object"}, "options": {"description": "Global options allow to override the default values applied to all steps in all declared pipelines.", "properties": {"docker": {"default": false, "description": "Enables Docker service for every step.", "type": "boolean"}, "max-time": {"$ref": "#/components/schemas/max_time"}, "runs-on": {"$ref": "#/components/schemas/runs_on"}, "runtime": {"$ref": "#/components/schemas/runtime"}, "size": {"$ref": "#/components/schemas/size"}}, "title": "Global Options", "type": "object"}, "pipelines": {"properties": {"branches": {"additionalProperties": {"$ref": "#/components/schemas/pipeline"}, "description": "Branch-specific build pipelines.", "title": "Branch Pipelines", "type": "object"}, "custom": {"additionalProperties": {"$ref": "#/components/schemas/custom_pipeline"}, "description": "Pipelines that can only be triggered manually or be scheduled.", "title": "Custom Pipelines", "type": "object"}, "default": {"$ref": "#/components/schemas/pipeline", "description": "Default pipeline runs on every push except for tags unless a branch-specific pipeline is defined.", "title": "Default Pipeline"}, "pull-requests": {"additionalProperties": {"$ref": "#/components/schemas/pipeline"}, "description": "Pull-request-specific build pipelines.", "title": "Pull Request Pipelines", "type": "object"}, "tags": {"additionalProperties": {"$ref": "#/components/schemas/pipeline"}, "description": "Tag-specific build pipelines.", "title": "Tag Pipelines", "type": "object"}}, "title": "Pipelines", "type": "object"}, "triggers": {"additionalProperties": {"$ref": "#/components/schemas/trigger_configuration_list"}, "description": "Event-based triggers that automatically run pipelines when specific events occur. The property names represent trigger types (e.g., repository-push, pullrequest-push, pipeline-completed, deployment-completed, pullrequest-created).", "example": {"deployment-completed": [{"condition": "BITBUCKET_TRIGGER_DEPLOYMENT_STATUS == \"FAILED\"", "pipelines": ["pipeline2"]}], "pipeline-completed": [{"condition": "BITBUCKET_TRIGGER_PIPELINE_STATUS == \"FAILED\"", "pipelines": ["pipeline1"]}], "pullrequest-created": [{"condition": "glob(BITBUCKET_BRANCH, \"feature/*\")", "pipelines": ["pipeline1"]}], "pullrequest-fulfilled": [{"condition": "glob(BITBUCKET_BRANCH, \"feature/*\")", "pipelines": ["pipeline2"]}], "pullrequest-push": [{"condition": "BITBUCKET_PR_DESTINATION_BRANCH == \"main\"", "pipelines": ["pipeline2"]}], "pullrequest-rejected": [{"condition": "glob(BITBUCKET_BRANCH, \"feature/*\")", "pipelines": ["pipeline1"]}], "pullrequest-reviewer-status-updated": [{"condition": "glob(BITBUCKET_BRANCH, \"feature/*\")", "pipelines": ["pipeline1"]}], "pullrequest-updated": [{"condition": "glob(BITBUCKET_BRANCH, \"feature/*\")", "pipelines": ["pipeline2"]}], "repository-push": [{"condition": "BITBUCKET_BRANCH == \"main\"", "pipelines": ["pipeline1"]}]}, "title": "Pipeline Triggers", "type": "object"}}, "type": "object"}, "runs_on": {"oneOf": [{"$ref": "#/components/schemas/runs_on_item"}, {"$ref": "#/components/schemas/runs_on_expanded"}]}, "runs_on_expanded": {"description": "Required labels of a runner to run the step.", "example": ["self.hosted", "linux"], "items": {"$ref": "#/components/schemas/runs_on_item"}, "maxItems": 10, "minItems": 1, "title": "Step Runner Labels", "type": "array"}, "runs_on_item": {"description": "Label of a runner.", "maxLength": 50, "title": "Step Runner Label", "type": "string"}, "runtime": {"description": "Custom step runtime", "properties": {"cloud": {"$ref": "#/components/schemas/cloud"}, "self-hosted": {"$ref": "#/components/schemas/self-hosted"}}, "title": "Step Runtime", "type": "object"}, "script": {"items": {"oneOf": [{"description": "The command to execute.", "example": "echo \"hello world\"", "title": "Script Command", "type": "string"}, {"$ref": "#/components/schemas/pipe"}, {"$ref": "#/components/schemas/agent_task"}]}, "minItems": 1, "type": "array"}, "self-hosted": {"description": "Custom self-hosted step runtime", "properties": {"cpu": {"description": "Cpu available to runner.", "title": "Cpu", "type": "integer"}, "memory": {"description": "Memory (mb) available to runner.", "title": "Memory", "type": "integer"}, "storage": {"oneOf": [{"properties": {"gcp": {"$ref": "#/components/schemas/storage_gcp_auth"}}, "required": ["gcp"], "type": "object"}, {"properties": {"aws": {"$ref": "#/components/schemas/storage_aws_auth"}}, "required": ["aws"], "type": "object"}]}, "volumes": {"default": [], "description": "Volumes to be mounted into the build container.", "items": {"description": "The volume to be mounted into the build container", "example": "/host-directory:/workdir/path", "title": "Volume mount", "type": "string"}, "type": "array"}}, "title": "Self-hosted step runtime", "type": "object"}, "service": {"description": "Custom service properties", "properties": {"image": {"$ref": "#/components/schemas/image"}, "memory": {"default": 1024, "description": "Memory limit for the service container, in megabytes.", "minimum": 128, "title": "Service Memory", "type": "integer"}, "type": {"description": "Specifies Docker service container (to run Docker-in-Docker).", "enum": ["docker"], "type": "string"}, "variables": {"additionalProperties": {"description": "Environment variable value", "title": "Service Variable", "type": "string"}, "description": "Environment variables passed to the service container.", "minProperties": 1, "title": "Service Variables", "type": "object"}}, "title": "Service definition", "type": "object"}, "size": {"default": "1x", "description": "The size of the step, sets the amount of resources allocated.", "enum": ["1x", "2x", "4x", "8x", "16x", "32x"], "title": "Step Size", "type": "string"}, "stage": {"properties": {"condition": {"$ref": "#/components/schemas/condition", "description": "The condition to execute the stage.", "title": "Stage Condition"}, "deployment": {"description": "The deployment environment for the stage.", "title": "Stage Deployment Environment", "type": "string"}, "environment": {"description": "The environment for the stage.", "title": "Stage Environment", "type": "string"}, "name": {"description": "The name of the stage.", "title": "Stage Name", "type": "string"}, "steps": {"description": "List of steps in the stage.", "items": {"properties": {"step": {"allOf": [{"$ref": "#/components/schemas/step_base"}, {"properties": {"condition": {"not": {}}}, "type": "object"}]}}, "type": "object"}, "minItems": 1, "title": "Stage Steps", "type": "array"}, "trigger": {"$ref": "#/components/schemas/trigger", "description": "The trigger used for the pipeline stage.", "title": "Stage Trigger"}}, "required": ["steps"], "type": "object"}, "stage_item": {"additionalProperties": false, "properties": {"stage": {"$ref": "#/components/schemas/stage"}}, "type": "object"}, "step": {"allOf": [{"$ref": "#/components/schemas/step_base"}, {"properties": {"condition": {"$ref": "#/components/schemas/condition", "description": "The condition to execute the step.", "title": "Step Condition"}}, "type": "object"}]}, "step_auth": {"description": "Optional auth configuration for a step.", "properties": {"system": {"properties": {"scopes": {"description": "Additional system scopes for the step.", "items": {"type": "string"}, "title": "System Scopes", "type": "array", "uniqueItems": true}}, "title": "System Auth", "type": "object"}}, "title": "Step Auth", "type": "object"}, "step_base": {"properties": {"after-script": {"$ref": "#/components/schemas/script", "description": "List of commands to execute after the step succeeds or fails.", "title": "Step Post Script"}, "artifacts": {"$ref": "#/components/schemas/artifacts"}, "auth": {"$ref": "#/components/schemas/step_auth", "description": "Optional auth configuration for the step.", "title": "Step Auth"}, "caches": {"description": "Caches enabled for the step.", "items": {"description": "Reference to a cache defined under global definitions.", "title": "Cache Name", "type": "string"}, "minItems": 1, "title": "Step Caches", "type": "array"}, "clone": {"$ref": "#/components/schemas/clone"}, "concurrency-group": {"description": "The concurrency group for the step.", "maxLength": 50, "title": "Concurrency group", "type": "string"}, "custom": {"description": "The name of the custom pipeline to run, if the step type is pipeline.", "title": "Custom", "type": "string"}, "deployment": {"description": "The deployment environment for the step.", "title": "Step Deployment Environment", "type": "string"}, "environment": {"description": "The environment for the step.", "title": "Step Environment", "type": "string"}, "fail-fast": {"$ref": "#/components/schemas/fail_fast", "description": "Stop the parent parallel group in case this step fails."}, "image": {"$ref": "#/components/schemas/image"}, "input-variables": {"additionalProperties": {"description": "input variable value", "oneOf": [{"type": "string"}]}, "description": "Variables from the parent step that are provided to the child pipeline.", "example": {"VAR_1": "VALUE_1", "VAR_2": "${BITBUCKET_BRANCH}"}, "maxProperties": 20, "minProperties": 1, "title": "Input Variables", "type": "object"}, "max-time": {"$ref": "#/components/schemas/max_time", "title": "Step Maximum Time"}, "name": {"description": "The name of the step.", "example": "Build and test", "title": "Step Name", "type": "string"}, "oidc": {"description": "Enables the use of OpenID Connect to connect a pipeline step to a resource server.", "type": "boolean"}, "runs-on": {"$ref": "#/components/schemas/runs_on"}, "runtime": {"$ref": "#/components/schemas/runtime"}, "script": {"$ref": "#/components/schemas/script", "description": "List of commands that are executed in sequence.", "title": "Step Script"}, "services": {"description": "Services enabled for the step.", "items": {"description": "Reference to a service defined under global definitions.", "title": "Service Name", "type": "string"}, "maxItems": 5, "minItems": 1, "title": "Step Services", "type": "array"}, "size": {"$ref": "#/components/schemas/size"}, "trigger": {"$ref": "#/components/schemas/trigger", "description": "The trigger used for the pipeline step.", "title": "Step Trigger"}, "type": {"default": "shared", "description": "The type of the step.", "enum": ["inline", "pipeline"], "title": "Step Type", "type": "string"}}, "title": "Pipeline Step", "type": "object"}, "step_item": {"additionalProperties": false, "properties": {"step": {"$ref": "#/components/schemas/step"}}, "type": "object"}, "storage_aws_auth": {"description": "Amazon web services self hosted storage", "oneOf": [{"required": ["access-key", "secret-key"]}, {"required": ["oidc-role"]}], "properties": {"access-key": {"description": "The AWS access key", "type": "string"}, "bucket": {"description": "The name of the S3 bucket", "type": "string"}, "oidc-role": {"description": "The OIDC role to assume", "type": "string"}, "region": {"description": "The AWS region", "type": "string"}, "secret-key": {"description": "The AWS secret key", "type": "string"}}, "required": ["bucket", "region"], "title": "Custom aws self hosted storage", "type": "object"}, "storage_gcp_auth": {"description": "Google Cloud Platform self hosted storage", "properties": {"bucket": {"description": "The name of the GCP bucket", "type": "string"}, "key-file": {"description": "The GCP key file contents encoded in Base64 format", "type": "string"}}, "required": ["bucket", "key-file"], "title": "Custom GCP self hosted storage", "type": "object"}, "trigger": {"default": "automatic", "enum": ["automatic", "manual"], "type": "string"}, "trigger_configuration": {"description": "Configuration that defines when and which pipelines to trigger.", "properties": {"condition": {"description": "Boolean expression that determines whether the trigger should execute.", "example": "BITBUCKET_BRANCH == \"main\"", "title": "Trigger Condition", "type": "string"}, "pipelines": {"description": "List of pipeline names to trigger when the condition is met. Can reference pipelines from the custom section.", "items": {"description": "Name of a pipeline defined in the custom pipelines section.", "title": "Pipeline Name", "type": "string"}, "minItems": 1, "title": "Pipeline Names", "type": "array"}}, "required": ["condition", "pipelines"], "title": "Trigger Configuration", "type": "object"}, "trigger_configuration_list": {"description": "List of trigger configurations for a specific trigger type.", "items": {"$ref": "#/components/schemas/trigger_configuration"}, "minItems": 1, "title": "Trigger Configuration List", "type": "array"}, "trigger_context": {"description": "Context of the trigger that started the pipeline. Only returned for pipelines triggered by a parent step.", "properties": {"parent_pipeline_run_uuid": {"description": "The UUID of the pipeline run that contains the parent step that triggered this pipeline.", "example": "{00000000-0000-0000-0000-000000000000}", "title": "Parent Pipeline Run UUID", "type": "string"}, "parent_pipeline_uuid": {"description": "The UUID of the pipeline that contains the parent step that triggered this pipeline.", "example": "{00000000-0000-0000-0000-000000000000}", "title": "Parent Pipeline UUID", "type": "string"}, "parent_step_uuid": {"description": "The UUID of the parent step that triggered this pipeline.", "example": "{00000000-0000-0000-0000-000000000000}", "title": "Parent Step UUID", "type": "string"}, "type": {"description": "The type of trigger that started the pipeline.", "enum": ["parent_step"], "title": "Pipeline Trigger", "type": "string"}}, "type": "object"}, "variables_item": {"additionalProperties": false, "properties": {"variables": {"description": "List of variables for the custom pipeline.", "items": {"description": "Settings for the custom variable.", "properties": {"allowed-values": {"description": "A list of values that are allowed for the variable.", "items": {"title": "Allowed Variable Value", "type": "string"}, "minItems": 1, "title": "Allowed Variable Values", "type": "array"}, "default": {"title": "Default Variable Value", "type": "string"}, "description": {"title": "Variable Description", "type": "string"}, "name": {"title": "Variable Name", "type": "string"}}, "required": ["name"], "title": "Custom Pipeline Variable", "type": "object"}, "minItems": 1, "title": "Custom Pipeline Variables", "type": "array"}}, "type": "object"}}}} \ No newline at end of file +{"$id": "https://bitbucket.org/product/features/pipelines", "$ref": "#/components/schemas/pipelines_configuration", "$schema": "http://json-schema.org/draft-07/schema#", "components": {"schemas": {"agent_config": {"description": "Optional agent config path and inline overrides.", "properties": {"overrides": {"additionalProperties": true, "description": "Inline config overrides for the agent.", "title": "Agent Config Overrides", "type": "object"}, "path": {"description": "Path to a config file used by the agent.", "title": "Agent Config Path", "type": "string"}}, "title": "Agent Config", "type": "object"}, "agent_definition": {"description": "Defines an agent that can be referenced by agent tasks.", "properties": {"config": {"$ref": "#/components/schemas/agent_config"}, "permissions": {"$ref": "#/components/schemas/agent_permissions"}, "prompt": {"description": "Prompt used by the agent definition.", "title": "Agent Prompt", "type": "string"}, "provider": {"$ref": "#/components/schemas/agent_provider"}}, "required": ["prompt"], "title": "Agent Definition", "type": "object"}, "agent_permissions": {"description": "Optional permissions configuration for the agent.", "properties": {"on-ask": {"$ref": "#/components/schemas/agent_permissions_on_ask"}}, "title": "Agent Permissions", "type": "object"}, "agent_permissions_on_ask": {"description": "How to respond when the agent asks for permissions.", "enum": ["allow", "deny"], "title": "On Ask Permission Mode", "type": "string"}, "agent_provider": {"description": "Agent provider used to run the task.", "enum": ["rovodev", "claude"], "title": "Agent Provider", "type": "string"}, "agent_task": {"description": "The agentic task to execute.", "properties": {"agent": {"description": "Name of the agent definition referenced by this task.", "title": "Agent Name", "type": "string"}, "config": {"$ref": "#/components/schemas/agent_config"}, "permissions": {"$ref": "#/components/schemas/agent_permissions"}, "prompt": {"description": "Optional prompt override for the agent task.", "title": "Agent Prompt Override", "type": "string"}, "provider": {"$ref": "#/components/schemas/agent_provider"}}, "required": ["agent"], "title": "Agent Task", "type": "object"}, "artifacts": {"oneOf": [{"$ref": "#/components/schemas/artifacts_paths"}, {"$ref": "#/components/schemas/artifacts_expanded"}]}, "artifacts_expanded": {"properties": {"download": {"oneOf": [{"default": true, "description": "Enables downloading of all available artifacts at the end of a step.", "type": "boolean"}, {"description": "Define the list of filtered artifacts to be downloaded by the step.", "items": {"type": "string"}, "minItems": 1, "type": "array"}]}, "paths": {"$ref": "#/components/schemas/artifacts_paths"}, "upload": {"oneOf": [{"items": {"$ref": "#/components/schemas/artifacts_upload"}, "minItems": 1, "type": "array"}, {"items": {"type": "string"}, "minItems": 1, "type": "array"}]}}, "type": "object"}, "artifacts_paths": {"items": {"description": "Glob pattern for the path to the artifacts.", "title": "Artifact Path Pattern", "type": "string"}, "minItems": 1, "type": "array"}, "artifacts_upload": {"description": "The artifact to be uploaded.", "properties": {"capture-on": {"description": "The capture on field for the artifact.", "enum": ["success", "failed", "always"], "title": "Artifact Capture On", "type": "string"}, "depth": {"description": "The depth to search for the artifact files.", "minimum": 1, "title": "Artifact Depth", "type": "integer"}, "ignore-paths": {"description": "The ignore paths for the artifact.", "items": {"description": "Glob pattern for paths to ignore when capturing artifacts.", "title": "Ignore Path Pattern", "type": "string"}, "title": "Artifact Ignore Paths", "type": "array"}, "name": {"description": "The name of the artifact.", "title": "Artifact Name", "type": "string"}, "paths": {"$ref": "#/components/schemas/artifacts_paths"}, "type": {"default": "shared", "description": "The type of the artifact.", "enum": ["shared", "scoped", "test-reports"], "title": "Artifact Type", "type": "string"}}, "required": ["name", "paths"], "title": "Artifact Upload object", "type": "object"}, "cache": {"oneOf": [{"$ref": "#/components/schemas/cache_path"}, {"$ref": "#/components/schemas/cache_expanded"}]}, "cache_expanded": {"properties": {"key": {"properties": {"files": {"description": "Checksum of these file paths will be used to generate the cache key.", "items": {"description": "Path to a file or glob pattern of files in the repository which form the cache key.", "type": "string"}, "minItems": 1, "type": "array"}}, "required": ["files"], "title": "Cache Key", "type": "object"}, "path": {"$ref": "#/components/schemas/cache_path"}}, "required": ["path"], "title": "Cache", "type": "object"}, "cache_path": {"description": "Path to the directory to be cached, can be absolute or relative to the clone directory.", "title": "Cache Path", "type": "string"}, "clone": {"description": "Settings for cloning a repository into a container.", "properties": {"depth": {"default": 50, "description": "The depth argument of Git clone operation. It can be either number or \"full\" value", "example": "full", "oneOf": [{"minimum": 1, "type": "integer"}, {"enum": ["full"], "type": "string"}], "title": "Git Clone Depth"}, "enabled": {"default": true, "description": "Enables cloning of the repository.", "type": "boolean"}, "lfs": {"default": false, "description": "Enables the download of files from LFS storage when cloning.", "type": "boolean"}, "skip-ssl-verify": {"default": false, "description": "Disables SSL verification during Git clone operation, allowing the use of self-signed certificates.", "type": "boolean"}}, "title": "Clone Repository Settings", "type": "object"}, "cloud": {"description": "Custom cloud step runtime", "properties": {"arch": {"default": "x86", "description": "Architecture type used to run the step.", "enum": ["x86", "arm"], "type": "string"}, "atlassian-ip-ranges": {"default": false, "description": "Whether it uses Atlassian ip ranges.", "type": "boolean"}, "instance-type": {"description": "Instance type for the cloud runtime.", "type": "string"}, "platform": {"default": "linux", "description": "Platform type used to run the step.", "enum": ["linux", "windows"], "type": "string"}, "version": {"description": "Cloud Runtime version.", "type": "string"}}, "title": "Cloud step runtime", "type": "object"}, "condition": {"properties": {"changesets": {"additionalProperties": false, "description": "Condition on the changesets involved in the pipeline.", "maxProperties": 1, "properties": {"excludePaths": {"description": "Condition which holds only if all of the modified files match any of the specified patterns.", "items": {"description": "Glob pattern to match the file path.", "title": "File Path Pattern", "type": "string"}, "minItems": 1, "title": "Exclude Paths", "type": "array"}, "includePaths": {"description": "Condition which holds only if any of the modified files match any of the specified patterns.", "items": {"description": "Glob pattern to match the file path.", "title": "File Path Pattern", "type": "string"}, "minItems": 1, "title": "Include Paths", "type": "array"}}, "title": "Changeset Condition", "type": "object"}, "state": {"description": "Only execute a step or stage when a boolean expression evaluates to true.", "example": "PROD_DEPLOYMENT_ENABLED == true", "maxLength": 1000, "minLength": 1, "title": "Boolean expression condition", "type": "string"}}, "type": "object"}, "custom_pipeline": {"oneOf": [{"$ref": "#/components/schemas/items_with_variables"}, {"$ref": "#/components/schemas/import_pipeline"}]}, "dynamic_pipeline_variable": {"description": "A resolved variable available when the pipeline is parsed.", "properties": {"key": {"description": "The name of the variable.", "example": "SERVICE_NAME", "type": "string"}, "scope": {"$ref": "#/components/schemas/dynamic_pipeline_variable_scope"}, "value": {"description": "The resolved value of the variable.", "example": "test-service", "type": "string"}}, "required": ["key", "value", "scope"], "title": "Dynamic Pipeline Variable", "type": "object"}, "dynamic_pipeline_variable_scope": {"description": "The scope at which the variable is defined:\n* `PIPELINE` - pipeline level.\n* `REPOSITORY` - repository level.\n* `WORKSPACE` - workspace level.\n* `STEP` - step level.\n* `DEPLOYMENT` - deployment environment level.\n", "enum": ["PIPELINE", "REPOSITORY", "WORKSPACE", "STEP", "DEPLOYMENT"], "title": "Dynamic Pipeline Variable Scope", "type": "string"}, "fail_fast": {"default": false, "title": "Fail Fast", "type": "boolean"}, "final_item": {"additionalProperties": false, "properties": {"final": {"$ref": "#/components/schemas/final_step"}}, "type": "object"}, "final_step": {"allOf": [{"$ref": "#/components/schemas/step_base"}, {"description": "A special step that always runs at the end of a pipeline, even if earlier steps fail or the pipeline is stopped. Only one final step is allowed per pipeline and it must be the last item.", "properties": {"deployment": {"not": {}}, "fail-fast": {"not": {}}, "trigger": {"description": "The final step always runs automatically. Manual trigger is not supported.", "enum": ["automatic"], "type": "string"}}, "title": "Final Pipeline Step", "type": "object"}]}, "image": {"oneOf": [{"$ref": "#/components/schemas/image_no_auth"}, {"$ref": "#/components/schemas/image_basic_auth"}, {"$ref": "#/components/schemas/image_aws_auth"}, {"$ref": "#/components/schemas/image_name"}]}, "image_aws_auth": {"allOf": [{"$ref": "#/components/schemas/image_base"}, {"properties": {"aws": {"oneOf": [{"properties": {"access-key": {"description": "The access key for Amazon Elastic Container Registry (AWS ECR).", "title": "AWS Access Key", "type": "string"}, "secret-key": {"description": "The secret key for Amazon Elastic Container Registry (AWS ECR).", "title": "AWS Secret Key", "type": "string"}}, "required": ["access-key", "secret-key"], "type": "object"}, {"properties": {"oidc-role": {"description": "OIDC role with access to private Docker images hosted in Amazon Elastic Container Registry (AWS ECR).", "title": "OpenID Connect Role", "type": "string"}}, "required": ["oidc-role"], "type": "object"}]}}, "required": ["aws"], "type": "object"}]}, "image_base": {"description": "The parameters of the Docker image to use when running a step.", "properties": {"name": {"$ref": "#/components/schemas/image_name"}, "run-as-user": {"default": 0, "description": "The UID of a user in the docker image to run as. Overrides image's default user, specified user UID must be an existing user in the image with a valid home directory.", "title": "User ID", "type": "integer"}}, "required": ["name"], "title": "Docker Image Configuration", "type": "object"}, "image_basic_auth": {"allOf": [{"$ref": "#/components/schemas/image_base"}, {"properties": {"password": {"description": "The password to use when fetching the Docker image.", "title": "Docker Registry Password", "type": "string"}, "username": {"description": "The username to use when fetching the Docker image.", "title": "Docker Registry Username", "type": "string"}}, "required": ["username", "password"], "type": "object"}]}, "image_name": {"default": "atlassian/default-image:latest", "description": "The name of the Docker image which may or may not include registry URL, tag, and digest value.", "title": "Docker Image Name", "type": "string"}, "image_no_auth": {"allOf": [{"$ref": "#/components/schemas/image_base"}, {"properties": {"aws": {"not": {}}, "password": {"not": {}}, "username": {"not": {}}}, "type": "object"}]}, "import_inline_pipeline": {"additionalProperties": false, "properties": {"import": {"description": "The import needs to match the following format: {repo-slug|repo-uuid}:{tag-name|branch-name}:{pipeline-name}.", "pattern": "^[^:]+:[^:]+:[^:]+$", "title": "Identifier of the pipeline configuration to import", "type": "string"}, "variables": {"$ref": "#/components/schemas/pipeline_variables"}}, "required": ["import"], "type": "object"}, "import_pipeline": {"oneOf": [{"$ref": "#/components/schemas/import_inline_pipeline"}, {"$ref": "#/components/schemas/import_source_pipeline"}]}, "import_source": {"additionalProperties": false, "properties": {"import": {"description": "The import needs to match one of the following formats: {file-path} or {repo-slug|repo-uuid}:{tag-name|branch-name} or {repo-slug|repo-uuid}:{tag-name|branch-name}:{file-path}.", "pattern": "^[^:]+(:[^:]+)?(:[^:]+)?$", "title": "Location of pipeline configuration to import pipelines from", "type": "string"}}, "required": ["import"], "type": "object"}, "import_source_pipeline": {"additionalProperties": false, "properties": {"import": {"description": "The import needs to match the following format: {pipeline-name}@{import-source-name}.", "pattern": "^[^@]+@[^@]+$", "title": "Identifier of the pipeline configuration to import", "type": "string"}, "variables": {"$ref": "#/components/schemas/pipeline_variables"}}, "required": ["import"], "type": "object"}, "items": {"description": "List of steps, stages and parallel groups of the pipeline.", "items": {"oneOf": [{"$ref": "#/components/schemas/step_item"}, {"$ref": "#/components/schemas/parallel_item"}, {"$ref": "#/components/schemas/stage_item"}, {"$ref": "#/components/schemas/final_item"}]}, "minItems": 1, "title": "Pipeline Items", "type": "array"}, "items_with_variables": {"description": "List of variables, steps, stages and parallel groups of the custom pipeline.", "items": {"oneOf": [{"$ref": "#/components/schemas/variables_item"}, {"$ref": "#/components/schemas/step_item"}, {"$ref": "#/components/schemas/parallel_item"}, {"$ref": "#/components/schemas/stage_item"}]}, "minItems": 1, "title": "Custom Pipeline Items", "type": "array"}, "max_time": {"default": 120, "description": "The maximum time a step can execute for in minutes.", "example": 60, "exclusiveMinimum": 0, "type": "integer"}, "parallel": {"oneOf": [{"$ref": "#/components/schemas/parallel_steps"}, {"$ref": "#/components/schemas/parallel_expanded"}]}, "parallel_expanded": {"properties": {"fail-fast": {"$ref": "#/components/schemas/fail_fast", "description": "Stop the whole parallel group in case one of its steps fails."}, "steps": {"$ref": "#/components/schemas/parallel_steps"}}, "required": ["steps"], "type": "object"}, "parallel_item": {"additionalProperties": false, "properties": {"parallel": {"$ref": "#/components/schemas/parallel"}}, "type": "object"}, "parallel_steps": {"description": "List of steps in the parallel group to run concurrently.", "items": {"$ref": "#/components/schemas/step_item"}, "minItems": 1, "title": "Parallel Group Steps", "type": "array"}, "pipe": {"description": "The pipe to execute.", "example": {"pipe": "atlassian/test-pipe:2.2.0", "variables": {"BAZ": ["QUX", "QUZ"], "FOO": "BAR"}}, "properties": {"pipe": {"description": "The full pipe identifier.", "title": "Pipe Identifier", "type": "string"}, "variables": {"additionalProperties": {"description": "Environment variable value", "oneOf": [{"type": "string"}, {"items": {"type": "string"}, "type": "array"}]}, "description": "Environment variables passed to the pipe container.", "title": "Pipe Variables", "type": "object"}}, "required": ["pipe"], "title": "Pipe", "type": "object"}, "pipeline": {"oneOf": [{"$ref": "#/components/schemas/items"}, {"$ref": "#/components/schemas/import_pipeline"}]}, "pipeline_variables": {"description": "List of variables for the custom pipeline.", "items": {"description": "Settings for the custom variable.", "properties": {"allowed-values": {"description": "A list of values that are allowed for the variable.", "items": {"title": "Allowed Variable Value", "type": "string"}, "minItems": 1, "title": "Allowed Variable Values", "type": "array"}, "default": {"title": "Default Variable Value", "type": "string"}, "description": {"title": "Variable Description", "type": "string"}, "name": {"title": "Variable Name", "type": "string"}}, "required": ["name"], "title": "Custom Pipeline Variable", "type": "object"}, "minItems": 1, "title": "Custom Pipeline Variables", "type": "array"}, "pipelines_configuration": {"properties": {"clone": {"$ref": "#/components/schemas/clone"}, "definitions": {"description": "The definitions of caches and services used in the declared pipelines.", "properties": {"agents": {"additionalProperties": {"$ref": "#/components/schemas/agent_definition"}, "title": "Agent definitions", "type": "object"}, "caches": {"additionalProperties": {"$ref": "#/components/schemas/cache"}, "title": "Custom cache definitions", "type": "object"}, "imports": {"pipelines": {"additionalProperties": {"$ref": "#/components/schemas/import_source"}, "description": "Definitions of the pipelines imports that can be used in this file.", "title": "Import source definitions", "type": "object"}}, "pipelines": {"additionalProperties": {"$ref": "#/components/schemas/custom_pipeline"}, "description": "Definitions of the pipelines which can be used in other repositories of the same Bitbucket workspace.", "title": "Shared pipeline definitions", "type": "object"}, "services": {"additionalProperties": {"$ref": "#/components/schemas/service"}, "title": "Service definitions", "type": "object"}}, "title": "Global Definitions", "type": "object"}, "export": {"default": false, "description": "Allows other Bitbucket repositories to import pipeline definitions from this file. A shared pipeline definition can't contain another `import` property.", "title": "Enables shared pipelines definitions.", "type": "boolean"}, "image": {"$ref": "#/components/schemas/image"}, "labels": {"description": "Additional key value data supplied in the configuration YAML.", "example": {"buildTool": "maven", "jvm": "jdk17"}, "title": "Pipeline Labels", "type": "object"}, "options": {"description": "Global options allow to override the default values applied to all steps in all declared pipelines.", "properties": {"docker": {"default": false, "description": "Enables Docker service for every step.", "type": "boolean"}, "max-time": {"$ref": "#/components/schemas/max_time"}, "runs-on": {"$ref": "#/components/schemas/runs_on"}, "runtime": {"$ref": "#/components/schemas/runtime"}, "size": {"$ref": "#/components/schemas/size"}}, "title": "Global Options", "type": "object"}, "pipelines": {"properties": {"branches": {"additionalProperties": {"$ref": "#/components/schemas/pipeline"}, "description": "Branch-specific build pipelines.", "title": "Branch Pipelines", "type": "object"}, "custom": {"additionalProperties": {"$ref": "#/components/schemas/custom_pipeline"}, "description": "Pipelines that can only be triggered manually or be scheduled.", "title": "Custom Pipelines", "type": "object"}, "default": {"$ref": "#/components/schemas/pipeline", "description": "Default pipeline runs on every push except for tags unless a branch-specific pipeline is defined.", "title": "Default Pipeline"}, "pull-requests": {"additionalProperties": {"$ref": "#/components/schemas/pipeline"}, "description": "Pull-request-specific build pipelines.", "title": "Pull Request Pipelines", "type": "object"}, "tags": {"additionalProperties": {"$ref": "#/components/schemas/pipeline"}, "description": "Tag-specific build pipelines.", "title": "Tag Pipelines", "type": "object"}}, "title": "Pipelines", "type": "object"}, "triggers": {"additionalProperties": {"$ref": "#/components/schemas/trigger_configuration_list"}, "description": "Event-based triggers that automatically run pipelines when specific events occur. The property names represent trigger types (e.g., repository-push, pullrequest-push, pipeline-completed, deployment-completed, pullrequest-created).", "example": {"deployment-completed": [{"condition": "BITBUCKET_TRIGGER_DEPLOYMENT_STATUS == \"FAILED\"", "pipelines": ["pipeline2"]}], "pipeline-completed": [{"condition": "BITBUCKET_TRIGGER_PIPELINE_STATUS == \"FAILED\"", "pipelines": ["pipeline1"]}], "pullrequest-created": [{"condition": "glob(BITBUCKET_BRANCH, \"feature/*\")", "pipelines": ["pipeline1"]}], "pullrequest-fulfilled": [{"condition": "glob(BITBUCKET_BRANCH, \"feature/*\")", "pipelines": ["pipeline2"]}], "pullrequest-push": [{"condition": "BITBUCKET_PR_DESTINATION_BRANCH == \"main\"", "pipelines": ["pipeline2"]}], "pullrequest-rejected": [{"condition": "glob(BITBUCKET_BRANCH, \"feature/*\")", "pipelines": ["pipeline1"]}], "pullrequest-reviewer-status-updated": [{"condition": "glob(BITBUCKET_BRANCH, \"feature/*\")", "pipelines": ["pipeline1"]}], "pullrequest-updated": [{"condition": "glob(BITBUCKET_BRANCH, \"feature/*\")", "pipelines": ["pipeline2"]}], "repository-push": [{"condition": "BITBUCKET_BRANCH == \"main\"", "pipelines": ["pipeline1"]}]}, "title": "Pipeline Triggers", "type": "object"}}, "type": "object"}, "runs_on": {"oneOf": [{"$ref": "#/components/schemas/runs_on_item"}, {"$ref": "#/components/schemas/runs_on_expanded"}]}, "runs_on_expanded": {"description": "Required labels of a runner to run the step.", "example": ["self.hosted", "linux"], "items": {"$ref": "#/components/schemas/runs_on_item"}, "maxItems": 10, "minItems": 1, "title": "Step Runner Labels", "type": "array"}, "runs_on_item": {"description": "Label of a runner.", "maxLength": 50, "title": "Step Runner Label", "type": "string"}, "runtime": {"description": "Custom step runtime", "properties": {"cloud": {"$ref": "#/components/schemas/cloud"}, "self-hosted": {"$ref": "#/components/schemas/self-hosted"}}, "title": "Step Runtime", "type": "object"}, "script": {"items": {"oneOf": [{"description": "The command to execute.", "example": "echo \"hello world\"", "title": "Script Command", "type": "string"}, {"$ref": "#/components/schemas/pipe"}, {"$ref": "#/components/schemas/agent_task"}]}, "minItems": 1, "type": "array"}, "self-hosted": {"description": "Custom self-hosted step runtime", "properties": {"cpu": {"description": "Cpu available to runner.", "title": "Cpu", "type": "integer"}, "memory": {"description": "Memory (mb) available to runner.", "title": "Memory", "type": "integer"}, "storage": {"oneOf": [{"properties": {"gcp": {"$ref": "#/components/schemas/storage_gcp_auth"}}, "required": ["gcp"], "type": "object"}, {"properties": {"aws": {"$ref": "#/components/schemas/storage_aws_auth"}}, "required": ["aws"], "type": "object"}]}, "volumes": {"default": [], "description": "Volumes to be mounted into the build container.", "items": {"description": "The volume to be mounted into the build container", "example": "/host-directory:/workdir/path", "title": "Volume mount", "type": "string"}, "type": "array"}}, "title": "Self-hosted step runtime", "type": "object"}, "service": {"description": "Custom service properties", "properties": {"image": {"$ref": "#/components/schemas/image"}, "memory": {"default": 1024, "description": "Memory limit for the service container, in megabytes.", "minimum": 128, "title": "Service Memory", "type": "integer"}, "type": {"description": "Specifies Docker service container (to run Docker-in-Docker).", "enum": ["docker"], "type": "string"}, "variables": {"additionalProperties": {"description": "Environment variable value", "title": "Service Variable", "type": "string"}, "description": "Environment variables passed to the service container.", "minProperties": 1, "title": "Service Variables", "type": "object"}}, "title": "Service definition", "type": "object"}, "size": {"default": "1x", "description": "The size of the step, sets the amount of resources allocated.", "enum": ["1x", "2x", "4x", "8x", "16x", "32x"], "title": "Step Size", "type": "string"}, "stage": {"properties": {"condition": {"$ref": "#/components/schemas/condition", "description": "The condition to execute the stage.", "title": "Stage Condition"}, "deployment": {"description": "The deployment environment for the stage.", "title": "Stage Deployment Environment", "type": "string"}, "environment": {"description": "The environment for the stage.", "title": "Stage Environment", "type": "string"}, "name": {"description": "The name of the stage.", "title": "Stage Name", "type": "string"}, "steps": {"description": "List of steps in the stage.", "items": {"properties": {"step": {"allOf": [{"$ref": "#/components/schemas/step_base"}, {"properties": {"condition": {"not": {}}}, "type": "object"}]}}, "type": "object"}, "minItems": 1, "title": "Stage Steps", "type": "array"}, "trigger": {"$ref": "#/components/schemas/trigger", "description": "The trigger used for the pipeline stage.", "title": "Stage Trigger"}}, "required": ["steps"], "type": "object"}, "stage_item": {"additionalProperties": false, "properties": {"stage": {"$ref": "#/components/schemas/stage"}}, "type": "object"}, "step": {"allOf": [{"$ref": "#/components/schemas/step_base"}, {"properties": {"condition": {"$ref": "#/components/schemas/condition", "description": "The condition to execute the step.", "title": "Step Condition"}}, "type": "object"}]}, "step_auth": {"description": "Optional auth configuration for a step.", "properties": {"system": {"properties": {"scopes": {"description": "Additional system scopes for the step.", "items": {"type": "string"}, "title": "System Scopes", "type": "array", "uniqueItems": true}}, "title": "System Auth", "type": "object"}}, "title": "Step Auth", "type": "object"}, "step_base": {"properties": {"after-script": {"$ref": "#/components/schemas/script", "description": "List of commands to execute after the step succeeds or fails.", "title": "Step Post Script"}, "artifacts": {"$ref": "#/components/schemas/artifacts"}, "auth": {"$ref": "#/components/schemas/step_auth", "description": "Optional auth configuration for the step.", "title": "Step Auth"}, "caches": {"description": "Caches enabled for the step.", "items": {"description": "Reference to a cache defined under global definitions.", "title": "Cache Name", "type": "string"}, "minItems": 1, "title": "Step Caches", "type": "array"}, "clone": {"$ref": "#/components/schemas/clone"}, "concurrency-group": {"description": "The concurrency group for the step.", "maxLength": 50, "title": "Concurrency group", "type": "string"}, "custom": {"description": "The name of the custom pipeline to run, if the step type is pipeline.", "title": "Custom", "type": "string"}, "deployment": {"description": "The deployment environment for the step.", "title": "Step Deployment Environment", "type": "string"}, "environment": {"description": "The environment for the step.", "title": "Step Environment", "type": "string"}, "fail-fast": {"$ref": "#/components/schemas/fail_fast", "description": "Stop the parent parallel group in case this step fails."}, "image": {"$ref": "#/components/schemas/image"}, "input-variables": {"additionalProperties": {"description": "input variable value", "oneOf": [{"type": "string"}]}, "description": "Variables from the parent step that are provided to the child pipeline.", "example": {"VAR_1": "VALUE_1", "VAR_2": "${BITBUCKET_BRANCH}"}, "maxProperties": 20, "minProperties": 1, "title": "Input Variables", "type": "object"}, "max-time": {"$ref": "#/components/schemas/max_time", "title": "Step Maximum Time"}, "name": {"description": "The name of the step.", "example": "Build and test", "title": "Step Name", "type": "string"}, "oidc": {"description": "Enables the use of OpenID Connect to connect a pipeline step to a resource server.", "type": "boolean"}, "runs-on": {"$ref": "#/components/schemas/runs_on"}, "runtime": {"$ref": "#/components/schemas/runtime"}, "script": {"$ref": "#/components/schemas/script", "description": "List of commands that are executed in sequence.", "title": "Step Script"}, "services": {"description": "Services enabled for the step.", "items": {"description": "Reference to a service defined under global definitions.", "title": "Service Name", "type": "string"}, "maxItems": 5, "minItems": 1, "title": "Step Services", "type": "array"}, "size": {"$ref": "#/components/schemas/size"}, "trigger": {"$ref": "#/components/schemas/trigger", "description": "The trigger used for the pipeline step.", "title": "Step Trigger"}, "type": {"default": "shared", "description": "The type of the step.", "enum": ["inline", "pipeline"], "title": "Step Type", "type": "string"}}, "title": "Pipeline Step", "type": "object"}, "step_item": {"additionalProperties": false, "properties": {"step": {"$ref": "#/components/schemas/step"}}, "type": "object"}, "storage_aws_auth": {"description": "Amazon web services self hosted storage", "oneOf": [{"required": ["access-key", "secret-key"]}, {"required": ["oidc-role"]}], "properties": {"access-key": {"description": "The AWS access key", "type": "string"}, "bucket": {"description": "The name of the S3 bucket", "type": "string"}, "oidc-role": {"description": "The OIDC role to assume", "type": "string"}, "region": {"description": "The AWS region", "type": "string"}, "secret-key": {"description": "The AWS secret key", "type": "string"}}, "required": ["bucket", "region"], "title": "Custom aws self hosted storage", "type": "object"}, "storage_gcp_auth": {"description": "Google Cloud Platform self hosted storage", "properties": {"bucket": {"description": "The name of the GCP bucket", "type": "string"}, "key-file": {"description": "The GCP key file contents encoded in Base64 format", "type": "string"}}, "required": ["bucket", "key-file"], "title": "Custom GCP self hosted storage", "type": "object"}, "trigger": {"default": "automatic", "enum": ["automatic", "manual"], "type": "string"}, "trigger_configuration": {"description": "Configuration that defines when and which pipelines to trigger.", "properties": {"condition": {"description": "Boolean expression that determines whether the trigger should execute.", "example": "BITBUCKET_BRANCH == \"main\"", "title": "Trigger Condition", "type": "string"}, "pipelines": {"description": "List of pipeline names to trigger when the condition is met. Can reference pipelines from the custom section.", "items": {"description": "Name of a pipeline defined in the custom pipelines section.", "title": "Pipeline Name", "type": "string"}, "minItems": 1, "title": "Pipeline Names", "type": "array"}}, "required": ["condition", "pipelines"], "title": "Trigger Configuration", "type": "object"}, "trigger_configuration_list": {"description": "List of trigger configurations for a specific trigger type.", "items": {"$ref": "#/components/schemas/trigger_configuration"}, "minItems": 1, "title": "Trigger Configuration List", "type": "array"}, "trigger_context": {"description": "Context of the trigger that started the pipeline. Only returned for pipelines triggered by a parent step.", "properties": {"parent_pipeline_run_uuid": {"description": "The UUID of the pipeline run that contains the parent step that triggered this pipeline.", "example": "{00000000-0000-0000-0000-000000000000}", "title": "Parent Pipeline Run UUID", "type": "string"}, "parent_pipeline_uuid": {"description": "The UUID of the pipeline that contains the parent step that triggered this pipeline.", "example": "{00000000-0000-0000-0000-000000000000}", "title": "Parent Pipeline UUID", "type": "string"}, "parent_step_uuid": {"description": "The UUID of the parent step that triggered this pipeline.", "example": "{00000000-0000-0000-0000-000000000000}", "title": "Parent Step UUID", "type": "string"}, "type": {"description": "The type of trigger that started the pipeline.", "enum": ["parent_step"], "title": "Pipeline Trigger", "type": "string"}}, "type": "object"}, "variables_item": {"additionalProperties": false, "properties": {"variables": {"description": "List of variables for the custom pipeline.", "items": {"description": "Settings for the custom variable.", "properties": {"allowed-values": {"description": "A list of values that are allowed for the variable.", "items": {"title": "Allowed Variable Value", "type": "string"}, "minItems": 1, "title": "Allowed Variable Values", "type": "array"}, "default": {"title": "Default Variable Value", "type": "string"}, "description": {"title": "Variable Description", "type": "string"}, "name": {"title": "Variable Name", "type": "string"}}, "required": ["name"], "title": "Custom Pipeline Variable", "type": "object"}, "minItems": 1, "title": "Custom Pipeline Variables", "type": "array"}}, "type": "object"}}}} \ No newline at end of file diff --git a/src/check_jsonschema/builtin_schemas/vendor/circle-ci.json b/src/check_jsonschema/builtin_schemas/vendor/circle-ci.json index 92291e73b..b4fef34a4 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/circle-ci.json +++ b/src/check_jsonschema/builtin_schemas/vendor/circle-ci.json @@ -2419,7 +2419,7 @@ ], "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\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\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", @@ -2429,6 +2429,11 @@ "type": "string", "pattern": "^[a-z][a-z0-9_-]+/[a-z][a-z0-9_-]+@ *<<.+>> *$" }, + { + "type": "string", + "pattern": "^https://.+$", + "format": "uri" + }, { "type": "object", "properties": { diff --git a/src/check_jsonschema/builtin_schemas/vendor/mergify.json b/src/check_jsonschema/builtin_schemas/vendor/mergify.json index bfd179d11..b8d82fb20 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/mergify.json +++ b/src/check_jsonschema/builtin_schemas/vendor/mergify.json @@ -102,8 +102,8 @@ } ], "configuration_deprecated_attribute": { - "deprecated_summary_ghes_mode": "The `github_actions` action is deprecated and will be removed on 2027-03-31. Trigger your workflow from GitHub Actions directly instead: https://docs.mergify.com/workflow/actions/github_actions", - "deprecated_summary_saas_mode": "The `github_actions` action is deprecated and will be removed on 2027-03-31. Trigger your workflow from GitHub Actions directly instead: https://docs.mergify.com/workflow/actions/github_actions" + "deprecated_summary_ghes_mode": "The `github_actions` action will be removed on 2027-03-31: https://docs.mergify.com/workflow/actions/migrate-github-actions/", + "deprecated_summary_saas_mode": "The `github_actions` action will be removed on 2027-03-31: https://docs.mergify.com/workflow/actions/migrate-github-actions/" }, "default": null, "deprecated": true @@ -695,7 +695,12 @@ { "or": [ "sender-permission >= write", - "sender = {{author}}" + { + "and": [ + "sender = {{author}}", + "from-fork" + ] + } ] } ] @@ -708,7 +713,12 @@ { "or": [ "sender-permission >= write", - "sender = {{author}}" + { + "and": [ + "sender = {{author}}", + "from-fork" + ] + } ] } ] @@ -729,7 +739,12 @@ { "or": [ "sender-permission >= write", - "sender = {{author}}" + { + "and": [ + "sender = {{author}}", + "from-fork" + ] + } ] } ] @@ -742,7 +757,12 @@ { "or": [ "sender-permission >= write", - "sender = {{author}}" + { + "and": [ + "sender = {{author}}", + "from-fork" + ] + } ] } ] @@ -1415,7 +1435,7 @@ "description": "GitHub Actions workflow dispatch", "properties": { "workflow": { - "description": "The name of the .yaml GitHub Workflow file with its extension.", + "description": "The GitHub Workflow file name with its extension (e.g. `ci.yml`), or the numeric workflow id.", "title": "Workflow", "type": "string" }, @@ -2019,7 +2039,7 @@ "default": "medium", "description": "The priority of the pull request.", "title": "Priority", - "x-has-data-type": true + "x-mergify-has-data-type": true }, "allow_checks_interruption": { "default": false, @@ -2435,6 +2455,17 @@ } ] }, + "from-fork": { + "description": "Whether the pull request comes from a fork, i.e. its head branch and its base branch live in different repositories. Also `true` when the head repository has been deleted, since a deleted repository is never the one holding the base branch.", + "title": "From fork", + "type": "boolean", + "x-allowed-operators": [], + "x-modifiers": [ + { + "type": "negate" + } + ] + }, "title": { "description": "The title of the pull request.", "title": "Title", @@ -2552,19 +2583,11 @@ }, "queue-dequeue-reason": { "anyOf": [ - { - "const": "NONE", - "type": "string" - }, { "enum": [ + "NONE", "PR_MERGED", - "PR_MERGED_INTERMEDIATE_RESULTS_SKIPPED" - ], - "type": "string" - }, - { - "enum": [ + "PR_MERGED_INTERMEDIATE_RESULTS_SKIPPED", "PR_DEQUEUED", "PR_DEQUEUED_FROM_PARTITION", "PR_AHEAD_DEQUEUED", @@ -2616,49 +2639,129 @@ "!=", "~=" ], - "x-enum-descriptions": { - "BASE_BRANCH_CHANGED": "The pull request's base branch changed.", - "BASE_BRANCH_MISSING": "The pull request's base branch no longer exists.", - "BASE_REF_ALIGNMENT_TIMEOUT": "The pull request could not be retargeted onto the queue base branch, for example a stacked pull request GitHub never retargeted.", - "BATCH_AHEAD_FAILED": "A batch ahead in the queue failed, so this pull request's speculative checks are restarted. It stays in the queue.", - "BATCH_MAX_FAILURE_RESOLUTION_ATTEMPTS": "The maximum number of `batch_max_failure_resolution_attempts` was reached while isolating a batch failure.", - "BATCH_PULL_REQUEST_CLOSED": "The merge queue batch pull request was closed.", - "BATCH_SCOPES_CHANGED": "A pull request's scopes changed after it was embarked, so its batch was recomposed. It stays in the queue.", - "BRANCH_UPDATE_FAILED": "Updating the pull request's head branch failed.", - "CHECKS_FAILED": "The queue conditions cannot be satisfied because required checks failed.", - "CHECKS_RETRIED": "The pull request's failed checks are being retried. It stays in the queue.", - "CHECKS_TIMEOUT": "The configured `checks_timeout` was reached before the queue conditions were satisfied.", - "CONFIGURATION_CHANGED": "The Mergify configuration changed while the pull request was queued.", - "CONFLICT_WITH_BASE_BRANCH": "The pull request conflicts with its base branch.", - "CONFLICT_WITH_PULL_AHEAD": "The pull request conflicts with a pull request ahead of it in the queue.", - "DRAFT_PULL_REQUEST_CHANGED": "The merge queue draft pull request received commits that Mergify did not create.", - "DRAFT_PULL_REQUEST_CREATION_BRANCH_NOT_INDEXED": "Mergify could not create the merge queue draft pull request because GitHub had not yet indexed the new branch.", - "DRAFT_PULL_REQUEST_CREATION_FAILED": "Mergify could not create the merge queue draft pull request.", - "DROPPED_BY_BISECTION_ELIMINATION": "Batch bisection isolated the failure to other pull requests and dropped this one without testing it individually.", - "GITHUB_STACKED_PULL_REQUEST_MERGE_UNSUPPORTED": "The pull request is a GitHub stacked pull request, which GitHub does not support merging through its API.", - "INCOMPATIBILITY_WITH_BRANCH_PROTECTIONS": "The pull request cannot be checked because of an incompatibility between the queue and the repository's branch protections.", - "INTERMEDIATE_RESULTS_SKIPPED": "The pull request's intermediate speculative results were skipped. It stays in the queue.", - "MERGE_QUEUE_RESET": "The merge queue was reset.", - "NONE": "The pull request is not, and never was, in a merge queue.", - "PR_AHEAD_DEQUEUED": "A pull request ahead in the queue was removed, so this pull request's speculative checks are restarted. It stays in the queue.", - "PR_CHECKS_STOPPED_BECAUSE_MERGE_QUEUE_PAUSE": "The pull request's checks were interrupted because the merge queue is paused on the repository. It stays in the queue.", - "PR_DEQUEUED": "The pull request was removed from the queue, for example because its queue conditions no longer match.", - "PR_DEQUEUED_FROM_PARTITION": "The pull request stopped matching a partition's rules and was removed from that partition.", - "PR_MANUALLY_DEQUEUED": "The pull request was manually removed from the queue.", - "PR_MANUALLY_MERGED": "The pull request was merged manually, outside of the merge queue.", - "PR_MERGED": "The pull request was merged by the merge queue.", - "PR_MERGED_INTERMEDIATE_RESULTS_SKIPPED": "The pull request was merged based on the successful result of a later pull request in the same speculative batch, skipping its own intermediate checks.", - "PR_UNEXPECTEDLY_FAILED_TO_MERGE": "An unexpected error happened while merging the pull request.", - "PR_WITH_HIGHER_PRIORITY_QUEUED": "A higher-priority pull request was queued ahead of this one. It stays in the queue.", - "PULL_REQUEST_UPDATED": "The pull request was manually updated.", - "QUEUE_RULE_MISSING": "The queue rule referenced by the pull request no longer exists in the configuration.", - "SCHEDULED_FREEZE_STATUS_CHANGED": "A scheduled queue freeze changed the freeze status of the batch's pull requests, so the batch was split. It stays in the queue.", - "SCHEDULE_BLOCKED_AHEAD_YIELDED": "A pull request ahead that was waiting for its merge schedule yielded its position so ready pull requests behind it can merge first. It stays in the queue.", - "SPECULATIVE_CHECK_NUMBER_REDUCED": "The number of speculative checks was reduced. The pull request stays in the queue.", - "STACK_PREDECESSOR_DEQUEUED": "A predecessor pull request in the same stack was dequeued, so this one was removed as well.", - "UNPROCESSABLE_PULL_REQUEST": "Mergify cannot process the pull request, for example because it has too many check runs, comments, or files." - }, - "x-has-data-type": true, + "x-mergify-enum": [ + { + "description": "The pull request is not, and never was, in a merge queue." + }, + { + "description": "The pull request was merged by the merge queue." + }, + { + "description": "The pull request was merged based on the successful result of a later pull request in the same speculative batch, skipping its own intermediate checks." + }, + { + "description": "The pull request was removed from the queue, for example because its queue conditions no longer match." + }, + { + "description": "The pull request stopped matching a partition's rules and was removed from that partition." + }, + { + "description": "A pull request ahead in the queue was removed, so this pull request's speculative checks are restarted. It stays in the queue." + }, + { + "description": "A batch ahead in the queue failed, so this pull request's speculative checks are restarted. It stays in the queue." + }, + { + "description": "A higher-priority pull request was queued ahead of this one. It stays in the queue." + }, + { + "description": "A scheduled queue freeze changed the freeze status of the batch's pull requests, so the batch was split. It stays in the queue." + }, + { + "description": "The number of speculative checks was reduced. The pull request stays in the queue." + }, + { + "description": "The `checks_timeout` was reached before the queue conditions were satisfied. Unless the queue configures it, that timeout is derived from the queue's recent CI runtime." + }, + { + "description": "The queue conditions cannot be satisfied because required checks failed." + }, + { + "description": "Batch bisection isolated the failure to other pull requests and dropped this one without testing it individually." + }, + { + "description": "The queue rule referenced by the pull request no longer exists in the configuration." + }, + { + "description": "The pull request's base branch no longer exists." + }, + { + "description": "The pull request's base branch changed." + }, + { + "description": "An unexpected error happened while merging the pull request." + }, + { + "description": "The maximum number of `batch_max_failure_resolution_attempts` was reached while isolating a batch failure." + }, + { + "description": "The pull request's checks were interrupted because the merge queue is paused on the repository. It stays in the queue." + }, + { + "description": "The pull request conflicts with its base branch." + }, + { + "description": "The pull request conflicts with a pull request ahead of it in the queue." + }, + { + "description": "Updating the pull request's head branch failed." + }, + { + "description": "The merge queue draft pull request received commits that Mergify did not create." + }, + { + "description": "The merge queue batch pull request was closed." + }, + { + "description": "The pull request was manually updated." + }, + { + "description": "The merge queue was reset." + }, + { + "description": "The pull request cannot be checked because of an incompatibility between the queue and the repository's branch protections." + }, + { + "description": "The pull request was merged manually, outside of the merge queue." + }, + { + "description": "Mergify could not create the merge queue draft pull request." + }, + { + "description": "Mergify could not create the merge queue draft pull request because GitHub had not yet indexed the new branch." + }, + { + "description": "The Mergify configuration changed while the pull request was queued." + }, + { + "description": "Mergify cannot process the pull request, for example because it has too many check runs, comments, or files." + }, + { + "description": "The pull request was manually removed from the queue." + }, + { + "description": "A predecessor pull request in the same stack was dequeued, so this one was removed as well." + }, + { + "description": "The pull request's intermediate speculative results were skipped. It stays in the queue." + }, + { + "description": "The pull request's failed checks are being retried. It stays in the queue." + }, + { + "description": "A pull request ahead that was waiting for its merge schedule yielded its position so ready pull requests behind it can merge first. It stays in the queue." + }, + { + "description": "The pull request could not be retargeted onto the queue base branch, for example a stacked pull request GitHub never retargeted." + }, + { + "description": "The pull request is a GitHub stacked pull request, which GitHub does not support merging through its API." + }, + { + "description": "A pull request's scopes changed after it was embarked, so its batch was recomposed. It stays in the queue." + } + ], + "x-mergify-has-data-type": true, "x-modifiers": [ { "type": "negate" @@ -3726,7 +3829,7 @@ "=", "!=" ], - "x-has-data-type": true, + "x-mergify-has-data-type": true, "x-modifiers": [] }, "sender-permission": { @@ -3822,6 +3925,7 @@ "base", "head", "head-repo-full-name", + "from-fork", "title", "body", "body-raw", @@ -4132,7 +4236,7 @@ ], "default": null, "deprecated": true, - "description": "If set to `fast-forward`, Mergify will merge the draft pull request instead of merging the original pull request that has been checked. This only works when `merge_method` is set to `merge`.", + "description": "Deprecated spelling of `merge_method: fast-forward`. If set to `fast-forward`, Mergify moves the base branch onto the draft pull request instead of merging the original pull request that has been checked, whatever `merge_method` is set to. Use `merge_method: fast-forward` instead.", "title": "Queue Branch Merge Method" }, "queue_branch_prefix": { @@ -4143,7 +4247,7 @@ }, "allow_queue_branch_edit": { "default": false, - "description": "When creating a branch for a queue, if the commits of this branch are edited by an entity external to Mergify, Mergify dequeues all pull requests embarked in the branch and report the issue as a failure. If set to `true`, Mergify will allow such modifications and trust the content of the branch. Make sure only Mergify and your external application are allowed to edit these branches.", + "description": "When creating a branch for a queue, if the commits of this branch are edited by an entity external to Mergify, Mergify dequeues all pull requests embarked in the branch and report the issue as a failure. If set to `true`, Mergify will allow such modifications and trust the content of the branch. Make sure only Mergify and your external application are allowed to edit these branches.\n\nThis option requires `merge_method` to be `merge-batch` or `fast-forward`. Those two merge the batch branch itself, so a commit pushed to it is part of what lands on the base branch; `merge`, `squash` and `rebase` merge each pull request at its own head, which never includes the edit.\n\nEnabling it therefore means the merged content is the batch branch, including commits that were never reviewed as part of any pull request. That is the contract of this option: it exists for batch-level work (a conflict resolution, a migration reorder, a lockfile regeneration) that belongs to no single pull request.\n\nNote also that under these two merge methods Mergify does not merge the pull requests one by one: GitHub marks each embarked pull request as merged only when its head commit is reachable from the new base branch tip, so a pull request whose head no longer matches what was embarked is not shown as merged even though its content landed.", "title": "Allow Queue Branch Edit", "type": "boolean" }, @@ -4400,7 +4504,7 @@ ], "default": null, "deprecated": true, - "description": "If set to `fast-forward`, Mergify will merge the draft pull request instead of merging the original pull request that has been checked. This only works when `merge_method` is set to `merge`.", + "description": "Deprecated spelling of `merge_method: fast-forward`. If set to `fast-forward`, Mergify moves the base branch onto the draft pull request instead of merging the original pull request that has been checked, whatever `merge_method` is set to. Use `merge_method: fast-forward` instead.", "title": "Queue Branch Merge Method" }, "queue_branch_prefix": { @@ -4411,7 +4515,7 @@ }, "allow_queue_branch_edit": { "default": false, - "description": "When creating a branch for a queue, if the commits of this branch are edited by an entity external to Mergify, Mergify dequeues all pull requests embarked in the branch and report the issue as a failure. If set to `true`, Mergify will allow such modifications and trust the content of the branch. Make sure only Mergify and your external application are allowed to edit these branches.", + "description": "When creating a branch for a queue, if the commits of this branch are edited by an entity external to Mergify, Mergify dequeues all pull requests embarked in the branch and report the issue as a failure. If set to `true`, Mergify will allow such modifications and trust the content of the branch. Make sure only Mergify and your external application are allowed to edit these branches.\n\nThis option requires `merge_method` to be `merge-batch` or `fast-forward`. Those two merge the batch branch itself, so a commit pushed to it is part of what lands on the base branch; `merge`, `squash` and `rebase` merge each pull request at its own head, which never includes the edit.\n\nEnabling it therefore means the merged content is the batch branch, including commits that were never reviewed as part of any pull request. That is the contract of this option: it exists for batch-level work (a conflict resolution, a migration reorder, a lockfile regeneration) that belongs to no single pull request.\n\nNote also that under these two merge methods Mergify does not merge the pull requests one by one: GitHub marks each embarked pull request as merged only when its head commit is reachable from the new base branch tip, so a pull request whose head no longer matches what was embarked is not shown as merged even though its content landed.", "title": "Allow Queue Branch Edit", "type": "boolean" }, @@ -4611,7 +4715,7 @@ ], "title": "Report Mode", "type": "string", - "x-has-data-type": true + "x-mergify-has-data-type": true }, "RequestReviewsActionModel": { "additionalProperties": false, diff --git a/src/check_jsonschema/builtin_schemas/vendor/renovate.json b/src/check_jsonschema/builtin_schemas/vendor/renovate.json index e67e87789..b7a4d6a2f 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.6.0 config files (https://renovatebot.com/)", + "title": "JSON schema for Renovate 44.14.12 config files (https://renovatebot.com/)", "$schema": "http://json-schema.org/draft-07/schema#", - "x-renovate-version": "44.6.0", + "x-renovate-version": "44.14.12", "allowComments": true, "type": "object", "definitions": { diff --git a/src/check_jsonschema/builtin_schemas/vendor/sha256/bitbucket-pipelines.sha256 b/src/check_jsonschema/builtin_schemas/vendor/sha256/bitbucket-pipelines.sha256 index e4382adf7..cb2840ec8 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/bitbucket-pipelines.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/bitbucket-pipelines.sha256 @@ -1 +1 @@ -a4fbf09b0be19ac00e1cdf2894d61185c8bff213e444673b5238a690cc6b326c \ No newline at end of file +968e044a19d4ac5f6b81517f8ec7680cb23a027b2106750e025b167f411e60aa \ 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 d93e7e0a9..a5b6a608f 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 @@ -7e3d291ea3ebba1d76b1752c925420c2637863cbac1e3f723e10e80e4be31220 \ No newline at end of file +943887ba97ed0047f4170e83d3e5bf045ae12d824f6da56ca50c2224a7fbb458 \ 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 f9a6d5ae8..583e6c5b1 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/mergify.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/mergify.sha256 @@ -1 +1 @@ -fe867096cf73c722f95c7a9995fb182b733050f88e17e929262214bf019185f4 \ No newline at end of file +58bc490f433ac9c0d7fa119ecc55f69ba8795d8e6537cdc580b5776a8818258b \ 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 2e355c650..9e4586d92 100644 --- a/src/check_jsonschema/builtin_schemas/vendor/sha256/renovate.sha256 +++ b/src/check_jsonschema/builtin_schemas/vendor/sha256/renovate.sha256 @@ -1 +1 @@ -d4b69e41e11d86878b80586b09c3394fbae1e6a84b76b07df290b6e180a9b5bb \ No newline at end of file +876a919e97fa76f7c9849f952c966ddc0ac652aafc749c0098e1a85e2152aa1f \ No newline at end of file diff --git a/src/check_jsonschema/catalog.py b/src/check_jsonschema/catalog.py index 10933c119..80cbd7e9d 100644 --- a/src/check_jsonschema/catalog.py +++ b/src/check_jsonschema/catalog.py @@ -1,6 +1,7 @@ from __future__ import annotations import typing as t +import urllib.parse def _bitbucket_pipelines_url() -> str: @@ -11,6 +12,14 @@ def _githubusercontent_url(owner: str, repo: str, ref: str, path: str) -> str: return f"https://raw.githubusercontent.com/{owner}/{repo}/{ref}/{path}" +def _gitlab_raw_url(repo: str, file_path: str, ref: str) -> str: + return ( + "https://gitlab.com/api/v4" + f"/projects/{urllib.parse.quote(repo, safe='')}/repository/files" + f"/{urllib.parse.quote(file_path, safe='')}/raw?ref={ref}" + ) + + # this lists custom schemas which are *not* part of the vendored schema catalog CUSTOM_SCHEMA_CATALOG: dict[str, dict[str, t.Any]] = { "github-workflows-require-timeout": { @@ -224,9 +233,10 @@ def _githubusercontent_url(owner: str, repo: str, ref: str, path: str) -> str: }, }, "gitlab-ci": { - "url": ( - "https://gitlab.com/gitlab-org/gitlab/-/raw/master/app/assets/javascripts" - "/editor/schema/ci.json" + "url": _gitlab_raw_url( + "gitlab-org/gitlab", + "app/assets/javascripts/editor/schema/ci.json", + "master", ), "hook_config": { "name": "Validate GitLab CI config", From d29d272761a728c681d6c1110401861a6315f77f Mon Sep 17 00:00:00 2001 From: Stephen Rosen Date: Sat, 8 Aug 2026 23:18:47 -0500 Subject: [PATCH 3/3] Fix codecov example doc --- tests/example-files/hooks/positive/codecov/.codecov.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/example-files/hooks/positive/codecov/.codecov.yml b/tests/example-files/hooks/positive/codecov/.codecov.yml index e21d45ac7..4b7d3a376 100644 --- a/tests/example-files/hooks/positive/codecov/.codecov.yml +++ b/tests/example-files/hooks/positive/codecov/.codecov.yml @@ -7,7 +7,8 @@ coverage: range: "95..100" status: - project: no + project: + default: true flags: library: