You've already forked woodpecker
							
							
				mirror of
				https://github.com/woodpecker-ci/woodpecker.git
				synced 2025-10-30 23:27:39 +02:00 
			
		
		
		
	Cleanup openapi generation (#4331)
Co-authored-by: oauth <woodpecker-bot@obermui.de> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: 6543 <6543@obermui.de>
This commit is contained in:
		| @@ -129,6 +129,7 @@ | ||||
|     "nosniff", | ||||
|     "ntfy", | ||||
|     "octocat", | ||||
|     "openapi", | ||||
|     "opensource", | ||||
|     "Pacman", | ||||
|     "picus", | ||||
| @@ -250,7 +251,7 @@ | ||||
|     "flake.lock", | ||||
|     "pnpm-lock.yaml", | ||||
|     "**/node_modules/**/*", | ||||
|     "cmd/server/docs/docs.go", | ||||
|     "cmd/server/openapi/docs.go", | ||||
|     "renovate.json", | ||||
|     // TODO: remove the following | ||||
|     "docs/**/*.js", | ||||
|   | ||||
							
								
								
									
										5
									
								
								.ecrc
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								.ecrc
									
									
									
									
									
								
							| @@ -1,14 +1,15 @@ | ||||
| { | ||||
|   "Exclude": [ | ||||
|     ".git", | ||||
|     "go.mod", "go.sum", | ||||
|     "go.mod", | ||||
|     "go.sum", | ||||
|     "vendor", | ||||
|     "fixtures", | ||||
|     "LICENSE", | ||||
|     "node_modules", | ||||
|     "server/store/datastore/migration/test-files/sqlite.db", | ||||
|     "server/store/datastore/feed.go", | ||||
|     "cmd/server/docs/docs.go", | ||||
|     "cmd/server/openapi/docs.go", | ||||
|     "_test.go", | ||||
|     "Makefile" | ||||
|   ] | ||||
|   | ||||
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -51,4 +51,7 @@ docs/venv | ||||
|  | ||||
| ### Generated by CI ### | ||||
| docs/docs/40-cli.md | ||||
| docs/openapi.json | ||||
|  | ||||
| # Removed once v3.0.x is minimum version to be touched | ||||
| docs/swagger.json | ||||
|   | ||||
| @@ -58,14 +58,14 @@ steps: | ||||
|       - make lint | ||||
|     when: *when | ||||
|  | ||||
|   check-swagger: | ||||
|   check-openapi: | ||||
|     depends_on: | ||||
|       - vendor | ||||
|     image: *golang_image | ||||
|     commands: | ||||
|       - 'make generate-swagger' | ||||
|       - 'make generate-openapi' | ||||
|       - 'DIFF=$(git diff | head)' | ||||
|       - '[ -n "$DIFF" ] && { echo "swagger not up to date, exec `make generate-swagger` and commit"; exit 1; } || true' | ||||
|       - '[ -n "$DIFF" ] && { echo "openapi not up to date, exec `make generate-openapi` and commit"; exit 1; } || true' | ||||
|     when: *when | ||||
|  | ||||
|   lint-license-header: | ||||
|   | ||||
							
								
								
									
										17
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								Makefile
									
									
									
									
									
								
							| @@ -109,15 +109,15 @@ clean: ## Clean build artifacts | ||||
| clean-all: clean ## Clean all artifacts | ||||
| 	rm -rf ${DIST_DIR} web/dist docs/build docs/node_modules web/node_modules | ||||
| 	# delete generated | ||||
| 	rm -rf docs/docs/40-cli.md docs/swagger.json | ||||
| 	rm -rf docs/docs/40-cli.md docs/openapi.json | ||||
|  | ||||
| .PHONY: generate | ||||
| generate: install-tools generate-swagger ## Run all code generations | ||||
| generate: install-tools generate-openapi ## Run all code generations | ||||
| 	CGO_ENABLED=0 go generate ./... | ||||
|  | ||||
| generate-swagger: install-tools ## Run swagger code generation | ||||
| 	swag init -g server/api/ -g cmd/server/swagger.go --outputTypes go -output cmd/server/docs | ||||
| 	CGO_ENABLED=0 go generate cmd/server/swagger.go | ||||
| generate-openapi: install-tools ## Run openapi code generation and format it | ||||
| 	go run github.com/swaggo/swag/cmd/swag fmt | ||||
| 	CGO_ENABLED=0 go generate cmd/server/openapi.go | ||||
|  | ||||
| generate-license-header: install-tools | ||||
| 	addlicense -c "Woodpecker Authors" -ignore "vendor/**" **/*.go | ||||
| @@ -134,9 +134,6 @@ install-tools: ## Install development tools | ||||
| 	hash gofumpt > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ | ||||
| 		go install mvdan.cc/gofumpt@latest; \ | ||||
| 	fi ; \ | ||||
| 	hash swag > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ | ||||
| 		go install github.com/swaggo/swag/cmd/swag@latest; \ | ||||
| 	fi ; \ | ||||
| 	hash addlicense > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ | ||||
| 		go install github.com/google/addlicense@latest; \ | ||||
| 	fi ; \ | ||||
| @@ -196,7 +193,7 @@ test: test-agent test-server test-server-datastore test-cli test-lib ## Run all | ||||
| build-ui: ## Build UI | ||||
| 	(cd web/; pnpm install --frozen-lockfile; pnpm build) | ||||
|  | ||||
| build-server: build-ui generate-swagger ## Build server | ||||
| build-server: build-ui generate-openapi ## Build server | ||||
| 	CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -tags '$(TAGS)' -ldflags '${LDFLAGS}' -o ${DIST_DIR}/woodpecker-server${BIN_SUFFIX} go.woodpecker-ci.org/woodpecker/v2/cmd/server | ||||
|  | ||||
| build-agent: ## Build agent | ||||
| @@ -343,6 +340,6 @@ spellcheck: | ||||
| .PHONY: docs | ||||
| docs: ## Generate docs (currently only for the cli) | ||||
| 	CGO_ENABLED=0 go generate cmd/cli/app.go | ||||
| 	CGO_ENABLED=0 go generate cmd/server/swagger.go | ||||
| 	CGO_ENABLED=0 go generate cmd/server/openapi.go | ||||
|  | ||||
| endif | ||||
|   | ||||
| @@ -12,6 +12,9 @@ | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| //go:build !generate | ||||
| // +build !generate | ||||
|  | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| @@ -22,7 +25,7 @@ import ( | ||||
| 	"github.com/rs/zerolog/log" | ||||
| 	"github.com/urfave/cli/v3" | ||||
|  | ||||
| 	_ "go.woodpecker-ci.org/woodpecker/v2/cmd/server/docs" | ||||
| 	_ "go.woodpecker-ci.org/woodpecker/v2/cmd/server/openapi" | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/shared/utils" | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/version" | ||||
| ) | ||||
| @@ -46,7 +49,7 @@ func main() { | ||||
| 	} | ||||
| 	app.Flags = flags | ||||
|  | ||||
| 	setupSwaggerStaticConfig() | ||||
| 	setupOpenAPIStaticConfig() | ||||
|  | ||||
| 	if err := app.Run(ctx, os.Args); err != nil { | ||||
| 		log.Error().Err(err).Msgf("error running server") | ||||
|   | ||||
							
								
								
									
										38
									
								
								cmd/server/openapi.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								cmd/server/openapi.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| // Copyright 2023 Woodpecker Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //      http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/cmd/server/openapi" | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/version" | ||||
| ) | ||||
|  | ||||
| // Generate docs/openapi.json via: | ||||
| //go:generate go run github.com/swaggo/swag/cmd/swag init -g cmd/server/openapi.go --outputTypes go -output openapi -d ../../ | ||||
| //go:generate go run openapi_json_gen.go openapi.go | ||||
| //go:generate go run github.com/getkin/kin-openapi/cmd/validate@latest ../../docs/openapi.json | ||||
|  | ||||
| // setupOpenAPIStaticConfig initializes static content (version) for the OpenAPI config. | ||||
| // | ||||
| //	@title			Woodpecker CI API | ||||
| //	@description	Woodpecker is a simple, yet powerful CI/CD engine with great extensibility. | ||||
| //	@description	To get a personal access token (PAT) for authentication, please log in your Woodpecker server, | ||||
| //	@description	and go to you personal profile page, by clicking the user icon at the top right. | ||||
| //	@BasePath		/api | ||||
| //	@contact.name	Woodpecker CI | ||||
| //	@contact.url	https://woodpecker-ci.org/ | ||||
| func setupOpenAPIStaticConfig() { | ||||
| 	openapi.SwaggerInfo.Version = version.String() | ||||
| } | ||||
| @@ -1,5 +1,5 @@ | ||||
| // Package docs Code generated by swaggo/swag. DO NOT EDIT | ||||
| package docs | ||||
| // Package openapi Code generated by swaggo/swag. DO NOT EDIT | ||||
| package openapi | ||||
| 
 | ||||
| import "github.com/swaggo/swag" | ||||
| 
 | ||||
| @@ -10,7 +10,7 @@ const docTemplate = `{ | ||||
|         "description": "{{escape .Description}}", | ||||
|         "title": "{{.Title}}", | ||||
|         "contact": { | ||||
|             "name": "Woodpecker CI Community", | ||||
|             "name": "Woodpecker CI", | ||||
|             "url": "https://woodpecker-ci.org/" | ||||
|         }, | ||||
|         "version": "{{.Version}}" | ||||
| @@ -122,7 +122,7 @@ const docTemplate = `{ | ||||
|                     { | ||||
|                         "type": "integer", | ||||
|                         "description": "the agent's id", | ||||
|                         "name": "agent", | ||||
|                         "name": "agent_id", | ||||
|                         "in": "path", | ||||
|                         "required": true | ||||
|                     } | ||||
| @@ -156,7 +156,7 @@ const docTemplate = `{ | ||||
|                     { | ||||
|                         "type": "integer", | ||||
|                         "description": "the agent's id", | ||||
|                         "name": "agent", | ||||
|                         "name": "agent_id", | ||||
|                         "in": "path", | ||||
|                         "required": true | ||||
|                     } | ||||
| @@ -187,7 +187,7 @@ const docTemplate = `{ | ||||
|                     { | ||||
|                         "type": "integer", | ||||
|                         "description": "the agent's id", | ||||
|                         "name": "agent", | ||||
|                         "name": "agent_id", | ||||
|                         "in": "path", | ||||
|                         "required": true | ||||
|                     }, | ||||
| @@ -232,7 +232,7 @@ const docTemplate = `{ | ||||
|                     { | ||||
|                         "type": "integer", | ||||
|                         "description": "the agent's id", | ||||
|                         "name": "agent", | ||||
|                         "name": "agent_id", | ||||
|                         "in": "path", | ||||
|                         "required": true | ||||
|                     } | ||||
| @@ -4554,22 +4554,15 @@ const docTemplate = `{ | ||||
|                     "200": { | ||||
|                         "description": "OK", | ||||
|                         "schema": { | ||||
|                             "allOf": [ | ||||
|                                 { | ||||
|                             "type": "object", | ||||
|                             "properties": { | ||||
|                                 "source": { | ||||
|                                     "type": "string" | ||||
|                                 }, | ||||
|                                 { | ||||
|                                     "type": "object", | ||||
|                                     "properties": { | ||||
|                                         "source": { | ||||
|                                             "type": "string" | ||||
|                                         }, | ||||
|                                         "version": { | ||||
|                                             "type": "string" | ||||
|                                         } | ||||
|                                     } | ||||
|                                 "version": { | ||||
|                                     "type": "string" | ||||
|                                 } | ||||
|                             ] | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
| @@ -5791,10 +5784,10 @@ const docTemplate = `{ | ||||
| var SwaggerInfo = &swag.Spec{ | ||||
| 	Version:          "", | ||||
| 	Host:             "", | ||||
| 	BasePath:         "", | ||||
| 	BasePath:         "/api", | ||||
| 	Schemes:          []string{}, | ||||
| 	Title:            "", | ||||
| 	Description:      "", | ||||
| 	Title:            "Woodpecker CI API", | ||||
| 	Description:      "Woodpecker is a simple, yet powerful CI/CD engine with great extensibility.\nTo get a personal access token (PAT) for authentication, please log in your Woodpecker server,\nand go to you personal profile page, by clicking the user icon at the top right.", | ||||
| 	InfoInstanceName: "swagger", | ||||
| 	SwaggerTemplate:  docTemplate, | ||||
| 	LeftDelim:        "{{", | ||||
| @@ -12,9 +12,9 @@ | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| // ************************************************************************************************ | ||||
| // This is a generator tool, to update the Markdown documentation for the woodpecker-ci.org website | ||||
| // ************************************************************************************************ | ||||
| // ********************************************************* | ||||
| // This is a generator tool, to update the openapi.json file | ||||
| // ********************************************************* | ||||
| 
 | ||||
| //go:build generate | ||||
| // +build generate | ||||
| @@ -30,23 +30,24 @@ import ( | ||||
| 
 | ||||
| 	"github.com/getkin/kin-openapi/openapi2" | ||||
| 	"github.com/getkin/kin-openapi/openapi2conv" | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/cmd/server/docs" | ||||
| 
 | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/cmd/server/openapi" | ||||
| ) | ||||
| 
 | ||||
| func main() { | ||||
| 	// set swagger infos | ||||
| 	setupSwaggerStaticConfig() | ||||
| 	// set openapi infos | ||||
| 	setupOpenAPIStaticConfig() | ||||
| 
 | ||||
| 	basePath := path.Join("..", "..") | ||||
| 	filePath := path.Join(basePath, "docs", "swagger.json") | ||||
| 	filePath := path.Join(basePath, "docs", "openapi.json") | ||||
| 
 | ||||
| 	// generate swagger file | ||||
| 	// generate openapi file | ||||
| 	f, err := os.Create(filePath) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
| 	defer f.Close() | ||||
| 	doc := docs.SwaggerInfo.ReadDoc() | ||||
| 	doc := openapi.SwaggerInfo.ReadDoc() | ||||
| 	doc, err = removeHost(doc) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| @@ -56,6 +57,8 @@ func main() { | ||||
| 		panic(err) | ||||
| 	} | ||||
| 
 | ||||
| 	fmt.Println("generated openapi.json") | ||||
| 
 | ||||
| 	// convert to OpenApi3 | ||||
| 	if err := toOpenApi3(filePath, filePath); err != nil { | ||||
| 		fmt.Printf("converting '%s' from openapi v2 to v3 failed\n", filePath) | ||||
							
								
								
									
										14
									
								
								cmd/server/openapi_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								cmd/server/openapi_test.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"testing" | ||||
|  | ||||
| 	"github.com/stretchr/testify/assert" | ||||
|  | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/cmd/server/openapi" | ||||
| ) | ||||
|  | ||||
| func TestSetupOpenApiStaticConfig(t *testing.T) { | ||||
| 	setupOpenAPIStaticConfig() | ||||
| 	assert.Equal(t, "/api", openapi.SwaggerInfo.BasePath) | ||||
| } | ||||
| @@ -1,39 +0,0 @@ | ||||
| // Copyright 2023 Woodpecker Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //      http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/cmd/server/docs" | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/version" | ||||
| ) | ||||
|  | ||||
| // Generate docs/swagger.json via: | ||||
| //go:generate go run woodpecker_docs_gen.go swagger.go | ||||
| //go:generate go run github.com/getkin/kin-openapi/cmd/validate@latest ../../docs/swagger.json | ||||
|  | ||||
| // setupSwaggerStaticConfig initializes static content only (contacts, title and description) | ||||
| // for dynamic configuration of e.g. hostname, etc. see router.setupSwaggerConfigAndRoutes | ||||
| // | ||||
| //	@contact.name	Woodpecker CI Community | ||||
| //	@contact.url	https://woodpecker-ci.org/ | ||||
| func setupSwaggerStaticConfig() { | ||||
| 	docs.SwaggerInfo.BasePath = "/api" | ||||
| 	docs.SwaggerInfo.InfoInstanceName = "api" | ||||
| 	docs.SwaggerInfo.Title = "Woodpecker CI API" | ||||
| 	docs.SwaggerInfo.Version = version.String() | ||||
| 	docs.SwaggerInfo.Description = "Woodpecker is a simple, yet powerful CI/CD engine with great extensibility.\n" + | ||||
| 		"To get a personal access token (PAT) for authentication, please log in your Woodpecker server,\n" + | ||||
| 		"and go to you personal profile page, by clicking the user icon at the top right." | ||||
| } | ||||
| @@ -1,14 +0,0 @@ | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"testing" | ||||
|  | ||||
| 	"github.com/stretchr/testify/assert" | ||||
|  | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/cmd/server/docs" | ||||
| ) | ||||
|  | ||||
| func TestSetupSwaggerStaticConfig(t *testing.T) { | ||||
| 	setupSwaggerStaticConfig() | ||||
| 	assert.Equal(t, "/api", docs.SwaggerInfo.BasePath) | ||||
| } | ||||
| @@ -36,12 +36,12 @@ type User struct { | ||||
| } // @name User | ||||
| ``` | ||||
| 
 | ||||
| These guidelines aim to have consistent wording in the swagger doc: | ||||
| These guidelines aim to have consistent wording in the OpenAPI doc: | ||||
| 
 | ||||
| - first word after `@Summary` and `@Summary` are always uppercase | ||||
| - `@Summary` has no `.` (dot) at the end of the line | ||||
| - model structs shall use custom short names, to ease life for API consumers, using `@name` | ||||
| - `@Success` object or array declarations shall be short, this means the actual `model.User` struct must have a `@name` annotation, so that the model can be rendered in Swagger | ||||
| - `@Success` object or array declarations shall be short, this means the actual `model.User` struct must have a `@name` annotation, so that the model can be rendered in OpenAPI | ||||
| - when pagination is used, `@Param page` and `@Param perPage` must be added manually | ||||
| - `@Param Authorization` is almost always present, there are just a few un-protected endpoints | ||||
| 
 | ||||
| @@ -50,14 +50,10 @@ More enhanced information you can find here <https://github.com/swaggo/swag/blob | ||||
| 
 | ||||
| ### Manual code generation | ||||
| 
 | ||||
| ```bash title="generate the server's Go code containing the Swagger" | ||||
| make generate-swagger | ||||
| ```bash title="generate the server's Go code containing the OpenAPI" | ||||
| make generate-openapi | ||||
| ``` | ||||
| 
 | ||||
| ```bash title="update the Markdown in the ./docs folder" | ||||
| make docs | ||||
| ``` | ||||
| 
 | ||||
| ```bash title="auto-format swagger related godoc" | ||||
| go run github.com/swaggo/swag/cmd/swag@latest fmt -g server/api/z.go | ||||
| ``` | ||||
| @@ -279,7 +279,7 @@ const config: Config = { | ||||
|         // Plugin Options for loading OpenAPI files | ||||
|         specs: [ | ||||
|           { | ||||
|             spec: 'swagger.json', | ||||
|             spec: 'openapi.json', | ||||
|             route: '/api/', | ||||
|           }, | ||||
|         ], | ||||
|   | ||||
| @@ -34,7 +34,7 @@ | ||||
|             go-mockery | ||||
|             protobuf | ||||
|             sqlite | ||||
|             go-swag # for generate-swagger | ||||
|             go-swag # for generate-openapi | ||||
|             addlicense | ||||
|             protoc-gen-go | ||||
|             protoc-gen-go-grpc | ||||
|   | ||||
							
								
								
									
										27
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								go.mod
									
									
									
									
									
								
							| @@ -112,7 +112,7 @@ require ( | ||||
| 	github.com/dustin/go-humanize v1.0.1 // indirect | ||||
| 	github.com/emicklei/go-restful/v3 v3.11.0 // indirect | ||||
| 	github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect | ||||
| 	github.com/fatih/color v1.16.0 // indirect | ||||
| 	github.com/fatih/color v1.18.0 // indirect | ||||
| 	github.com/felixge/httpsnoop v1.0.4 // indirect | ||||
| 	github.com/fxamacker/cbor/v2 v2.7.0 // indirect | ||||
| 	github.com/gabriel-vasile/mimetype v1.4.3 // indirect | ||||
| @@ -121,8 +121,8 @@ require ( | ||||
| 	github.com/go-logr/logr v1.4.2 // indirect | ||||
| 	github.com/go-logr/stdr v1.2.2 // indirect | ||||
| 	github.com/go-openapi/jsonpointer v0.21.0 // indirect | ||||
| 	github.com/go-openapi/jsonreference v0.20.4 // indirect | ||||
| 	github.com/go-openapi/spec v0.20.13 // indirect | ||||
| 	github.com/go-openapi/jsonreference v0.21.0 // indirect | ||||
| 	github.com/go-openapi/spec v0.21.0 // indirect | ||||
| 	github.com/go-openapi/swag v0.23.0 // indirect | ||||
| 	github.com/go-playground/locales v0.14.1 // indirect | ||||
| 	github.com/go-playground/universal-translator v0.18.1 // indirect | ||||
| @@ -174,15 +174,19 @@ require ( | ||||
| 	github.com/muesli/cancelreader v0.2.2 // indirect | ||||
| 	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect | ||||
| 	github.com/oklog/run v1.0.0 // indirect | ||||
| 	github.com/onsi/ginkgo v1.16.4 // indirect | ||||
| 	github.com/onsi/ginkgo/v2 v2.20.2 // indirect | ||||
| 	github.com/onsi/gomega v1.34.2 // indirect | ||||
| 	github.com/opencontainers/go-digest v1.0.0 // indirect | ||||
| 	github.com/opencontainers/image-spec v1.0.2 // indirect | ||||
| 	github.com/pelletier/go-toml/v2 v2.2.2 // indirect | ||||
| 	github.com/pelletier/go-toml/v2 v2.2.3 // indirect | ||||
| 	github.com/perimeterx/marshmallow v1.1.5 // indirect | ||||
| 	github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect | ||||
| 	github.com/prometheus/client_model v0.6.1 // indirect | ||||
| 	github.com/prometheus/common v0.55.0 // indirect | ||||
| 	github.com/prometheus/procfs v0.15.1 // indirect | ||||
| 	github.com/rivo/uniseg v0.4.7 // indirect | ||||
| 	github.com/rogpeppe/go-internal v1.13.1 // indirect | ||||
| 	github.com/russross/blackfriday/v2 v2.1.0 // indirect | ||||
| 	github.com/segmentio/asm v1.2.0 // indirect | ||||
| 	github.com/sirupsen/logrus v1.9.3 // indirect | ||||
| @@ -191,22 +195,23 @@ require ( | ||||
| 	github.com/syndtr/goleveldb v1.0.0 // indirect | ||||
| 	github.com/twitchyliquid64/golang-asm v0.15.1 // indirect | ||||
| 	github.com/ugorji/go/codec v1.2.12 // indirect | ||||
| 	github.com/urfave/cli/v2 v2.3.0 // indirect | ||||
| 	github.com/x448/float16 v0.8.4 // indirect | ||||
| 	github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect | ||||
| 	github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect | ||||
| 	github.com/zeebo/blake3 v0.2.4 // indirect | ||||
| 	go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect | ||||
| 	go.opentelemetry.io/otel v1.28.0 // indirect | ||||
| 	go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect | ||||
| 	go.opentelemetry.io/otel v1.29.0 // indirect | ||||
| 	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0 // indirect | ||||
| 	go.opentelemetry.io/otel/metric v1.28.0 // indirect | ||||
| 	go.opentelemetry.io/otel/metric v1.29.0 // indirect | ||||
| 	go.opentelemetry.io/otel/sdk v1.28.0 // indirect | ||||
| 	go.opentelemetry.io/otel/trace v1.28.0 // indirect | ||||
| 	go.opentelemetry.io/otel/trace v1.29.0 // indirect | ||||
| 	go.uber.org/zap v1.27.0 // indirect | ||||
| 	golang.org/x/arch v0.8.0 // indirect | ||||
| 	golang.org/x/mod v0.18.0 // indirect | ||||
| 	golang.org/x/mod v0.22.0 // indirect | ||||
| 	golang.org/x/sys v0.27.0 // indirect | ||||
| 	golang.org/x/time v0.5.0 // indirect | ||||
| 	golang.org/x/tools v0.22.0 // indirect | ||||
| 	golang.org/x/time v0.6.0 // indirect | ||||
| 	golang.org/x/tools v0.27.0 // indirect | ||||
| 	google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect | ||||
| 	google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect | ||||
| 	gopkg.in/inf.v0 v0.9.1 // indirect | ||||
|   | ||||
							
								
								
									
										105
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										105
									
								
								go.sum
									
									
									
									
									
								
							| @@ -87,6 +87,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 | ||||
| github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= | ||||
| github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= | ||||
| github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= | ||||
| github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | ||||
| github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= | ||||
| github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= | ||||
| github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= | ||||
| @@ -131,13 +132,14 @@ github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97 | ||||
| github.com/expr-lang/expr v1.16.9 h1:WUAzmR0JNI9JCiF0/ewwHB1gmcGw5wW7nWt8gc6PpCI= | ||||
| github.com/expr-lang/expr v1.16.9/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= | ||||
| github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= | ||||
| 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/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= | ||||
| github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= | ||||
| github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= | ||||
| github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= | ||||
| github.com/franela/goblin v0.0.0-20211003143422-0a4f594942bf h1:NrF81UtW8gG2LBGkXFQFqlfNnvMt9WdB46sfdJY4oqc= | ||||
| github.com/franela/goblin v0.0.0-20211003143422-0a4f594942bf/go.mod h1:VzmDKDJVZI3aJmnRI9VjAn9nJ8qPPsN1fqzr9dqInIo= | ||||
| github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= | ||||
| github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= | ||||
| github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= | ||||
| github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= | ||||
| github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= | ||||
| @@ -167,10 +169,10 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= | ||||
| github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= | ||||
| github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= | ||||
| github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= | ||||
| github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU= | ||||
| github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4= | ||||
| github.com/go-openapi/spec v0.20.13 h1:XJDIN+dLH6vqXgafnl5SUIMnzaChQ6QTo0/UPMbkIaE= | ||||
| github.com/go-openapi/spec v0.20.13/go.mod h1:8EOhTpBoFiask8rrgwbLC3zmJfz4zsCUueRuPM6GNkw= | ||||
| github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= | ||||
| github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= | ||||
| github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY= | ||||
| github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= | ||||
| github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= | ||||
| github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= | ||||
| github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= | ||||
| @@ -185,6 +187,8 @@ github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9 | ||||
| github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= | ||||
| github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= | ||||
| github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= | ||||
| github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= | ||||
| github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= | ||||
| github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= | ||||
| github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= | ||||
| github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= | ||||
| @@ -207,6 +211,12 @@ github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2V | ||||
| github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= | ||||
| github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= | ||||
| github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | ||||
| github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= | ||||
| github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= | ||||
| github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= | ||||
| github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= | ||||
| github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= | ||||
| github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= | ||||
| github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= | ||||
| github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= | ||||
| github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||
| @@ -216,6 +226,9 @@ github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW | ||||
| github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= | ||||
| github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= | ||||
| github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= | ||||
| github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= | ||||
| github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= | ||||
| github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||
| github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||
| github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||
| github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||
| @@ -230,8 +243,8 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ | ||||
| github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= | ||||
| github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | ||||
| github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= | ||||
| github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= | ||||
| github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= | ||||
| github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= | ||||
| github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= | ||||
| github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= | ||||
| github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= | ||||
| github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= | ||||
| @@ -256,7 +269,6 @@ github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKe | ||||
| github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= | ||||
| github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= | ||||
| github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= | ||||
| github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= | ||||
| github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= | ||||
| github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= | ||||
| github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= | ||||
| @@ -422,25 +434,32 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq | ||||
| github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= | ||||
| github.com/neticdk/go-bitbucket v1.0.0 h1:FPvHEgPHoDwD2VHbpyu2R2gnoWQ867RxZd2FivS4wSw= | ||||
| github.com/neticdk/go-bitbucket v1.0.0/go.mod h1:IrHeWO1CrNi0DlOvfhAA9bGRSeNSUB6/SAfzmwbA5aU= | ||||
| github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= | ||||
| github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= | ||||
| github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= | ||||
| github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= | ||||
| github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= | ||||
| github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU= | ||||
| github.com/oklog/ulid/v2 v2.1.0/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ= | ||||
| github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | ||||
| github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= | ||||
| github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= | ||||
| github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= | ||||
| github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= | ||||
| github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= | ||||
| github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= | ||||
| github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= | ||||
| github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4= | ||||
| github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag= | ||||
| github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= | ||||
| github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= | ||||
| github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= | ||||
| github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= | ||||
| github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= | ||||
| github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8= | ||||
| github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc= | ||||
| github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= | ||||
| github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= | ||||
| github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= | ||||
| github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= | ||||
| github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= | ||||
| github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= | ||||
| github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= | ||||
| github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= | ||||
| github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= | ||||
| github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s= | ||||
| github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw= | ||||
| github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= | ||||
| @@ -464,14 +483,15 @@ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ | ||||
| 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.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= | ||||
| github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= | ||||
| github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= | ||||
| github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= | ||||
| github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= | ||||
| github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= | ||||
| github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= | ||||
| github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= | ||||
| github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= | ||||
| github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= | ||||
| github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||
| github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= | ||||
| github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||
| github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= | ||||
| @@ -482,6 +502,7 @@ github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NF | ||||
| github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= | ||||
| github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= | ||||
| github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= | ||||
| github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | ||||
| github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= | ||||
| github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | ||||
| github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= | ||||
| @@ -506,7 +527,6 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F | ||||
| github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= | ||||
| github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= | ||||
| github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= | ||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | ||||
| github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||
| github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||
| github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE= | ||||
| @@ -523,6 +543,8 @@ github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65E | ||||
| github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= | ||||
| github.com/urfave/cli-docs/v3 v3.0.0-alpha6 h1:w/l/N0xw1rO/aHRIGXJ0lDwwYFOzilup1qGvIytP3BI= | ||||
| github.com/urfave/cli-docs/v3 v3.0.0-alpha6/go.mod h1:p7Z4lg8FSTrPB9GTaNyTrK3ygffHZcK3w0cU2VE+mzU= | ||||
| github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M= | ||||
| github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= | ||||
| github.com/urfave/cli/v3 v3.0.0-alpha9.3 h1:RfQlgUHMRxDMwEEmGsrHd+mXYJpWpXlcJM8w86cpjGs= | ||||
| github.com/urfave/cli/v3 v3.0.0-alpha9.3/go.mod h1:FnIeEMYu+ko8zP1F9Ypr3xkZMIDqW3DR92yUtY39q1Y= | ||||
| github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= | ||||
| @@ -551,20 +573,20 @@ github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo= | ||||
| github.com/zeebo/pcg v1.0.1/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4= | ||||
| github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= | ||||
| github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= | ||||
| go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA= | ||||
| go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg= | ||||
| go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo= | ||||
| go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4= | ||||
| go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= | ||||
| go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= | ||||
| go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw= | ||||
| go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 h1:3Q/xZUyC1BBkualc9ROb4G8qkH90LXEIICcs5zv1OYY= | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0/go.mod h1:s75jGIWA9OfCMzF0xr+ZgfrB5FEbbV7UuYo32ahUiFI= | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0 h1:j9+03ymgYhPKmeXGk5Zu+cIZOlVzd9Zv7QIiyItjFBU= | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0/go.mod h1:Y5+XiUG4Emn1hTfciPzGPJaSI+RpDts6BnCIir0SLqk= | ||||
| go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q= | ||||
| go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s= | ||||
| go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc= | ||||
| go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= | ||||
| go.opentelemetry.io/otel/sdk v1.28.0 h1:b9d7hIry8yZsgtbmM0DKyPWMMUMlK9NEKuIG4aBqWyE= | ||||
| go.opentelemetry.io/otel/sdk v1.28.0/go.mod h1:oYj7ClPUA7Iw3m+r7GeEjz0qckQRJK2B8zjcZEfu7Pg= | ||||
| go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g= | ||||
| go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI= | ||||
| go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4= | ||||
| go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= | ||||
| go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= | ||||
| go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= | ||||
| go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= | ||||
| @@ -609,14 +631,15 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB | ||||
| golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||||
| golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||||
| golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= | ||||
| golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= | ||||
| golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= | ||||
| golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= | ||||
| golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= | ||||
| golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||
| golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= | ||||
| golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||
| golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||
| golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | ||||
| @@ -643,11 +666,16 @@ golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7w | ||||
| golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| @@ -681,8 +709,8 @@ 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.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= | ||||
| golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= | ||||
| golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= | ||||
| golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= | ||||
| golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= | ||||
| golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= | ||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||
| golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= | ||||
| @@ -694,11 +722,12 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn | ||||
| golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= | ||||
| golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= | ||||
| golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||
| golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||
| golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||||
| golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= | ||||
| golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= | ||||
| golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= | ||||
| golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= | ||||
| golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= | ||||
| golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= | ||||
| golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||
| @@ -711,6 +740,12 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1: | ||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= | ||||
| google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= | ||||
| google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= | ||||
| google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= | ||||
| google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= | ||||
| google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= | ||||
| google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= | ||||
| google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= | ||||
| google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= | ||||
| google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= | ||||
| google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= | ||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| @@ -718,7 +753,6 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 | ||||
| gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= | ||||
| gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= | ||||
| gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= | ||||
| gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= | ||||
| gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= | ||||
| gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= | ||||
| gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= | ||||
| @@ -727,7 +761,10 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkep | ||||
| gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= | ||||
| gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= | ||||
| gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
|   | ||||
| @@ -57,7 +57,7 @@ func GetAgents(c *gin.Context) { | ||||
| //	@Success	200	{object}	Agent | ||||
| //	@Tags		Agents | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		agent			path	int		true	"the agent's id" | ||||
| //	@Param		agent_id		path	int		true	"the agent's id" | ||||
| func GetAgent(c *gin.Context) { | ||||
| 	agentID, err := strconv.ParseInt(c.Param("agent_id"), 10, 64) | ||||
| 	if err != nil { | ||||
| @@ -81,7 +81,7 @@ func GetAgent(c *gin.Context) { | ||||
| //	@Success	200	{array}	Task | ||||
| //	@Tags		Agents | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		agent			path	int		true	"the agent's id" | ||||
| //	@Param		agent_id		path	int		true	"the agent's id" | ||||
| func GetAgentTasks(c *gin.Context) { | ||||
| 	agentID, err := strconv.ParseInt(c.Param("agent_id"), 10, 64) | ||||
| 	if err != nil { | ||||
| @@ -114,7 +114,7 @@ func GetAgentTasks(c *gin.Context) { | ||||
| //	@Success	200	{object}	Agent | ||||
| //	@Tags		Agents | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		agent			path	int		true	"the agent's id" | ||||
| //	@Param		agent_id		path	int		true	"the agent's id" | ||||
| //	@Param		agentData		body	Agent	true	"the agent's data" | ||||
| func PatchAgent(c *gin.Context) { | ||||
| 	_store := store.FromContext(c) | ||||
| @@ -156,14 +156,14 @@ func PatchAgent(c *gin.Context) { | ||||
|  | ||||
| // PostAgent | ||||
| // | ||||
| //	@Summary	Create a new agent | ||||
| //	@Description Creates a new agent with a random token | ||||
| //	@Router		/agents [post] | ||||
| //	@Produce	json | ||||
| //	@Success	200	{object}	Agent | ||||
| //	@Tags		Agents | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		agent			body	Agent	true	"the agent's data (only 'name' and 'no_schedule' are read)" | ||||
| //	@Summary		Create a new agent | ||||
| //	@Description	Creates a new agent with a random token | ||||
| //	@Router			/agents [post] | ||||
| //	@Produce		json | ||||
| //	@Success		200	{object}	Agent | ||||
| //	@Tags			Agents | ||||
| //	@Param			Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param			agent			body	Agent	true	"the agent's data (only 'name' and 'no_schedule' are read)" | ||||
| func PostAgent(c *gin.Context) { | ||||
| 	in := &model.Agent{} | ||||
| 	err := c.Bind(in) | ||||
| @@ -196,7 +196,7 @@ func PostAgent(c *gin.Context) { | ||||
| //	@Success	200 | ||||
| //	@Tags		Agents | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		agent			path	int		true	"the agent's id" | ||||
| //	@Param		agent_id		path	int		true	"the agent's id" | ||||
| func DeleteAgent(c *gin.Context) { | ||||
| 	_store := store.FromContext(c) | ||||
|  | ||||
| @@ -237,15 +237,15 @@ func DeleteAgent(c *gin.Context) { | ||||
|  | ||||
| // PostOrgAgent | ||||
| // | ||||
| //	@Summary	Create a new organization-scoped agent | ||||
| //	@Description Creates a new agent with a random token, scoped to the specified organization | ||||
| //	@Router		/orgs/{org_id}/agents [post] | ||||
| //	@Produce	json | ||||
| //	@Success	200	{object}	Agent | ||||
| //	@Tags		Agents | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		org_id			path	int		true	"the organization's id" | ||||
| //	@Param		agent			body	Agent	true	"the agent's data (only 'name' and 'no_schedule' are read)" | ||||
| //	@Summary		Create a new organization-scoped agent | ||||
| //	@Description	Creates a new agent with a random token, scoped to the specified organization | ||||
| //	@Router			/orgs/{org_id}/agents [post] | ||||
| //	@Produce		json | ||||
| //	@Success		200	{object}	Agent | ||||
| //	@Tags			Agents | ||||
| //	@Param			Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param			org_id			path	int		true	"the organization's id" | ||||
| //	@Param			agent			body	Agent	true	"the agent's data (only 'name' and 'no_schedule' are read)" | ||||
| func PostOrgAgent(c *gin.Context) { | ||||
| 	_store := store.FromContext(c) | ||||
| 	user := session.User(c) | ||||
| @@ -286,7 +286,7 @@ func PostOrgAgent(c *gin.Context) { | ||||
| //	@Produce	json | ||||
| //	@Success	200	{array}	Agent | ||||
| //	@Tags		Agents | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"				default(Bearer <personal access token>) | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		org_id			path	int		true	"the organization's id" | ||||
| //	@Param		page			query	int		false	"for response pagination, page offset number"	default(1) | ||||
| //	@Param		perPage			query	int		false	"for response pagination, max items per page"	default(50) | ||||
|   | ||||
| @@ -144,14 +144,14 @@ func PatchForge(c *gin.Context) { | ||||
|  | ||||
| // PostForge | ||||
| // | ||||
| //	@Summary	Create a new forge | ||||
| //	@Description Creates a new forge with a random token | ||||
| //	@Router		/forges [post] | ||||
| //	@Produce	json | ||||
| //	@Success	200	{object}	Forge | ||||
| //	@Tags		Forges | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		forge			body	Forge	true	"the forge's data (only 'name' and 'no_schedule' are read)" | ||||
| //	@Summary		Create a new forge | ||||
| //	@Description	Creates a new forge with a random token | ||||
| //	@Router			/forges [post] | ||||
| //	@Produce		json | ||||
| //	@Success		200	{object}	Forge | ||||
| //	@Tags			Forges | ||||
| //	@Param			Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param			forge			body	Forge	true	"the forge's data (only 'name' and 'no_schedule' are read)" | ||||
| func PostForge(c *gin.Context) { | ||||
| 	in := &model.Forge{} | ||||
| 	err := c.Bind(in) | ||||
|   | ||||
| @@ -32,7 +32,7 @@ import ( | ||||
| //	@Success	200	{array}	Registry | ||||
| //	@Tags		Registries | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"				default(Bearer <personal access token>) | ||||
| //	@Param		page				query	int		false	"for response pagination, page offset number"	default(1) | ||||
| //	@Param		page			query	int		false	"for response pagination, page offset number"	default(1) | ||||
| //	@Param		perPage			query	int		false	"for response pagination, max items per page"	default(50) | ||||
| func GetGlobalRegistryList(c *gin.Context) { | ||||
| 	registryService := server.Config.Services.Manager.RegistryService() | ||||
| @@ -57,7 +57,7 @@ func GetGlobalRegistryList(c *gin.Context) { | ||||
| //	@Success	200	{object}	Registry | ||||
| //	@Tags		Registries | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		registry			path	string	true	"the registry's name" | ||||
| //	@Param		registry		path	string	true	"the registry's name" | ||||
| func GetGlobalRegistry(c *gin.Context) { | ||||
| 	addr := c.Param("registry") | ||||
| 	registryService := server.Config.Services.Manager.RegistryService() | ||||
| @@ -76,8 +76,8 @@ func GetGlobalRegistry(c *gin.Context) { | ||||
| //	@Produce	json | ||||
| //	@Success	200	{object}	Registry | ||||
| //	@Tags		Registries | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		registry			body	Registry	true	"the registry object data" | ||||
| //	@Param		Authorization	header	string		true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		registry		body	Registry	true	"the registry object data" | ||||
| func PostGlobalRegistry(c *gin.Context) { | ||||
| 	in := new(model.Registry) | ||||
| 	if err := c.Bind(in); err != nil { | ||||
| @@ -109,8 +109,8 @@ func PostGlobalRegistry(c *gin.Context) { | ||||
| //	@Produce	json | ||||
| //	@Success	200	{object}	Registry | ||||
| //	@Tags		Registries | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		registry			path	string		true	"the registry's name" | ||||
| //	@Param		Authorization	header	string		true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		registry		path	string		true	"the registry's name" | ||||
| //	@Param		registryData	body	Registry	true	"the registry's data" | ||||
| func PatchGlobalRegistry(c *gin.Context) { | ||||
| 	addr := c.Param("registry") | ||||
| @@ -158,7 +158,7 @@ func PatchGlobalRegistry(c *gin.Context) { | ||||
| //	@Success	204 | ||||
| //	@Tags		Registries | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		registry			path		string	true	"the registry's name" | ||||
| //	@Param		registry		path	string	true	"the registry's name" | ||||
| func DeleteGlobalRegistry(c *gin.Context) { | ||||
| 	addr := c.Param("registry") | ||||
| 	registryService := server.Config.Services.Manager.RegistryService() | ||||
|   | ||||
| @@ -56,8 +56,8 @@ func GetOrgRegistry(c *gin.Context) { | ||||
| //	@Tags		Organization registries | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		org_id			path	string	true	"the org's id" | ||||
| //	@Param		page				query	int			false	"for response pagination, page offset number"	default(1) | ||||
| //	@Param		perPage			query	int			false	"for response pagination, max items per page"	default(50) | ||||
| //	@Param		page			query	int		false	"for response pagination, page offset number"	default(1) | ||||
| //	@Param		perPage			query	int		false	"for response pagination, max items per page"	default(50) | ||||
| func GetOrgRegistryList(c *gin.Context) { | ||||
| 	org := session.Org(c) | ||||
|  | ||||
| @@ -83,8 +83,8 @@ func GetOrgRegistryList(c *gin.Context) { | ||||
| //	@Success	200	{object}	Registry | ||||
| //	@Tags		Organization registries | ||||
| //	@Param		Authorization	header	string		true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		org_id					path	string		true	"the org's id" | ||||
| //	@Param		registryData		body	Registry	true	"the new registry" | ||||
| //	@Param		org_id			path	string		true	"the org's id" | ||||
| //	@Param		registryData	body	Registry	true	"the new registry" | ||||
| func PostOrgRegistry(c *gin.Context) { | ||||
| 	org := session.Org(c) | ||||
|  | ||||
| @@ -119,9 +119,9 @@ func PostOrgRegistry(c *gin.Context) { | ||||
| //	@Produce	json | ||||
| //	@Success	200	{object}	Registry | ||||
| //	@Tags		Organization registries | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		org_id				path	string		true	"the org's id" | ||||
| //	@Param		registry			path	string		true	"the registry's name" | ||||
| //	@Param		Authorization	header	string		true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		org_id			path	string		true	"the org's id" | ||||
| //	@Param		registry		path	string		true	"the registry's name" | ||||
| //	@Param		registryData	body	Registry	true	"the update registry data" | ||||
| func PatchOrgRegistry(c *gin.Context) { | ||||
| 	org := session.Org(c) | ||||
|   | ||||
| @@ -104,18 +104,18 @@ func createTmpPipeline(event model.WebhookEvent, commit *model.Commit, user *mod | ||||
|  | ||||
| // GetPipelines | ||||
| // | ||||
| //	@Summary	List repository pipelines | ||||
| //	@Summary		List repository pipelines | ||||
| //	@Description	Get a list of pipelines for a repository. | ||||
| //	@Router		/repos/{repo_id}/pipelines [get] | ||||
| //	@Produce	json | ||||
| //	@Success	200	{array}	Pipeline | ||||
| //	@Tags		Pipelines | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		repo_id			path	int		true	"the repository id" | ||||
| //	@Param		page			query	int		false	"for response pagination, page offset number"	default(1) | ||||
| //	@Param		perPage			query	int		false	"for response pagination, max items per page"	default(50) | ||||
| //	@Param		before			query	string	false	"only return pipelines before this RFC3339 date" | ||||
| //	@Param		after			query	string	false	"only return pipelines after this RFC3339 date" | ||||
| //	@Router			/repos/{repo_id}/pipelines [get] | ||||
| //	@Produce		json | ||||
| //	@Success		200	{array}	Pipeline | ||||
| //	@Tags			Pipelines | ||||
| //	@Param			Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param			repo_id			path	int		true	"the repository id" | ||||
| //	@Param			page			query	int		false	"for response pagination, page offset number"	default(1) | ||||
| //	@Param			perPage			query	int		false	"for response pagination, max items per page"	default(50) | ||||
| //	@Param			before			query	string	false	"only return pipelines before this RFC3339 date" | ||||
| //	@Param			after			query	string	false	"only return pipelines after this RFC3339 date" | ||||
| func GetPipelines(c *gin.Context) { | ||||
| 	repo := session.Repo(c) | ||||
| 	before := c.Query("before") | ||||
|   | ||||
| @@ -591,16 +591,16 @@ func MoveRepo(c *gin.Context) { | ||||
|  | ||||
| // GetAllRepos | ||||
| // | ||||
| //	@Summary	List all repositories on the server | ||||
| //	@Summary		List all repositories on the server | ||||
| //	@Description	Returns a list of all repositories. Requires admin rights. | ||||
| //	@Router		/repos [get] | ||||
| //	@Produce	json | ||||
| //	@Success	200	{array}	Repo | ||||
| //	@Tags		Repositories | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param		active			query	bool	false	"only list active repos" | ||||
| //	@Param		page			query	int		false	"for response pagination, page offset number"	default(1) | ||||
| //	@Param		perPage			query	int		false	"for response pagination, max items per page"	default(50) | ||||
| //	@Router			/repos [get] | ||||
| //	@Produce		json | ||||
| //	@Success		200	{array}	Repo | ||||
| //	@Tags			Repositories | ||||
| //	@Param			Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Param			active			query	bool	false	"only list active repos" | ||||
| //	@Param			page			query	int		false	"for response pagination, page offset number"	default(1) | ||||
| //	@Param			perPage			query	int		false	"for response pagination, max items per page"	default(50) | ||||
| func GetAllRepos(c *gin.Context) { | ||||
| 	_store := store.FromContext(c) | ||||
|  | ||||
| @@ -617,13 +617,13 @@ func GetAllRepos(c *gin.Context) { | ||||
|  | ||||
| // RepairAllRepos | ||||
| // | ||||
| //	@Summary	Repair all repositories on the server | ||||
| //	@Description Executes a repair process on all repositories. Requires admin rights. | ||||
| //	@Router		/repos/repair [post] | ||||
| //	@Produce	plain | ||||
| //	@Success	204 | ||||
| //	@Tags		Repositories | ||||
| //	@Param		Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| //	@Summary		Repair all repositories on the server | ||||
| //	@Description	Executes a repair process on all repositories. Requires admin rights. | ||||
| //	@Router			/repos/repair [post] | ||||
| //	@Produce		plain | ||||
| //	@Success		204 | ||||
| //	@Tags			Repositories | ||||
| //	@Param			Authorization	header	string	true	"Insert your personal access token"	default(Bearer <personal access token>) | ||||
| func RepairAllRepos(c *gin.Context) { | ||||
| 	_store := store.FromContext(c) | ||||
|  | ||||
|   | ||||
| @@ -48,7 +48,7 @@ func Health(c *gin.Context) { | ||||
| //	@Description	Endpoint returns the server version and build information. | ||||
| //	@Router			/version [get] | ||||
| //	@Produce		json | ||||
| //	@Success		200	{object}	string{source=string,version=string} | ||||
| //	@Success		200	{object}	object{source=string,version=string} | ||||
| //	@Tags			System | ||||
| func Version(c *gin.Context) { | ||||
| 	c.JSON(http.StatusOK, gin.H{ | ||||
|   | ||||
| @@ -20,10 +20,10 @@ import ( | ||||
|  | ||||
| 	"github.com/gin-gonic/gin" | ||||
| 	"github.com/rs/zerolog/log" | ||||
| 	swagger_files "github.com/swaggo/files" | ||||
| 	openapi_files "github.com/swaggo/files" | ||||
| 	ginSwagger "github.com/swaggo/gin-swagger" | ||||
|  | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/cmd/server/docs" | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/cmd/server/openapi" | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/server" | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/server/api" | ||||
| 	"go.woodpecker-ci.org/woodpecker/v2/server/api/metrics" | ||||
| @@ -78,9 +78,9 @@ func Load(noRouteHandler http.HandlerFunc, middleware ...gin.HandlerFunc) http.H | ||||
| } | ||||
|  | ||||
| func setupSwaggerConfigAndRoutes(e *gin.Engine) { | ||||
| 	docs.SwaggerInfo.Host = getHost(server.Config.Server.Host) | ||||
| 	docs.SwaggerInfo.BasePath = server.Config.Server.RootPath + "/api" | ||||
| 	e.GET(server.Config.Server.RootPath+"/swagger/*any", ginSwagger.WrapHandler(swagger_files.Handler)) | ||||
| 	openapi.SwaggerInfo.Host = getHost(server.Config.Server.Host) | ||||
| 	openapi.SwaggerInfo.BasePath = server.Config.Server.RootPath + "/api" | ||||
| 	e.GET(server.Config.Server.RootPath+"/swagger/*any", ginSwagger.WrapHandler(openapi_files.Handler)) | ||||
| } | ||||
|  | ||||
| func getHost(s string) string { | ||||
|   | ||||
							
								
								
									
										23
									
								
								tools/tools.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								tools/tools.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| // Copyright 2024 Woodpecker Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //      http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| //go:build tools | ||||
| // +build tools | ||||
|  | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	_ "github.com/getkin/kin-openapi/cmd/validate" | ||||
| 	_ "github.com/swaggo/swag/cmd/swag" | ||||
| ) | ||||
		Reference in New Issue
	
	Block a user