diff --git a/src/api/json/catalog.json b/src/api/json/catalog.json index 961fa540dd7..2e72235c3d2 100644 --- a/src/api/json/catalog.json +++ b/src/api/json/catalog.json @@ -4637,6 +4637,12 @@ "fileMatch": ["jest.config.json"], "url": "https://www.schemastore.org/jest.json" }, + { + "name": "JevGate", + "description": "JevGate code-review gate configuration", + "fileMatch": ["jevgate.toml"], + "url": "https://raw.githubusercontent.com/Tech-Byte-Frontier/jevgate/main/jevgate.schema.json" + }, { "name": "JDownloader2 crawler single-rules", "description": "A validating a single jdownloader2 rule", diff --git a/src/schema-validation.jsonc b/src/schema-validation.jsonc index 324e96ca411..6b278157013 100644 --- a/src/schema-validation.jsonc +++ b/src/schema-validation.jsonc @@ -6,8 +6,6 @@ "abc-supply-plan-14.2.0.json", "backportrc.json", "behat.json", - "bitrise-step.json", - "bitrise.json", "bootstraprc.json", "bower.json", "boyka-config.json", diff --git a/src/schemas/json/bitrise-step.json b/src/schemas/json/bitrise-step.json index 9a53472d8aa..4c2635f40eb 100644 --- a/src/schemas/json/bitrise-step.json +++ b/src/schemas/json/bitrise-step.json @@ -141,12 +141,9 @@ { "type": "object", "description": "The container ID with optional configuration.", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ContainerReferenceConfigModel" - } + "additionalProperties": { + "$ref": "#/definitions/ContainerReferenceConfigModel" }, - "additionalProperties": false, "minProperties": 1, "maxProperties": 1 } @@ -188,11 +185,9 @@ "description": "The source code repository and commit information of the Step." }, "asset_urls": { - "patternProperties": { - ".*": { - "type": "string", - "description": "A URL pointing to a Step asset such as an icon image." - } + "additionalProperties": { + "type": "string", + "description": "A URL pointing to a Step asset such as an icon image." }, "type": "object", "description": "URLs of assets associated with the Step, such as icon images. This is auto-generated and only set in the spec.json file in the Step Library." @@ -261,11 +256,7 @@ "description": "This property defines a time limit for a Step that produces no output: if the Step runs for the defined number of seconds without producing any output, the Step fails. Define the limit in seconds." }, "meta": { - "patternProperties": { - ".*": { - "additionalProperties": true - } - }, + "additionalProperties": true, "type": "object", "description": "Additional metadata related to the Step." }, @@ -282,11 +273,7 @@ }, "inputs": { "items": { - "patternProperties": { - ".*": { - "additionalProperties": true - } - }, + "additionalProperties": true, "type": "object", "description": "An input parameter of the Step." }, @@ -295,11 +282,7 @@ }, "outputs": { "items": { - "patternProperties": { - ".*": { - "additionalProperties": true - } - }, + "additionalProperties": true, "type": "object", "description": "An output parameter of the Step." }, diff --git a/src/schemas/json/bitrise.json b/src/schemas/json/bitrise.json index bd9db262312..08977ce9396 100644 --- a/src/schemas/json/bitrise.json +++ b/src/schemas/json/bitrise.json @@ -31,8 +31,18 @@ }, "BitriseDataModel": { "anyOf": [ - { "required": ["format_version"] }, - { "required": ["include"] } + { + "properties": { + "format_version": true + }, + "required": ["format_version"] + }, + { + "properties": { + "include": true + }, + "required": ["include"] + } ], "properties": { "format_version": { @@ -60,19 +70,15 @@ "description": "A detailed description of the Bitrise configuration." }, "services": { - "patternProperties": { - ".*": { - "$ref": "#/definitions/ContainerModel" - } + "additionalProperties": { + "$ref": "#/definitions/ContainerModel" }, "type": "object", "description": "Docker container definitions used by Steps as service containers." }, "containers": { - "patternProperties": { - ".*": { - "$ref": "#/definitions/ContainerModel" - } + "additionalProperties": { + "$ref": "#/definitions/ContainerModel" }, "type": "object", "description": "Docker container definitions used by Steps as execution containers." @@ -81,11 +87,7 @@ "$ref": "#/definitions/AppModel" }, "meta": { - "patternProperties": { - ".*": { - "additionalProperties": true - } - }, + "additionalProperties": true, "type": "object", "description": "Stores project metadata key-value pairs related to the Bitrise configuration. Most importantly, it defines the default stack and the build machine type for the project." }, @@ -97,37 +99,29 @@ "description": "Defines the build triggers on a project level. This is the legacy method of configuring triggers: we recommend using target-based triggers defined as part of a Pipeline or a Workflow instead." }, "pipelines": { - "patternProperties": { - ".*": { - "$ref": "#/definitions/PipelineModel" - } + "additionalProperties": { + "$ref": "#/definitions/PipelineModel" }, "type": "object", "description": "Define Pipelines in your project's configuration. Pipelines can be used to organize the entire CI/CD process and to set up advanced configurations with multiple different tasks running parallel and/or sequentially." }, "stages": { - "patternProperties": { - ".*": { - "$ref": "#/definitions/StageModel" - } + "additionalProperties": { + "$ref": "#/definitions/StageModel" }, "type": "object", "description": "Defines Stages in your configuration. A Stage is a collection of Workflows that are executed sequentially as part of a Pipeline." }, "workflows": { - "patternProperties": { - ".*": { - "$ref": "#/definitions/WorkflowModel" - } + "additionalProperties": { + "$ref": "#/definitions/WorkflowModel" }, "type": "object", "description": "The Workflows included in your configuration. A Workflow is a collection of Steps: reusable, configurable units of work. Steps are executed sequentially within a Workflow." }, "step_bundles": { - "patternProperties": { - ".*": { - "$ref": "#/definitions/StepBundleModel" - } + "additionalProperties": { + "$ref": "#/definitions/StepBundleModel" }, "type": "object", "description": "Step bundles allow you to group multiple Steps into a single unit. With Step bundles, you can reuse Steps and sequences of Steps." @@ -208,12 +202,9 @@ { "type": "object", "description": "The container ID with optional configuration.", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ContainerReferenceConfigModel" - } + "additionalProperties": { + "$ref": "#/definitions/ContainerReferenceConfigModel" }, - "additionalProperties": false, "minProperties": 1, "maxProperties": 1 } @@ -240,11 +231,7 @@ }, "EnvModel": { "items": { - "patternProperties": { - ".*": { - "additionalProperties": true - } - }, + "additionalProperties": true, "type": "object", "description": "An Environment Variable defined as a key-value pair, with optional properties." }, @@ -275,10 +262,8 @@ }, "stages": { "items": { - "patternProperties": { - ".*": { - "$ref": "#/definitions/StageModel" - } + "additionalProperties": { + "$ref": "#/definitions/StageModel" }, "type": "object", "description": "A Stage that is part of the Pipeline configuration." @@ -287,10 +272,8 @@ "description": "The list of Stages that are part of the Pipeline configuration." }, "workflows": { - "patternProperties": { - ".*": { - "$ref": "#/definitions/GraphPipelineWorkflowModel" - } + "additionalProperties": { + "$ref": "#/definitions/GraphPipelineWorkflowModel" }, "type": "object", "description": "The Workflows that are part of the Pipeline configuration. You can create dependencies between Workflows with the `depends_on` property." @@ -374,10 +357,8 @@ }, "workflows": { "items": { - "patternProperties": { - ".*": { - "$ref": "#/definitions/WorkflowStageConfigModel" - } + "additionalProperties": { + "$ref": "#/definitions/WorkflowStageConfigModel" }, "type": "object", "description": "A Workflow that is part of the Stage configuration." @@ -398,11 +379,9 @@ }, "ToolsModel": { "description": "Mapping of tool IDs to versions to set up. Version syntax supports exact versions (e.g. '1.2.3'), partial matches to the latest release (e.g. '22:latest'), partial matches to installed versions (e.g. '1.2:installed'), as well as the special aliases 'latest' and 'installed' to select the highest respective version.", - "patternProperties": { - ".*": { - "type": "string", - "description": "The version of the tool to set up." - } + "additionalProperties": { + "type": "string", + "description": "The version of the tool to set up." }, "type": "object" }, @@ -415,12 +394,10 @@ }, "extra_plugins": { "description": "Additional tool plugins beyond Bitrise's vetted and tested integrations for common tools. Maps tool IDs to asdf plugin repository URLs.", - "patternProperties": { - ".*": { - "type": "string", - "format": "uri", - "description": "URL to the plugin source repository (git clone URL)" - } + "additionalProperties": { + "type": "string", + "format": "uri", + "description": "URL to the plugin source repository (git clone URL)" }, "type": "object" } @@ -476,7 +453,20 @@ "description": "Defines whether Bitrise should evaluate every commit message or changed file in a code push or only those belonging to the most recent commit. Its default value is `false`." } }, - "oneOf": [{ "required": ["pattern"] }, { "required": ["regex"] }], + "oneOf": [ + { + "properties": { + "pattern": true + }, + "required": ["pattern"] + }, + { + "properties": { + "regex": true + }, + "required": ["regex"] + } + ], "additionalProperties": false }, "PushTriggerModel": { @@ -606,7 +596,20 @@ "description": "A regular expression pattern used to match against the condition." } }, - "oneOf": [{ "required": ["pattern"] }, { "required": ["regex"] }], + "oneOf": [ + { + "properties": { + "pattern": true + }, + "required": ["pattern"] + }, + { + "properties": { + "regex": true + }, + "required": ["regex"] + } + ], "additionalProperties": false }, "TriggerMapItemModel": { @@ -816,11 +819,7 @@ "description": "Declarative configuration for tool versions used in the Workflow." }, "meta": { - "patternProperties": { - ".*": { - "additionalProperties": true - } - }, + "additionalProperties": true, "type": "object", "description": "Stores project metadata key-value pairs. Most importantly, it defines the stack and the machine type for the Workflow." }