diff --git a/.gitignore b/.gitignore index dad86a8..d0ca063 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,6 @@ go.work.sum ## Posh !.posh/ !.posh.yml + +## Mise +!.mise.toml diff --git a/.golangci.yml b/.golangci.yml index 3b26df0..bb8da2d 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,10 +1,11 @@ # https://golangci-lint.run/usage/configuration/ # yaml-language-server: $schema=https://golangci-lint.run/jsonschema/golangci.jsonschema.json version: "2" + run: - go: 1.24.1 build-tags: [safe] modules-download-mode: readonly + linters: default: none enable: diff --git a/.goreleaser.yml b/.goreleaser.yml index 97c75ec..633d43b 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,5 +1,7 @@ version: 2 +project_name: posh-providers + builds: - skip: true diff --git a/.mise.toml b/.mise.toml new file mode 100644 index 0000000..351c6eb --- /dev/null +++ b/.mise.toml @@ -0,0 +1,8 @@ +[tools] +# https://github.com/sourcemeta/jsonschema/releases +jsonschema = "11.8.1" +# https://github.com/golangci/golangci-lint/releases +golangci-lint = "2.4.0" +# https://github.com/go-courier/husky/releases +"github:go-courier/husky" = "1.8.1" +yq = "4.47.2" diff --git a/Makefile b/Makefile index 3bba481..4fae170 100644 --- a/Makefile +++ b/Makefile @@ -1,22 +1,39 @@ .DEFAULT_GOAL:=help -include .makerc +# --- Config ----------------------------------------------------------------- + +# Newline hack for error output +define br + + +endef + # --- Targets ----------------------------------------------------------------- # This allows us to accept extra arguments -%: .husky +%: .mise .husky @: +.PHONY: .mise +# Install dependencies +.mise: msg := $(br)$(br)Please ensure you have 'mise' installed and activated!$(br)$(br)$$ brew update$(br)$$ brew install mise$(br)$(br)See the documentation: https://mise.jdx.dev/getting-started.html$(br)$(br) +.mise: +ifeq (, $(shell command -v mise)) + $(error ${msg}) +endif + @mise install + .PHONY: .husky # Configure git hooks for husky .husky: - @if ! command -v husky &> /dev/null; then \ - echo "ERROR: missing executeable 'husky', please run:"; \ - echo "\n$ go install github.com/go-courier/husky/cmd/husky@latest\n"; \ - fi @git config core.hooksPath .husky -## === Tasks === +### Tasks + +.PHONY: check +## Run tests and linters +check: tidy schema lint test .PHONY: tidy ## Run go mod tidy @@ -28,94 +45,55 @@ tidy: lint: @golangci-lint run -.PHONY: schema -## Run linter -schema: - @jsonschema bundle config.schema.base.json \ - --resolve ./arbitrary/open/config.schema.json \ - --resolve ./arbitrary/task/config.schema.json \ - --resolve ./arbitrary/zip/config.schema.json \ - --resolve ./azure/az/config.schema.json \ - --resolve ./cloudflare/cloudflared/config.schema.json \ - --resolve ./digitalocean/doctl/config.schema.json \ - --resolve ./etcd-io/etcd/config.schema.json \ - --resolve ./facebook/docusaurus/config.schema.json \ - --resolve ./filosottile/mkcert/config.schema.json \ - --resolve ./foomo/beam/config.schema.json \ - --resolve ./foomo/gocontentful/config.schema.json \ - --resolve ./foomo/sesamy/config.schema.json \ - --resolve ./foomo/squadron/config.schema.json \ - --resolve ./goharbor/harbor/config.schema.json \ - --resolve ./golang-migrate/migrate/config.schema.json \ - --resolve ./google/gcloud/config.schema.json \ - --resolve ./grafana/k6/config.schema.json \ - --resolve ./gravitational/teleport/config.schema.json \ - --resolve ./gruntwork-io/terragrunt/config.schema.json \ - --resolve ./hashicorp/cdktf/config.schema.json \ - --resolve ./jondot/hygen/config.schema.json \ - --resolve ./k3d-io/k3d/config.schema.json \ - --resolve ./kubernets/kubectl/config.schema.json \ - --resolve ./kubernets/kubeforward/config.schema.json \ - --resolve ./onepassword/config.schema.json \ - --resolve ./pivotal/licensefinder/config.schema.json \ - --resolve ./pulumi/pulumi/azure/config.schema.json \ - --resolve ./pulumi/pulumi/gcloud/config.schema.json \ - --resolve ./rclone/rclone/config.schema.json \ - --resolve ./slack-go/slack/config.schema.json \ - --resolve ./sqlc-dev/sqlc/config.schema.json \ - --resolve ./stackitcloud/stackit/config.schema.json \ - --resolve ./stern/stern/config.schema.json \ - --resolve ./usebruno/bruno/config.schema.json \ - --resolve ./webdriverio/webdriverio/config.schema.json \ - --without-id \ - > config.schema.json - -.PHONY: outdated -## Show outdated direct dependencies -outdated: - @go list -u -m -json all | go-mod-outdated -update -direct - -.PHONY: test -## Run tests -test: - @GO_TEST_TAGS=-skip go test -coverprofile=coverage.out --tags=safe -race ./... - #@GO_TEST_TAGS=-skip go test -coverprofile=coverage.out --tags=safe -race -json ./... 2>&1 | tee /tmp/gotest.log | gotestfmt - .PHONY: lint.fix ## Fix lint violations lint.fix: @golangci-lint run --fix -## === Utils === +.PHONY: test +## Run tests +test: + @GO_TEST_TAGS=-skip go test -coverprofile=coverage.out --tags=safe -race ./... +.PHONY: schema +## Run linter +schema: + @jsonschema bundle config.schema.base.json \ + $(shell find . -name config.schema.json -printf '--resolve %p ') \ + --without-id \ + > posh.schema.json + +.PHONY: foo +## Run linter +foo: + @yq eval-all '. as $$item ireduce ({}; . *+ $$item)' base.schema.json \ + $(shell find . -name config.base.json -print | tr '\n' ' ') \ + > merged.schema.json + @jsonschema bundle merged.schema.json \ + $(shell find . -name config.schema.json -print | sed 's/^/--resolve /' | tr '\n' ' ') \ + --without-id \ + --http \ + > posh.schema.json + @rm merged.schema.json + +### Utils + +.PHONY: help ## Show help text help: + @echo "Project Oriented SHELL (posh)\n" + @echo "Usage:\n make [task]" @awk '{ \ - if ($$0 ~ /^.PHONY: [a-zA-Z\-\_0-9]+$$/) { \ - helpCommand = substr($$0, index($$0, ":") + 2); \ - if (helpMessage) { \ - printf "\033[36m%-23s\033[0m %s\n", \ - helpCommand, helpMessage; \ - helpMessage = ""; \ - } \ - } else if ($$0 ~ /^[a-zA-Z\-\_0-9.]+:/) { \ - helpCommand = substr($$0, 0, index($$0, ":")); \ - if (helpMessage) { \ - printf "\033[36m%-23s\033[0m %s\n", \ - helpCommand, helpMessage"\n"; \ - helpMessage = ""; \ - } \ - } else if ($$0 ~ /^##/) { \ - if (helpMessage) { \ - helpMessage = helpMessage"\n "substr($$0, 3); \ - } else { \ - helpMessage = substr($$0, 3); \ - } \ - } else { \ - if (helpMessage) { \ - print "\n "helpMessage"\n" \ - } \ - helpMessage = ""; \ - } \ - }' \ - $(MAKEFILE_LIST) + if($$0 ~ /^### /){ \ + if(help) printf "%-23s %s\n\n", cmd, help; help=""; \ + printf "\n%s:\n", substr($$0,5); \ + } else if($$0 ~ /^[a-zA-Z0-9._-]+:/){ \ + cmd = substr($$0, 1, index($$0, ":")-1); \ + if(help) printf " %-23s %s\n", cmd, help; help=""; \ + } else if($$0 ~ /^##/){ \ + help = help ? help "\n " substr($$0,3) : substr($$0,3); \ + } else if(help){ \ + print "\n " help "\n"; help=""; \ + } \ + }' $(MAKEFILE_LIST) + diff --git a/arbitrary/open/config.base.json b/arbitrary/open/config.base.json new file mode 100644 index 0000000..9d1d11a --- /dev/null +++ b/arbitrary/open/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "open": { + "$ref": "https://github.com/foomo/posh-providers/arbitrary/open" + } + } + } + ] +} diff --git a/arbitrary/open/config.schema.json b/arbitrary/open/config.schema.json index 8812a51..d328cb5 100644 --- a/arbitrary/open/config.schema.json +++ b/arbitrary/open/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/arbitrary/open/config", + "$id": "https://github.com/foomo/posh-providers/arbitrary/open", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/arbitrary/open/config_test.go b/arbitrary/open/config_test.go index d9e5834..22672ee 100644 --- a/arbitrary/open/config_test.go +++ b/arbitrary/open/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/arbitrary/open", "./")) schema := reflector.Reflect(&open.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/arbitrary/open" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/arbitrary/task/command.go b/arbitrary/task/command.go index 203bb16..03becd5 100644 --- a/arbitrary/task/command.go +++ b/arbitrary/task/command.go @@ -10,7 +10,6 @@ import ( "github.com/foomo/posh/pkg/log" "github.com/foomo/posh/pkg/prompt/goprompt" "github.com/foomo/posh/pkg/readline" - "github.com/foomo/posh/pkg/util/suggests" "github.com/pkg/errors" "github.com/pterm/pterm" "github.com/spf13/viper" @@ -69,7 +68,12 @@ func NewCommand(l log.Logger, opts ...CommandOption) (*Command, error) { { Name: "task", Suggest: func(ctx context.Context, t tree.Root, r *readline.Readline) []goprompt.Suggest { - return suggests.List(inst.cfg.Names()) + var ret []goprompt.Suggest + for _, name := range inst.cfg.Names() { + task := inst.cfg[name] + ret = append(ret, goprompt.Suggest{Text: name, Description: task.Description}) + } + return ret }, }, }, @@ -124,6 +128,24 @@ func (c *Command) executeTask(ctx context.Context, taskID string) error { return errors.Errorf("task not found: %s", taskID) } + for i, cmd := range task.Precondition { + if ctx.Err() != nil { + return ctx.Err() + } + cmd = os.ExpandEnv(cmd) + var sh *exec.Cmd + if strings.HasPrefix(cmd, "sudo ") { + sh = exec.CommandContext(ctx, "sudo", "sh", "-c", strings.TrimPrefix(cmd, "sudo ")) + } else { + sh = exec.CommandContext(ctx, "sh", "-c", cmd) + } + sh.Env = append(os.Environ(), task.Env...) + c.l.Infof("☑︎ | [%d|%d] %s: %s", i+1, len(task.Cmds), taskID, cmd) + if err := sh.Run(); err != nil { + return err + } + } + if task.Prompt != "" { if result, err := pterm.DefaultInteractiveConfirm.WithOnInterruptFunc(func() { cancel() @@ -149,6 +171,7 @@ func (c *Command) executeTask(ctx context.Context, taskID string) error { if ctx.Err() != nil { return ctx.Err() } + cmd = os.ExpandEnv(cmd) var sh *exec.Cmd if strings.HasPrefix(cmd, "sudo ") { sh = exec.CommandContext(ctx, "sudo", "sh", "-c", strings.TrimPrefix(cmd, "sudo ")) @@ -158,7 +181,7 @@ func (c *Command) executeTask(ctx context.Context, taskID string) error { sh.Stdin = os.Stdin sh.Stdout = os.Stdout sh.Stderr = os.Stderr - sh.Env = os.Environ() + sh.Env = append(os.Environ(), task.Env...) c.l.Infof("🔧 | [%d|%d] %s: %s", i+1, len(task.Cmds), taskID, cmd) if err := sh.Run(); err != nil { return err diff --git a/arbitrary/task/config.base.json b/arbitrary/task/config.base.json new file mode 100644 index 0000000..5fe9375 --- /dev/null +++ b/arbitrary/task/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "task": { + "$ref": "https://github.com/foomo/posh-providers/arbitrary/task" + } + } + } + ] +} diff --git a/arbitrary/task/config.schema.json b/arbitrary/task/config.schema.json index 1d01a52..6f6bf26 100644 --- a/arbitrary/task/config.schema.json +++ b/arbitrary/task/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/arbitrary/task/config", + "$id": "https://github.com/foomo/posh-providers/arbitrary/task", "$ref": "#/$defs/Config", "$defs": { "Config": { @@ -15,6 +15,24 @@ "type": "string", "description": "Prompt string to confirm execution" }, + "env": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Task environment variables" + }, + "description": { + "type": "string", + "description": "Description of the task" + }, + "precondition": { + "items": { + "type": "string" + }, + "type": "array", + "description": "Precondition to cancel the execution of a task and its dependencies" + }, "deps": { "items": { "type": "string" @@ -38,6 +56,9 @@ "type": "object", "required": [ "prompt", + "env", + "description", + "precondition", "deps", "cmds", "hidden" diff --git a/arbitrary/task/config_test.go b/arbitrary/task/config_test.go index 7fce255..a71bb67 100644 --- a/arbitrary/task/config_test.go +++ b/arbitrary/task/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/arbitrary/task", "./")) schema := reflector.Reflect(&task.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/arbitrary/task" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/arbitrary/task/task.go b/arbitrary/task/task.go index fd99557..4b769b6 100644 --- a/arbitrary/task/task.go +++ b/arbitrary/task/task.go @@ -3,6 +3,12 @@ package task type Task struct { // Prompt string to confirm execution Prompt string `json:"prompt" yaml:"prompt"` + // Task environment variables + Env []string `json:"env" yaml:"env"` + // Description of the task + Description string `json:"description" yaml:"description"` + // Precondition to cancel the execution of a task and its dependencies + Precondition []string `json:"precondition" yaml:"precondition"` // Dependencies to run Deps []string `json:"deps" yaml:"deps"` // Commands to execute diff --git a/arbitrary/zip/config.base.json b/arbitrary/zip/config.base.json new file mode 100644 index 0000000..9342348 --- /dev/null +++ b/arbitrary/zip/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "zip": { + "$ref": "https://github.com/foomo/posh-providers/arbitrary/zip" + } + } + } + ] +} diff --git a/arbitrary/zip/config.schema.json b/arbitrary/zip/config.schema.json index 52283f2..eb1e32f 100644 --- a/arbitrary/zip/config.schema.json +++ b/arbitrary/zip/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/arbitrary/zip/config", + "$id": "https://github.com/foomo/posh-providers/arbitrary/zip", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/arbitrary/zip/config_test.go b/arbitrary/zip/config_test.go index c1347da..7d0ee4f 100644 --- a/arbitrary/zip/config_test.go +++ b/arbitrary/zip/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/arbitrary/zip", "./")) schema := reflector.Reflect(&zip.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/arbitrary/zip" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/azure/az/config.base.json b/azure/az/config.base.json new file mode 100644 index 0000000..2714b16 --- /dev/null +++ b/azure/az/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "az": { + "$ref": "https://github.com/foomo/posh-providers/azure/az" + } + } + } + ] +} diff --git a/azure/az/config.schema.json b/azure/az/config.schema.json index 86624b0..b09e7b2 100644 --- a/azure/az/config.schema.json +++ b/azure/az/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/azure/az/config", + "$id": "https://github.com/foomo/posh-providers/azure/az", "$ref": "#/$defs/Config", "$defs": { "Artifactory": { diff --git a/azure/az/config_test.go b/azure/az/config_test.go index 2bd24e3..c157a0b 100644 --- a/azure/az/config_test.go +++ b/azure/az/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/azure/az", "./")) schema := reflector.Reflect(&az.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/azure/az" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/base.schema.json b/base.schema.json new file mode 100644 index 0000000..d739f7e --- /dev/null +++ b/base.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://example.com/schemas/extended-schema.json", + "allOf": [ + { "$ref": "https://raw.githubusercontent.com/foomo/posh/refs/heads/main/posh.schema.json" } + ] +} diff --git a/cloudflare/cloudflared/config.base.json b/cloudflare/cloudflared/config.base.json new file mode 100644 index 0000000..d46bc7a --- /dev/null +++ b/cloudflare/cloudflared/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "cloudflared": { + "$ref": "https://github.com/foomo/posh-providers/cloudflare/cloudflared" + } + } + } + ] +} diff --git a/cloudflare/cloudflared/config.schema.json b/cloudflare/cloudflared/config.schema.json index c23d9c8..e8886fe 100644 --- a/cloudflare/cloudflared/config.schema.json +++ b/cloudflare/cloudflared/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/cloudflare/cloudflared/config", + "$id": "https://github.com/foomo/posh-providers/cloudflare/cloudflared", "$ref": "#/$defs/Config", "$defs": { "Access": { diff --git a/cloudflare/cloudflared/config_test.go b/cloudflare/cloudflared/config_test.go index f072de4..65bc3bf 100644 --- a/cloudflare/cloudflared/config_test.go +++ b/cloudflare/cloudflared/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/cloudflare/cloudflared", "./")) schema := reflector.Reflect(&cloudflared.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/cloudflare/cloudflared" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/config.schema.base.json b/config.schema.base.json deleted file mode 100644 index fad393b..0000000 --- a/config.schema.base.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-provider", - "$ref": "#/$defs/Config", - "$defs": { - "Config": { - "properties": { - "version": { - "type": "string", - "pattern": "^[0-9]\\.[0-9]$", - "description": "Version of the schema" - }, - "rclone": { - "$ref": "https://github.com/foomo/posh-providers/rclone/rclone/config" - }, - "cdktf": { - "$ref": "https://github.com/foomo/posh-providers/hashicorp/cdktf/config" - }, - "az": { - "$ref": "https://github.com/foomo/posh-providers/azure/az/config" - }, - "gcloud": { - "$ref": "https://github.com/foomo/posh-providers/google/gcloud/config" - }, - "terragrunt": { - "$ref": "https://github.com/foomo/posh-providers/gruntwork-io/terragrunt/config" - }, - "doctl": { - "$ref": "https://github.com/foomo/posh-providers/digitalocean/doctl/config" - }, - "onepassword": { - "$ref": "https://github.com/foomo/posh-providers/onepassword/config" - }, - "cloudflared": { - "$ref": "https://github.com/foomo/posh-providers/cloudflare/cloudflared/config" - }, - "zip": { - "$ref": "https://github.com/foomo/posh-providers/arbitrary/zip/config" - }, - "open": { - "$ref": "https://github.com/foomo/posh-providers/arbitrary/open/config" - }, - "stern": { - "$ref": "https://github.com/foomo/posh-providers/stern/stern/config" - }, - "k6": { - "$ref": "https://github.com/foomo/posh-providers/grafana/k6/config" - }, - "k3d": { - "$ref": "https://github.com/foomo/posh-providers/k3d-io/k3d/config" - }, - "etcd": { - "$ref": "https://github.com/foomo/posh-providers/etcd-io/etcd/config" - }, - "hygen": { - "$ref": "https://github.com/foomo/posh-providers/jondot/hygen/config" - }, - "sqlc": { - "$ref": "https://github.com/foomo/posh-providers/sqlc-dev/sqlc/config" - }, - "mkcert": { - "$ref": "https://github.com/foomo/posh-providers/filosottile/mkcert/config" - }, - "licensefinder": { - "$ref": "https://github.com/foomo/posh-providers/pivotal/licensefinder/config" - }, - "docusaurus": { - "$ref": "https://github.com/foomo/posh-providers/facebook/docusaurus/config" - }, - "stackit": { - "$ref": "https://github.com/foomo/posh-providers/stackitcloud/stackit/config" - }, - "slack": { - "$ref": "https://github.com/foomo/posh-providers/slack-go/slack/config" - }, - "teleport": { - "$ref": "https://github.com/foomo/posh-providers/gravitational/teleport/config" - }, - "kubectl": { - "$ref": "https://github.com/foomo/posh-providers/kubernets/kubectl/config" - }, - "pulumi-gcloud": { - "$ref": "https://github.com/foomo/posh-providers/pulumi/pulumi/gcloud/config" - }, - "pulumi-azure": { - "$ref": "https://github.com/foomo/posh-providers/pulumi/pulumi/azure/config" - }, - "gocontentful": { - "$ref": "https://github.com/foomo/posh-providers/foomo/gocontentful/config" - }, - "beam": { - "$ref": "https://github.com/foomo/posh-providers/foomo/beam/config" - }, - "sesamy": { - "$ref": "https://github.com/foomo/posh-providers/foomo/sesamy/config" - }, - "squadron": { - "$ref": "https://github.com/foomo/posh-providers/foomo/squadron/config" - }, - "webdriverio": { - "$ref": "https://github.com/foomo/posh-providers/webdriverio/webdriverio/config" - }, - "migrate": { - "$ref": "https://github.com/foomo/posh-providers/golang-migrate/migrate/config" - }, - "bruno": { - "$ref": "https://github.com/foomo/posh-providers/usebruno/bruno/config" - }, - "harbor": { - "$ref": "https://github.com/foomo/posh-providers/goharbor/harbor/config" - }, - "kubeforward": { - "$ref": "https://github.com/foomo/posh-providers/kubernets/kubeforward/config" - }, - "task": { - "$ref": "https://github.com/foomo/posh-providers/arbitrary/task/config" - } - }, - "additionalProperties": false, - "type": "object", - "required": [ - "version" - ] - } - } -} diff --git a/config.yaml b/config.yaml deleted file mode 100644 index 558dcb9..0000000 --- a/config.yaml +++ /dev/null @@ -1,2 +0,0 @@ -# yaml-language-server: $schema=config.schema.json -version: '1.0' diff --git a/digitalocean/doctl/config.base.json b/digitalocean/doctl/config.base.json new file mode 100644 index 0000000..92fff2e --- /dev/null +++ b/digitalocean/doctl/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "doctl": { + "$ref": "https://github.com/foomo/posh-providers/digitalocean/doctl" + } + } + } + ] +} diff --git a/digitalocean/doctl/config.schema.json b/digitalocean/doctl/config.schema.json index b781d7d..645b3f6 100644 --- a/digitalocean/doctl/config.schema.json +++ b/digitalocean/doctl/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/digitalocean/doctl/config", + "$id": "https://github.com/foomo/posh-providers/digitalocean/doctl", "$ref": "#/$defs/Config", "$defs": { "Cluster": { diff --git a/digitalocean/doctl/config_test.go b/digitalocean/doctl/config_test.go index de9b38b..cf832b2 100644 --- a/digitalocean/doctl/config_test.go +++ b/digitalocean/doctl/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/digitalocean/doctl", "./")) schema := reflector.Reflect(&doctl.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/digitalocean/doctl" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/etcd-io/etcd/config.base.json b/etcd-io/etcd/config.base.json new file mode 100644 index 0000000..83b3398 --- /dev/null +++ b/etcd-io/etcd/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "etcd": { + "$ref": "https://github.com/foomo/posh-providers/etcd-io/etcd" + } + } + } + ] +} diff --git a/etcd-io/etcd/config.schema.json b/etcd-io/etcd/config.schema.json index 0b3bd26..e704727 100644 --- a/etcd-io/etcd/config.schema.json +++ b/etcd-io/etcd/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/etcd-io/etcd/config", + "$id": "https://github.com/foomo/posh-providers/etcd-io/etcd", "$ref": "#/$defs/Config", "$defs": { "Cluster": { diff --git a/etcd-io/etcd/config_test.go b/etcd-io/etcd/config_test.go index 4dd4d56..44c68cd 100644 --- a/etcd-io/etcd/config_test.go +++ b/etcd-io/etcd/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/etcd-io/etcd", "./")) schema := reflector.Reflect(&etcd.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/etcd-io/etcd" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/facebook/docusaurus/config.base.json b/facebook/docusaurus/config.base.json new file mode 100644 index 0000000..1774962 --- /dev/null +++ b/facebook/docusaurus/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "docusaurus": { + "$ref": "https://github.com/foomo/posh-providers/facebook/docusaurus" + } + } + } + ] +} diff --git a/facebook/docusaurus/config.schema.json b/facebook/docusaurus/config.schema.json index 03ac976..b7761c2 100644 --- a/facebook/docusaurus/config.schema.json +++ b/facebook/docusaurus/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/facebook/docusaurus/config", + "$id": "https://github.com/foomo/posh-providers/facebook/docusaurus", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/facebook/docusaurus/config_test.go b/facebook/docusaurus/config_test.go index a0e0fd8..3de2d0c 100644 --- a/facebook/docusaurus/config_test.go +++ b/facebook/docusaurus/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/facebook/docusaurus", "./")) schema := reflector.Reflect(&docusaurus.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/facebook/docusaurus" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/filosottile/mkcert/config.base.json b/filosottile/mkcert/config.base.json new file mode 100644 index 0000000..2807cfb --- /dev/null +++ b/filosottile/mkcert/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "mkcert": { + "$ref": "https://github.com/foomo/posh-providers/filosottile/mkcert" + } + } + } + ] +} diff --git a/filosottile/mkcert/config.schema.json b/filosottile/mkcert/config.schema.json index f5c2b49..1af10e1 100644 --- a/filosottile/mkcert/config.schema.json +++ b/filosottile/mkcert/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/filosottile/mkcert/config", + "$id": "https://github.com/foomo/posh-providers/filosottile/mkcert", "$ref": "#/$defs/Config", "$defs": { "Certificate": { diff --git a/filosottile/mkcert/config_test.go b/filosottile/mkcert/config_test.go index 075c797..cf9ea4a 100644 --- a/filosottile/mkcert/config_test.go +++ b/filosottile/mkcert/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/filosottile/mkcert", "./")) schema := reflector.Reflect(&mkcert.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/filosottile/mkcert" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/foomo/beam/config.base.json b/foomo/beam/config.base.json new file mode 100644 index 0000000..5f032b6 --- /dev/null +++ b/foomo/beam/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "beam": { + "$ref": "https://github.com/foomo/posh-providers/foomo/beam" + } + } + } + ] +} diff --git a/foomo/beam/config.schema.json b/foomo/beam/config.schema.json index 7d61434..e4a2657 100644 --- a/foomo/beam/config.schema.json +++ b/foomo/beam/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/foomo/beam/config", + "$id": "https://github.com/foomo/posh-providers/foomo/beam", "$ref": "#/$defs/Config", "$defs": { "Cluster": { diff --git a/foomo/beam/config_test.go b/foomo/beam/config_test.go index 1ae33a6..847e2a3 100644 --- a/foomo/beam/config_test.go +++ b/foomo/beam/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/foomo/beam", "./")) schema := reflector.Reflect(&beam.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/foomo/beam" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/foomo/gocontentful/config.base.json b/foomo/gocontentful/config.base.json new file mode 100644 index 0000000..2bad0e1 --- /dev/null +++ b/foomo/gocontentful/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "gocontentful": { + "$ref": "https://github.com/foomo/posh-providers/foomo/gocontentful" + } + } + } + ] +} diff --git a/foomo/gocontentful/config.schema.json b/foomo/gocontentful/config.schema.json index a660ea6..535c280 100644 --- a/foomo/gocontentful/config.schema.json +++ b/foomo/gocontentful/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/foomo/gocontentful/config", + "$id": "https://github.com/foomo/posh-providers/foomo/gocontentful", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/foomo/gocontentful/config_test.go b/foomo/gocontentful/config_test.go index feb6dcd..bd3783a 100644 --- a/foomo/gocontentful/config_test.go +++ b/foomo/gocontentful/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/foomo/gocontentful", "./")) schema := reflector.Reflect(&gocontentful.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/foomo/gocontentful" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/foomo/sesamy/config.base.json b/foomo/sesamy/config.base.json new file mode 100644 index 0000000..d7bc842 --- /dev/null +++ b/foomo/sesamy/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "sesamy": { + "$ref": "https://github.com/foomo/posh-providers/foomo/sesamy" + } + } + } + ] +} diff --git a/foomo/sesamy/config.schema.json b/foomo/sesamy/config.schema.json index da59377..fe3f691 100644 --- a/foomo/sesamy/config.schema.json +++ b/foomo/sesamy/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/foomo/sesamy/config", + "$id": "https://github.com/foomo/posh-providers/foomo/sesamy", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/foomo/sesamy/config_test.go b/foomo/sesamy/config_test.go index acbc713..9e07678 100644 --- a/foomo/sesamy/config_test.go +++ b/foomo/sesamy/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/foomo/sesamy", "./")) schema := reflector.Reflect(&sesamy.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/foomo/sesamy" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/foomo/squadron/config.base.json b/foomo/squadron/config.base.json new file mode 100644 index 0000000..62ca1f4 --- /dev/null +++ b/foomo/squadron/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "squadron": { + "$ref": "https://github.com/foomo/posh-providers/foomo/squadron" + } + } + } + ] +} diff --git a/foomo/squadron/config.schema.json b/foomo/squadron/config.schema.json index 9dc062e..e0c7e3d 100644 --- a/foomo/squadron/config.schema.json +++ b/foomo/squadron/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/foomo/squadron/config", + "$id": "https://github.com/foomo/posh-providers/foomo/squadron", "$ref": "#/$defs/Config", "$defs": { "Cluster": { diff --git a/foomo/squadron/config_test.go b/foomo/squadron/config_test.go index c2ba8bc..7b55f3c 100644 --- a/foomo/squadron/config_test.go +++ b/foomo/squadron/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/foomo/squadron", "./")) schema := reflector.Reflect(&squadron.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/foomo/squadron" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/go.mod b/go.mod index 982f118..094fef3 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/foomo/posh-providers -go 1.24.1 +go 1.25 replace github.com/c-bata/go-prompt v0.2.6 => github.com/franklinkim/go-prompt v0.2.7-0.20210427061716-a8f4995d7aa5 @@ -11,18 +11,18 @@ require ( github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d github.com/c-bata/go-prompt v0.2.6 github.com/cloudrecipes/packagejson v1.0.0 - github.com/digitalocean/godo v1.162.0 + github.com/digitalocean/godo v1.165.0 github.com/foomo/go v0.0.3 - github.com/foomo/gokazi v0.1.5 - github.com/foomo/posh v0.13.0 + github.com/foomo/gokazi v0.1.6 + github.com/foomo/posh v0.14.2 github.com/goccy/go-json v0.10.5 - github.com/golang-migrate/migrate/v4 v4.18.3 + github.com/golang-migrate/migrate/v4 v4.19.0 github.com/google/go-github/v47 v47.1.0 github.com/invopop/jsonschema v0.13.0 github.com/joho/godotenv v1.5.1 github.com/knadh/koanf/parsers/yaml v1.1.0 github.com/knadh/koanf/providers/file v1.2.0 - github.com/knadh/koanf/v2 v2.2.2 + github.com/knadh/koanf/v2 v2.3.0 github.com/mitchellh/mapstructure v1.5.0 github.com/muesli/go-app-paths v0.2.2 github.com/pkg/errors v0.9.1 @@ -30,13 +30,13 @@ require ( github.com/samber/lo v1.51.0 github.com/shirou/gopsutil/v3 v3.24.5 github.com/slack-go/slack v0.17.3 - github.com/spf13/viper v1.20.1 - github.com/stretchr/testify v1.10.0 + github.com/spf13/viper v1.21.0 + github.com/stretchr/testify v1.11.1 go.uber.org/zap v1.27.0 - golang.org/x/oauth2 v0.30.0 - golang.org/x/sync v0.16.0 + golang.org/x/oauth2 v0.31.0 + golang.org/x/sync v0.17.0 gopkg.in/yaml.v3 v3.0.1 - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 + k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d ) require ( @@ -46,7 +46,7 @@ require ( github.com/alecthomas/chroma v0.10.0 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/buger/jsonparser v1.1.1 // indirect - github.com/charlievieth/fastwalk v1.0.12 // indirect + github.com/charlievieth/fastwalk v1.0.14 // indirect github.com/containerd/console v1.0.5 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dlclark/regexp2 v1.11.5 // indirect @@ -55,7 +55,7 @@ require ( github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/gookit/color v1.5.4 // indirect + github.com/gookit/color v1.6.0 // indirect github.com/gorilla/websocket v1.5.3 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect @@ -63,8 +63,8 @@ require ( github.com/hashicorp/go-retryablehttp v0.7.8 // indirect github.com/knadh/koanf/maps v0.1.2 // indirect github.com/lithammer/fuzzysearch v1.1.8 // indirect - github.com/lufia/plan9stats v0.0.0-20250317134145-8bc96cf8fc35 // indirect - github.com/mailru/easyjson v0.9.0 // indirect + github.com/lufia/plan9stats v0.0.0-20250827001030-24949be3fa54 // indirect + github.com/mailru/easyjson v0.9.1 // indirect github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect @@ -80,13 +80,13 @@ require ( github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.14.1 // indirect - github.com/sagikazarmark/locafero v0.10.0 // indirect - github.com/shirou/gopsutil/v4 v4.25.7 // indirect + github.com/sagikazarmark/locafero v0.11.0 // indirect + github.com/shirou/gopsutil/v4 v4.25.8 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect - github.com/spf13/afero v1.14.0 // indirect - github.com/spf13/cast v1.9.2 // indirect - github.com/spf13/pflag v1.0.7 // indirect + github.com/spf13/afero v1.15.0 // indirect + github.com/spf13/cast v1.10.0 // indirect + github.com/spf13/pflag v1.0.10 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/tklauser/go-sysconf v0.3.15 // indirect github.com/tklauser/numcpus v0.10.0 // indirect @@ -98,10 +98,10 @@ require ( go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/crypto v0.40.0 // indirect - golang.org/x/sys v0.34.0 // indirect - golang.org/x/term v0.33.0 // indirect - golang.org/x/text v0.27.0 // indirect - golang.org/x/time v0.12.0 // indirect + golang.org/x/crypto v0.42.0 // indirect + golang.org/x/sys v0.36.0 // indirect + golang.org/x/term v0.35.0 // indirect + golang.org/x/text v0.29.0 // indirect + golang.org/x/time v0.13.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect ) diff --git a/go.sum b/go.sum index 8c9f322..88f123c 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPn github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= -github.com/charlievieth/fastwalk v1.0.12 h1:pwfxe1LajixViQqo7EFLXU2+mQxb6OaO0CeNdVwRKTg= -github.com/charlievieth/fastwalk v1.0.12/go.mod h1:yGy1zbxog41ZVMcKA/i8ojXLFsuayX5VvwhQVoj9PBI= +github.com/charlievieth/fastwalk v1.0.14 h1:3Eh5uaFGwHZd8EGwTjJnSpBkfwfsak9h6ICgnWlhAyg= +github.com/charlievieth/fastwalk v1.0.14/go.mod h1:diVcUreiU1aQ4/Wu3NbxxH4/KYdKpLDojrQ1Bb2KgNY= github.com/cloudrecipes/packagejson v1.0.0 h1:f6InIxXWQ9/u1XNk7pX2BeUIw7IOYZS5B26o685XbZk= github.com/cloudrecipes/packagejson v1.0.0/go.mod h1:ZENm9DGj5m+2WMImPunZuW3Qn2Ljw/0kHOP4BcWhrrA= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= @@ -39,8 +39,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/digitalocean/godo v1.162.0 h1:7dtS9H8xsUuYtPf9w4eDsiRl0UlgzyCCSPWpMFOZKhg= -github.com/digitalocean/godo v1.162.0/go.mod h1:NJ1VlXmFMSnG1GEe2rWyDZVrhR69c3nHmL0s1cSSQ6M= +github.com/digitalocean/godo v1.165.0 h1:OG/E4/pUDCoySjKYeW1WKaON2airpWu7TdKwpZllz8I= +github.com/digitalocean/godo v1.165.0/go.mod h1:NJ1VlXmFMSnG1GEe2rWyDZVrhR69c3nHmL0s1cSSQ6M= github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ= github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= @@ -50,10 +50,10 @@ github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/foomo/go v0.0.3 h1:5pGzcPC78dImuBTT7nsZZnH+GIQUylbCtMkFEH26uZk= github.com/foomo/go v0.0.3/go.mod h1:x6g64wiQusqaFElnh5rlk9unCgLKmfUWy0YFLejJxio= -github.com/foomo/gokazi v0.1.5 h1:cqEB3o7TM3IzLkXgVtIx97V46zhOY2iL9HPfBgfKS/4= -github.com/foomo/gokazi v0.1.5/go.mod h1:2aLwoCPC2ecwtqU/67qGWoYn7UcZwgCbSdrimVbF7Zc= -github.com/foomo/posh v0.13.0 h1:1KCnsrM3byb5tcjHuImKPg/vAVEYJmtKgrwWMwV1zrw= -github.com/foomo/posh v0.13.0/go.mod h1:BZsBvewZc9qHa/9Ukwyru375DR8ZvidHzi+24Qa31Mo= +github.com/foomo/gokazi v0.1.6 h1:6OPtVTt4enPDG04kChGWJyq3MaiXZ9fnehAAS+XSOHM= +github.com/foomo/gokazi v0.1.6/go.mod h1:Z8t3AmrBe47xN+FKEerakbA4bX1y4CTFRC9G7fmKskA= +github.com/foomo/posh v0.14.2 h1:r77DU5LMcDDTRSdT3w++fVSBtXRyssTMhqxNPNMFpJM= +github.com/foomo/posh v0.14.2/go.mod h1:osZmLlS3qy6Ay6r5DFUow876yh0DJdCwp6QnVPXI8pY= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/franklinkim/go-prompt v0.2.7-0.20210427061716-a8f4995d7aa5 h1:kXNtle4AoQnngdm+gwt4ku6Llbzw3EFHgZYpL618JaI= @@ -69,8 +69,8 @@ github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9L github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= -github.com/golang-migrate/migrate/v4 v4.18.3 h1:EYGkoOsvgHHfm5U/naS1RP/6PL/Xv3S4B/swMiAmDLs= -github.com/golang-migrate/migrate/v4 v4.18.3/go.mod h1:99BKpIi6ruaaXRM1A77eqZ+FWPQ3cfRa+ZVy5bmWMaY= +github.com/golang-migrate/migrate/v4 v4.19.0 h1:RcjOnCGz3Or6HQYEJ/EEVLfWnmw9KnoigPSjzhCuaSE= +github.com/golang-migrate/migrate/v4 v4.19.0/go.mod h1:9dyEcu+hO+G9hPSw8AIg50yg622pXJsoHItQnDGZkI0= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= @@ -80,10 +80,12 @@ github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gookit/assert v0.1.1 h1:lh3GcawXe/p+cU7ESTZ5Ui3Sm/x8JWpIis4/1aF0mY0= +github.com/gookit/assert v0.1.1/go.mod h1:jS5bmIVQZTIwk42uXl4lyj4iaaxx32tqH16CFj0VX2E= github.com/gookit/color v1.4.2/go.mod h1:fqRyamkC1W8uxl+lxCQxOT09l/vYfZ+QeiX3rKQHCoQ= github.com/gookit/color v1.5.0/go.mod h1:43aQb+Zerm/BWh2GnrgOQm7ffz7tvQXEKV6BFMl7wAo= -github.com/gookit/color v1.5.4 h1:FZmqs7XOyGgCAxmWyPslpiok1k05wmY3SJTytgvYFs0= -github.com/gookit/color v1.5.4/go.mod h1:pZJOeOS8DM43rXbp4AZo1n9zCU2qjpcRko0b6/QJi9w= +github.com/gookit/color v1.6.0 h1:JjJXBTk1ETNyqyilJhkTXJYYigHG24TM9Xa2M1xAhRA= +github.com/gookit/color v1.6.0/go.mod h1:9ACFc7/1IpHGBW8RwuDm/0YEnhg3dwwXpoMsmtyHfjs= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -104,16 +106,16 @@ github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwA github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.10/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= -github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU= -github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= +github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/knadh/koanf/maps v0.1.2 h1:RBfmAW5CnZT+PJ1CVc1QSJKf4Xu9kxfQgYVQSu8hpbo= github.com/knadh/koanf/maps v0.1.2/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/parsers/yaml v1.1.0 h1:3ltfm9ljprAHt4jxgeYLlFPmUaunuCgu1yILuTXRdM4= github.com/knadh/koanf/parsers/yaml v1.1.0/go.mod h1:HHmcHXUrp9cOPcuC+2wrr44GTUB0EC+PyfN3HZD9tFg= github.com/knadh/koanf/providers/file v1.2.0 h1:hrUJ6Y9YOA49aNu/RSYzOTFlqzXSCpmYIDXI7OJU6+U= github.com/knadh/koanf/providers/file v1.2.0/go.mod h1:bp1PM5f83Q+TOUu10J/0ApLBd9uIzg+n9UgthfY+nRA= -github.com/knadh/koanf/v2 v2.2.2 h1:ghbduIkpFui3L587wavneC9e3WIliCgiCgdxYO/wd7A= -github.com/knadh/koanf/v2 v2.2.2/go.mod h1:abWQc0cBXLSF/PSOMCB/SK+T13NXDsPvOksbpi5e/9Q= +github.com/knadh/koanf/v2 v2.3.0 h1:Qg076dDRFHvqnKG97ZEsi9TAg2/nFTa9hCdcSa1lvlM= +github.com/knadh/koanf/v2 v2.3.0/go.mod h1:gRb40VRAbd4iJMYYD5IxZ6hfuopFcXBpc9bbQpZwo28= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -124,10 +126,10 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lithammer/fuzzysearch v1.1.8 h1:/HIuJnjHuXS8bKaiTMeeDlW2/AyIWk2brx1V8LFgLN4= github.com/lithammer/fuzzysearch v1.1.8/go.mod h1:IdqeyBClc3FFqSzYq/MXESsS4S0FsZ5ajtkr5xPLts4= -github.com/lufia/plan9stats v0.0.0-20250317134145-8bc96cf8fc35 h1:PpXWgLPs+Fqr325bN2FD2ISlRRztXibcX6e8f5FR5Dc= -github.com/lufia/plan9stats v0.0.0-20250317134145-8bc96cf8fc35/go.mod h1:autxFIvghDt3jPTLoqZ9OZ7s9qTGNAWmYCjVFWPX/zg= -github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= -github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= +github.com/lufia/plan9stats v0.0.0-20250827001030-24949be3fa54 h1:mFWunSatvkQQDhpdyuFAYwyAan3hzCuma+Pz8sqvOfg= +github.com/lufia/plan9stats v0.0.0-20250827001030-24949be3fa54/go.mod h1:autxFIvghDt3jPTLoqZ9OZ7s9qTGNAWmYCjVFWPX/zg= +github.com/mailru/easyjson v0.9.1 h1:LbtsOm5WAswyWbvTEOqhypdPeZzHavpZx96/n553mR8= +github.com/mailru/easyjson v0.9.1/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= @@ -184,8 +186,8 @@ github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= -github.com/sagikazarmark/locafero v0.10.0 h1:FM8Cv6j2KqIhM2ZK7HZjm4mpj9NBktLgowT1aN9q5Cc= -github.com/sagikazarmark/locafero v0.10.0/go.mod h1:Ieo3EUsjifvQu4NZwV5sPd4dwvu0OCgEQV7vjc9yDjw= +github.com/sagikazarmark/locafero v0.11.0 h1:1iurJgmM9G3PA/I+wWYIOw/5SyBtxapeHDcg+AAIFXc= +github.com/sagikazarmark/locafero v0.11.0/go.mod h1:nVIGvgyzw595SUSUE6tvCp3YYTeHs15MvlmU87WwIik= github.com/samber/lo v1.51.0 h1:kysRYLbHy/MB7kQZf5DSN50JHmMsNEdeY24VzJFu7wI= github.com/samber/lo v1.51.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= @@ -193,8 +195,8 @@ github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw= github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shirou/gopsutil/v4 v4.25.7 h1:bNb2JuqKuAu3tRlPv5piSmBZyMfecwQ+t/ILq+1JqVM= -github.com/shirou/gopsutil/v4 v4.25.7/go.mod h1:XV/egmwJtd3ZQjBpJVY5kndsiOO4IRqy9TQnmm6VP7U= +github.com/shirou/gopsutil/v4 v4.25.8 h1:NnAsw9lN7587WHxjJA9ryDnqhJpFH6A+wagYWTOH970= +github.com/shirou/gopsutil/v4 v4.25.8/go.mod h1:q9QdMmfAOVIw7a+eF86P7ISEU6ka+NLgkUxlopV4RwI= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= @@ -203,14 +205,14 @@ github.com/slack-go/slack v0.17.3 h1:zV5qO3Q+WJAQ/XwbGfNFrRMaJ5T/naqaonyPV/1TP4g github.com/slack-go/slack v0.17.3/go.mod h1:X+UqOufi3LYQHDnMG1vxf0J8asC6+WllXrVrhl8/Prk= github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 h1:+jumHNA0Wrelhe64i8F6HNlS8pkoyMv5sreGx2Ry5Rw= github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8/go.mod h1:3n1Cwaq1E1/1lhQhtRK2ts/ZwZEhjcQeJQ1RuC6Q/8U= -github.com/spf13/afero v1.14.0 h1:9tH6MapGnn/j0eb0yIXiLjERO8RB6xIVZRDCX7PtqWA= -github.com/spf13/afero v1.14.0/go.mod h1:acJQ8t0ohCGuMN3O+Pv0V0hgMxNYDlvdk+VTfyZmbYo= -github.com/spf13/cast v1.9.2 h1:SsGfm7M8QOFtEzumm7UZrZdLLquNdzFYfIbEXntcFbE= -github.com/spf13/cast v1.9.2/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= -github.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M= -github.com/spf13/pflag v1.0.7/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4= -github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4= +github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= +github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg= +github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY= +github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU= +github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= @@ -218,8 +220,8 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/tklauser/go-sysconf v0.3.15 h1:VE89k0criAymJ/Os65CSn1IXaol+1wrsFHEB8Ol49K4= @@ -250,24 +252,24 @@ go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM= -golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY= -golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 h1:R9PFI6EUdfVKgwKjZef7QIwGcBKu86OEFpJ9nUEP2l4= -golang.org/x/exp v0.0.0-20250718183923-645b1fa84792/go.mod h1:A+z0yzpGtvnG90cToK5n2tu8UJVP2XUATh+r+sfOOOc= +golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= +golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= +golang.org/x/exp v0.0.0-20250911091902-df9299821621 h1:2id6c1/gto0kaHYyrixvknJ8tUK/Qs5IsmBtrc+FtgU= +golang.org/x/exp v0.0.0-20250911091902-df9299821621/go.mod h1:TwQYMMnGpvZyc+JpB/UAuTNIsVJifOlSkrZkhcvpVUk= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= -golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo= +golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -289,24 +291,24 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA= -golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= +golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.33.0 h1:NuFncQrRcaRvVmgRkvM3j/F00gWIAlcmlB8ACEKmGIg= -golang.org/x/term v0.33.0/go.mod h1:s18+ql9tYWp1IfpV9DmCtQDDSRBUjKaw9M1eAv5UeF0= +golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= +golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4= -golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU= -golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= -golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= +golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= +golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= +golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI= +golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= @@ -323,5 +325,5 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d h1:wAhiDyZ4Tdtt7e46e9M5ZSAJ/MnPGPs+Ki1gHw4w1R0= +k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= diff --git a/goharbor/harbor/config.base.json b/goharbor/harbor/config.base.json new file mode 100644 index 0000000..15311f9 --- /dev/null +++ b/goharbor/harbor/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "harbor": { + "$ref": "https://github.com/foomo/posh-providers/goharbor/harbor" + } + } + } + ] +} diff --git a/goharbor/harbor/config.schema.json b/goharbor/harbor/config.schema.json index b6cad77..697d479 100644 --- a/goharbor/harbor/config.schema.json +++ b/goharbor/harbor/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/goharbor/harbor/config", + "$id": "https://github.com/foomo/posh-providers/goharbor/harbor", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/goharbor/harbor/config_test.go b/goharbor/harbor/config_test.go index 17d7122..a5933c9 100644 --- a/goharbor/harbor/config_test.go +++ b/goharbor/harbor/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/goharbor/harbor", "./")) schema := reflector.Reflect(&harbor.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/goharbor/harbor" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/golang-migrate/migrate/config.base.json b/golang-migrate/migrate/config.base.json new file mode 100644 index 0000000..9714788 --- /dev/null +++ b/golang-migrate/migrate/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "migrate": { + "$ref": "https://github.com/foomo/posh-providers/golang-migrate/migrate" + } + } + } + ] +} diff --git a/golang-migrate/migrate/config.schema.json b/golang-migrate/migrate/config.schema.json index ce5897c..9d5d0b5 100644 --- a/golang-migrate/migrate/config.schema.json +++ b/golang-migrate/migrate/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/golang-migrate/migrate/config", + "$id": "https://github.com/foomo/posh-providers/golang-migrate/migrate", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/golang-migrate/migrate/config_test.go b/golang-migrate/migrate/config_test.go index 6d44b33..5a83765 100644 --- a/golang-migrate/migrate/config_test.go +++ b/golang-migrate/migrate/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/golang-migrate/migrate", "./")) schema := reflector.Reflect(&migrate.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/golang-migrate/migrate" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/google/gcloud/config.base.json b/google/gcloud/config.base.json new file mode 100644 index 0000000..dab8172 --- /dev/null +++ b/google/gcloud/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "gcloud": { + "$ref": "https://github.com/foomo/posh-providers/google/gcloud" + } + } + } + ] +} diff --git a/google/gcloud/config.schema.json b/google/gcloud/config.schema.json index acc7244..47d7af8 100644 --- a/google/gcloud/config.schema.json +++ b/google/gcloud/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/google/gcloud/config", + "$id": "https://github.com/foomo/posh-providers/google/gcloud", "$ref": "#/$defs/Config", "$defs": { "Account": { diff --git a/google/gcloud/config_test.go b/google/gcloud/config_test.go index eaf520c..d39d3df 100644 --- a/google/gcloud/config_test.go +++ b/google/gcloud/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/google/gcloud", "./")) schema := reflector.Reflect(&gcloud.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/google/gcloud" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/grafana/k6/config.base.json b/grafana/k6/config.base.json new file mode 100644 index 0000000..7b771c1 --- /dev/null +++ b/grafana/k6/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "k6": { + "$ref": "https://github.com/foomo/posh-providers/grafana/k6" + } + } + } + ] +} diff --git a/grafana/k6/config.schema.json b/grafana/k6/config.schema.json index 76f7339..949c1d1 100644 --- a/grafana/k6/config.schema.json +++ b/grafana/k6/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/grafana/k6/config", + "$id": "https://github.com/foomo/posh-providers/grafana/k6", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/grafana/k6/config_test.go b/grafana/k6/config_test.go index 0a6da93..0fcbfce 100644 --- a/grafana/k6/config_test.go +++ b/grafana/k6/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/grafana/k6", "./")) schema := reflector.Reflect(&k6.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/grafana/k6" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/gravitational/teleport/config.base.json b/gravitational/teleport/config.base.json new file mode 100644 index 0000000..6b1cf5f --- /dev/null +++ b/gravitational/teleport/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "teleport": { + "$ref": "https://github.com/foomo/posh-providers/gravitational/teleport" + } + } + } + ] +} diff --git a/gravitational/teleport/config.schema.json b/gravitational/teleport/config.schema.json index d92ed57..0a6905a 100644 --- a/gravitational/teleport/config.schema.json +++ b/gravitational/teleport/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/gravitational/teleport/config", + "$id": "https://github.com/foomo/posh-providers/gravitational/teleport", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/gravitational/teleport/config_test.go b/gravitational/teleport/config_test.go index 711d7a6..18ee8db 100644 --- a/gravitational/teleport/config_test.go +++ b/gravitational/teleport/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/gravitational/teleport", "./")) schema := reflector.Reflect(&teleport.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/gravitational/teleport" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/gruntwork-io/terragrunt/config.base.json b/gruntwork-io/terragrunt/config.base.json new file mode 100644 index 0000000..cca7a5c --- /dev/null +++ b/gruntwork-io/terragrunt/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "terragrunt": { + "$ref": "https://github.com/foomo/posh-providers/gruntwork-io/terragrunt" + } + } + } + ] +} diff --git a/gruntwork-io/terragrunt/config.schema.json b/gruntwork-io/terragrunt/config.schema.json index 3c92cac..d0738e3 100644 --- a/gruntwork-io/terragrunt/config.schema.json +++ b/gruntwork-io/terragrunt/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/gruntwork-io/terragrunt/config", + "$id": "https://github.com/foomo/posh-providers/gruntwork-io/terragrunt", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/gruntwork-io/terragrunt/config_test.go b/gruntwork-io/terragrunt/config_test.go index 4dff280..9740c74 100644 --- a/gruntwork-io/terragrunt/config_test.go +++ b/gruntwork-io/terragrunt/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/gruntwork-io/terragrunt", "./")) schema := reflector.Reflect(&terragrunt.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/gruntwork-io/terragrunt" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/hashicorp/cdktf/config.base.json b/hashicorp/cdktf/config.base.json new file mode 100644 index 0000000..1d01deb --- /dev/null +++ b/hashicorp/cdktf/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "cdktf": { + "$ref": "https://github.com/foomo/posh-providers/hashicorp/cdktf" + } + } + } + ] +} diff --git a/hashicorp/cdktf/config.schema.json b/hashicorp/cdktf/config.schema.json index e5f5329..5556072 100644 --- a/hashicorp/cdktf/config.schema.json +++ b/hashicorp/cdktf/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/hashicorp/cdktf/config", + "$id": "https://github.com/foomo/posh-providers/hashicorp/cdktf", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/hashicorp/cdktf/config_test.go b/hashicorp/cdktf/config_test.go index e15a436..8d4bde6 100644 --- a/hashicorp/cdktf/config_test.go +++ b/hashicorp/cdktf/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/hashicorp/cdktf", "./")) schema := reflector.Reflect(&cdktf.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/hashicorp/cdktf" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/jondot/hygen/config.base.json b/jondot/hygen/config.base.json new file mode 100644 index 0000000..6edc4dd --- /dev/null +++ b/jondot/hygen/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "hygen": { + "$ref": "https://github.com/foomo/posh-providers/jondot/hygen" + } + } + } + ] +} diff --git a/jondot/hygen/config.schema.json b/jondot/hygen/config.schema.json index bfb3d1a..a77dc49 100644 --- a/jondot/hygen/config.schema.json +++ b/jondot/hygen/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/jondot/hygen/config", + "$id": "https://github.com/foomo/posh-providers/jondot/hygen", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/jondot/hygen/config_test.go b/jondot/hygen/config_test.go index b3aa7e7..5cdb752 100644 --- a/jondot/hygen/config_test.go +++ b/jondot/hygen/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/jondot/hygen", "./")) schema := reflector.Reflect(&hygen.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/jondot/hygen" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/k3d-io/k3d/config.base.json b/k3d-io/k3d/config.base.json new file mode 100644 index 0000000..2d1e40c --- /dev/null +++ b/k3d-io/k3d/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "k3d": { + "$ref": "https://github.com/foomo/posh-providers/k3d-io/k3d" + } + } + } + ] +} diff --git a/k3d-io/k3d/config.schema.json b/k3d-io/k3d/config.schema.json index 0714d57..eb66609 100644 --- a/k3d-io/k3d/config.schema.json +++ b/k3d-io/k3d/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/k3d-io/k3d/config", + "$id": "https://github.com/foomo/posh-providers/k3d-io/k3d", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/k3d-io/k3d/config_test.go b/k3d-io/k3d/config_test.go index 0712877..3216e94 100644 --- a/k3d-io/k3d/config_test.go +++ b/k3d-io/k3d/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/k3d-io/k3d", "./")) schema := reflector.Reflect(&k3d.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/k3d-io/k3d" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/kubernets/kubectl/config.base.json b/kubernets/kubectl/config.base.json new file mode 100644 index 0000000..0f060c5 --- /dev/null +++ b/kubernets/kubectl/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "kubectl": { + "$ref": "https://github.com/foomo/posh-providers/kubernetes/kubectl" + } + } + } + ] +} diff --git a/kubernets/kubectl/config.schema.json b/kubernets/kubectl/config.schema.json index 573c626..a00e9b9 100644 --- a/kubernets/kubectl/config.schema.json +++ b/kubernets/kubectl/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/kubernets/kubectl/config", + "$id": "https://github.com/foomo/posh-providers/kubernetes/kubectl", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/kubernets/kubectl/config_test.go b/kubernets/kubectl/config_test.go index 69ad358..c7b8d68 100644 --- a/kubernets/kubectl/config_test.go +++ b/kubernets/kubectl/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/kubernets/kubectl", "./")) schema := reflector.Reflect(&kubectl.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/kubernetes/kubectl" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/kubernets/kubeforward/config.base.json b/kubernets/kubeforward/config.base.json new file mode 100644 index 0000000..d208be4 --- /dev/null +++ b/kubernets/kubeforward/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "kubeforward": { + "$ref": "https://github.com/foomo/posh-providers/kubernetes/kubeforward" + } + } + } + ] +} diff --git a/kubernets/kubeforward/config.schema.json b/kubernets/kubeforward/config.schema.json index e586a8c..3dcb288 100644 --- a/kubernets/kubeforward/config.schema.json +++ b/kubernets/kubeforward/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/kubernets/kubeforward/config", + "$id": "https://github.com/foomo/posh-providers/kubernetes/kubeforward", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/kubernets/kubeforward/config_test.go b/kubernets/kubeforward/config_test.go index 3efaf06..df753f7 100644 --- a/kubernets/kubeforward/config_test.go +++ b/kubernets/kubeforward/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/kubernets/kubeforward", "./")) schema := reflector.Reflect(&kubeforward.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/kubernetes/kubeforward" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/onepassword/config.base.json b/onepassword/config.base.json new file mode 100644 index 0000000..9d2f86b --- /dev/null +++ b/onepassword/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "op": { + "$ref": "https://github.com/foomo/posh-providers/onepassword/op" + } + } + } + ] +} diff --git a/onepassword/config.schema.json b/onepassword/config.schema.json index 08e66c5..8320729 100644 --- a/onepassword/config.schema.json +++ b/onepassword/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/onepassword/config", + "$id": "https://github.com/foomo/posh-providers/onepassword/op", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/onepassword/config_test.go b/onepassword/config_test.go index 35b6162..766d251 100644 --- a/onepassword/config_test.go +++ b/onepassword/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/onepassword", "./")) schema := reflector.Reflect(&onepassword.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/onepassword/op" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/pivotal/licensefinder/config.base.json b/pivotal/licensefinder/config.base.json new file mode 100644 index 0000000..e06da34 --- /dev/null +++ b/pivotal/licensefinder/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "licensefinder": { + "$ref": "https://github.com/foomo/posh-providers/pivotal/licensefinder" + } + } + } + ] +} diff --git a/pivotal/licensefinder/config.schema.json b/pivotal/licensefinder/config.schema.json index 2f00966..c6eadec 100644 --- a/pivotal/licensefinder/config.schema.json +++ b/pivotal/licensefinder/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/pivotal/licensefinder/config", + "$id": "https://github.com/foomo/posh-providers/pivotal/licensefinder", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/pivotal/licensefinder/config_test.go b/pivotal/licensefinder/config_test.go index 2bbe067..753d9ff 100644 --- a/pivotal/licensefinder/config_test.go +++ b/pivotal/licensefinder/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/pivotal/licensefinder", "./")) schema := reflector.Reflect(&licensefinder.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/pivotal/licensefinder" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/posh.example.yaml b/posh.example.yaml new file mode 100644 index 0000000..bd9c640 --- /dev/null +++ b/posh.example.yaml @@ -0,0 +1,3 @@ +# yaml-language-server: $schema=posh.schema.json +version: 'v1.0' + diff --git a/config.schema.json b/posh.schema.json similarity index 62% rename from config.schema.json rename to posh.schema.json index 7a1dc49..069d2c1 100644 --- a/config.schema.json +++ b/posh.schema.json @@ -1,132 +1,298 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/Config", - "$defs": { - "Config": { + "allOf": [ + { + "$ref": "#/$defs/https:~1~1raw.githubusercontent.com~1foomo~1posh~1refs~1heads~1main~1posh.schema.json" + }, + { + "type": "object", + "properties": { + "rclone": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1rclone~1rclone" + } + } + }, + { + "type": "object", + "properties": { + "cdktf": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1hashicorp~1cdktf" + } + } + }, + { "type": "object", - "required": [ "version" ], "properties": { "az": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1azure~1az~1config" - }, - "beam": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1foomo~1beam~1config" - }, - "bruno": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1usebruno~1bruno~1config" - }, - "cdktf": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1hashicorp~1cdktf~1config" - }, - "cloudflared": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1cloudflare~1cloudflared~1config" - }, - "doctl": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1digitalocean~1doctl~1config" - }, - "docusaurus": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1facebook~1docusaurus~1config" - }, - "etcd": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1etcd-io~1etcd~1config" - }, - "gcloud": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1google~1gcloud~1config" - }, - "gocontentful": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1foomo~1gocontentful~1config" - }, - "harbor": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1goharbor~1harbor~1config" - }, - "hygen": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1jondot~1hygen~1config" - }, - "k3d": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1k3d-io~1k3d~1config" - }, - "k6": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1grafana~1k6~1config" - }, - "kubectl": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1kubernets~1kubectl~1config" - }, - "kubeforward": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1kubernets~1kubeforward~1config" - }, - "licensefinder": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1pivotal~1licensefinder~1config" - }, - "migrate": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1golang-migrate~1migrate~1config" - }, - "mkcert": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1filosottile~1mkcert~1config" - }, - "onepassword": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1onepassword~1config" - }, - "open": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1arbitrary~1open~1config" - }, - "pulumi-azure": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1azure~1config" - }, - "pulumi-gcloud": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1gcloud~1config" - }, - "rclone": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1rclone~1rclone~1config" - }, - "sesamy": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1foomo~1sesamy~1config" - }, - "slack": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1slack-go~1slack~1config" - }, - "sqlc": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1sqlc-dev~1sqlc~1config" - }, - "squadron": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1foomo~1squadron~1config" - }, - "stackit": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1stackitcloud~1stackit~1config" - }, - "stern": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1stern~1stern~1config" - }, - "task": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1arbitrary~1task~1config" - }, - "teleport": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1gravitational~1teleport~1config" - }, - "terragrunt": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1gruntwork-io~1terragrunt~1config" - }, - "version": { - "description": "Version of the schema", - "type": "string", - "pattern": "^[0-9]\\.[0-9]$" - }, - "webdriverio": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio~1config" - }, - "zip": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1arbitrary~1zip~1config" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1azure~1az" } - }, - "additionalProperties": false + } }, - "https://github.com/foomo/posh-providers/arbitrary/open/config": { + { + "type": "object", + "properties": { + "gcloud": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1google~1gcloud" + } + } + }, + { + "type": "object", + "properties": { + "terragrunt": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1gruntwork-io~1terragrunt" + } + } + }, + { + "type": "object", + "properties": { + "doctl": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1digitalocean~1doctl" + } + } + }, + { + "type": "object", + "properties": { + "op": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1onepassword~1op" + } + } + }, + { + "type": "object", + "properties": { + "cloudflared": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1cloudflare~1cloudflared" + } + } + }, + { + "type": "object", + "properties": { + "zip": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1arbitrary~1zip" + } + } + }, + { + "type": "object", + "properties": { + "task": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1arbitrary~1task" + } + } + }, + { + "type": "object", + "properties": { + "open": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1arbitrary~1open" + } + } + }, + { + "type": "object", + "properties": { + "stern": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1stern~1stern" + } + } + }, + { + "type": "object", + "properties": { + "k6": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1grafana~1k6" + } + } + }, + { + "type": "object", + "properties": { + "k3d": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1k3d-io~1k3d" + } + } + }, + { + "type": "object", + "properties": { + "etcd": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1etcd-io~1etcd" + } + } + }, + { + "type": "object", + "properties": { + "hygen": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1jondot~1hygen" + } + } + }, + { + "type": "object", + "properties": { + "sqlc": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1sqlc-dev~1sqlc" + } + } + }, + { + "type": "object", + "properties": { + "mkcert": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1filosottile~1mkcert" + } + } + }, + { + "type": "object", + "properties": { + "licensefinder": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1pivotal~1licensefinder" + } + } + }, + { + "type": "object", + "properties": { + "docusaurus": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1facebook~1docusaurus" + } + } + }, + { + "type": "object", + "properties": { + "stackit": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1stackitcloud~1stackit" + } + } + }, + { + "type": "object", + "properties": { + "slack": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1slack-go~1slack" + } + } + }, + { + "type": "object", + "properties": { + "teleport": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1gravitational~1teleport" + } + } + }, + { + "type": "object", + "properties": { + "kubeforward": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1kubernetes~1kubeforward" + } + } + }, + { + "type": "object", + "properties": { + "kubectl": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1kubernetes~1kubectl" + } + } + }, + { + "type": "object", + "properties": { + "az": { + "oneOf": [ + { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1azure" + }, + { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1gcloud" + } + ] + } + } + }, + { + "type": "object", + "properties": { + "gocontentful": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1foomo~1gocontentful" + } + } + }, + { + "type": "object", + "properties": { + "beam": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1foomo~1beam" + } + } + }, + { + "type": "object", + "properties": { + "sesamy": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1foomo~1sesamy" + } + } + }, + { + "type": "object", + "properties": { + "squadron": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1foomo~1squadron" + } + } + }, + { + "type": "object", + "properties": { + "webdriverio": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio" + } + } + }, + { + "type": "object", + "properties": { + "migrate": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1golang-migrate~1migrate" + } + } + }, + { + "type": "object", + "properties": { + "bruno": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1usebruno~1bruno" + } + } + }, + { + "type": "object", + "properties": { + "harbor": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1goharbor~1harbor" + } + } + } + ], + "$defs": { + "https://github.com/foomo/posh-providers/arbitrary/open": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1arbitrary~1open~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1arbitrary~1open/$defs/Config", "$defs": { "Config": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1arbitrary~1open~1config/$defs/ConfigRouter" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1arbitrary~1open/$defs/ConfigRouter" } }, "ConfigRoute": { @@ -139,7 +305,7 @@ }, "basicAuth": { "description": "Basic authentication secret", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1arbitrary~1open~1config/$defs/Secret" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1arbitrary~1open/$defs/Secret" }, "path": { "description": "Route path", @@ -149,7 +315,7 @@ "description": "Child routes", "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1arbitrary~1open~1config/$defs/ConfigRoute" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1arbitrary~1open/$defs/ConfigRoute" } } }, @@ -167,7 +333,7 @@ "description": "Router Child routes", "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1arbitrary~1open~1config/$defs/ConfigRoute" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1arbitrary~1open/$defs/ConfigRoute" } }, "url": { @@ -198,20 +364,32 @@ } } }, - "https://github.com/foomo/posh-providers/arbitrary/task/config": { + "https://github.com/foomo/posh-providers/arbitrary/task": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1arbitrary~1task~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1arbitrary~1task/$defs/Config", "$defs": { "Config": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1arbitrary~1task~1config/$defs/Task" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1arbitrary~1task/$defs/Task" } }, "Task": { "type": "object", - "required": [ "prompt", "deps", "cmds", "hidden" ], + "required": [ + "prompt", + "env", + "description", + "precondition", + "deps", + "cmds", + "hidden" + ], "properties": { + "description": { + "description": "Description of the task", + "type": "string" + }, "cmds": { "description": "Commands to execute", "type": "array", @@ -226,10 +404,24 @@ "type": "string" } }, + "env": { + "description": "Task environment variables", + "type": "array", + "items": { + "type": "string" + } + }, "hidden": { "description": "Don't show in the completion list", "type": "boolean" }, + "precondition": { + "description": "Precondition to cancel the execution of a task and its dependencies", + "type": "array", + "items": { + "type": "string" + } + }, "prompt": { "description": "Prompt string to confirm execution", "type": "string" @@ -239,9 +431,9 @@ } } }, - "https://github.com/foomo/posh-providers/arbitrary/zip/config": { + "https://github.com/foomo/posh-providers/arbitrary/zip": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1arbitrary~1zip~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1arbitrary~1zip/$defs/Config", "$defs": { "Config": { "type": "object", @@ -250,7 +442,7 @@ "credentials": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1arbitrary~1zip~1config/$defs/Secret" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1arbitrary~1zip/$defs/Secret" } } }, @@ -277,9 +469,9 @@ } } }, - "https://github.com/foomo/posh-providers/azure/az/config": { + "https://github.com/foomo/posh-providers/azure/az": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1azure~1az~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1azure~1az/$defs/Config", "$defs": { "Artifactory": { "type": "object", @@ -311,18 +503,48 @@ }, "Config": { "type": "object", - "required": [ "configPath", "subscriptions" ], + "required": [ "configPath", "tenantId", "subscriptions", "servicePrincipals" ], "properties": { "configPath": { "description": "Config path", "type": "string" }, + "servicePrincipals": { + "description": "Authentication service principals", + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1azure~1az/$defs/ServicePrincipal" + } + }, "subscriptions": { "description": "Subscription configurations", "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1azure~1az~1config/$defs/Subscription" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1azure~1az/$defs/Subscription" } + }, + "tenantId": { + "description": "Tenant id", + "type": "string" + } + }, + "additionalProperties": false + }, + "ServicePrincipal": { + "type": "object", + "required": [ "tenantId", "clientId", "clientSecret" ], + "properties": { + "clientId": { + "description": "Application client id", + "type": "string" + }, + "clientSecret": { + "description": "Application password", + "type": "string" + }, + "tenantId": { + "description": "Tenant id", + "type": "string" } }, "additionalProperties": false @@ -334,13 +556,13 @@ "artifactories": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1azure~1az~1config/$defs/Artifactory" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1azure~1az/$defs/Artifactory" } }, "clusters": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1azure~1az~1config/$defs/Cluster" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1azure~1az/$defs/Cluster" } }, "name": { @@ -351,9 +573,9 @@ } } }, - "https://github.com/foomo/posh-providers/cloudflare/cloudflared/config": { + "https://github.com/foomo/posh-providers/cloudflare/cloudflared": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1cloudflare~1cloudflared~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1cloudflare~1cloudflared/$defs/Config", "$defs": { "Access": { "type": "object", @@ -378,7 +600,7 @@ "access": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1cloudflare~1cloudflared~1config/$defs/Access" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1cloudflare~1cloudflared/$defs/Access" } }, "path": { @@ -389,9 +611,9 @@ } } }, - "https://github.com/foomo/posh-providers/digitalocean/doctl/config": { + "https://github.com/foomo/posh-providers/digitalocean/doctl": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1digitalocean~1doctl~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1digitalocean~1doctl/$defs/Config", "$defs": { "Cluster": { "type": "object", @@ -410,7 +632,7 @@ "clusters": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1digitalocean~1doctl~1config/$defs/Cluster" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1digitalocean~1doctl/$defs/Cluster" } }, "configPath": { @@ -421,9 +643,9 @@ } } }, - "https://github.com/foomo/posh-providers/etcd-io/etcd/config": { + "https://github.com/foomo/posh-providers/etcd-io/etcd": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1etcd-io~1etcd~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1etcd-io~1etcd/$defs/Config", "$defs": { "Cluster": { "type": "object", @@ -454,7 +676,7 @@ "clusters": { "type": "array", "items": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1etcd-io~1etcd~1config/$defs/Cluster" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1etcd-io~1etcd/$defs/Cluster" } }, "configPath": { @@ -465,9 +687,9 @@ } } }, - "https://github.com/foomo/posh-providers/facebook/docusaurus/config": { + "https://github.com/foomo/posh-providers/facebook/docusaurus": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1facebook~1docusaurus~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1facebook~1docusaurus/$defs/Config", "$defs": { "Config": { "type": "object", @@ -506,9 +728,9 @@ } } }, - "https://github.com/foomo/posh-providers/filosottile/mkcert/config": { + "https://github.com/foomo/posh-providers/filosottile/mkcert": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1filosottile~1mkcert~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1filosottile~1mkcert/$defs/Config", "$defs": { "Certificate": { "type": "object", @@ -536,7 +758,7 @@ "certificates": { "type": "array", "items": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1filosottile~1mkcert~1config/$defs/Certificate" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1filosottile~1mkcert/$defs/Certificate" } } }, @@ -544,9 +766,9 @@ } } }, - "https://github.com/foomo/posh-providers/foomo/beam/config": { + "https://github.com/foomo/posh-providers/foomo/beam": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1foomo~1beam~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1foomo~1beam/$defs/Config", "$defs": { "Cluster": { "type": "object", @@ -556,7 +778,7 @@ "type": "string" }, "kubeconfig": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1foomo~1beam~1config/$defs/Secret" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1foomo~1beam/$defs/Secret" }, "port": { "type": "integer" @@ -571,13 +793,13 @@ "clusters": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1foomo~1beam~1config/$defs/Cluster" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1foomo~1beam/$defs/Cluster" } }, "databases": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1foomo~1beam~1config/$defs/Database" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1foomo~1beam/$defs/Database" } } }, @@ -617,9 +839,9 @@ } } }, - "https://github.com/foomo/posh-providers/foomo/gocontentful/config": { + "https://github.com/foomo/posh-providers/foomo/gocontentful": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1foomo~1gocontentful~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1foomo~1gocontentful/$defs/Config", "$defs": { "Config": { "type": "object", @@ -645,9 +867,9 @@ } } }, - "https://github.com/foomo/posh-providers/foomo/sesamy/config": { + "https://github.com/foomo/posh-providers/foomo/sesamy": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1foomo~1sesamy~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1foomo~1sesamy/$defs/Config", "$defs": { "Config": { "type": "object", @@ -660,9 +882,9 @@ } } }, - "https://github.com/foomo/posh-providers/foomo/squadron/config": { + "https://github.com/foomo/posh-providers/foomo/squadron": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1foomo~1squadron~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1foomo~1squadron/$defs/Config", "$defs": { "Cluster": { "type": "object", @@ -698,7 +920,7 @@ "description": "Cluster configurations", "type": "array", "items": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1foomo~1squadron~1config/$defs/Cluster" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1foomo~1squadron/$defs/Cluster" } }, "path": { @@ -710,9 +932,9 @@ } } }, - "https://github.com/foomo/posh-providers/goharbor/harbor/config": { + "https://github.com/foomo/posh-providers/goharbor/harbor": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1goharbor~1harbor~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1goharbor~1harbor/$defs/Config", "$defs": { "Config": { "type": "object", @@ -732,9 +954,9 @@ } } }, - "https://github.com/foomo/posh-providers/golang-migrate/migrate/config": { + "https://github.com/foomo/posh-providers/golang-migrate/migrate": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1golang-migrate~1migrate~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1golang-migrate~1migrate/$defs/Config", "$defs": { "Config": { "type": "object", @@ -757,9 +979,9 @@ } } }, - "https://github.com/foomo/posh-providers/google/gcloud/config": { + "https://github.com/foomo/posh-providers/google/gcloud": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1google~1gcloud~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1google~1gcloud/$defs/Config", "$defs": { "Account": { "type": "object", @@ -769,7 +991,7 @@ "type": "string" }, "key": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1google~1gcloud~1config/$defs/Secret" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1google~1gcloud/$defs/Secret" }, "name": { "type": "string" @@ -803,13 +1025,13 @@ "accounts": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1google~1gcloud~1config/$defs/Account" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1google~1gcloud/$defs/Account" } }, "clusters": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1google~1gcloud~1config/$defs/Cluster" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1google~1gcloud/$defs/Cluster" } }, "configPath": { @@ -839,9 +1061,9 @@ } } }, - "https://github.com/foomo/posh-providers/grafana/k6/config": { + "https://github.com/foomo/posh-providers/grafana/k6": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1grafana~1k6~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1grafana~1k6/$defs/Config", "$defs": { "Config": { "type": "object", @@ -850,7 +1072,7 @@ "envs": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1grafana~1k6~1config/$defs/Env" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1grafana~1k6/$defs/Env" } }, "path": { @@ -867,9 +1089,9 @@ } } }, - "https://github.com/foomo/posh-providers/gravitational/teleport/config": { + "https://github.com/foomo/posh-providers/gravitational/teleport": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1gravitational~1teleport~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1gravitational~1teleport/$defs/Config", "$defs": { "Config": { "type": "object", @@ -885,13 +1107,13 @@ } }, "database": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1gravitational~1teleport~1config/$defs/Database" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1gravitational~1teleport/$defs/Database" }, "hostname": { "type": "string" }, "kubernetes": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1gravitational~1teleport~1config/$defs/Kubernetes" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1gravitational~1teleport/$defs/Kubernetes" }, "labels": { "type": "object", @@ -930,9 +1152,9 @@ } } }, - "https://github.com/foomo/posh-providers/gruntwork-io/terragrunt/config": { + "https://github.com/foomo/posh-providers/gruntwork-io/terragrunt": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1gruntwork-io~1terragrunt~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1gruntwork-io~1terragrunt/$defs/Config", "$defs": { "Config": { "type": "object", @@ -949,9 +1171,9 @@ } } }, - "https://github.com/foomo/posh-providers/hashicorp/cdktf/config": { + "https://github.com/foomo/posh-providers/hashicorp/cdktf": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1hashicorp~1cdktf~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1hashicorp~1cdktf/$defs/Config", "$defs": { "Config": { "type": "object", @@ -968,9 +1190,9 @@ } } }, - "https://github.com/foomo/posh-providers/jondot/hygen/config": { + "https://github.com/foomo/posh-providers/jondot/hygen": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1jondot~1hygen~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1jondot~1hygen/$defs/Config", "$defs": { "Config": { "type": "object", @@ -984,25 +1206,25 @@ } } }, - "https://github.com/foomo/posh-providers/k3d-io/k3d/config": { + "https://github.com/foomo/posh-providers/k3d-io/k3d": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1k3d-io~1k3d~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1k3d-io~1k3d/$defs/Config", "$defs": { "Config": { "type": "object", "required": [ "charts", "registry", "clusters" ], "properties": { "charts": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1k3d-io~1k3d~1config/$defs/ConfigCharts" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1k3d-io~1k3d/$defs/ConfigCharts" }, "clusters": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1k3d-io~1k3d~1config/$defs/ConfigCluster" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1k3d-io~1k3d/$defs/ConfigCluster" } }, "registry": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1k3d-io~1k3d~1config/$defs/ConfigRegistry" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1k3d-io~1k3d/$defs/ConfigRegistry" } }, "additionalProperties": false @@ -1065,9 +1287,9 @@ } } }, - "https://github.com/foomo/posh-providers/kubernets/kubectl/config": { + "https://github.com/foomo/posh-providers/kubernetes/kubectl": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1kubernets~1kubectl~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1kubernetes~1kubectl/$defs/Config", "$defs": { "Config": { "type": "object", @@ -1081,14 +1303,14 @@ } } }, - "https://github.com/foomo/posh-providers/kubernets/kubeforward/config": { + "https://github.com/foomo/posh-providers/kubernetes/kubeforward": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1kubernets~1kubeforward~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1kubernetes~1kubeforward/$defs/Config", "$defs": { "Config": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1kubernets~1kubeforward~1config/$defs/PortForward" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1kubernetes~1kubeforward/$defs/PortForward" } }, "PortForward": { @@ -1120,9 +1342,9 @@ } } }, - "https://github.com/foomo/posh-providers/onepassword/config": { + "https://github.com/foomo/posh-providers/onepassword/op": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1onepassword~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1onepassword~1op/$defs/Config", "$defs": { "Config": { "type": "object", @@ -1139,9 +1361,9 @@ } } }, - "https://github.com/foomo/posh-providers/pivotal/licensefinder/config": { + "https://github.com/foomo/posh-providers/pivotal/licensefinder": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1pivotal~1licensefinder~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1pivotal~1licensefinder/$defs/Config", "$defs": { "Config": { "type": "object", @@ -1164,9 +1386,9 @@ } } }, - "https://github.com/foomo/posh-providers/pulumi/pulumi/azure/config": { + "https://github.com/foomo/posh-providers/pulumi/pulumi/azure": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1azure~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1azure/$defs/Config", "$defs": { "Backend": { "type": "object", @@ -1186,7 +1408,7 @@ "type": "string" }, "passphrase": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1azure~1config/$defs/Secret" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1azure/$defs/Secret" }, "resourceGroup": { "type": "string" @@ -1207,7 +1429,7 @@ "backends": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1azure~1config/$defs/Backend" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1azure/$defs/Backend" } }, "configPath": { @@ -1240,9 +1462,9 @@ } } }, - "https://github.com/foomo/posh-providers/pulumi/pulumi/gcloud/config": { + "https://github.com/foomo/posh-providers/pulumi/pulumi/gcloud": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1gcloud~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1gcloud/$defs/Config", "$defs": { "Backend": { "type": "object", @@ -1255,7 +1477,7 @@ "type": "string" }, "passphrase": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1gcloud~1config/$defs/Secret" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1gcloud/$defs/Secret" }, "project": { "type": "string" @@ -1270,7 +1492,7 @@ "backends": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1gcloud~1config/$defs/Backend" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1pulumi~1pulumi~1gcloud/$defs/Backend" } }, "configPath": { @@ -1303,9 +1525,9 @@ } } }, - "https://github.com/foomo/posh-providers/rclone/rclone/config": { + "https://github.com/foomo/posh-providers/rclone/rclone": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1rclone~1rclone~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1rclone~1rclone/$defs/Config", "$defs": { "Config": { "type": "object", @@ -1322,9 +1544,9 @@ } } }, - "https://github.com/foomo/posh-providers/slack-go/slack/config": { + "https://github.com/foomo/posh-providers/slack-go/slack": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1slack-go~1slack~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1slack-go~1slack/$defs/Config", "$defs": { "Config": { "type": "object", @@ -1337,12 +1559,12 @@ } }, "token": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1slack-go~1slack~1config/$defs/Secret" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1slack-go~1slack/$defs/Secret" }, "webhooks": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1slack-go~1slack~1config/$defs/Secret" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1slack-go~1slack/$defs/Secret" } } }, @@ -1369,9 +1591,9 @@ } } }, - "https://github.com/foomo/posh-providers/sqlc-dev/sqlc/config": { + "https://github.com/foomo/posh-providers/sqlc-dev/sqlc": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1sqlc-dev~1sqlc~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1sqlc-dev~1sqlc/$defs/Config", "$defs": { "Config": { "type": "object", @@ -1388,9 +1610,9 @@ } } }, - "https://github.com/foomo/posh-providers/stackitcloud/stackit/config": { + "https://github.com/foomo/posh-providers/stackitcloud/stackit": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1stackitcloud~1stackit~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1stackitcloud~1stackit/$defs/Config", "$defs": { "Cluster": { "type": "object", @@ -1409,7 +1631,7 @@ "projects": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1stackitcloud~1stackit~1config/$defs/Project" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1stackitcloud~1stackit/$defs/Project" } } }, @@ -1425,7 +1647,7 @@ "clusters": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1stackitcloud~1stackit~1config/$defs/Cluster" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1stackitcloud~1stackit/$defs/Cluster" } } }, @@ -1433,9 +1655,9 @@ } } }, - "https://github.com/foomo/posh-providers/stern/stern/config": { + "https://github.com/foomo/posh-providers/stern/stern": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1stern~1stern~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1stern~1stern/$defs/Config", "$defs": { "Config": { "type": "object", @@ -1444,7 +1666,7 @@ "queries": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1stern~1stern~1config/$defs/Query" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1stern~1stern/$defs/Query" } } }, @@ -1457,7 +1679,7 @@ "queries": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1stern~1stern~1config/$defs/Query" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1stern~1stern/$defs/Query" } }, "query": { @@ -1471,9 +1693,9 @@ } } }, - "https://github.com/foomo/posh-providers/usebruno/bruno/config": { + "https://github.com/foomo/posh-providers/usebruno/bruno": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1usebruno~1bruno~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1usebruno~1bruno/$defs/Config", "$defs": { "Config": { "type": "object", @@ -1487,16 +1709,16 @@ } } }, - "https://github.com/foomo/posh-providers/webdriverio/webdriverio/config": { + "https://github.com/foomo/posh-providers/webdriverio/webdriverio": { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio~1config/$defs/Config", + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio/$defs/Config", "$defs": { "Config": { "type": "object", "required": [ "dirs", "modes", "sites", "secrets", "browserStack" ], "properties": { "browserStack": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio~1config/$defs/Secret" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio/$defs/Secret" }, "dirs": { "type": "array", @@ -1505,16 +1727,16 @@ } }, "modes": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio~1config/$defs/ConfigModes" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio/$defs/ConfigModes" }, "secrets": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio~1config/$defs/Secret" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio/$defs/Secret" } }, "sites": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio~1config/$defs/ConfigSites" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio/$defs/ConfigSites" } }, "additionalProperties": false @@ -1524,7 +1746,7 @@ "required": [ "auth", "domain" ], "properties": { "auth": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio~1config/$defs/Secret" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio/$defs/Secret" }, "domain": { "type": "string" @@ -1535,7 +1757,7 @@ "ConfigEnvs": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio~1config/$defs/ConfigEnv" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio/$defs/ConfigEnv" } }, "ConfigMode": { @@ -1554,13 +1776,13 @@ "ConfigModes": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio~1config/$defs/ConfigMode" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio/$defs/ConfigMode" } }, "ConfigSites": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/https%3A~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio~1config/$defs/ConfigEnvs" + "$ref": "#/$defs/https:~1~1github.com~1foomo~1posh-providers~1webdriverio~1webdriverio/$defs/ConfigEnvs" } }, "Secret": { @@ -1583,6 +1805,147 @@ "additionalProperties": false } } + }, + "https://raw.githubusercontent.com/foomo/posh/refs/heads/main/posh.schema.json": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$ref": "#/$defs/https:~1~1raw.githubusercontent.com~1foomo~1posh~1refs~1heads~1main~1posh.schema.json/$defs/Config", + "$defs": { + "Config": { + "type": "object", + "required": [ "version" ], + "properties": { + "env": { + "$ref": "#/$defs/https:~1~1raw.githubusercontent.com~1foomo~1posh~1refs~1heads~1main~1posh.schema.json/$defs/Env" + }, + "prompt": { + "$ref": "#/$defs/https:~1~1raw.githubusercontent.com~1foomo~1posh~1refs~1heads~1main~1posh.schema.json/$defs/Prompt" + }, + "require": { + "$ref": "#/$defs/https:~1~1raw.githubusercontent.com~1foomo~1posh~1refs~1heads~1main~1posh.schema.json/$defs/Require" + }, + "version": { + "default": "v1.0", + "type": "string" + } + } + }, + "Env": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "Prompt": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "aliases": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "history": { + "$ref": "#/$defs/https:~1~1raw.githubusercontent.com~1foomo~1posh~1refs~1heads~1main~1posh.schema.json/$defs/PromptHistory" + }, + "prefix": { + "type": "string" + }, + "prefixGit": { + "type": "boolean" + } + } + }, + "PromptHistory": { + "type": "object", + "properties": { + "filename": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "lockFilename": { + "type": "string" + } + } + }, + "Require": { + "type": "object", + "properties": { + "envs": { + "type": "array", + "items": { + "$ref": "#/$defs/https:~1~1raw.githubusercontent.com~1foomo~1posh~1refs~1heads~1main~1posh.schema.json/$defs/RequireEnv" + } + }, + "packages": { + "type": "array", + "items": { + "$ref": "#/$defs/https:~1~1raw.githubusercontent.com~1foomo~1posh~1refs~1heads~1main~1posh.schema.json/$defs/RequirePackage" + } + }, + "scripts": { + "type": "array", + "items": { + "$ref": "#/$defs/https:~1~1raw.githubusercontent.com~1foomo~1posh~1refs~1heads~1main~1posh.schema.json/$defs/RequireScript" + } + } + } + }, + "RequireEnv": { + "type": "object", + "properties": { + "help": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "RequirePackage": { + "type": "object", + "properties": { + "command": { + "type": "string" + }, + "help": { + "type": "string" + }, + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + } + }, + "RequireScript": { + "type": "object", + "properties": { + "command": { + "type": "string" + }, + "help": { + "type": "string" + }, + "name": { + "type": "string" + } + } + } + } } } } diff --git a/pulumi/pulumi/azure/config.schema.json b/pulumi/pulumi/azure/config.schema.json index 474b7a3..b18d00b 100644 --- a/pulumi/pulumi/azure/config.schema.json +++ b/pulumi/pulumi/azure/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/pulumi/pulumi/azure/config", + "$id": "https://github.com/foomo/posh-providers/pulumi/pulumi/azure", "$ref": "#/$defs/Config", "$defs": { "Backend": { diff --git a/pulumi/pulumi/azure/config_test.go b/pulumi/pulumi/azure/config_test.go index 329e9db..3eb53cf 100644 --- a/pulumi/pulumi/azure/config_test.go +++ b/pulumi/pulumi/azure/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/pulumi/pulumi/azure", "./")) schema := reflector.Reflect(&pulumi.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/pulumi/pulumi/azure" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/pulumi/pulumi/config.base.json b/pulumi/pulumi/config.base.json new file mode 100644 index 0000000..022935e --- /dev/null +++ b/pulumi/pulumi/config.base.json @@ -0,0 +1,19 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "az": { + "oneOf": [ + { + "$ref": "https://github.com/foomo/posh-providers/pulumi/pulumi/azure" + }, + { + "$ref": "https://github.com/foomo/posh-providers/pulumi/pulumi/gcloud" + } + ] + } + } + } + ] +} diff --git a/pulumi/pulumi/gcloud/config.schema.json b/pulumi/pulumi/gcloud/config.schema.json index a365b6c..e500819 100644 --- a/pulumi/pulumi/gcloud/config.schema.json +++ b/pulumi/pulumi/gcloud/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/pulumi/pulumi/gcloud/config", + "$id": "https://github.com/foomo/posh-providers/pulumi/pulumi/gcloud", "$ref": "#/$defs/Config", "$defs": { "Backend": { diff --git a/pulumi/pulumi/gcloud/config_test.go b/pulumi/pulumi/gcloud/config_test.go index b614a59..e6ba583 100644 --- a/pulumi/pulumi/gcloud/config_test.go +++ b/pulumi/pulumi/gcloud/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/pulumi/pulumi/gcloud", "./")) schema := reflector.Reflect(&pulumi.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/pulumi/pulumi/gcloud" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/rclone/rclone/config.base.json b/rclone/rclone/config.base.json new file mode 100644 index 0000000..8f05066 --- /dev/null +++ b/rclone/rclone/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "rclone": { + "$ref": "https://github.com/foomo/posh-providers/rclone/rclone" + } + } + } + ] +} diff --git a/rclone/rclone/config.schema.json b/rclone/rclone/config.schema.json index 457dda9..ea55e49 100644 --- a/rclone/rclone/config.schema.json +++ b/rclone/rclone/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/rclone/rclone/config", + "$id": "https://github.com/foomo/posh-providers/rclone/rclone", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/rclone/rclone/config_test.go b/rclone/rclone/config_test.go index 15e06d3..95d94ef 100644 --- a/rclone/rclone/config_test.go +++ b/rclone/rclone/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/rclone/rclone", "./")) schema := reflector.Reflect(&rclone.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/rclone/rclone" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/schema_test.go b/schema_test.go new file mode 100644 index 0000000..8e2e9f0 --- /dev/null +++ b/schema_test.go @@ -0,0 +1,57 @@ +package main_test + +import ( + "encoding/json" + "os" + "path" + "testing" + + testingx "github.com/foomo/go/testing" + tagx "github.com/foomo/go/testing/tag" + "github.com/foomo/posh/pkg/config" + "github.com/invopop/jsonschema" + "github.com/pkg/errors" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +type Posh struct { + // Version of the config + Version string `json:"version" jsonschema:"required,default=v1.0"` + // Environment variables + Env config.Env `json:"env"` + // Prompt settings + Prompt config.Prompt `json:"prompt"` + // Require settings + Require config.Require `json:"require"` +} + +type Config struct { + Posh `json:",inline"` +} + +func TestSchema(t *testing.T) { + t.Parallel() + testingx.Tags(t, tagx.Short) + + cwd, err := os.Getwd() + require.NoError(t, err) + + reflector := new(jsonschema.Reflector) + reflector.AllowAdditionalProperties = true + reflector.RequiredFromJSONSchemaTags = true + require.NoError(t, reflector.AddGoComments("github.com/foomo/posh", "./")) + schema := reflector.Reflect(&Posh{}) + actual, err := json.MarshalIndent(schema, "", " ") + require.NoError(t, err) + + filename := path.Join(cwd, "posh.schema.json") + expected, err := os.ReadFile(filename) + if !errors.Is(err, os.ErrNotExist) { + require.NoError(t, err) + } + + if !assert.Equal(t, string(expected), string(actual)) { + require.NoError(t, os.WriteFile(filename, actual, 0600)) + } +} diff --git a/slack-go/slack/config.base.json b/slack-go/slack/config.base.json new file mode 100644 index 0000000..ddc068f --- /dev/null +++ b/slack-go/slack/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "slack": { + "$ref": "https://github.com/foomo/posh-providers/slack-go/slack" + } + } + } + ] +} diff --git a/slack-go/slack/config.schema.json b/slack-go/slack/config.schema.json index 9d2bb2b..4605e7d 100644 --- a/slack-go/slack/config.schema.json +++ b/slack-go/slack/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/slack-go/slack/config", + "$id": "https://github.com/foomo/posh-providers/slack-go/slack", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/slack-go/slack/config_test.go b/slack-go/slack/config_test.go index 5b34cd6..078cb3e 100644 --- a/slack-go/slack/config_test.go +++ b/slack-go/slack/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/slack-go/slack", "./")) schema := reflector.Reflect(&slack.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/slack-go/slack" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/sqlc-dev/sqlc/config.base.json b/sqlc-dev/sqlc/config.base.json new file mode 100644 index 0000000..3ebca82 --- /dev/null +++ b/sqlc-dev/sqlc/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "sqlc": { + "$ref": "https://github.com/foomo/posh-providers/sqlc-dev/sqlc" + } + } + } + ] +} diff --git a/sqlc-dev/sqlc/config.schema.json b/sqlc-dev/sqlc/config.schema.json index 2679530..3b438d6 100644 --- a/sqlc-dev/sqlc/config.schema.json +++ b/sqlc-dev/sqlc/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/sqlc-dev/sqlc/config", + "$id": "https://github.com/foomo/posh-providers/sqlc-dev/sqlc", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/sqlc-dev/sqlc/config_test.go b/sqlc-dev/sqlc/config_test.go index d2446a7..aa5a3b6 100644 --- a/sqlc-dev/sqlc/config_test.go +++ b/sqlc-dev/sqlc/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/sqlc-dev/sqlc", "./")) schema := reflector.Reflect(&sqlc.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/sqlc-dev/sqlc" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/stackitcloud/stackit/config.base.json b/stackitcloud/stackit/config.base.json new file mode 100644 index 0000000..8b0fe18 --- /dev/null +++ b/stackitcloud/stackit/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "stackit": { + "$ref": "https://github.com/foomo/posh-providers/stackitcloud/stackit" + } + } + } + ] +} diff --git a/stackitcloud/stackit/config.schema.json b/stackitcloud/stackit/config.schema.json index a8c8105..fc06a05 100644 --- a/stackitcloud/stackit/config.schema.json +++ b/stackitcloud/stackit/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/stackitcloud/stackit/config", + "$id": "https://github.com/foomo/posh-providers/stackitcloud/stackit", "$ref": "#/$defs/Config", "$defs": { "Cluster": { diff --git a/stackitcloud/stackit/config_test.go b/stackitcloud/stackit/config_test.go index 80b835c..0f533c7 100644 --- a/stackitcloud/stackit/config_test.go +++ b/stackitcloud/stackit/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/stackitcloud/stackit", "./")) schema := reflector.Reflect(&stackit.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/stackitcloud/stackit" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/stern/stern/config.base.json b/stern/stern/config.base.json new file mode 100644 index 0000000..767944a --- /dev/null +++ b/stern/stern/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "stern": { + "$ref": "https://github.com/foomo/posh-providers/stern/stern" + } + } + } + ] +} diff --git a/stern/stern/config.schema.json b/stern/stern/config.schema.json index 265fd68..27fda1b 100644 --- a/stern/stern/config.schema.json +++ b/stern/stern/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/stern/stern/config", + "$id": "https://github.com/foomo/posh-providers/stern/stern", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/stern/stern/config_test.go b/stern/stern/config_test.go index 00fb33a..0434959 100644 --- a/stern/stern/config_test.go +++ b/stern/stern/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/stern/stern", "./")) schema := reflector.Reflect(&stern.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/stern/stern" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/usebruno/bruno/config.base.json b/usebruno/bruno/config.base.json new file mode 100644 index 0000000..0f8e7e7 --- /dev/null +++ b/usebruno/bruno/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "bruno": { + "$ref": "https://github.com/foomo/posh-providers/usebruno/bruno" + } + } + } + ] +} diff --git a/usebruno/bruno/config.schema.json b/usebruno/bruno/config.schema.json index 51578fd..d00dd9a 100644 --- a/usebruno/bruno/config.schema.json +++ b/usebruno/bruno/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/usebruno/bruno/config", + "$id": "https://github.com/foomo/posh-providers/usebruno/bruno", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/usebruno/bruno/config_test.go b/usebruno/bruno/config_test.go index 62e9611..3fd6795 100644 --- a/usebruno/bruno/config_test.go +++ b/usebruno/bruno/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/usebruno/bruno", "./")) schema := reflector.Reflect(&bruno.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/usebruno/bruno" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err) diff --git a/webdriverio/webdriverio/config.base.json b/webdriverio/webdriverio/config.base.json new file mode 100644 index 0000000..e05fec0 --- /dev/null +++ b/webdriverio/webdriverio/config.base.json @@ -0,0 +1,12 @@ +{ + "allOf": [ + { + "type": "object", + "properties": { + "webdriverio": { + "$ref": "https://github.com/foomo/posh-providers/webdriverio/webdriverio" + } + } + } + ] +} diff --git a/webdriverio/webdriverio/config.schema.json b/webdriverio/webdriverio/config.schema.json index ba8d8ba..521531b 100644 --- a/webdriverio/webdriverio/config.schema.json +++ b/webdriverio/webdriverio/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/posh-providers/webdriverio/webdriverio/config", + "$id": "https://github.com/foomo/posh-providers/webdriverio/webdriverio", "$ref": "#/$defs/Config", "$defs": { "Config": { diff --git a/webdriverio/webdriverio/config_test.go b/webdriverio/webdriverio/config_test.go index 7d98335..137ffd3 100644 --- a/webdriverio/webdriverio/config_test.go +++ b/webdriverio/webdriverio/config_test.go @@ -25,6 +25,7 @@ func TestConfig(t *testing.T) { reflector := new(jsonschema.Reflector) require.NoError(t, reflector.AddGoComments("github.com/foomo/posh-providers/webdriverio/webdriverio", "./")) schema := reflector.Reflect(&webdriverio.Config{}) + schema.ID = "https://github.com/foomo/posh-providers/webdriverio/webdriverio" actual, err := json.MarshalIndent(schema, "", " ") require.NoError(t, err)