From fbd703c0e197fd2a476a4460958e982b77bb3e52 Mon Sep 17 00:00:00 2001 From: Kevin Franklin Kim Date: Thu, 20 Nov 2025 23:33:10 +0100 Subject: [PATCH] fix: lint issues --- .lefthook.yaml | 8 +- biome.json | 4 + squadron.schema.json | 874 ++++++++++++++++++++++--------------------- 3 files changed, 448 insertions(+), 438 deletions(-) diff --git a/.lefthook.yaml b/.lefthook.yaml index 23516eb..e975496 100644 --- a/.lefthook.yaml +++ b/.lefthook.yaml @@ -14,8 +14,12 @@ pre-commit: exit 1 fi biome: - run: biome check --write --no-errors-on-unmatched --files-ignore-unknown=true {staged_files} - glob: "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}" + glob: "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc,html,css}" + run: biome format --write {staged_files} + stage_fixed: true + golangci: + glob: "*.go" + run: golangci-lint fmt {staged_files} stage_fixed: true commit-msg: diff --git a/biome.json b/biome.json index 96ffab7..f7784a6 100644 --- a/biome.json +++ b/biome.json @@ -25,5 +25,9 @@ "parser": { "allowComments": true } + }, + "files": { + "ignoreUnknown": true, + "includes": ["**", "!squadron.schema.json"] } } diff --git a/squadron.schema.json b/squadron.schema.json index 2b899df..a400782 100644 --- a/squadron.schema.json +++ b/squadron.schema.json @@ -1,437 +1,439 @@ { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://raw.githubusercontent.com/foomo/squadron/refs/heads/main/squadron.schema.json", - "$ref": "#/$defs/Config", - "$defs": { - "BakeTarget": { - "properties": { - "description": { - "type": "string" - }, - "inherits": { - "items": { - "type": "string" - }, - "type": "array", - "description": "Inherits is the only field that cannot be overridden with --set" - }, - "annotations": { - "items": { - "type": "string" - }, - "type": "array" - }, - "attest": { - "items": { - "type": "object" - }, - "type": "array" - }, - "context": { - "type": "string" - }, - "contexts": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "dockerfile": { - "type": "string" - }, - "dockerfile-inline": { - "type": "string" - }, - "args": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "tags": { - "items": { - "type": "string" - }, - "type": "array" - }, - "cache-from": { - "items": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "type": "array" - }, - "cache-to": { - "items": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "type": "array" - }, - "target": { - "type": "string" - }, - "secret": { - "items": { - "type": "object" - }, - "type": "array" - }, - "ssh": { - "items": { - "type": "object" - }, - "type": "array" - }, - "platforms": { - "items": { - "type": "string" - }, - "type": "array" - }, - "output": { - "items": { - "type": "object" - }, - "type": "array" - }, - "pull": { - "type": "boolean" - }, - "no-cache": { - "type": "boolean" - }, - "network": { - "type": "string" - }, - "no-cache-filter": { - "items": { - "type": "string" - }, - "type": "array" - }, - "shm-size": { - "type": "string" - }, - "ulimits": { - "items": { - "type": "string" - }, - "type": "array" - }, - "call": { - "type": "string" - }, - "entitlements": { - "items": { - "type": "string" - }, - "type": "array" - }, - "extra-hosts": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "additionalProperties": false, - "type": "object" - }, - "Build": { - "properties": { - "context": { - "type": "string", - "description": "Build context" - }, - "add_host": { - "items": { - "type": "string" - }, - "type": "array", - "description": "AddHost add a custom host-to-IP mapping (format: \"host:ip\")" - }, - "allow": { - "items": { - "type": "string" - }, - "type": "array", - "description": "Allow extra privileged entitlement (e.g., \"network.host\", \"security.insecure\")" - }, - "attest": { - "items": { - "type": "string" - }, - "type": "array", - "description": "Attest parameters (format: \"type=sbom,generator=image\")" - }, - "build_arg": { - "items": { - "type": "string" - }, - "type": "array", - "description": "BuildArg set build-time variables" - }, - "build_context": { - "items": { - "type": "string" - }, - "type": "array", - "description": "BuildContext additional build contexts (e.g., name=path)" - }, - "builder": { - "type": "string", - "description": "Builder override the configured builder instance" - }, - "cache_from": { - "type": "string", - "description": "CacheFrom external cache sources (e.g., \"user/app:cache\", \"type=local,src=path/to/dir\")" - }, - "cache_to": { - "type": "string", - "description": "CacheTo cache export destinations (e.g., \"user/app:cache\", \"type=local,dest=path/to/dir\")" - }, - "cgroup_parent": { - "type": "string", - "description": "CGroupParent optional parent cgroup for the container" - }, - "file": { - "type": "string", - "description": "File name of the Dockerfile (default: \"PATH/Dockerfile\")" - }, - "iidfile": { - "type": "string", - "description": "IIDFile write the image ID to the file" - }, - "label": { - "items": { - "type": "string" - }, - "type": "array", - "description": "Label wet metadata for an image" - }, - "load": { - "type": "boolean", - "description": "Load shorthand for \"--output=type=docker\"" - }, - "metadata_file": { - "type": "string", - "description": "MetadataFile write build result metadata to the file" - }, - "network": { - "type": "string", - "description": "Network set the networking mode for the \"RUN\" instructions during build (default \"default\")" - }, - "no_cache": { - "type": "boolean", - "description": "NoCache do not use cache when building the image" - }, - "no_cache_filter": { - "items": { - "type": "string" - }, - "type": "array", - "description": "NoCacheFilter do not cache specified stages" - }, - "output": { - "type": "string", - "description": "Output destination (format: \"type=local,dest=path\")" - }, - "platform": { - "type": "string", - "description": "Platform set target platform for build" - }, - "secret": { - "items": { - "type": "string" - }, - "type": "array", - "description": "Secret to expose to the build (format: \"id=mysecret[,src=/local/secret]\")" - }, - "shm_size": { - "type": "string", - "description": "ShmSize size of \"/dev/shm\"" - }, - "ssh": { - "type": "string", - "description": "SSH agent socket or keys to expose to the build (format: \"default|\u003cid\u003e[=\u003csocket\u003e|\u003ckey\u003e[,\u003ckey\u003e]]\")" - }, - "tag": { - "type": "string", - "description": "Tag name and optionally a tag (format: \"name:tag\")" - }, - "image": { - "type": "string", - "description": "Image name" - }, - "target": { - "type": "string", - "description": "Target set the target build stage to build" - }, - "ulimit": { - "type": "string", - "description": "ULimit ulimit options (default [])" - }, - "dependencies": { - "items": { - "type": "string" - }, - "type": "array", - "description": "Dependencies list of build names defined in the squadron configuration" - }, - "quiet": { - "type": "boolean", - "description": "Suppress the build output and print image ID on succes" - }, - "pull": { - "type": "boolean", - "description": "Always attempt to pull all referenced images" - }, - "push": { - "type": "boolean", - "description": "Shorthand for \"--output=type=registry\"" - } - }, - "additionalProperties": false, - "type": "object" - }, - "Chart": { - "properties": { - "name": { - "type": "string", - "description": "Chart name" - }, - "repository": { - "type": "string", - "description": "Chart repository" - }, - "schema": { - "type": "string", - "description": "Values schema json" - }, - "version": { - "type": "string", - "description": "Chart version" - }, - "alias": { - "type": "string", - "description": "Chart alias" - } - }, - "additionalProperties": false, - "type": "object" - }, - "Config": { - "properties": { - "version": { - "type": "string", - "pattern": "^[0-9]\\.[0-9]$", - "description": "Version of the schema" - }, - "vars": { - "type": "object", - "description": "Global values to be injected into all squadron values" - }, - "global": { - "type": "object", - "description": "Global values to be injected into all squadron values" - }, - "builds": { - "additionalProperties": { - "$ref": "#/$defs/Build" - }, - "type": "object", - "description": "Global builds that can be referenced as dependencies" - }, - "squadron": { - "additionalProperties": { - "additionalProperties": { - "$ref": "#/$defs/Unit" - }, - "type": "object" - }, - "type": "object", - "description": "Squadron definitions" - } - }, - "additionalProperties": false, - "type": "object", - "required": ["version"] - }, - "Tags": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Unit": { - "properties": { - "name": { - "type": "string", - "description": "Optional release name" - }, - "namespace": { - "type": "string", - "description": "Optional release namespace" - }, - "chart": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/$defs/Chart" - } - ], - "description": "Chart settings" - }, - "tags": { - "$ref": "#/$defs/Tags", - "description": "List of tags" - }, - "priority": { - "type": "integer", - "description": "Installation priority, higher comes first" - }, - "extends": { - "type": "string", - "description": "Extend chart values" - }, - "kustomize": { - "type": "string", - "description": "Kustomize files path" - }, - "builds": { - "additionalProperties": { - "$ref": "#/$defs/Build" - }, - "type": "object", - "description": "Map of containers to build" - }, - "bakes": { - "additionalProperties": { - "$ref": "#/$defs/BakeTarget" - }, - "type": "object", - "description": "Map of containers to bakes" - }, - "values": { - "type": "object", - "description": "Chart values" - } - }, - "additionalProperties": false, - "type": "object" - } - } -} + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://raw.githubusercontent.com/foomo/squadron/refs/heads/main/squadron.schema.json", + "$ref": "#/$defs/Config", + "$defs": { + "BakeTarget": { + "properties": { + "description": { + "type": "string" + }, + "inherits": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Inherits is the only field that cannot be overridden with --set" + }, + "annotations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "attest": { + "items": { + "type": "object" + }, + "type": "array" + }, + "context": { + "type": "string" + }, + "contexts": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "dockerfile": { + "type": "string" + }, + "dockerfile-inline": { + "type": "string" + }, + "args": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "cache-from": { + "items": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "cache-to": { + "items": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "target": { + "type": "string" + }, + "secret": { + "items": { + "type": "object" + }, + "type": "array" + }, + "ssh": { + "items": { + "type": "object" + }, + "type": "array" + }, + "platforms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "output": { + "items": { + "type": "object" + }, + "type": "array" + }, + "pull": { + "type": "boolean" + }, + "no-cache": { + "type": "boolean" + }, + "network": { + "type": "string" + }, + "no-cache-filter": { + "items": { + "type": "string" + }, + "type": "array" + }, + "shm-size": { + "type": "string" + }, + "ulimits": { + "items": { + "type": "string" + }, + "type": "array" + }, + "call": { + "type": "string" + }, + "entitlements": { + "items": { + "type": "string" + }, + "type": "array" + }, + "extra-hosts": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Build": { + "properties": { + "context": { + "type": "string", + "description": "Build context" + }, + "add_host": { + "items": { + "type": "string" + }, + "type": "array", + "description": "AddHost add a custom host-to-IP mapping (format: \"host:ip\")" + }, + "allow": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Allow extra privileged entitlement (e.g., \"network.host\", \"security.insecure\")" + }, + "attest": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Attest parameters (format: \"type=sbom,generator=image\")" + }, + "build_arg": { + "items": { + "type": "string" + }, + "type": "array", + "description": "BuildArg set build-time variables" + }, + "build_context": { + "items": { + "type": "string" + }, + "type": "array", + "description": "BuildContext additional build contexts (e.g., name=path)" + }, + "builder": { + "type": "string", + "description": "Builder override the configured builder instance" + }, + "cache_from": { + "type": "string", + "description": "CacheFrom external cache sources (e.g., \"user/app:cache\", \"type=local,src=path/to/dir\")" + }, + "cache_to": { + "type": "string", + "description": "CacheTo cache export destinations (e.g., \"user/app:cache\", \"type=local,dest=path/to/dir\")" + }, + "cgroup_parent": { + "type": "string", + "description": "CGroupParent optional parent cgroup for the container" + }, + "file": { + "type": "string", + "description": "File name of the Dockerfile (default: \"PATH/Dockerfile\")" + }, + "iidfile": { + "type": "string", + "description": "IIDFile write the image ID to the file" + }, + "label": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Label wet metadata for an image" + }, + "load": { + "type": "boolean", + "description": "Load shorthand for \"--output=type=docker\"" + }, + "metadata_file": { + "type": "string", + "description": "MetadataFile write build result metadata to the file" + }, + "network": { + "type": "string", + "description": "Network set the networking mode for the \"RUN\" instructions during build (default \"default\")" + }, + "no_cache": { + "type": "boolean", + "description": "NoCache do not use cache when building the image" + }, + "no_cache_filter": { + "items": { + "type": "string" + }, + "type": "array", + "description": "NoCacheFilter do not cache specified stages" + }, + "output": { + "type": "string", + "description": "Output destination (format: \"type=local,dest=path\")" + }, + "platform": { + "type": "string", + "description": "Platform set target platform for build" + }, + "secret": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Secret to expose to the build (format: \"id=mysecret[,src=/local/secret]\")" + }, + "shm_size": { + "type": "string", + "description": "ShmSize size of \"/dev/shm\"" + }, + "ssh": { + "type": "string", + "description": "SSH agent socket or keys to expose to the build (format: \"default|\u003cid\u003e[=\u003csocket\u003e|\u003ckey\u003e[,\u003ckey\u003e]]\")" + }, + "tag": { + "type": "string", + "description": "Tag name and optionally a tag (format: \"name:tag\")" + }, + "image": { + "type": "string", + "description": "Image name" + }, + "target": { + "type": "string", + "description": "Target set the target build stage to build" + }, + "ulimit": { + "type": "string", + "description": "ULimit ulimit options (default [])" + }, + "dependencies": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Dependencies list of build names defined in the squadron configuration" + }, + "quiet": { + "type": "boolean", + "description": "Suppress the build output and print image ID on succes" + }, + "pull": { + "type": "boolean", + "description": "Always attempt to pull all referenced images" + }, + "push": { + "type": "boolean", + "description": "Shorthand for \"--output=type=registry\"" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Chart": { + "properties": { + "name": { + "type": "string", + "description": "Chart name" + }, + "repository": { + "type": "string", + "description": "Chart repository" + }, + "schema": { + "type": "string", + "description": "Values schema json" + }, + "version": { + "type": "string", + "description": "Chart version" + }, + "alias": { + "type": "string", + "description": "Chart alias" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Config": { + "properties": { + "version": { + "type": "string", + "pattern": "^[0-9]\\.[0-9]$", + "description": "Version of the schema" + }, + "vars": { + "type": "object", + "description": "Global values to be injected into all squadron values" + }, + "global": { + "type": "object", + "description": "Global values to be injected into all squadron values" + }, + "builds": { + "additionalProperties": { + "$ref": "#/$defs/Build" + }, + "type": "object", + "description": "Global builds that can be referenced as dependencies" + }, + "squadron": { + "additionalProperties": { + "additionalProperties": { + "$ref": "#/$defs/Unit" + }, + "type": "object" + }, + "type": "object", + "description": "Squadron definitions" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "version" + ] + }, + "Tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Unit": { + "properties": { + "name": { + "type": "string", + "description": "Optional release name" + }, + "namespace": { + "type": "string", + "description": "Optional release namespace" + }, + "chart": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/$defs/Chart" + } + ], + "description": "Chart settings" + }, + "tags": { + "$ref": "#/$defs/Tags", + "description": "List of tags" + }, + "priority": { + "type": "integer", + "description": "Installation priority, higher comes first" + }, + "extends": { + "type": "string", + "description": "Extend chart values" + }, + "kustomize": { + "type": "string", + "description": "Kustomize files path" + }, + "builds": { + "additionalProperties": { + "$ref": "#/$defs/Build" + }, + "type": "object", + "description": "Map of containers to build" + }, + "bakes": { + "additionalProperties": { + "$ref": "#/$defs/BakeTarget" + }, + "type": "object", + "description": "Map of containers to bakes" + }, + "values": { + "type": "object", + "description": "Chart values" + } + }, + "additionalProperties": false, + "type": "object" + } + } +} \ No newline at end of file