diff --git a/.editorconfig b/.editorconfig index bf1cf757cc6dc..8ad078b7e64ac 100644 --- a/.editorconfig +++ b/.editorconfig @@ -22,6 +22,9 @@ insert_final_newline = false indent_style = space insert_final_newline = false +[templates/swagger/v1_openapi3_json.tmpl] +indent_style = space + [templates/user/auth/oidc_wellknown.tmpl] indent_style = space diff --git a/Makefile b/Makefile index 824bfac10c682..16851016f18c0 100644 --- a/Makefile +++ b/Makefile @@ -160,6 +160,7 @@ ESLINT_CONCURRENCY ?= 2 SWAGGER_SPEC := templates/swagger/v1_json.tmpl SWAGGER_SPEC_INPUT := templates/swagger/v1_input.json SWAGGER_EXCLUDE := code.gitea.io/sdk +OPENAPI3_SPEC := templates/swagger/v1_openapi3_json.tmpl TEST_MYSQL_HOST ?= mysql:3306 TEST_MYSQL_DBNAME ?= testgitea @@ -242,7 +243,7 @@ TAGS_PREREQ := $(TAGS_EVIDENCE) endif .PHONY: generate-swagger -generate-swagger: $(SWAGGER_SPEC) ## generate the swagger spec from code comments +generate-swagger: $(SWAGGER_SPEC) $(OPENAPI3_SPEC) ## generate the swagger spec from code comments $(SWAGGER_SPEC): $(GO_SOURCES) $(SWAGGER_SPEC_INPUT) $(GO) run $(SWAGGER_PACKAGE) generate spec --exclude "$(SWAGGER_EXCLUDE)" --input "$(SWAGGER_SPEC_INPUT)" --output './$(SWAGGER_SPEC)' @@ -264,6 +265,21 @@ swagger-validate: ## check if the swagger spec is valid $(GO) run $(SWAGGER_PACKAGE) validate './$(SWAGGER_SPEC)' @$(SED_INPLACE) -E -e 's|"basePath":( *)"/(.*)"|"basePath":\1"\2"|g' './$(SWAGGER_SPEC)' # remove the prefix slash from basePath +.PHONY: generate-openapi3 +generate-openapi3: $(OPENAPI3_SPEC) ## generate the OpenAPI 3.0 spec from the Swagger 2.0 spec + +$(OPENAPI3_SPEC): $(SWAGGER_SPEC) + $(GO) run build/generate-openapi.go + +.PHONY: openapi3-check +openapi3-check: generate-openapi3 + @diff=$$(git diff --color=always '$(OPENAPI3_SPEC)'); \ + if [ -n "$$diff" ]; then \ + echo "Please run 'make generate-openapi3' and commit the result:"; \ + printf "%s" "$${diff}"; \ + exit 1; \ + fi + .PHONY: checks checks: checks-frontend checks-backend ## run various consistency checks @@ -271,7 +287,7 @@ checks: checks-frontend checks-backend ## run various consistency checks checks-frontend: lockfile-check svg-check ## check frontend files .PHONY: checks-backend -checks-backend: tidy-check swagger-check fmt-check swagger-validate security-check ## check backend files +checks-backend: tidy-check swagger-check openapi3-check fmt-check swagger-validate security-check ## check backend files .PHONY: lint lint: lint-frontend lint-backend lint-spell ## lint everything diff --git a/build/generate-openapi.go b/build/generate-openapi.go new file mode 100644 index 0000000000000..1652eb426f697 --- /dev/null +++ b/build/generate-openapi.go @@ -0,0 +1,356 @@ +// Copyright 2026 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +//go:build ignore + +package main + +import ( + "encoding/json" + "fmt" + "log" + "os" + "regexp" + "sort" + "strings" + + "github.com/getkin/kin-openapi/openapi2" + "github.com/getkin/kin-openapi/openapi2conv" + "github.com/getkin/kin-openapi/openapi3" +) + +const ( + swaggerSpecPath = "templates/swagger/v1_json.tmpl" + openapi3OutPath = "templates/swagger/v1_openapi3_json.tmpl" + + // Go template variables in the Swagger spec that must be replaced + // with placeholders before parsing as JSON. + appSubUrlVar = "{{.SwaggerAppSubUrl}}" + appVerVar = "{{.SwaggerAppVer}}" + + appSubUrlPlaceholder = "GITEA_APP_SUB_URL_PLACEHOLDER" + appVerPlaceholder = "0.0.0-gitea-placeholder" +) + +var ( + appSubUrlRe = regexp.MustCompile(regexp.QuoteMeta(appSubUrlVar)) + appVerRe = regexp.MustCompile(regexp.QuoteMeta(appVerVar)) +) + +func main() { + data, err := os.ReadFile(swaggerSpecPath) + if err != nil { + log.Fatalf("reading swagger spec: %v", err) + } + + // Replace Go template variables with safe placeholders for JSON parsing + cleaned := appSubUrlRe.ReplaceAll(data, []byte(appSubUrlPlaceholder)) + cleaned = appVerRe.ReplaceAll(cleaned, []byte(appVerPlaceholder)) + + var swagger2 openapi2.T + if err := json.Unmarshal(cleaned, &swagger2); err != nil { + log.Fatalf("parsing swagger 2.0: %v", err) + } + + oas3, err := openapi2conv.ToV3(&swagger2) + if err != nil { + log.Fatalf("converting to openapi 3.0: %v", err) + } + + // Set server URL with the placeholder for AppSubUrl + oas3.Servers = openapi3.Servers{ + {URL: appSubUrlPlaceholder + "/api/v1"}, + } + + // Fix "type: file" schemas left over from Swagger 2.0 conversion. + fixFileSchemas(oas3) + + // OAS3 post-processing: enrich the spec with details that Swagger 2.0 + // and go-swagger cannot express. + addURIFormats(oas3) + addDeprecatedFlags(oas3) + extractSharedEnums(oas3) + + out, err := json.MarshalIndent(oas3, "", " ") + if err != nil { + log.Fatalf("marshaling openapi 3.0: %v", err) + } + + // Re-inject Go template variables + result := strings.ReplaceAll(string(out), appSubUrlPlaceholder, appSubUrlVar) + result = strings.ReplaceAll(result, appVerPlaceholder, appVerVar) + + if !strings.HasSuffix(result, "\n") { + result += "\n" + } + + if err := os.WriteFile(openapi3OutPath, []byte(result), 0o644); err != nil { + log.Fatalf("writing openapi 3.0 spec: %v", err) + } + + fmt.Printf("Generated %s\n", openapi3OutPath) +} + +func fixFileSchemas(doc *openapi3.T) { + for _, pathItem := range doc.Paths.Map() { + for _, op := range []*openapi3.Operation{ + pathItem.Get, pathItem.Post, pathItem.Put, pathItem.Patch, + pathItem.Delete, pathItem.Head, pathItem.Options, pathItem.Trace, + } { + if op == nil { + continue + } + for _, resp := range op.Responses.Map() { + if resp.Value == nil { + continue + } + for _, mediaType := range resp.Value.Content { + fixSchema(mediaType.Schema) + } + } + if op.RequestBody != nil && op.RequestBody.Value != nil { + for _, mediaType := range op.RequestBody.Value.Content { + fixSchema(mediaType.Schema) + } + } + } + } +} + +func fixSchema(ref *openapi3.SchemaRef) { + if ref == nil || ref.Value == nil { + return + } + if ref.Value.Type.Is("file") { + ref.Value.Type = &openapi3.Types{"string"} + ref.Value.Format = "binary" + } +} + +// addURIFormats sets format: uri on string properties whose names indicate +// they hold URLs. This information is lost in Swagger 2.0 but is valuable +// for code generators. +func addURIFormats(doc *openapi3.T) { + if doc.Components == nil { + return + } + for _, schemaRef := range doc.Components.Schemas { + if schemaRef.Value == nil { + continue + } + for propName, propRef := range schemaRef.Value.Properties { + if propRef == nil || propRef.Value == nil || propRef.Ref != "" { + continue + } + prop := propRef.Value + if !prop.Type.Is("string") || prop.Format != "" { + continue + } + if isURLProperty(propName) { + prop.Format = "uri" + } + } + } +} + +func isURLProperty(name string) bool { + if strings.HasSuffix(name, "_url") { + return true + } + switch name { + case "url", "html_url", "clone_url": + return true + } + return false +} + +// addDeprecatedFlags sets deprecated: true on schema properties whose +// description contains "deprecated". +func addDeprecatedFlags(doc *openapi3.T) { + if doc.Components == nil { + return + } + for _, schemaRef := range doc.Components.Schemas { + if schemaRef.Value == nil { + continue + } + for _, propRef := range schemaRef.Value.Properties { + if propRef == nil || propRef.Value == nil || propRef.Ref != "" { + continue + } + desc := strings.ToLower(propRef.Value.Description) + if strings.Contains(desc, "deprecated") { + propRef.Value.Deprecated = true + } + } + } +} + +type enumUsage struct { + schemaName string + propName string + propRef *openapi3.SchemaRef + inItems bool +} + +// extractSharedEnums finds identical enum arrays used by multiple schema +// properties, creates a standalone named schema for each, and replaces +// the inline enums with $ref pointers. +func extractSharedEnums(doc *openapi3.T) { + if doc.Components == nil { + return + } + + enumGroups := map[string][]enumUsage{} + + for schemaName, schemaRef := range doc.Components.Schemas { + if schemaRef.Value == nil { + continue + } + for propName, propRef := range schemaRef.Value.Properties { + if propRef == nil || propRef.Value == nil || propRef.Ref != "" { + continue + } + if len(propRef.Value.Enum) > 1 && propRef.Value.Type.Is("string") { + key := enumKey(propRef.Value.Enum) + enumGroups[key] = append(enumGroups[key], enumUsage{schemaName, propName, propRef, false}) + } + if propRef.Value.Type.Is("array") && propRef.Value.Items != nil && + propRef.Value.Items.Value != nil && propRef.Value.Items.Ref == "" && + len(propRef.Value.Items.Value.Enum) > 1 && propRef.Value.Items.Value.Type.Is("string") { + key := enumKey(propRef.Value.Items.Value.Enum) + enumGroups[key] = append(enumGroups[key], enumUsage{schemaName, propName, propRef, true}) + } + } + } + + for key, usages := range enumGroups { + if len(usages) < 2 { + continue + } + + enumName := deriveEnumName(usages) + if _, exists := doc.Components.Schemas[enumName]; exists { + enumName += "Type" + } + if _, exists := doc.Components.Schemas[enumName]; exists { + continue + } + + var enumValues []any + if usages[0].inItems { + enumValues = usages[0].propRef.Value.Items.Value.Enum + } else { + enumValues = usages[0].propRef.Value.Enum + } + + doc.Components.Schemas[enumName] = &openapi3.SchemaRef{ + Value: &openapi3.Schema{ + Type: &openapi3.Types{"string"}, + Enum: enumValues, + }, + } + + ref := "#/components/schemas/" + enumName + + for _, usage := range usages { + if usage.inItems { + usage.propRef.Value.Items = &openapi3.SchemaRef{Ref: ref} + } else { + old := usage.propRef.Value + if old.Description == "" && !old.Deprecated && old.Format == "" { + usage.propRef.Ref = ref + usage.propRef.Value = nil + } else { + usage.propRef.Value = &openapi3.Schema{ + AllOf: openapi3.SchemaRefs{ + {Ref: ref}, + }, + Description: old.Description, + Deprecated: old.Deprecated, + } + } + } + } + + _ = key + } +} + +func enumKey(values []any) string { + strs := make([]string, len(values)) + for i, v := range values { + strs[i] = fmt.Sprintf("%v", v) + } + sort.Strings(strs) + return strings.Join(strs, "|") +} + +var knownEnumTypes = map[string]string{ + "CommitStatus": "CommitStatusState", + "State": "StateType", + "ReviewState": "ReviewStateType", + "NotifySubject": "NotifySubjectType", + "IssueFormField": "IssueFormFieldType", + "ObjectFormatName": "ObjectFormatName", +} + +func deriveEnumName(usages []enumUsage) string { + for _, u := range usages { + if u.propRef.Value == nil { + continue + } + desc, ok := u.propRef.Value.Extensions["x-go-enum-desc"] + if !ok { + continue + } + s, ok := desc.(string) + if !ok { + continue + } + parts := strings.Fields(s) + if len(parts) < 2 { + continue + } + constName := parts[1] + + var vals []any + if u.inItems { + vals = u.propRef.Value.Items.Value.Enum + } else { + vals = u.propRef.Value.Enum + } + for _, v := range vals { + vs := fmt.Sprintf("%v", v) + lowerConst := strings.ToLower(constName) + lowerVal := strings.ToLower(vs) + if strings.HasSuffix(lowerConst, lowerVal) && len(lowerVal) < len(lowerConst) { + prefix := constName[:len(constName)-len(vs)] + if goType, ok := knownEnumTypes[prefix]; ok { + return goType + } + return prefix + } + } + } + + nameCounts := map[string]int{} + for _, u := range usages { + nameCounts[u.propName]++ + } + bestName := "" + bestCount := 0 + for name, count := range nameCounts { + if count > bestCount || (count == bestCount && name < bestName) { + bestName = name + bestCount = count + } + } + result := "" + for _, p := range strings.Split(bestName, "_") { + if len(p) > 0 { + result += strings.ToUpper(p[:1]) + p[1:] + } + } + return result + "Enum" +} diff --git a/build/openapi3-tools.go b/build/openapi3-tools.go new file mode 100644 index 0000000000000..47fa1bf278a96 --- /dev/null +++ b/build/openapi3-tools.go @@ -0,0 +1,14 @@ +// Copyright 2026 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +//go:build tools + +package build + +// This blank import ensures kin-openapi stays in go.mod for use by +// build/generate-openapi.go (which has //go:build ignore). +import ( + _ "github.com/getkin/kin-openapi/openapi2" + _ "github.com/getkin/kin-openapi/openapi2conv" + _ "github.com/getkin/kin-openapi/openapi3" +) diff --git a/go.mod b/go.mod index cebafcd0fa665..89e9962aa4348 100644 --- a/go.mod +++ b/go.mod @@ -46,6 +46,7 @@ require ( github.com/ethantkoenig/rupture v1.0.1 github.com/felixge/fgprof v0.9.5 github.com/fsnotify/fsnotify v1.9.0 + github.com/getkin/kin-openapi v0.134.0 github.com/gliderlabs/ssh v0.3.8 github.com/go-chi/chi/v5 v5.2.5 github.com/go-chi/cors v1.2.2 @@ -193,6 +194,8 @@ require ( github.com/go-fed/httpsig v1.1.1-0.20201223112313-55836744818e // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-ini/ini v1.67.0 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/swag v0.23.0 // indirect github.com/go-webauthn/x v0.1.24 // indirect github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect github.com/golang-sql/sqlexp v0.1.0 // indirect @@ -230,15 +233,19 @@ require ( github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/mrjones/oauth v0.0.0-20190623134757-126b35219450 // indirect github.com/mschoch/smat v0.2.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/nwaples/rardecode/v2 v2.2.0 // indirect + github.com/oasdiff/yaml v0.0.0-20260313112342-a3ea61cb4d4c // indirect + github.com/oasdiff/yaml3 v0.0.0-20260224194419-61cd415a242b // indirect github.com/olekukonko/cat v0.0.0-20250817074551-3280053e4e00 // indirect github.com/olekukonko/errors v1.1.0 // indirect github.com/olekukonko/ll v0.1.0 // indirect github.com/olekukonko/tablewriter v1.0.9 // indirect github.com/onsi/ginkgo v1.16.5 // indirect + github.com/perimeterx/marshmallow v1.1.5 // indirect github.com/philhofer/fwd v1.2.0 // indirect github.com/pierrec/lz4/v4 v4.1.22 // indirect github.com/pjbgf/sha1cd v0.4.0 // indirect @@ -259,6 +266,7 @@ require ( github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect github.com/tinylib/msgp v1.6.1 // indirect github.com/unknwon/com v1.0.1 // indirect + github.com/woodsbury/decimal128 v1.3.0 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect diff --git a/go.sum b/go.sum index 8c4ec50c90bed..9254db71c7db2 100644 --- a/go.sum +++ b/go.sum @@ -297,6 +297,8 @@ github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= +github.com/getkin/kin-openapi v0.134.0 h1:/L5+1+kfe6dXh8Ot/wqiTgUkjOIEJiC0bbYVziHB8rU= +github.com/getkin/kin-openapi v0.134.0/go.mod h1:wK6ZLG/VgoETO9pcLJ/VmAtIcl/DNlMayNTb716EUxE= github.com/git-lfs/pktline v0.0.0-20230103162542-ca444d533ef1 h1:mtDjlmloH7ytdblogrMz1/8Hqua1y8B4ID+bh3rvod0= github.com/git-lfs/pktline v0.0.0-20230103162542-ca444d533ef1/go.mod h1:fenKRzpXDjNpsIBhuhUzvjCKlDjKam0boRAenTE0Q6A= github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c= @@ -332,6 +334,10 @@ github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-ldap/ldap/v3 v3.4.12 h1:1b81mv7MagXZ7+1r7cLTWmyuTqVqdwbtJSjC0DAp9s4= github.com/go-ldap/ldap/v3 v3.4.12/go.mod h1:+SPAGcTtOfmGsCb3h1RFiq4xpp4N636G75OEace8lNo= +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/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-redis/redis v6.15.9+incompatible h1:K0pv1D7EQUjfyoMql+r/jZqCLizCGKFlFgcHWWmHQjg= github.com/go-redis/redis v6.15.9+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= github.com/go-redis/redis/v7 v7.4.1 h1:PASvf36gyUpr2zdOUS/9Zqc80GbM+9BDyiJSJDDOrTI= @@ -586,6 +592,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/mrjones/oauth v0.0.0-20190623134757-126b35219450 h1:j2kD3MT1z4PXCiUllUJF9mWUESr9TWKS7iEKsQ/IipM= github.com/mrjones/oauth v0.0.0-20190623134757-126b35219450/go.mod h1:skjdDftzkFALcuGzYSklqYd8gvat6F1gZJ4YPVbkZpM= github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= @@ -604,6 +612,10 @@ github.com/nwaples/rardecode/v2 v2.2.0/go.mod h1:7uz379lSxPe6j9nvzxUZ+n7mnJNgjsR 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/oasdiff/yaml v0.0.0-20260313112342-a3ea61cb4d4c h1:7ACFcSaQsrWtrH4WHHfUqE1C+f8r2uv8KGaW0jTNjus= +github.com/oasdiff/yaml v0.0.0-20260313112342-a3ea61cb4d4c/go.mod h1:JKox4Gszkxt57kj27u7rvi7IFoIULvCZHUsBTUmQM/s= +github.com/oasdiff/yaml3 v0.0.0-20260224194419-61cd415a242b h1:vivRhVUAa9t1q0Db4ZmezBP8pWQWnXHFokZj0AOea2g= +github.com/oasdiff/yaml3 v0.0.0-20260224194419-61cd415a242b/go.mod h1:y5+oSEHCPT/DGrS++Wc/479ERge0zTFxaF8PbGKcg2o= github.com/olekukonko/cat v0.0.0-20250817074551-3280053e4e00 h1:ZCnkxe9GgWqqBxAk3cIKlQJuaqgOUF/nUtQs8flVTHM= github.com/olekukonko/cat v0.0.0-20250817074551-3280053e4e00/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0= github.com/olekukonko/errors v1.1.0 h1:RNuGIh15QdDenh+hNvKrJkmxxjV4hcS50Db478Ou5sM= @@ -630,6 +642,8 @@ github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJw github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s= +github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw= github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/philhofer/fwd v1.2.0 h1:e6DnBTl7vGY+Gz322/ASL4Gyp1FspeMvx1RNDoToZuM= github.com/philhofer/fwd v1.2.0/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= @@ -749,6 +763,8 @@ github.com/tinylib/msgp v1.6.1/go.mod h1:RSp0LW9oSxFut3KzESt5Voq4GVWyS+PSulT77ro github.com/tstranex/u2f v1.0.0 h1:HhJkSzDDlVSVIVt7pDJwCHQj67k7A5EeBgPmeD+pVsQ= github.com/tstranex/u2f v1.0.0/go.mod h1:eahSLaqAS0zsIEv80+vXT7WanXs7MQQDg3j3wGBSayo= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= +github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.15 h1:9DNdB5s+SgV3bQ2ApL10xRc35ck0DuIX/isZvIk+ubY= github.com/ulikunitz/xz v0.5.15/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= @@ -761,6 +777,8 @@ github.com/urfave/cli/v3 v3.4.1/go.mod h1:FJSKtM/9AiiTOJL4fJ6TbMUkxBXn7GO9guZqoZ github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/wneessen/go-mail v0.7.2 h1:xxPnhZ6IZLSgxShebmZ6DPKh1b6OJcoHfzy7UjOkzS8= github.com/wneessen/go-mail v0.7.2/go.mod h1:+TkW6QP3EVkgTEqHtVmnAE/1MRhmzb8Y9/W3pweuS+k= +github.com/woodsbury/decimal128 v1.3.0 h1:8pffMNWIlC0O5vbyHWFZAt5yWvWcrHA+3ovIIjVWss0= +github.com/woodsbury/decimal128 v1.3.0/go.mod h1:C5UTmyTjW3JftjUFzOVhC20BEQa2a4ZKOB5I6Zjb+ds= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= diff --git a/routers/web/swagger_json.go b/routers/web/swagger_json.go index 52f6beaf59a14..da41fd9013390 100644 --- a/routers/web/swagger_json.go +++ b/routers/web/swagger_json.go @@ -16,3 +16,10 @@ func SwaggerV1Json(ctx *context.Context) { ctx.Data["SwaggerAppSubUrl"] = setting.AppSubURL // it is JS-safe ctx.JSONTemplate("swagger/v1_json") } + +// OpenAPI3Json render OpenAPI 3.0 json (auto-converted from Swagger 2.0) +func OpenAPI3Json(ctx *context.Context) { + ctx.Data["SwaggerAppVer"] = template.HTML(template.JSEscapeString(setting.AppVer)) + ctx.Data["SwaggerAppSubUrl"] = setting.AppSubURL // it is JS-safe + ctx.JSONTemplate("swagger/v1_openapi3_json") +} diff --git a/routers/web/web.go b/routers/web/web.go index 72d2c27eafdb4..93b8587cc3e08 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -1742,6 +1742,7 @@ func registerWebRoutes(m *web.Router, webAuth *AuthMiddleware) { if setting.API.EnableSwagger { m.Get("/swagger.v1.json", SwaggerV1Json) + m.Get("/openapi.v1.json", OpenAPI3Json) } if !setting.IsProd || setting.IsInE2eTesting() { diff --git a/templates/swagger/v1_openapi3_json.tmpl b/templates/swagger/v1_openapi3_json.tmpl new file mode 100644 index 0000000000000..578604e7969fe --- /dev/null +++ b/templates/swagger/v1_openapi3_json.tmpl @@ -0,0 +1,33064 @@ +{ + "components": { + "responses": { + "AccessToken": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccessToken" + } + } + }, + "description": "AccessToken represents an API access token." + }, + "AccessTokenList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/AccessToken" + }, + "type": "array" + } + } + }, + "description": "AccessTokenList represents a list of API access token." + }, + "ActionVariable": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionVariable" + } + } + }, + "description": "ActionVariable" + }, + "ActionWorkflow": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionWorkflow" + } + } + }, + "description": "ActionWorkflow" + }, + "ActionWorkflowList": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionWorkflowResponse" + } + } + }, + "description": "ActionWorkflowList" + }, + "ActivityFeedsList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Activity" + }, + "type": "array" + } + } + }, + "description": "ActivityFeedsList" + }, + "AnnotatedTag": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AnnotatedTag" + } + } + }, + "description": "AnnotatedTag" + }, + "Artifact": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionArtifact" + } + } + }, + "description": "Artifact" + }, + "ArtifactsList": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionArtifactsResponse" + } + } + }, + "description": "ArtifactsList" + }, + "Attachment": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Attachment" + } + } + }, + "description": "Attachment" + }, + "AttachmentList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Attachment" + }, + "type": "array" + } + } + }, + "description": "AttachmentList" + }, + "BadgeList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Badge" + }, + "type": "array" + } + } + }, + "description": "BadgeList" + }, + "Branch": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Branch" + } + } + }, + "description": "Branch" + }, + "BranchList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Branch" + }, + "type": "array" + } + } + }, + "description": "BranchList" + }, + "BranchProtection": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BranchProtection" + } + } + }, + "description": "BranchProtection" + }, + "BranchProtectionList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/BranchProtection" + }, + "type": "array" + } + } + }, + "description": "BranchProtectionList" + }, + "ChangedFileList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/ChangedFile" + }, + "type": "array" + } + } + }, + "description": "ChangedFileList", + "headers": { + "X-HasMore": { + "description": "True if there is another page", + "schema": { + "type": "boolean" + } + }, + "X-Page": { + "description": "The current page", + "schema": { + "format": "int64", + "type": "integer" + } + }, + "X-PageCount": { + "description": "Total number of pages", + "schema": { + "format": "int64", + "type": "integer" + } + }, + "X-PerPage": { + "description": "Commits per page", + "schema": { + "format": "int64", + "type": "integer" + } + }, + "X-Total": { + "description": "Total commit count", + "schema": { + "format": "int64", + "type": "integer" + } + } + } + }, + "CombinedStatus": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CombinedStatus" + } + } + }, + "description": "CombinedStatus" + }, + "Comment": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Comment" + } + } + }, + "description": "Comment" + }, + "CommentList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Comment" + }, + "type": "array" + } + } + }, + "description": "CommentList" + }, + "Commit": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Commit" + } + } + }, + "description": "Commit" + }, + "CommitList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Commit" + }, + "type": "array" + } + } + }, + "description": "CommitList", + "headers": { + "X-HasMore": { + "description": "True if there is another page", + "schema": { + "type": "boolean" + } + }, + "X-Page": { + "description": "The current page", + "schema": { + "format": "int64", + "type": "integer" + } + }, + "X-PageCount": { + "description": "Total number of pages", + "schema": { + "format": "int64", + "type": "integer" + } + }, + "X-PerPage": { + "description": "Commits per page", + "schema": { + "format": "int64", + "type": "integer" + } + }, + "X-Total": { + "description": "Total commit count", + "schema": { + "format": "int64", + "type": "integer" + } + } + } + }, + "CommitStatus": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CommitStatus" + } + } + }, + "description": "CommitStatus" + }, + "CommitStatusList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/CommitStatus" + }, + "type": "array" + } + } + }, + "description": "CommitStatusList" + }, + "Compare": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Compare" + } + } + }, + "description": "" + }, + "ContentsExtResponse": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ContentsExtResponse" + } + } + }, + "description": "" + }, + "ContentsListResponse": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/ContentsResponse" + }, + "type": "array" + } + } + }, + "description": "ContentsListResponse" + }, + "ContentsResponse": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ContentsResponse" + } + } + }, + "description": "ContentsResponse" + }, + "CronList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Cron" + }, + "type": "array" + } + } + }, + "description": "CronList" + }, + "DeployKey": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeployKey" + } + } + }, + "description": "DeployKey" + }, + "DeployKeyList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/DeployKey" + }, + "type": "array" + } + } + }, + "description": "DeployKeyList" + }, + "EmailList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Email" + }, + "type": "array" + } + } + }, + "description": "EmailList" + }, + "EmptyRepository": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "EmptyRepository" + }, + "FileDeleteResponse": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FileDeleteResponse" + } + } + }, + "description": "FileDeleteResponse" + }, + "FileResponse": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FileResponse" + } + } + }, + "description": "FileResponse" + }, + "FilesResponse": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FilesResponse" + } + } + }, + "description": "FilesResponse" + }, + "GPGKey": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GPGKey" + } + } + }, + "description": "GPGKey" + }, + "GPGKeyList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GPGKey" + }, + "type": "array" + } + } + }, + "description": "GPGKeyList" + }, + "GeneralAPISettings": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GeneralAPISettings" + } + } + }, + "description": "GeneralAPISettings" + }, + "GeneralAttachmentSettings": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GeneralAttachmentSettings" + } + } + }, + "description": "GeneralAttachmentSettings" + }, + "GeneralRepoSettings": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GeneralRepoSettings" + } + } + }, + "description": "GeneralRepoSettings" + }, + "GeneralUISettings": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GeneralUISettings" + } + } + }, + "description": "GeneralUISettings" + }, + "GitBlobResponse": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GitBlobResponse" + } + } + }, + "description": "GitBlobResponse" + }, + "GitHook": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GitHook" + } + } + }, + "description": "GitHook" + }, + "GitHookList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GitHook" + }, + "type": "array" + } + } + }, + "description": "GitHookList" + }, + "GitTreeResponse": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GitTreeResponse" + } + } + }, + "description": "GitTreeResponse" + }, + "GitignoreTemplateInfo": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GitignoreTemplateInfo" + } + } + }, + "description": "GitignoreTemplateInfo" + }, + "GitignoreTemplateList": { + "content": { + "application/json": { + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "description": "GitignoreTemplateList" + }, + "Hook": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Hook" + } + } + }, + "description": "Hook" + }, + "HookList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Hook" + }, + "type": "array" + } + } + }, + "description": "HookList" + }, + "Issue": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Issue" + } + } + }, + "description": "Issue" + }, + "IssueDeadline": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IssueDeadline" + } + } + }, + "description": "IssueDeadline" + }, + "IssueList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Issue" + }, + "type": "array" + } + } + }, + "description": "IssueList" + }, + "IssueTemplates": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/IssueTemplate" + }, + "type": "array" + } + } + }, + "description": "IssueTemplates" + }, + "Label": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Label" + } + } + }, + "description": "Label" + }, + "LabelList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Label" + }, + "type": "array" + } + } + }, + "description": "LabelList" + }, + "LabelTemplateInfo": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/LabelTemplate" + }, + "type": "array" + } + } + }, + "description": "LabelTemplateInfo" + }, + "LabelTemplateList": { + "content": { + "application/json": { + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "description": "LabelTemplateList" + }, + "LanguageStatistics": { + "content": { + "application/json": { + "schema": { + "additionalProperties": { + "format": "int64", + "type": "integer" + }, + "type": "object" + } + } + }, + "description": "LanguageStatistics" + }, + "LicenseTemplateInfo": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LicenseTemplateInfo" + } + } + }, + "description": "LicenseTemplateInfo" + }, + "LicenseTemplateList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/LicensesTemplateListEntry" + }, + "type": "array" + } + } + }, + "description": "LicenseTemplateList" + }, + "LicensesList": { + "content": { + "application/json": { + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "description": "LicensesList" + }, + "MarkdownRender": { + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + }, + "description": "MarkdownRender is a rendered markdown document" + }, + "MarkupRender": { + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + }, + "description": "MarkupRender is a rendered markup document" + }, + "MergeUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MergeUpstreamRequest" + } + } + }, + "description": "" + }, + "MergeUpstreamResponse": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MergeUpstreamResponse" + } + } + }, + "description": "" + }, + "Milestone": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Milestone" + } + } + }, + "description": "Milestone" + }, + "MilestoneList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Milestone" + }, + "type": "array" + } + } + }, + "description": "MilestoneList" + }, + "NodeInfo": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NodeInfo" + } + } + }, + "description": "NodeInfo" + }, + "Note": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Note" + } + } + }, + "description": "Note" + }, + "NotificationCount": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotificationCount" + } + } + }, + "description": "Number of unread notifications" + }, + "NotificationThread": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotificationThread" + } + } + }, + "description": "NotificationThread" + }, + "NotificationThreadList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/NotificationThread" + }, + "type": "array" + } + } + }, + "description": "NotificationThreadList" + }, + "OAuth2Application": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuth2Application" + } + } + }, + "description": "OAuth2Application" + }, + "OAuth2ApplicationList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/OAuth2Application" + }, + "type": "array" + } + } + }, + "description": "OAuth2ApplicationList represents a list of OAuth2 applications." + }, + "Organization": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Organization" + } + } + }, + "description": "Organization" + }, + "OrganizationList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Organization" + }, + "type": "array" + } + } + }, + "description": "OrganizationList" + }, + "OrganizationPermissions": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPermissions" + } + } + }, + "description": "OrganizationPermissions" + }, + "Package": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + }, + "description": "Package" + }, + "PackageFileList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "type": "array" + } + } + }, + "description": "PackageFileList" + }, + "PackageList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Package" + }, + "type": "array" + } + } + }, + "description": "PackageList" + }, + "PublicKey": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PublicKey" + } + } + }, + "description": "PublicKey" + }, + "PublicKeyList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/PublicKey" + }, + "type": "array" + } + } + }, + "description": "PublicKeyList" + }, + "PullRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PullRequest" + } + } + }, + "description": "PullRequest" + }, + "PullRequestList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/PullRequest" + }, + "type": "array" + } + } + }, + "description": "PullRequestList" + }, + "PullReview": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PullReview" + } + } + }, + "description": "PullReview" + }, + "PullReviewComment": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PullReviewComment" + } + } + }, + "description": "PullComment" + }, + "PullReviewCommentList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/PullReviewComment" + }, + "type": "array" + } + } + }, + "description": "PullCommentList" + }, + "PullReviewList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/PullReview" + }, + "type": "array" + } + } + }, + "description": "PullReviewList" + }, + "PushMirror": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PushMirror" + } + } + }, + "description": "PushMirror" + }, + "PushMirrorList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/PushMirror" + }, + "type": "array" + } + } + }, + "description": "PushMirrorList" + }, + "Reaction": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Reaction" + } + } + }, + "description": "Reaction" + }, + "ReactionList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Reaction" + }, + "type": "array" + } + } + }, + "description": "ReactionList" + }, + "Reference": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Reference" + } + } + }, + "description": "Reference" + }, + "ReferenceList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Reference" + }, + "type": "array" + } + } + }, + "description": "ReferenceList" + }, + "RegistrationToken": { + "description": "RegistrationToken is response related to registration token", + "headers": { + "token": { + "schema": { + "type": "string" + } + } + } + }, + "Release": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Release" + } + } + }, + "description": "Release" + }, + "ReleaseList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Release" + }, + "type": "array" + } + } + }, + "description": "ReleaseList" + }, + "RepoCollaboratorPermission": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoCollaboratorPermission" + } + } + }, + "description": "RepoCollaboratorPermission" + }, + "RepoIssueConfig": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IssueConfig" + } + } + }, + "description": "RepoIssueConfig" + }, + "RepoIssueConfigValidation": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IssueConfigValidation" + } + } + }, + "description": "RepoIssueConfigValidation" + }, + "RepoNewIssuePinsAllowed": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NewIssuePinsAllowed" + } + } + }, + "description": "RepoNewIssuePinsAllowed" + }, + "Repository": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Repository" + } + } + }, + "description": "Repository" + }, + "RepositoryList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Repository" + }, + "type": "array" + } + } + }, + "description": "RepositoryList" + }, + "RunDetails": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RunDetails" + } + } + }, + "description": "RunDetails" + }, + "Runner": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionRunner" + } + } + }, + "description": "Runner" + }, + "RunnerList": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionRunnersResponse" + } + } + }, + "description": "RunnerList" + }, + "SearchResults": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchResults" + } + } + }, + "description": "SearchResults" + }, + "Secret": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Secret" + } + } + }, + "description": "Secret" + }, + "SecretList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Secret" + }, + "type": "array" + } + } + }, + "description": "SecretList" + }, + "ServerVersion": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServerVersion" + } + } + }, + "description": "ServerVersion" + }, + "StopWatch": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopWatch" + } + } + }, + "description": "StopWatch" + }, + "StopWatchList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/StopWatch" + }, + "type": "array" + } + } + }, + "description": "StopWatchList" + }, + "StringSlice": { + "content": { + "application/json": { + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "description": "StringSlice" + }, + "Tag": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Tag" + } + } + }, + "description": "Tag" + }, + "TagList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Tag" + }, + "type": "array" + } + } + }, + "description": "TagList" + }, + "TagProtection": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TagProtection" + } + } + }, + "description": "TagProtection" + }, + "TagProtectionList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/TagProtection" + }, + "type": "array" + } + } + }, + "description": "TagProtectionList" + }, + "TasksList": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionTaskResponse" + } + } + }, + "description": "TasksList" + }, + "Team": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Team" + } + } + }, + "description": "Team" + }, + "TeamList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Team" + }, + "type": "array" + } + } + }, + "description": "TeamList" + }, + "TimelineList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/TimelineComment" + }, + "type": "array" + } + } + }, + "description": "TimelineList" + }, + "TopicListResponse": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/TopicResponse" + }, + "type": "array" + } + } + }, + "description": "TopicListResponse" + }, + "TopicNames": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TopicName" + } + } + }, + "description": "TopicNames" + }, + "TrackedTime": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TrackedTime" + } + } + }, + "description": "TrackedTime" + }, + "TrackedTimeList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/TrackedTime" + }, + "type": "array" + } + } + }, + "description": "TrackedTimeList" + }, + "User": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + }, + "description": "User" + }, + "UserHeatmapData": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/UserHeatmapData" + }, + "type": "array" + } + } + }, + "description": "UserHeatmapData" + }, + "UserList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/User" + }, + "type": "array" + } + } + }, + "description": "UserList" + }, + "UserSettings": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/UserSettings" + }, + "type": "array" + } + } + }, + "description": "UserSettings" + }, + "VariableList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/ActionVariable" + }, + "type": "array" + } + } + }, + "description": "VariableList" + }, + "WatchInfo": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WatchInfo" + } + } + }, + "description": "WatchInfo" + }, + "WikiCommitList": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WikiCommitList" + } + } + }, + "description": "WikiCommitList" + }, + "WikiPage": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WikiPage" + } + } + }, + "description": "WikiPage" + }, + "WikiPageList": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/WikiPageMetaData" + }, + "type": "array" + } + } + }, + "description": "WikiPageList" + }, + "WorkflowJob": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionWorkflowJob" + } + } + }, + "description": "WorkflowJob" + }, + "WorkflowJobsList": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionWorkflowJobsResponse" + } + } + }, + "description": "WorkflowJobsList" + }, + "WorkflowRun": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionWorkflowRun" + } + } + }, + "description": "WorkflowRun" + }, + "WorkflowRunsList": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionWorkflowRunsResponse" + } + } + }, + "description": "WorkflowRunsList" + }, + "conflict": { + "description": "APIConflict is a conflict empty response" + }, + "empty": { + "description": "APIEmpty is an empty response" + }, + "error": { + "description": "APIError is error format response", + "headers": { + "message": { + "schema": { + "type": "string" + } + }, + "url": { + "schema": { + "type": "string" + } + } + } + }, + "forbidden": { + "description": "APIForbiddenError is a forbidden error response", + "headers": { + "message": { + "schema": { + "type": "string" + } + }, + "url": { + "schema": { + "type": "string" + } + } + } + }, + "invalidTopicsError": { + "description": "APIInvalidTopicsError is error format response to invalid topics", + "headers": { + "invalidTopics": { + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "message": { + "schema": { + "type": "string" + } + } + } + }, + "notFound": { + "description": "APINotFound is a not found empty response" + }, + "parameterBodies": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LockIssueOption" + } + } + }, + "description": "parameterBodies" + }, + "redirect": { + "description": "APIRedirect is a redirect response" + }, + "repoArchivedError": { + "description": "APIRepoArchivedError is an error that is raised when an archived repo should be modified", + "headers": { + "message": { + "schema": { + "type": "string" + } + }, + "url": { + "schema": { + "type": "string" + } + } + } + }, + "string": { + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + }, + "description": "APIString is a string response" + }, + "validationError": { + "description": "APIValidationError is error format response related to input validation", + "headers": { + "message": { + "schema": { + "type": "string" + } + }, + "url": { + "schema": { + "type": "string" + } + } + } + } + }, + "schemas": { + "APIError": { + "description": "APIError is an api error with a message", + "properties": { + "message": { + "description": "Message contains the error description", + "type": "string", + "x-go-name": "Message" + }, + "url": { + "description": "URL contains the documentation URL for this error", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "AccessToken": { + "properties": { + "created_at": { + "description": "The timestamp when the token was created", + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "id": { + "description": "The unique identifier of the access token", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "last_used_at": { + "description": "The timestamp when the token was last used", + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + }, + "name": { + "description": "The name of the access token", + "type": "string", + "x-go-name": "Name" + }, + "scopes": { + "description": "The scopes granted to this access token", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Scopes" + }, + "sha1": { + "description": "The SHA1 hash of the access token", + "type": "string", + "x-go-name": "Token" + }, + "token_last_eight": { + "description": "The last eight characters of the token", + "type": "string", + "x-go-name": "TokenLastEight" + } + }, + "title": "AccessToken represents an API access token.", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionArtifact": { + "description": "ActionArtifact represents a ActionArtifact", + "properties": { + "archive_download_url": { + "format": "uri", + "type": "string", + "x-go-name": "ArchiveDownloadURL" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "CreatedAt" + }, + "expired": { + "type": "boolean", + "x-go-name": "Expired" + }, + "expires_at": { + "format": "date-time", + "type": "string", + "x-go-name": "ExpiresAt" + }, + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "size_in_bytes": { + "format": "int64", + "type": "integer", + "x-go-name": "SizeInBytes" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "UpdatedAt" + }, + "url": { + "format": "uri", + "type": "string", + "x-go-name": "URL" + }, + "workflow_run": { + "$ref": "#/components/schemas/ActionWorkflowRun" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionArtifactsResponse": { + "description": "ActionArtifactsResponse returns ActionArtifacts", + "properties": { + "artifacts": { + "items": { + "$ref": "#/components/schemas/ActionArtifact" + }, + "type": "array", + "x-go-name": "Entries" + }, + "total_count": { + "format": "int64", + "type": "integer", + "x-go-name": "TotalCount" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionRunner": { + "description": "ActionRunner represents a Runner", + "properties": { + "busy": { + "type": "boolean", + "x-go-name": "Busy" + }, + "disabled": { + "type": "boolean", + "x-go-name": "Disabled" + }, + "ephemeral": { + "type": "boolean", + "x-go-name": "Ephemeral" + }, + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "labels": { + "items": { + "$ref": "#/components/schemas/ActionRunnerLabel" + }, + "type": "array", + "x-go-name": "Labels" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "status": { + "type": "string", + "x-go-name": "Status" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionRunnerLabel": { + "description": "ActionRunnerLabel represents a Runner Label", + "properties": { + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "type": { + "type": "string", + "x-go-name": "Type" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionRunnersResponse": { + "description": "ActionRunnersResponse returns Runners", + "properties": { + "runners": { + "items": { + "$ref": "#/components/schemas/ActionRunner" + }, + "type": "array", + "x-go-name": "Entries" + }, + "total_count": { + "format": "int64", + "type": "integer", + "x-go-name": "TotalCount" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionTask": { + "description": "ActionTask represents a ActionTask", + "properties": { + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "CreatedAt" + }, + "display_title": { + "description": "DisplayTitle is the display title for the workflow run", + "type": "string", + "x-go-name": "DisplayTitle" + }, + "event": { + "description": "Event is the type of event that triggered the workflow", + "type": "string", + "x-go-name": "Event" + }, + "head_branch": { + "description": "HeadBranch is the branch that triggered the workflow", + "type": "string", + "x-go-name": "HeadBranch" + }, + "head_sha": { + "description": "HeadSHA is the commit SHA that triggered the workflow", + "type": "string", + "x-go-name": "HeadSHA" + }, + "id": { + "description": "ID is the unique identifier for the action task", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "name": { + "description": "Name is the name of the workflow", + "type": "string", + "x-go-name": "Name" + }, + "run_number": { + "description": "RunNumber is the sequential number of the workflow run", + "format": "int64", + "type": "integer", + "x-go-name": "RunNumber" + }, + "run_started_at": { + "format": "date-time", + "type": "string", + "x-go-name": "RunStartedAt" + }, + "status": { + "description": "Status indicates the current status of the workflow run", + "type": "string", + "x-go-name": "Status" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "UpdatedAt" + }, + "url": { + "description": "URL is the API URL for this workflow run", + "format": "uri", + "type": "string", + "x-go-name": "URL" + }, + "workflow_id": { + "description": "WorkflowID is the identifier of the workflow", + "type": "string", + "x-go-name": "WorkflowID" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionTaskResponse": { + "description": "ActionTaskResponse returns a ActionTask", + "properties": { + "total_count": { + "description": "TotalCount is the total number of workflow runs", + "format": "int64", + "type": "integer", + "x-go-name": "TotalCount" + }, + "workflow_runs": { + "description": "Entries contains the list of workflow runs", + "items": { + "$ref": "#/components/schemas/ActionTask" + }, + "type": "array", + "x-go-name": "Entries" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionVariable": { + "description": "ActionVariable return value of the query API", + "properties": { + "data": { + "description": "the value of the variable", + "type": "string", + "x-go-name": "Data" + }, + "description": { + "description": "the description of the variable", + "type": "string", + "x-go-name": "Description" + }, + "name": { + "description": "the name of the variable", + "type": "string", + "x-go-name": "Name" + }, + "owner_id": { + "description": "the owner to which the variable belongs", + "format": "int64", + "type": "integer", + "x-go-name": "OwnerID" + }, + "repo_id": { + "description": "the repository to which the variable belongs", + "format": "int64", + "type": "integer", + "x-go-name": "RepoID" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionWorkflow": { + "description": "ActionWorkflow represents a ActionWorkflow", + "properties": { + "badge_url": { + "description": "BadgeURL is the URL for the workflow badge", + "format": "uri", + "type": "string", + "x-go-name": "BadgeURL" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "CreatedAt" + }, + "deleted_at": { + "format": "date-time", + "type": "string", + "x-go-name": "DeletedAt" + }, + "html_url": { + "description": "HTMLURL is the web URL for viewing the workflow", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "description": "ID is the unique identifier for the workflow", + "type": "string", + "x-go-name": "ID" + }, + "name": { + "description": "Name is the name of the workflow", + "type": "string", + "x-go-name": "Name" + }, + "path": { + "description": "Path is the file path of the workflow", + "type": "string", + "x-go-name": "Path" + }, + "state": { + "description": "State indicates if the workflow is active or disabled", + "type": "string", + "x-go-name": "State" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "UpdatedAt" + }, + "url": { + "description": "URL is the API URL for this workflow", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionWorkflowJob": { + "description": "ActionWorkflowJob represents a WorkflowJob", + "properties": { + "completed_at": { + "format": "date-time", + "type": "string", + "x-go-name": "CompletedAt" + }, + "conclusion": { + "type": "string", + "x-go-name": "Conclusion" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "CreatedAt" + }, + "head_branch": { + "type": "string", + "x-go-name": "HeadBranch" + }, + "head_sha": { + "type": "string", + "x-go-name": "HeadSha" + }, + "html_url": { + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Labels" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "run_attempt": { + "format": "int64", + "type": "integer", + "x-go-name": "RunAttempt" + }, + "run_id": { + "format": "int64", + "type": "integer", + "x-go-name": "RunID" + }, + "run_url": { + "format": "uri", + "type": "string", + "x-go-name": "RunURL" + }, + "runner_id": { + "format": "int64", + "type": "integer", + "x-go-name": "RunnerID" + }, + "runner_name": { + "type": "string", + "x-go-name": "RunnerName" + }, + "started_at": { + "format": "date-time", + "type": "string", + "x-go-name": "StartedAt" + }, + "status": { + "type": "string", + "x-go-name": "Status" + }, + "steps": { + "items": { + "$ref": "#/components/schemas/ActionWorkflowStep" + }, + "type": "array", + "x-go-name": "Steps" + }, + "url": { + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionWorkflowJobsResponse": { + "description": "ActionWorkflowJobsResponse returns ActionWorkflowJobs", + "properties": { + "jobs": { + "items": { + "$ref": "#/components/schemas/ActionWorkflowJob" + }, + "type": "array", + "x-go-name": "Entries" + }, + "total_count": { + "format": "int64", + "type": "integer", + "x-go-name": "TotalCount" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionWorkflowResponse": { + "description": "ActionWorkflowResponse returns a ActionWorkflow", + "properties": { + "total_count": { + "format": "int64", + "type": "integer", + "x-go-name": "TotalCount" + }, + "workflows": { + "items": { + "$ref": "#/components/schemas/ActionWorkflow" + }, + "type": "array", + "x-go-name": "Workflows" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionWorkflowRun": { + "description": "ActionWorkflowRun represents a WorkflowRun", + "properties": { + "actor": { + "$ref": "#/components/schemas/User" + }, + "completed_at": { + "format": "date-time", + "type": "string", + "x-go-name": "CompletedAt" + }, + "conclusion": { + "type": "string", + "x-go-name": "Conclusion" + }, + "display_title": { + "type": "string", + "x-go-name": "DisplayTitle" + }, + "event": { + "type": "string", + "x-go-name": "Event" + }, + "head_branch": { + "type": "string", + "x-go-name": "HeadBranch" + }, + "head_repository": { + "$ref": "#/components/schemas/Repository" + }, + "head_sha": { + "type": "string", + "x-go-name": "HeadSha" + }, + "html_url": { + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "path": { + "type": "string", + "x-go-name": "Path" + }, + "repository": { + "$ref": "#/components/schemas/Repository" + }, + "repository_id": { + "format": "int64", + "type": "integer", + "x-go-name": "RepositoryID" + }, + "run_attempt": { + "format": "int64", + "type": "integer", + "x-go-name": "RunAttempt" + }, + "run_number": { + "format": "int64", + "type": "integer", + "x-go-name": "RunNumber" + }, + "started_at": { + "format": "date-time", + "type": "string", + "x-go-name": "StartedAt" + }, + "status": { + "type": "string", + "x-go-name": "Status" + }, + "trigger_actor": { + "$ref": "#/components/schemas/User" + }, + "url": { + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionWorkflowRunsResponse": { + "description": "ActionWorkflowRunsResponse returns ActionWorkflowRuns", + "properties": { + "total_count": { + "format": "int64", + "type": "integer", + "x-go-name": "TotalCount" + }, + "workflow_runs": { + "items": { + "$ref": "#/components/schemas/ActionWorkflowRun" + }, + "type": "array", + "x-go-name": "Entries" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ActionWorkflowStep": { + "description": "ActionWorkflowStep represents a step of a WorkflowJob", + "properties": { + "completed_at": { + "format": "date-time", + "type": "string", + "x-go-name": "CompletedAt" + }, + "conclusion": { + "type": "string", + "x-go-name": "Conclusion" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "number": { + "format": "int64", + "type": "integer", + "x-go-name": "Number" + }, + "started_at": { + "format": "date-time", + "type": "string", + "x-go-name": "StartedAt" + }, + "status": { + "type": "string", + "x-go-name": "Status" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Activity": { + "properties": { + "act_user": { + "$ref": "#/components/schemas/User" + }, + "act_user_id": { + "description": "The ID of the user who performed the action", + "format": "int64", + "type": "integer", + "x-go-name": "ActUserID" + }, + "comment": { + "$ref": "#/components/schemas/Comment" + }, + "comment_id": { + "description": "The ID of the comment associated with the activity (if applicable)", + "format": "int64", + "type": "integer", + "x-go-name": "CommentID" + }, + "content": { + "description": "Additional content or details about the activity", + "type": "string", + "x-go-name": "Content" + }, + "created": { + "description": "The date and time when the activity occurred", + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "id": { + "description": "The unique identifier of the activity", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "is_private": { + "description": "Whether this activity is from a private repository", + "type": "boolean", + "x-go-name": "IsPrivate" + }, + "op_type": { + "description": "the type of action", + "enum": [ + "create_repo", + "rename_repo", + "star_repo", + "watch_repo", + "commit_repo", + "create_issue", + "create_pull_request", + "transfer_repo", + "push_tag", + "comment_issue", + "merge_pull_request", + "close_issue", + "reopen_issue", + "close_pull_request", + "reopen_pull_request", + "delete_tag", + "delete_branch", + "mirror_sync_push", + "mirror_sync_create", + "mirror_sync_delete", + "approve_pull_request", + "reject_pull_request", + "comment_pull", + "publish_release", + "pull_review_dismissed", + "pull_request_ready_for_review", + "auto_merge_pull_request" + ], + "type": "string", + "x-go-name": "OpType" + }, + "ref_name": { + "description": "The name of the git reference (branch/tag) associated with the activity", + "type": "string", + "x-go-name": "RefName" + }, + "repo": { + "$ref": "#/components/schemas/Repository" + }, + "repo_id": { + "description": "The ID of the repository associated with the activity", + "format": "int64", + "type": "integer", + "x-go-name": "RepoID" + }, + "user_id": { + "description": "The ID of the user who receives/sees this activity", + "format": "int64", + "type": "integer", + "x-go-name": "UserID" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "AddCollaboratorOption": { + "description": "AddCollaboratorOption options when adding a user as a collaborator of a repository", + "properties": { + "permission": { + "$ref": "#/components/schemas/PermissionEnum" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "AddTimeOption": { + "description": "AddTimeOption options for adding time to an issue", + "properties": { + "created": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "time": { + "description": "time in seconds", + "format": "int64", + "type": "integer", + "x-go-name": "Time" + }, + "user_name": { + "description": "username of the user who spent the time working on the issue (optional)", + "type": "string", + "x-go-name": "User" + } + }, + "required": [ + "time" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "AnnotatedTag": { + "description": "AnnotatedTag represents an annotated tag", + "properties": { + "message": { + "description": "The message associated with the annotated tag", + "type": "string", + "x-go-name": "Message" + }, + "object": { + "$ref": "#/components/schemas/AnnotatedTagObject" + }, + "sha": { + "description": "The SHA hash of the annotated tag", + "type": "string", + "x-go-name": "SHA" + }, + "tag": { + "description": "The name of the annotated tag", + "type": "string", + "x-go-name": "Tag" + }, + "tagger": { + "$ref": "#/components/schemas/CommitUser" + }, + "url": { + "description": "The URL to access the annotated tag", + "format": "uri", + "type": "string", + "x-go-name": "URL" + }, + "verification": { + "$ref": "#/components/schemas/PayloadCommitVerification" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "AnnotatedTagObject": { + "description": "AnnotatedTagObject contains meta information of the tag object", + "properties": { + "sha": { + "description": "The SHA hash of the tagged object", + "type": "string", + "x-go-name": "SHA" + }, + "type": { + "description": "The type of the tagged object (e.g., commit, tree)", + "type": "string", + "x-go-name": "Type" + }, + "url": { + "description": "The URL to access the tagged object", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ApplyDiffPatchFileOptions": { + "description": "ApplyDiffPatchFileOptions options for applying a diff patch\nNote: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)", + "properties": { + "author": { + "$ref": "#/components/schemas/Identity" + }, + "branch": { + "description": "branch (optional) is the base branch for the changes. If not supplied, the default branch is used", + "type": "string", + "x-go-name": "BranchName" + }, + "committer": { + "$ref": "#/components/schemas/Identity" + }, + "content": { + "type": "string", + "x-go-name": "Content" + }, + "dates": { + "$ref": "#/components/schemas/CommitDateOptions" + }, + "force_push": { + "description": "force_push (optional) will do a force-push if the new branch already exists", + "type": "boolean", + "x-go-name": "ForcePush" + }, + "message": { + "description": "message (optional) is the commit message of the changes. If not supplied, a default message will be used", + "type": "string", + "x-go-name": "Message" + }, + "new_branch": { + "description": "new_branch (optional) will make a new branch from base branch for the changes. If not supplied, the changes will be committed to the base branch", + "type": "string", + "x-go-name": "NewBranchName" + }, + "signoff": { + "description": "Add a Signed-off-by trailer by the committer at the end of the commit log message.", + "type": "boolean", + "x-go-name": "Signoff" + } + }, + "required": [ + "content" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Attachment": { + "description": "Attachment a generic attachment", + "properties": { + "browser_download_url": { + "description": "DownloadURL is the URL to download the attachment", + "format": "uri", + "type": "string", + "x-go-name": "DownloadURL" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "download_count": { + "description": "DownloadCount is the number of times the attachment has been downloaded", + "format": "int64", + "type": "integer", + "x-go-name": "DownloadCount" + }, + "id": { + "description": "ID is the unique identifier for the attachment", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "name": { + "description": "Name is the filename of the attachment", + "type": "string", + "x-go-name": "Name" + }, + "size": { + "description": "Size is the file size in bytes", + "format": "int64", + "type": "integer", + "x-go-name": "Size" + }, + "uuid": { + "description": "UUID is the unique identifier for the attachment file", + "type": "string", + "x-go-name": "UUID" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Badge": { + "description": "Badge represents a user badge", + "properties": { + "description": { + "type": "string", + "x-go-name": "Description" + }, + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "image_url": { + "format": "uri", + "type": "string", + "x-go-name": "ImageURL" + }, + "slug": { + "type": "string", + "x-go-name": "Slug" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Branch": { + "description": "Branch represents a repository branch", + "properties": { + "commit": { + "$ref": "#/components/schemas/PayloadCommit" + }, + "effective_branch_protection_name": { + "description": "EffectiveBranchProtectionName is the name of the effective branch protection rule", + "type": "string", + "x-go-name": "EffectiveBranchProtectionName" + }, + "enable_status_check": { + "description": "EnableStatusCheck indicates if status checks are enabled", + "type": "boolean", + "x-go-name": "EnableStatusCheck" + }, + "name": { + "description": "Name is the branch name", + "type": "string", + "x-go-name": "Name" + }, + "protected": { + "description": "Protected indicates if the branch is protected", + "type": "boolean", + "x-go-name": "Protected" + }, + "required_approvals": { + "description": "RequiredApprovals is the number of required approvals for pull requests", + "format": "int64", + "type": "integer", + "x-go-name": "RequiredApprovals" + }, + "status_check_contexts": { + "description": "StatusCheckContexts contains the list of required status check contexts", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "StatusCheckContexts" + }, + "user_can_merge": { + "description": "UserCanMerge indicates if the current user can merge to this branch", + "type": "boolean", + "x-go-name": "UserCanMerge" + }, + "user_can_push": { + "description": "UserCanPush indicates if the current user can push to this branch", + "type": "boolean", + "x-go-name": "UserCanPush" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "BranchProtection": { + "description": "BranchProtection represents a branch protection for a repository", + "properties": { + "approvals_whitelist_teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "ApprovalsWhitelistTeams" + }, + "approvals_whitelist_username": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "ApprovalsWhitelistUsernames" + }, + "block_admin_merge_override": { + "type": "boolean", + "x-go-name": "BlockAdminMergeOverride" + }, + "block_on_official_review_requests": { + "type": "boolean", + "x-go-name": "BlockOnOfficialReviewRequests" + }, + "block_on_outdated_branch": { + "type": "boolean", + "x-go-name": "BlockOnOutdatedBranch" + }, + "block_on_rejected_reviews": { + "type": "boolean", + "x-go-name": "BlockOnRejectedReviews" + }, + "branch_name": { + "deprecated": true, + "description": "Deprecated: true", + "type": "string", + "x-go-name": "BranchName" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "dismiss_stale_approvals": { + "type": "boolean", + "x-go-name": "DismissStaleApprovals" + }, + "enable_approvals_whitelist": { + "type": "boolean", + "x-go-name": "EnableApprovalsWhitelist" + }, + "enable_force_push": { + "type": "boolean", + "x-go-name": "EnableForcePush" + }, + "enable_force_push_allowlist": { + "type": "boolean", + "x-go-name": "EnableForcePushAllowlist" + }, + "enable_merge_whitelist": { + "type": "boolean", + "x-go-name": "EnableMergeWhitelist" + }, + "enable_push": { + "type": "boolean", + "x-go-name": "EnablePush" + }, + "enable_push_whitelist": { + "type": "boolean", + "x-go-name": "EnablePushWhitelist" + }, + "enable_status_check": { + "type": "boolean", + "x-go-name": "EnableStatusCheck" + }, + "force_push_allowlist_deploy_keys": { + "type": "boolean", + "x-go-name": "ForcePushAllowlistDeployKeys" + }, + "force_push_allowlist_teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "ForcePushAllowlistTeams" + }, + "force_push_allowlist_usernames": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "ForcePushAllowlistUsernames" + }, + "ignore_stale_approvals": { + "type": "boolean", + "x-go-name": "IgnoreStaleApprovals" + }, + "merge_whitelist_teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "MergeWhitelistTeams" + }, + "merge_whitelist_usernames": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "MergeWhitelistUsernames" + }, + "priority": { + "description": "Priority is the priority of this branch protection rule", + "format": "int64", + "type": "integer", + "x-go-name": "Priority" + }, + "protected_file_patterns": { + "type": "string", + "x-go-name": "ProtectedFilePatterns" + }, + "push_whitelist_deploy_keys": { + "type": "boolean", + "x-go-name": "PushWhitelistDeployKeys" + }, + "push_whitelist_teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "PushWhitelistTeams" + }, + "push_whitelist_usernames": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "PushWhitelistUsernames" + }, + "require_signed_commits": { + "type": "boolean", + "x-go-name": "RequireSignedCommits" + }, + "required_approvals": { + "format": "int64", + "type": "integer", + "x-go-name": "RequiredApprovals" + }, + "rule_name": { + "description": "RuleName is the name of the branch protection rule", + "type": "string", + "x-go-name": "RuleName" + }, + "status_check_contexts": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "StatusCheckContexts" + }, + "unprotected_file_patterns": { + "type": "string", + "x-go-name": "UnprotectedFilePatterns" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ChangeFileOperation": { + "description": "ChangeFileOperation for creating, updating or deleting a file", + "properties": { + "content": { + "description": "new or updated file content, it must be base64 encoded", + "type": "string", + "x-go-name": "ContentBase64" + }, + "from_path": { + "description": "old path of the file to move", + "type": "string", + "x-go-name": "FromPath" + }, + "operation": { + "description": "indicates what to do with the file: \"create\" for creating a new file, \"update\" for updating an existing file,\n\"upload\" for creating or updating a file, \"rename\" for renaming a file, and \"delete\" for deleting an existing file.", + "enum": [ + "create", + "update", + "upload", + "rename", + "delete" + ], + "type": "string", + "x-go-name": "Operation" + }, + "path": { + "description": "path to the existing or new file", + "type": "string", + "x-go-name": "Path" + }, + "sha": { + "description": "the blob ID (SHA) for the file that already exists, required for changing existing files", + "type": "string", + "x-go-name": "SHA" + } + }, + "required": [ + "operation", + "path" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ChangeFilesOptions": { + "description": "ChangeFilesOptions options for creating, updating or deleting multiple files\nNote: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)", + "properties": { + "author": { + "$ref": "#/components/schemas/Identity" + }, + "branch": { + "description": "branch (optional) is the base branch for the changes. If not supplied, the default branch is used", + "type": "string", + "x-go-name": "BranchName" + }, + "committer": { + "$ref": "#/components/schemas/Identity" + }, + "dates": { + "$ref": "#/components/schemas/CommitDateOptions" + }, + "files": { + "description": "list of file operations", + "items": { + "$ref": "#/components/schemas/ChangeFileOperation" + }, + "type": "array", + "x-go-name": "Files" + }, + "force_push": { + "description": "force_push (optional) will do a force-push if the new branch already exists", + "type": "boolean", + "x-go-name": "ForcePush" + }, + "message": { + "description": "message (optional) is the commit message of the changes. If not supplied, a default message will be used", + "type": "string", + "x-go-name": "Message" + }, + "new_branch": { + "description": "new_branch (optional) will make a new branch from base branch for the changes. If not supplied, the changes will be committed to the base branch", + "type": "string", + "x-go-name": "NewBranchName" + }, + "signoff": { + "description": "Add a Signed-off-by trailer by the committer at the end of the commit log message.", + "type": "boolean", + "x-go-name": "Signoff" + } + }, + "required": [ + "files" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ChangedFile": { + "description": "ChangedFile store information about files affected by the pull request", + "properties": { + "additions": { + "description": "The number of lines added to the file", + "format": "int64", + "type": "integer", + "x-go-name": "Additions" + }, + "changes": { + "description": "The total number of changes to the file", + "format": "int64", + "type": "integer", + "x-go-name": "Changes" + }, + "contents_url": { + "description": "The API URL to get the file contents", + "format": "uri", + "type": "string", + "x-go-name": "ContentsURL" + }, + "deletions": { + "description": "The number of lines deleted from the file", + "format": "int64", + "type": "integer", + "x-go-name": "Deletions" + }, + "filename": { + "description": "The name of the changed file", + "type": "string", + "x-go-name": "Filename" + }, + "html_url": { + "description": "The HTML URL to view the file changes", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "previous_filename": { + "description": "The previous filename if the file was renamed", + "type": "string", + "x-go-name": "PreviousFilename" + }, + "raw_url": { + "description": "The raw URL to download the file", + "format": "uri", + "type": "string", + "x-go-name": "RawURL" + }, + "status": { + "description": "The status of the file change (added, modified, deleted, etc.)", + "type": "string", + "x-go-name": "Status" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CombinedStatus": { + "description": "CombinedStatus holds the combined state of several statuses for a single commit", + "properties": { + "commit_url": { + "description": "CommitURL is the API URL for the commit", + "format": "uri", + "type": "string", + "x-go-name": "CommitURL" + }, + "repository": { + "$ref": "#/components/schemas/Repository" + }, + "sha": { + "description": "SHA is the commit SHA this status applies to", + "type": "string", + "x-go-name": "SHA" + }, + "state": { + "allOf": [ + { + "$ref": "#/components/schemas/CommitStatusState" + } + ], + "description": "State is the overall combined status state\npending CommitStatusPending CommitStatusPending is for when the CommitStatus is Pending\nsuccess CommitStatusSuccess CommitStatusSuccess is for when the CommitStatus is Success\nerror CommitStatusError CommitStatusError is for when the CommitStatus is Error\nfailure CommitStatusFailure CommitStatusFailure is for when the CommitStatus is Failure\nwarning CommitStatusWarning CommitStatusWarning is for when the CommitStatus is Warning\nskipped CommitStatusSkipped CommitStatusSkipped is for when CommitStatus is Skipped" + }, + "statuses": { + "description": "Statuses contains all individual commit statuses", + "items": { + "$ref": "#/components/schemas/CommitStatus" + }, + "type": "array", + "x-go-name": "Statuses" + }, + "total_count": { + "description": "TotalCount is the total number of statuses", + "format": "int64", + "type": "integer", + "x-go-name": "TotalCount" + }, + "url": { + "description": "URL is the API URL for this combined status", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Comment": { + "description": "Comment represents a comment on a commit or issue", + "properties": { + "assets": { + "description": "Attachments contains files attached to the comment", + "items": { + "$ref": "#/components/schemas/Attachment" + }, + "type": "array", + "x-go-name": "Attachments" + }, + "body": { + "description": "Body contains the comment text content", + "type": "string", + "x-go-name": "Body" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "html_url": { + "description": "HTMLURL is the web URL for viewing the comment", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "description": "ID is the unique identifier for the comment", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "issue_url": { + "description": "IssueURL is the API URL for the issue", + "format": "uri", + "type": "string", + "x-go-name": "IssueURL" + }, + "original_author": { + "description": "OriginalAuthor is the original author name (for imported comments)", + "type": "string", + "x-go-name": "OriginalAuthor" + }, + "original_author_id": { + "description": "OriginalAuthorID is the original author ID (for imported comments)", + "format": "int64", + "type": "integer", + "x-go-name": "OriginalAuthorID" + }, + "pull_request_url": { + "description": "PRURL is the API URL for the pull request (if applicable)", + "format": "uri", + "type": "string", + "x-go-name": "PRURL" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + }, + "user": { + "$ref": "#/components/schemas/User" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Commit": { + "properties": { + "author": { + "$ref": "#/components/schemas/User" + }, + "commit": { + "$ref": "#/components/schemas/RepoCommit" + }, + "committer": { + "$ref": "#/components/schemas/User" + }, + "created": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "files": { + "description": "Files contains information about files affected by the commit", + "items": { + "$ref": "#/components/schemas/CommitAffectedFiles" + }, + "type": "array", + "x-go-name": "Files" + }, + "html_url": { + "description": "HTMLURL is the web URL for viewing the commit", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "parents": { + "description": "Parents contains the parent commit information", + "items": { + "$ref": "#/components/schemas/CommitMeta" + }, + "type": "array", + "x-go-name": "Parents" + }, + "sha": { + "description": "SHA is the commit SHA hash", + "type": "string", + "x-go-name": "SHA" + }, + "stats": { + "$ref": "#/components/schemas/CommitStats" + }, + "url": { + "description": "URL is the API URL for the commit", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "title": "Commit contains information generated from a Git commit.", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CommitAffectedFiles": { + "description": "CommitAffectedFiles store information about files affected by the commit", + "properties": { + "filename": { + "description": "Filename is the path of the affected file", + "type": "string", + "x-go-name": "Filename" + }, + "status": { + "description": "Status indicates how the file was affected (added, modified, deleted)", + "type": "string", + "x-go-name": "Status" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CommitDateOptions": { + "description": "CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE", + "properties": { + "author": { + "format": "date-time", + "type": "string", + "x-go-name": "Author" + }, + "committer": { + "format": "date-time", + "type": "string", + "x-go-name": "Committer" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CommitMeta": { + "properties": { + "created": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "sha": { + "description": "SHA is the commit SHA hash", + "type": "string", + "x-go-name": "SHA" + }, + "url": { + "description": "URL is the API URL for the commit", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "title": "CommitMeta contains meta information of a commit in terms of API.", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CommitStats": { + "description": "CommitStats is statistics for a RepoCommit", + "properties": { + "additions": { + "description": "Additions is the number of lines added", + "format": "int64", + "type": "integer", + "x-go-name": "Additions" + }, + "deletions": { + "description": "Deletions is the number of lines deleted", + "format": "int64", + "type": "integer", + "x-go-name": "Deletions" + }, + "total": { + "description": "Total is the total number of lines changed", + "format": "int64", + "type": "integer", + "x-go-name": "Total" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CommitStatus": { + "description": "CommitStatus holds a single status of a single Commit", + "properties": { + "context": { + "description": "Context is the unique context identifier for the status", + "type": "string", + "x-go-name": "Context" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "creator": { + "$ref": "#/components/schemas/User" + }, + "description": { + "description": "Description provides a brief description of the status", + "type": "string", + "x-go-name": "Description" + }, + "id": { + "description": "ID is the unique identifier for the commit status", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/CommitStatusState" + } + ], + "description": "State represents the status state (pending, success, error, failure)\npending CommitStatusPending CommitStatusPending is for when the CommitStatus is Pending\nsuccess CommitStatusSuccess CommitStatusSuccess is for when the CommitStatus is Success\nerror CommitStatusError CommitStatusError is for when the CommitStatus is Error\nfailure CommitStatusFailure CommitStatusFailure is for when the CommitStatus is Failure\nwarning CommitStatusWarning CommitStatusWarning is for when the CommitStatus is Warning\nskipped CommitStatusSkipped CommitStatusSkipped is for when CommitStatus is Skipped" + }, + "target_url": { + "description": "TargetURL is the URL to link to for more details", + "format": "uri", + "type": "string", + "x-go-name": "TargetURL" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + }, + "url": { + "description": "URL is the API URL for this status", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CommitStatusState": { + "enum": [ + "pending", + "success", + "error", + "failure", + "warning", + "skipped" + ], + "type": "string" + }, + "CommitUser": { + "properties": { + "date": { + "description": "Date is the commit date in string format", + "type": "string", + "x-go-name": "Date" + }, + "email": { + "format": "email", + "type": "string", + "x-go-name": "Email" + }, + "name": { + "description": "Name is the person's name", + "type": "string", + "x-go-name": "Name" + } + }, + "title": "CommitUser contains information of a user in the context of a commit.", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Compare": { + "properties": { + "commits": { + "items": { + "$ref": "#/components/schemas/Commit" + }, + "type": "array", + "x-go-name": "Commits" + }, + "total_commits": { + "format": "int64", + "type": "integer", + "x-go-name": "TotalCommits" + } + }, + "title": "Compare represents a comparison between two commits.", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ContentsExtResponse": { + "properties": { + "dir_contents": { + "description": "DirContents contains directory listing when the path represents a directory", + "items": { + "$ref": "#/components/schemas/ContentsResponse" + }, + "type": "array", + "x-go-name": "DirContents" + }, + "file_contents": { + "$ref": "#/components/schemas/ContentsResponse" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ContentsResponse": { + "description": "ContentsResponse contains information about a repo's entry's (dir, file, symlink, submodule) metadata and content", + "properties": { + "_links": { + "$ref": "#/components/schemas/FileLinksResponse" + }, + "content": { + "description": "`content` is populated when `type` is `file`, otherwise null", + "type": "string", + "x-go-name": "Content" + }, + "download_url": { + "description": "DownloadURL is the direct download URL for this file", + "format": "uri", + "type": "string", + "x-go-name": "DownloadURL" + }, + "encoding": { + "description": "`encoding` is populated when `type` is `file`, otherwise null", + "type": "string", + "x-go-name": "Encoding" + }, + "git_url": { + "description": "GitURL is the Git API URL for this blob or tree", + "format": "uri", + "type": "string", + "x-go-name": "GitURL" + }, + "html_url": { + "description": "HTMLURL is the web URL for this file or directory", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "last_author_date": { + "format": "date-time", + "type": "string", + "x-go-name": "LastAuthorDate" + }, + "last_commit_message": { + "description": "LastCommitMessage is the message of the last commit that affected this file", + "type": "string", + "x-go-name": "LastCommitMessage" + }, + "last_commit_sha": { + "description": "LastCommitSHA is the SHA of the last commit that affected this file", + "type": "string", + "x-go-name": "LastCommitSHA" + }, + "last_committer_date": { + "format": "date-time", + "type": "string", + "x-go-name": "LastCommitterDate" + }, + "lfs_oid": { + "description": "LfsOid is the Git LFS object ID if this file is stored in LFS", + "type": "string", + "x-go-name": "LfsOid" + }, + "lfs_size": { + "description": "LfsSize is the file size if this file is stored in LFS", + "format": "int64", + "type": "integer", + "x-go-name": "LfsSize" + }, + "name": { + "description": "Name is the file or directory name", + "type": "string", + "x-go-name": "Name" + }, + "path": { + "description": "Path is the full path to the file or directory", + "type": "string", + "x-go-name": "Path" + }, + "sha": { + "description": "SHA is the Git blob or tree SHA", + "type": "string", + "x-go-name": "SHA" + }, + "size": { + "description": "Size is the file size in bytes", + "format": "int64", + "type": "integer", + "x-go-name": "Size" + }, + "submodule_git_url": { + "description": "`submodule_git_url` is populated when `type` is `submodule`, otherwise null", + "format": "uri", + "type": "string", + "x-go-name": "SubmoduleGitURL" + }, + "target": { + "description": "`target` is populated when `type` is `symlink`, otherwise null", + "type": "string", + "x-go-name": "Target" + }, + "type": { + "description": "`type` will be `file`, `dir`, `symlink`, or `submodule`", + "type": "string", + "x-go-name": "Type" + }, + "url": { + "description": "URL is the API URL for this file or directory", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateAccessTokenOption": { + "description": "CreateAccessTokenOption options when create access token", + "properties": { + "name": { + "type": "string", + "x-go-name": "Name" + }, + "scopes": { + "example": [ + "all", + "read:activitypub", + "read:issue", + "write:misc", + "read:notification", + "read:organization", + "read:package", + "read:repository", + "read:user" + ], + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Scopes" + } + }, + "required": [ + "name" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateActionWorkflowDispatch": { + "description": "CreateActionWorkflowDispatch represents the payload for triggering a workflow dispatch event", + "properties": { + "inputs": { + "additionalProperties": { + "type": "string" + }, + "type": "object", + "x-go-name": "Inputs" + }, + "ref": { + "example": "refs/heads/main", + "type": "string", + "x-go-name": "Ref" + } + }, + "required": [ + "ref" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateBranchProtectionOption": { + "description": "CreateBranchProtectionOption options for creating a branch protection", + "properties": { + "approvals_whitelist_teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "ApprovalsWhitelistTeams" + }, + "approvals_whitelist_username": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "ApprovalsWhitelistUsernames" + }, + "block_admin_merge_override": { + "type": "boolean", + "x-go-name": "BlockAdminMergeOverride" + }, + "block_on_official_review_requests": { + "type": "boolean", + "x-go-name": "BlockOnOfficialReviewRequests" + }, + "block_on_outdated_branch": { + "type": "boolean", + "x-go-name": "BlockOnOutdatedBranch" + }, + "block_on_rejected_reviews": { + "type": "boolean", + "x-go-name": "BlockOnRejectedReviews" + }, + "branch_name": { + "deprecated": true, + "description": "Deprecated: true", + "type": "string", + "x-go-name": "BranchName" + }, + "dismiss_stale_approvals": { + "type": "boolean", + "x-go-name": "DismissStaleApprovals" + }, + "enable_approvals_whitelist": { + "type": "boolean", + "x-go-name": "EnableApprovalsWhitelist" + }, + "enable_force_push": { + "type": "boolean", + "x-go-name": "EnableForcePush" + }, + "enable_force_push_allowlist": { + "type": "boolean", + "x-go-name": "EnableForcePushAllowlist" + }, + "enable_merge_whitelist": { + "type": "boolean", + "x-go-name": "EnableMergeWhitelist" + }, + "enable_push": { + "type": "boolean", + "x-go-name": "EnablePush" + }, + "enable_push_whitelist": { + "type": "boolean", + "x-go-name": "EnablePushWhitelist" + }, + "enable_status_check": { + "type": "boolean", + "x-go-name": "EnableStatusCheck" + }, + "force_push_allowlist_deploy_keys": { + "type": "boolean", + "x-go-name": "ForcePushAllowlistDeployKeys" + }, + "force_push_allowlist_teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "ForcePushAllowlistTeams" + }, + "force_push_allowlist_usernames": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "ForcePushAllowlistUsernames" + }, + "ignore_stale_approvals": { + "type": "boolean", + "x-go-name": "IgnoreStaleApprovals" + }, + "merge_whitelist_teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "MergeWhitelistTeams" + }, + "merge_whitelist_usernames": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "MergeWhitelistUsernames" + }, + "priority": { + "format": "int64", + "type": "integer", + "x-go-name": "Priority" + }, + "protected_file_patterns": { + "type": "string", + "x-go-name": "ProtectedFilePatterns" + }, + "push_whitelist_deploy_keys": { + "type": "boolean", + "x-go-name": "PushWhitelistDeployKeys" + }, + "push_whitelist_teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "PushWhitelistTeams" + }, + "push_whitelist_usernames": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "PushWhitelistUsernames" + }, + "require_signed_commits": { + "type": "boolean", + "x-go-name": "RequireSignedCommits" + }, + "required_approvals": { + "format": "int64", + "type": "integer", + "x-go-name": "RequiredApprovals" + }, + "rule_name": { + "type": "string", + "x-go-name": "RuleName" + }, + "status_check_contexts": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "StatusCheckContexts" + }, + "unprotected_file_patterns": { + "type": "string", + "x-go-name": "UnprotectedFilePatterns" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateBranchRepoOption": { + "description": "CreateBranchRepoOption options when creating a branch in a repository", + "properties": { + "new_branch_name": { + "description": "Name of the branch to create", + "type": "string", + "uniqueItems": true, + "x-go-name": "BranchName" + }, + "old_branch_name": { + "deprecated": true, + "description": "Deprecated: true\nName of the old branch to create from", + "type": "string", + "uniqueItems": true, + "x-go-name": "OldBranchName" + }, + "old_ref_name": { + "description": "Name of the old branch/tag/commit to create from", + "type": "string", + "uniqueItems": true, + "x-go-name": "OldRefName" + } + }, + "required": [ + "new_branch_name" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateEmailOption": { + "description": "CreateEmailOption options when creating email addresses", + "properties": { + "emails": { + "description": "email addresses to add", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Emails" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateFileOptions": { + "description": "CreateFileOptions options for creating a file\nNote: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)", + "properties": { + "author": { + "$ref": "#/components/schemas/Identity" + }, + "branch": { + "description": "branch (optional) is the base branch for the changes. If not supplied, the default branch is used", + "type": "string", + "x-go-name": "BranchName" + }, + "committer": { + "$ref": "#/components/schemas/Identity" + }, + "content": { + "description": "content must be base64 encoded", + "type": "string", + "x-go-name": "ContentBase64" + }, + "dates": { + "$ref": "#/components/schemas/CommitDateOptions" + }, + "force_push": { + "description": "force_push (optional) will do a force-push if the new branch already exists", + "type": "boolean", + "x-go-name": "ForcePush" + }, + "message": { + "description": "message (optional) is the commit message of the changes. If not supplied, a default message will be used", + "type": "string", + "x-go-name": "Message" + }, + "new_branch": { + "description": "new_branch (optional) will make a new branch from base branch for the changes. If not supplied, the changes will be committed to the base branch", + "type": "string", + "x-go-name": "NewBranchName" + }, + "signoff": { + "description": "Add a Signed-off-by trailer by the committer at the end of the commit log message.", + "type": "boolean", + "x-go-name": "Signoff" + } + }, + "required": [ + "content" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateForkOption": { + "description": "CreateForkOption options for creating a fork", + "properties": { + "name": { + "description": "name of the forked repository", + "type": "string", + "x-go-name": "Name" + }, + "organization": { + "description": "organization name, if forking into an organization", + "type": "string", + "x-go-name": "Organization" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateGPGKeyOption": { + "description": "CreateGPGKeyOption options create user GPG key", + "properties": { + "armored_public_key": { + "description": "An armored GPG key to add", + "type": "string", + "uniqueItems": true, + "x-go-name": "ArmoredKey" + }, + "armored_signature": { + "description": "An optional armored signature for the GPG key", + "type": "string", + "x-go-name": "Signature" + } + }, + "required": [ + "armored_public_key" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateHookOption": { + "description": "CreateHookOption options when create a hook", + "properties": { + "active": { + "default": false, + "type": "boolean", + "x-go-name": "Active" + }, + "authorization_header": { + "description": "Authorization header to include in webhook requests", + "type": "string", + "x-go-name": "AuthorizationHeader" + }, + "branch_filter": { + "description": "Branch filter pattern to determine which branches trigger the webhook", + "type": "string", + "x-go-name": "BranchFilter" + }, + "config": { + "$ref": "#/components/schemas/CreateHookOptionConfig" + }, + "events": { + "description": "List of events that will trigger this webhook", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Events" + }, + "type": { + "enum": [ + "dingtalk", + "discord", + "gitea", + "gogs", + "msteams", + "slack", + "telegram", + "feishu", + "wechatwork", + "packagist" + ], + "type": "string", + "x-go-name": "Type" + } + }, + "required": [ + "type", + "config" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateHookOptionConfig": { + "additionalProperties": { + "type": "string" + }, + "description": "CreateHookOptionConfig has all config options in it\nrequired are \"content_type\" and \"url\" Required", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateIssueCommentOption": { + "description": "CreateIssueCommentOption options for creating a comment on an issue", + "properties": { + "body": { + "type": "string", + "x-go-name": "Body" + } + }, + "required": [ + "body" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateIssueOption": { + "description": "CreateIssueOption options to create one issue", + "properties": { + "assignee": { + "deprecated": true, + "description": "deprecated", + "type": "string", + "x-go-name": "Assignee" + }, + "assignees": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Assignees" + }, + "body": { + "type": "string", + "x-go-name": "Body" + }, + "closed": { + "type": "boolean", + "x-go-name": "Closed" + }, + "due_date": { + "format": "date-time", + "type": "string", + "x-go-name": "Deadline" + }, + "labels": { + "description": "list of label ids", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "x-go-name": "Labels" + }, + "milestone": { + "description": "milestone id", + "format": "int64", + "type": "integer", + "x-go-name": "Milestone" + }, + "ref": { + "type": "string", + "x-go-name": "Ref" + }, + "title": { + "type": "string", + "x-go-name": "Title" + } + }, + "required": [ + "title" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateKeyOption": { + "description": "CreateKeyOption options when creating a key", + "properties": { + "key": { + "description": "An armored SSH key to add", + "type": "string", + "uniqueItems": true, + "x-go-name": "Key" + }, + "read_only": { + "description": "Describe if the key has only read access or read/write", + "type": "boolean", + "x-go-name": "ReadOnly" + }, + "title": { + "description": "Title of the key to add", + "type": "string", + "uniqueItems": true, + "x-go-name": "Title" + } + }, + "required": [ + "title", + "key" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateLabelOption": { + "description": "CreateLabelOption options for creating a label", + "properties": { + "color": { + "example": "#00aabb", + "type": "string", + "x-go-name": "Color" + }, + "description": { + "description": "Description provides additional context about the label's purpose", + "type": "string", + "x-go-name": "Description" + }, + "exclusive": { + "example": false, + "type": "boolean", + "x-go-name": "Exclusive" + }, + "is_archived": { + "example": false, + "type": "boolean", + "x-go-name": "IsArchived" + }, + "name": { + "type": "string", + "x-go-name": "Name" + } + }, + "required": [ + "name", + "color" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateMilestoneOption": { + "description": "CreateMilestoneOption options for creating a milestone", + "properties": { + "description": { + "description": "Description provides details about the milestone", + "type": "string", + "x-go-name": "Description" + }, + "due_on": { + "format": "date-time", + "type": "string", + "x-go-name": "Deadline" + }, + "state": { + "$ref": "#/components/schemas/StateType" + }, + "title": { + "description": "Title is the title of the new milestone", + "type": "string", + "x-go-name": "Title" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateOAuth2ApplicationOptions": { + "description": "CreateOAuth2ApplicationOptions holds options to create an oauth2 application", + "properties": { + "confidential_client": { + "description": "Whether the client is confidential", + "type": "boolean", + "x-go-name": "ConfidentialClient" + }, + "name": { + "description": "The name of the OAuth2 application", + "type": "string", + "x-go-name": "Name" + }, + "redirect_uris": { + "description": "The list of allowed redirect URIs", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "RedirectURIs" + }, + "skip_secondary_authorization": { + "description": "Whether to skip secondary authorization", + "type": "boolean", + "x-go-name": "SkipSecondaryAuthorization" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateOrUpdateSecretOption": { + "description": "CreateOrUpdateSecretOption options when creating or updating secret", + "properties": { + "data": { + "description": "Data of the secret to update", + "type": "string", + "x-go-name": "Data" + }, + "description": { + "description": "Description of the secret to update", + "type": "string", + "x-go-name": "Description" + } + }, + "required": [ + "data" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateOrgOption": { + "description": "CreateOrgOption options for creating an organization", + "properties": { + "description": { + "description": "The description of the organization", + "type": "string", + "x-go-name": "Description" + }, + "email": { + "description": "The email address of the organization", + "type": "string", + "x-go-name": "Email" + }, + "full_name": { + "description": "The full display name of the organization", + "type": "string", + "x-go-name": "FullName" + }, + "location": { + "description": "The location of the organization", + "type": "string", + "x-go-name": "Location" + }, + "repo_admin_change_team_access": { + "description": "Whether repository administrators can change team access", + "type": "boolean", + "x-go-name": "RepoAdminChangeTeamAccess" + }, + "username": { + "description": "username of the organization", + "type": "string", + "x-go-name": "UserName" + }, + "visibility": { + "allOf": [ + { + "$ref": "#/components/schemas/VisibilityEnum" + } + ], + "description": "possible values are `public` (default), `limited` or `private`" + }, + "website": { + "description": "The website URL of the organization", + "type": "string", + "x-go-name": "Website" + } + }, + "required": [ + "username" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreatePullRequestOption": { + "description": "CreatePullRequestOption options when creating a pull request", + "properties": { + "allow_maintainer_edit": { + "description": "Whether maintainers can edit the pull request", + "type": "boolean", + "x-go-name": "AllowMaintainerEdit" + }, + "assignee": { + "description": "The primary assignee username", + "type": "string", + "x-go-name": "Assignee" + }, + "assignees": { + "description": "The list of assignee usernames", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Assignees" + }, + "base": { + "description": "The base branch for the pull request", + "type": "string", + "x-go-name": "Base" + }, + "body": { + "description": "The description body of the pull request", + "type": "string", + "x-go-name": "Body" + }, + "due_date": { + "format": "date-time", + "type": "string", + "x-go-name": "Deadline" + }, + "head": { + "description": "The head branch for the pull request, it could be a branch name on the base repository or\na form like `\u003cusername\u003e:\u003cbranch\u003e` which refers to the user's fork repository's branch.", + "type": "string", + "x-go-name": "Head" + }, + "labels": { + "description": "The list of label IDs to assign to the pull request", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "x-go-name": "Labels" + }, + "milestone": { + "description": "The milestone ID to assign to the pull request", + "format": "int64", + "type": "integer", + "x-go-name": "Milestone" + }, + "reviewers": { + "description": "The list of reviewer usernames", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Reviewers" + }, + "team_reviewers": { + "description": "The list of team reviewer names", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "TeamReviewers" + }, + "title": { + "description": "The title of the pull request", + "type": "string", + "x-go-name": "Title" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreatePullReviewComment": { + "description": "CreatePullReviewComment represent a review comment for creation api", + "properties": { + "body": { + "type": "string", + "x-go-name": "Body" + }, + "new_position": { + "description": "if comment to new file line or 0", + "format": "int64", + "type": "integer", + "x-go-name": "NewLineNum" + }, + "old_position": { + "description": "if comment to old file line or 0", + "format": "int64", + "type": "integer", + "x-go-name": "OldLineNum" + }, + "path": { + "description": "the tree path", + "type": "string", + "x-go-name": "Path" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreatePullReviewOptions": { + "description": "CreatePullReviewOptions are options to create a pull request review", + "properties": { + "body": { + "type": "string", + "x-go-name": "Body" + }, + "comments": { + "items": { + "$ref": "#/components/schemas/CreatePullReviewComment" + }, + "type": "array", + "x-go-name": "Comments" + }, + "commit_id": { + "type": "string", + "x-go-name": "CommitID" + }, + "event": { + "$ref": "#/components/schemas/ReviewStateType" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreatePushMirrorOption": { + "properties": { + "interval": { + "description": "The sync interval for automatic updates", + "type": "string", + "x-go-name": "Interval" + }, + "remote_address": { + "description": "The remote repository URL to push to", + "type": "string", + "x-go-name": "RemoteAddress" + }, + "remote_password": { + "description": "The password for authentication with the remote repository", + "type": "string", + "x-go-name": "RemotePassword" + }, + "remote_username": { + "description": "The username for authentication with the remote repository", + "type": "string", + "x-go-name": "RemoteUsername" + }, + "sync_on_commit": { + "description": "Whether to sync on every commit", + "type": "boolean", + "x-go-name": "SyncOnCommit" + } + }, + "title": "CreatePushMirrorOption represents need information to create a push mirror of a repository.", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateReleaseOption": { + "description": "CreateReleaseOption options when creating a release", + "properties": { + "body": { + "description": "The release notes or description", + "type": "string", + "x-go-name": "Note" + }, + "draft": { + "description": "Whether to create the release as a draft", + "type": "boolean", + "x-go-name": "IsDraft" + }, + "name": { + "description": "The display title of the release", + "type": "string", + "x-go-name": "Title" + }, + "prerelease": { + "description": "Whether to mark the release as a prerelease", + "type": "boolean", + "x-go-name": "IsPrerelease" + }, + "tag_message": { + "description": "The message for the git tag", + "type": "string", + "x-go-name": "TagMessage" + }, + "tag_name": { + "type": "string", + "x-go-name": "TagName" + }, + "target_commitish": { + "description": "The target commitish for the release", + "type": "string", + "x-go-name": "Target" + } + }, + "required": [ + "tag_name" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateRepoOption": { + "description": "CreateRepoOption options when creating repository", + "properties": { + "auto_init": { + "description": "Whether the repository should be auto-initialized?", + "type": "boolean", + "x-go-name": "AutoInit" + }, + "default_branch": { + "description": "DefaultBranch of the repository (used when initializes and in template)", + "type": "string", + "x-go-name": "DefaultBranch" + }, + "description": { + "description": "Description of the repository to create", + "type": "string", + "x-go-name": "Description" + }, + "gitignores": { + "description": "Gitignores to use", + "type": "string", + "x-go-name": "Gitignores" + }, + "issue_labels": { + "description": "Label-Set to use", + "type": "string", + "x-go-name": "IssueLabels" + }, + "license": { + "description": "License to use", + "type": "string", + "x-go-name": "License" + }, + "name": { + "description": "Name of the repository to create", + "type": "string", + "uniqueItems": true, + "x-go-name": "Name" + }, + "object_format_name": { + "allOf": [ + { + "$ref": "#/components/schemas/ObjectFormatNameEnum" + } + ], + "description": "ObjectFormatName of the underlying git repository, empty string for default (sha1)" + }, + "private": { + "description": "Whether the repository is private", + "type": "boolean", + "x-go-name": "Private" + }, + "readme": { + "description": "Readme of the repository to create", + "type": "string", + "x-go-name": "Readme" + }, + "template": { + "description": "Whether the repository is template", + "type": "boolean", + "x-go-name": "Template" + }, + "trust_model": { + "description": "TrustModel of the repository", + "enum": [ + "default", + "collaborator", + "committer", + "collaboratorcommitter" + ], + "type": "string", + "x-go-name": "TrustModel" + } + }, + "required": [ + "name" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateStatusOption": { + "description": "CreateStatusOption holds the information needed to create a new CommitStatus for a Commit", + "properties": { + "context": { + "description": "Context is the unique context identifier for the status", + "type": "string", + "x-go-name": "Context" + }, + "description": { + "description": "Description provides a brief description of the status", + "type": "string", + "x-go-name": "Description" + }, + "state": { + "allOf": [ + { + "$ref": "#/components/schemas/CommitStatusState" + } + ], + "description": "State represents the status state to set (pending, success, error, failure)\npending CommitStatusPending CommitStatusPending is for when the CommitStatus is Pending\nsuccess CommitStatusSuccess CommitStatusSuccess is for when the CommitStatus is Success\nerror CommitStatusError CommitStatusError is for when the CommitStatus is Error\nfailure CommitStatusFailure CommitStatusFailure is for when the CommitStatus is Failure\nwarning CommitStatusWarning CommitStatusWarning is for when the CommitStatus is Warning\nskipped CommitStatusSkipped CommitStatusSkipped is for when CommitStatus is Skipped" + }, + "target_url": { + "description": "TargetURL is the URL to link to for more details", + "format": "uri", + "type": "string", + "x-go-name": "TargetURL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateTagOption": { + "description": "CreateTagOption options when creating a tag", + "properties": { + "message": { + "description": "The message to associate with the tag", + "type": "string", + "x-go-name": "Message" + }, + "tag_name": { + "type": "string", + "x-go-name": "TagName" + }, + "target": { + "description": "The target commit SHA or branch name for the tag", + "type": "string", + "x-go-name": "Target" + } + }, + "required": [ + "tag_name" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateTagProtectionOption": { + "description": "CreateTagProtectionOption options for creating a tag protection", + "properties": { + "name_pattern": { + "description": "The pattern to match tag names for protection", + "type": "string", + "x-go-name": "NamePattern" + }, + "whitelist_teams": { + "description": "List of team names allowed to create/delete protected tags", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "WhitelistTeams" + }, + "whitelist_usernames": { + "description": "List of usernames allowed to create/delete protected tags", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "WhitelistUsernames" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateTeamOption": { + "description": "CreateTeamOption options for creating a team", + "properties": { + "can_create_org_repo": { + "description": "Whether the team can create repositories in the organization", + "type": "boolean", + "x-go-name": "CanCreateOrgRepo" + }, + "description": { + "description": "The description of the team", + "type": "string", + "x-go-name": "Description" + }, + "includes_all_repositories": { + "description": "Whether the team has access to all repositories in the organization", + "type": "boolean", + "x-go-name": "IncludesAllRepositories" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "permission": { + "$ref": "#/components/schemas/PermissionEnum" + }, + "units": { + "example": [ + "repo.actions", + "repo.code", + "repo.issues", + "repo.ext_issues", + "repo.wiki", + "repo.ext_wiki", + "repo.pulls", + "repo.releases", + "repo.projects", + "repo.ext_wiki" + ], + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Units" + }, + "units_map": { + "additionalProperties": { + "type": "string" + }, + "example": "{\"repo.actions\",\"repo.packages\",\"repo.code\":\"read\",\"repo.issues\":\"write\",\"repo.ext_issues\":\"none\",\"repo.wiki\":\"admin\",\"repo.pulls\":\"owner\",\"repo.releases\":\"none\",\"repo.projects\":\"none\",\"repo.ext_wiki\":\"none\"}", + "type": "object", + "x-go-name": "UnitsMap" + } + }, + "required": [ + "name" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateUserOption": { + "description": "CreateUserOption create user options", + "properties": { + "created_at": { + "description": "For explicitly setting the user creation timestamp. Useful when users are\nmigrated from other systems. When omitted, the user's creation timestamp\nwill be set to \"now\".", + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "email": { + "format": "email", + "type": "string", + "x-go-name": "Email" + }, + "full_name": { + "description": "The full display name of the user", + "type": "string", + "x-go-name": "FullName" + }, + "login_name": { + "default": "empty", + "description": "identifier of the user, provided by the external authenticator (if configured)", + "type": "string", + "x-go-name": "LoginName" + }, + "must_change_password": { + "description": "Whether the user must change password on first login", + "type": "boolean", + "x-go-name": "MustChangePassword" + }, + "password": { + "description": "The plain text password for the user", + "type": "string", + "x-go-name": "Password" + }, + "restricted": { + "description": "Whether the user has restricted access privileges", + "type": "boolean", + "x-go-name": "Restricted" + }, + "send_notify": { + "description": "Whether to send welcome notification email to the user", + "type": "boolean", + "x-go-name": "SendNotify" + }, + "source_id": { + "description": "The authentication source ID to associate with the user", + "format": "int64", + "type": "integer", + "x-go-name": "SourceID" + }, + "username": { + "description": "username of the user", + "type": "string", + "x-go-name": "Username" + }, + "visibility": { + "description": "User visibility level: public, limited, or private", + "type": "string", + "x-go-name": "Visibility" + } + }, + "required": [ + "username", + "email" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateVariableOption": { + "description": "CreateVariableOption the option when creating variable", + "properties": { + "description": { + "description": "Description of the variable to create", + "type": "string", + "x-go-name": "Description" + }, + "value": { + "description": "Value of the variable to create", + "type": "string", + "x-go-name": "Value" + } + }, + "required": [ + "value" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "CreateWikiPageOptions": { + "description": "CreateWikiPageOptions form for creating wiki", + "properties": { + "content_base64": { + "description": "content must be base64 encoded", + "type": "string", + "x-go-name": "ContentBase64" + }, + "message": { + "description": "optional commit message summarizing the change", + "type": "string", + "x-go-name": "Message" + }, + "title": { + "description": "page title. leave empty to keep unchanged", + "type": "string", + "x-go-name": "Title" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Cron": { + "description": "Cron represents a Cron task", + "properties": { + "exec_times": { + "description": "The total number of times this cron task has been executed", + "format": "int64", + "type": "integer", + "x-go-name": "ExecTimes" + }, + "name": { + "description": "The name of the cron task", + "type": "string", + "x-go-name": "Name" + }, + "next": { + "description": "The next scheduled execution time", + "format": "date-time", + "type": "string", + "x-go-name": "Next" + }, + "prev": { + "description": "The previous execution time", + "format": "date-time", + "type": "string", + "x-go-name": "Prev" + }, + "schedule": { + "description": "The cron schedule expression (e.g., \"0 0 * * *\")", + "type": "string", + "x-go-name": "Schedule" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "DeleteEmailOption": { + "description": "DeleteEmailOption options when deleting email addresses", + "properties": { + "emails": { + "description": "email addresses to delete", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Emails" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "DeleteFileOptions": { + "description": "DeleteFileOptions options for deleting a file\nNote: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)", + "properties": { + "author": { + "$ref": "#/components/schemas/Identity" + }, + "branch": { + "description": "branch (optional) is the base branch for the changes. If not supplied, the default branch is used", + "type": "string", + "x-go-name": "BranchName" + }, + "committer": { + "$ref": "#/components/schemas/Identity" + }, + "dates": { + "$ref": "#/components/schemas/CommitDateOptions" + }, + "force_push": { + "description": "force_push (optional) will do a force-push if the new branch already exists", + "type": "boolean", + "x-go-name": "ForcePush" + }, + "message": { + "description": "message (optional) is the commit message of the changes. If not supplied, a default message will be used", + "type": "string", + "x-go-name": "Message" + }, + "new_branch": { + "description": "new_branch (optional) will make a new branch from base branch for the changes. If not supplied, the changes will be committed to the base branch", + "type": "string", + "x-go-name": "NewBranchName" + }, + "sha": { + "description": "the blob ID (SHA) for the file to delete", + "type": "string", + "x-go-name": "SHA" + }, + "signoff": { + "description": "Add a Signed-off-by trailer by the committer at the end of the commit log message.", + "type": "boolean", + "x-go-name": "Signoff" + } + }, + "required": [ + "sha" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "DeployKey": { + "description": "DeployKey a deploy key", + "properties": { + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "fingerprint": { + "description": "Fingerprint is the key's fingerprint", + "type": "string", + "x-go-name": "Fingerprint" + }, + "id": { + "description": "ID is the unique identifier for the deploy key", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "key": { + "description": "Key contains the actual SSH key content", + "type": "string", + "x-go-name": "Key" + }, + "key_id": { + "description": "KeyID is the associated public key ID", + "format": "int64", + "type": "integer", + "x-go-name": "KeyID" + }, + "read_only": { + "description": "ReadOnly indicates if the key has read-only access", + "type": "boolean", + "x-go-name": "ReadOnly" + }, + "repository": { + "$ref": "#/components/schemas/Repository" + }, + "title": { + "description": "Title is the human-readable name for the key", + "type": "string", + "x-go-name": "Title" + }, + "url": { + "description": "URL is the API URL for this deploy key", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "DismissPullReviewOptions": { + "description": "DismissPullReviewOptions are options to dismiss a pull request review", + "properties": { + "message": { + "type": "string", + "x-go-name": "Message" + }, + "priors": { + "type": "boolean", + "x-go-name": "Priors" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditActionRunnerOption": { + "properties": { + "disabled": { + "type": "boolean", + "x-go-name": "Disabled" + } + }, + "required": [ + "disabled" + ], + "title": "EditActionRunnerOption represents the editable fields for a runner.", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditAttachmentOptions": { + "description": "EditAttachmentOptions options for editing attachments", + "properties": { + "name": { + "description": "Name is the new filename for the attachment", + "type": "string", + "x-go-name": "Name" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditBranchProtectionOption": { + "description": "EditBranchProtectionOption options for editing a branch protection", + "properties": { + "approvals_whitelist_teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "ApprovalsWhitelistTeams" + }, + "approvals_whitelist_username": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "ApprovalsWhitelistUsernames" + }, + "block_admin_merge_override": { + "type": "boolean", + "x-go-name": "BlockAdminMergeOverride" + }, + "block_on_official_review_requests": { + "type": "boolean", + "x-go-name": "BlockOnOfficialReviewRequests" + }, + "block_on_outdated_branch": { + "type": "boolean", + "x-go-name": "BlockOnOutdatedBranch" + }, + "block_on_rejected_reviews": { + "type": "boolean", + "x-go-name": "BlockOnRejectedReviews" + }, + "dismiss_stale_approvals": { + "type": "boolean", + "x-go-name": "DismissStaleApprovals" + }, + "enable_approvals_whitelist": { + "type": "boolean", + "x-go-name": "EnableApprovalsWhitelist" + }, + "enable_force_push": { + "type": "boolean", + "x-go-name": "EnableForcePush" + }, + "enable_force_push_allowlist": { + "type": "boolean", + "x-go-name": "EnableForcePushAllowlist" + }, + "enable_merge_whitelist": { + "type": "boolean", + "x-go-name": "EnableMergeWhitelist" + }, + "enable_push": { + "type": "boolean", + "x-go-name": "EnablePush" + }, + "enable_push_whitelist": { + "type": "boolean", + "x-go-name": "EnablePushWhitelist" + }, + "enable_status_check": { + "type": "boolean", + "x-go-name": "EnableStatusCheck" + }, + "force_push_allowlist_deploy_keys": { + "type": "boolean", + "x-go-name": "ForcePushAllowlistDeployKeys" + }, + "force_push_allowlist_teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "ForcePushAllowlistTeams" + }, + "force_push_allowlist_usernames": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "ForcePushAllowlistUsernames" + }, + "ignore_stale_approvals": { + "type": "boolean", + "x-go-name": "IgnoreStaleApprovals" + }, + "merge_whitelist_teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "MergeWhitelistTeams" + }, + "merge_whitelist_usernames": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "MergeWhitelistUsernames" + }, + "priority": { + "format": "int64", + "type": "integer", + "x-go-name": "Priority" + }, + "protected_file_patterns": { + "type": "string", + "x-go-name": "ProtectedFilePatterns" + }, + "push_whitelist_deploy_keys": { + "type": "boolean", + "x-go-name": "PushWhitelistDeployKeys" + }, + "push_whitelist_teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "PushWhitelistTeams" + }, + "push_whitelist_usernames": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "PushWhitelistUsernames" + }, + "require_signed_commits": { + "type": "boolean", + "x-go-name": "RequireSignedCommits" + }, + "required_approvals": { + "format": "int64", + "type": "integer", + "x-go-name": "RequiredApprovals" + }, + "status_check_contexts": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "StatusCheckContexts" + }, + "unprotected_file_patterns": { + "type": "string", + "x-go-name": "UnprotectedFilePatterns" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditDeadlineOption": { + "description": "EditDeadlineOption options for creating a deadline", + "properties": { + "due_date": { + "format": "date-time", + "type": "string", + "x-go-name": "Deadline" + } + }, + "required": [ + "due_date" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditGitHookOption": { + "description": "EditGitHookOption options when modifying one Git hook", + "properties": { + "content": { + "description": "Content is the new script content for the hook", + "type": "string", + "x-go-name": "Content" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditHookOption": { + "description": "EditHookOption options when modify one hook", + "properties": { + "active": { + "description": "Whether the webhook is active and will be triggered", + "type": "boolean", + "x-go-name": "Active" + }, + "authorization_header": { + "description": "Authorization header to include in webhook requests", + "type": "string", + "x-go-name": "AuthorizationHeader" + }, + "branch_filter": { + "description": "Branch filter pattern to determine which branches trigger the webhook", + "type": "string", + "x-go-name": "BranchFilter" + }, + "config": { + "additionalProperties": { + "type": "string" + }, + "description": "Configuration settings for the webhook", + "type": "object", + "x-go-name": "Config" + }, + "events": { + "description": "List of events that trigger this webhook", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Events" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditIssueCommentOption": { + "description": "EditIssueCommentOption options for editing a comment", + "properties": { + "body": { + "type": "string", + "x-go-name": "Body" + } + }, + "required": [ + "body" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditIssueOption": { + "description": "EditIssueOption options for editing an issue", + "properties": { + "assignee": { + "deprecated": true, + "description": "deprecated", + "type": "string", + "x-go-name": "Assignee" + }, + "assignees": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Assignees" + }, + "body": { + "type": "string", + "x-go-name": "Body" + }, + "due_date": { + "format": "date-time", + "type": "string", + "x-go-name": "Deadline" + }, + "milestone": { + "format": "int64", + "type": "integer", + "x-go-name": "Milestone" + }, + "ref": { + "type": "string", + "x-go-name": "Ref" + }, + "state": { + "type": "string", + "x-go-name": "State" + }, + "title": { + "type": "string", + "x-go-name": "Title" + }, + "unset_due_date": { + "type": "boolean", + "x-go-name": "RemoveDeadline" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditLabelOption": { + "description": "EditLabelOption options for editing a label", + "properties": { + "color": { + "example": "#00aabb", + "type": "string", + "x-go-name": "Color" + }, + "description": { + "description": "Description provides additional context about the label's purpose", + "type": "string", + "x-go-name": "Description" + }, + "exclusive": { + "example": false, + "type": "boolean", + "x-go-name": "Exclusive" + }, + "is_archived": { + "example": false, + "type": "boolean", + "x-go-name": "IsArchived" + }, + "name": { + "description": "Name is the new display name for the label", + "type": "string", + "x-go-name": "Name" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditMilestoneOption": { + "description": "EditMilestoneOption options for editing a milestone", + "properties": { + "description": { + "description": "Description provides updated details about the milestone", + "type": "string", + "x-go-name": "Description" + }, + "due_on": { + "description": "Deadline is the updated due date for the milestone", + "format": "date-time", + "type": "string", + "x-go-name": "Deadline" + }, + "state": { + "allOf": [ + { + "$ref": "#/components/schemas/StateType" + } + ], + "description": "State indicates the updated state of the milestone" + }, + "title": { + "description": "Title is the updated title of the milestone", + "type": "string", + "x-go-name": "Title" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditOrgOption": { + "description": "EditOrgOption options for editing an organization", + "properties": { + "description": { + "description": "The description of the organization", + "type": "string", + "x-go-name": "Description" + }, + "email": { + "description": "The email address of the organization; use empty string to clear", + "type": "string", + "x-go-name": "Email" + }, + "full_name": { + "description": "The full display name of the organization", + "type": "string", + "x-go-name": "FullName" + }, + "location": { + "description": "The location of the organization", + "type": "string", + "x-go-name": "Location" + }, + "repo_admin_change_team_access": { + "description": "Whether repository administrators can change team access", + "type": "boolean", + "x-go-name": "RepoAdminChangeTeamAccess" + }, + "visibility": { + "allOf": [ + { + "$ref": "#/components/schemas/VisibilityEnum" + } + ], + "description": "possible values are `public`, `limited` or `private`" + }, + "website": { + "description": "The website URL of the organization", + "type": "string", + "x-go-name": "Website" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditPullRequestOption": { + "description": "EditPullRequestOption options when modify pull request", + "properties": { + "allow_maintainer_edit": { + "description": "Whether to allow maintainer edits", + "type": "boolean", + "x-go-name": "AllowMaintainerEdit" + }, + "assignee": { + "description": "The new primary assignee username", + "type": "string", + "x-go-name": "Assignee" + }, + "assignees": { + "description": "The new list of assignee usernames", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Assignees" + }, + "base": { + "description": "The new base branch for the pull request", + "type": "string", + "x-go-name": "Base" + }, + "body": { + "description": "The new description body for the pull request", + "type": "string", + "x-go-name": "Body" + }, + "due_date": { + "format": "date-time", + "type": "string", + "x-go-name": "Deadline" + }, + "labels": { + "description": "The new list of label IDs for the pull request", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "x-go-name": "Labels" + }, + "milestone": { + "description": "The new milestone ID for the pull request", + "format": "int64", + "type": "integer", + "x-go-name": "Milestone" + }, + "state": { + "description": "The new state for the pull request", + "type": "string", + "x-go-name": "State" + }, + "title": { + "description": "The new title for the pull request", + "type": "string", + "x-go-name": "Title" + }, + "unset_due_date": { + "description": "Whether to remove the current deadline", + "type": "boolean", + "x-go-name": "RemoveDeadline" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditReactionOption": { + "description": "EditReactionOption contain the reaction type", + "properties": { + "content": { + "description": "The reaction content (e.g., emoji or reaction type)", + "type": "string", + "x-go-name": "Reaction" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditReleaseOption": { + "description": "EditReleaseOption options when editing a release", + "properties": { + "body": { + "description": "The new release notes or description", + "type": "string", + "x-go-name": "Note" + }, + "draft": { + "description": "Whether to change the draft status", + "type": "boolean", + "x-go-name": "IsDraft" + }, + "name": { + "description": "The new display title of the release", + "type": "string", + "x-go-name": "Title" + }, + "prerelease": { + "description": "Whether to change the prerelease status", + "type": "boolean", + "x-go-name": "IsPrerelease" + }, + "tag_name": { + "description": "The new name of the git tag", + "type": "string", + "x-go-name": "TagName" + }, + "target_commitish": { + "description": "The new target commitish for the release", + "type": "string", + "x-go-name": "Target" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditRepoOption": { + "description": "EditRepoOption options when editing a repository's properties", + "properties": { + "allow_fast_forward_only_merge": { + "description": "either `true` to allow fast-forward-only merging pull requests, or `false` to prevent fast-forward-only merging.", + "type": "boolean", + "x-go-name": "AllowFastForwardOnly" + }, + "allow_manual_merge": { + "description": "either `true` to allow mark pr as merged manually, or `false` to prevent it.", + "type": "boolean", + "x-go-name": "AllowManualMerge" + }, + "allow_merge_commits": { + "description": "either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.", + "type": "boolean", + "x-go-name": "AllowMerge" + }, + "allow_rebase": { + "description": "either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.", + "type": "boolean", + "x-go-name": "AllowRebase" + }, + "allow_rebase_explicit": { + "description": "either `true` to allow rebase with explicit merge commits (--no-ff), or `false` to prevent rebase with explicit merge commits.", + "type": "boolean", + "x-go-name": "AllowRebaseMerge" + }, + "allow_rebase_update": { + "description": "either `true` to allow updating pull request branch by rebase, or `false` to prevent it.", + "type": "boolean", + "x-go-name": "AllowRebaseUpdate" + }, + "allow_squash_merge": { + "description": "either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.", + "type": "boolean", + "x-go-name": "AllowSquash" + }, + "archived": { + "description": "set to `true` to archive this repository.", + "type": "boolean", + "x-go-name": "Archived" + }, + "autodetect_manual_merge": { + "description": "either `true` to enable AutodetectManualMerge, or `false` to prevent it. Note: In some special cases, misjudgments can occur.", + "type": "boolean", + "x-go-name": "AutodetectManualMerge" + }, + "default_allow_maintainer_edit": { + "description": "set to `true` to allow edits from maintainers by default", + "type": "boolean", + "x-go-name": "DefaultAllowMaintainerEdit" + }, + "default_branch": { + "description": "sets the default branch for this repository.", + "type": "string", + "x-go-name": "DefaultBranch" + }, + "default_delete_branch_after_merge": { + "description": "set to `true` to delete pr branch after merge by default", + "type": "boolean", + "x-go-name": "DefaultDeleteBranchAfterMerge" + }, + "default_merge_style": { + "description": "set to a merge style to be used by this repository: \"merge\", \"rebase\", \"rebase-merge\", \"squash\", or \"fast-forward-only\".", + "type": "string", + "x-go-name": "DefaultMergeStyle" + }, + "description": { + "description": "a short description of the repository.", + "type": "string", + "x-go-name": "Description" + }, + "enable_prune": { + "description": "enable prune - remove obsolete remote-tracking references when mirroring", + "type": "boolean", + "x-go-name": "EnablePrune" + }, + "external_tracker": { + "$ref": "#/components/schemas/ExternalTracker" + }, + "external_wiki": { + "$ref": "#/components/schemas/ExternalWiki" + }, + "has_actions": { + "description": "either `true` to enable actions unit, or `false` to disable them.", + "type": "boolean", + "x-go-name": "HasActions" + }, + "has_code": { + "description": "either `true` to enable code for this repository or `false` to disable it.", + "type": "boolean", + "x-go-name": "HasCode" + }, + "has_issues": { + "description": "either `true` to enable issues for this repository or `false` to disable them.", + "type": "boolean", + "x-go-name": "HasIssues" + }, + "has_packages": { + "description": "either `true` to enable packages unit, or `false` to disable them.", + "type": "boolean", + "x-go-name": "HasPackages" + }, + "has_projects": { + "description": "either `true` to enable project unit, or `false` to disable them.", + "type": "boolean", + "x-go-name": "HasProjects" + }, + "has_pull_requests": { + "description": "either `true` to allow pull requests, or `false` to prevent pull request.", + "type": "boolean", + "x-go-name": "HasPullRequests" + }, + "has_releases": { + "description": "either `true` to enable releases unit, or `false` to disable them.", + "type": "boolean", + "x-go-name": "HasReleases" + }, + "has_wiki": { + "description": "either `true` to enable the wiki for this repository or `false` to disable it.", + "type": "boolean", + "x-go-name": "HasWiki" + }, + "ignore_whitespace_conflicts": { + "description": "either `true` to ignore whitespace for conflicts, or `false` to not ignore whitespace.", + "type": "boolean", + "x-go-name": "IgnoreWhitespaceConflicts" + }, + "internal_tracker": { + "$ref": "#/components/schemas/InternalTracker" + }, + "mirror_interval": { + "description": "set to a string like `8h30m0s` to set the mirror interval time", + "type": "string", + "x-go-name": "MirrorInterval" + }, + "name": { + "description": "name of the repository", + "type": "string", + "uniqueItems": true, + "x-go-name": "Name" + }, + "private": { + "description": "either `true` to make the repository private or `false` to make it public.\nNote: you will get a 422 error if the organization restricts changing repository visibility to organization\nowners and a non-owner tries to change the value of private.", + "type": "boolean", + "x-go-name": "Private" + }, + "projects_mode": { + "description": "`repo` to only allow repo-level projects, `owner` to only allow owner projects, `all` to allow both.", + "type": "string", + "x-go-name": "ProjectsMode" + }, + "template": { + "description": "either `true` to make this repository a template or `false` to make it a normal repository", + "type": "boolean", + "x-go-name": "Template" + }, + "website": { + "description": "a URL with more information about the repository.", + "type": "string", + "x-go-name": "Website" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditTagProtectionOption": { + "description": "EditTagProtectionOption options for editing a tag protection", + "properties": { + "name_pattern": { + "description": "The pattern to match tag names for protection", + "type": "string", + "x-go-name": "NamePattern" + }, + "whitelist_teams": { + "description": "List of team names allowed to create/delete protected tags", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "WhitelistTeams" + }, + "whitelist_usernames": { + "description": "List of usernames allowed to create/delete protected tags", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "WhitelistUsernames" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditTeamOption": { + "description": "EditTeamOption options for editing a team", + "properties": { + "can_create_org_repo": { + "description": "Whether the team can create repositories in the organization", + "type": "boolean", + "x-go-name": "CanCreateOrgRepo" + }, + "description": { + "description": "The description of the team", + "type": "string", + "x-go-name": "Description" + }, + "includes_all_repositories": { + "description": "Whether the team has access to all repositories in the organization", + "type": "boolean", + "x-go-name": "IncludesAllRepositories" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "permission": { + "$ref": "#/components/schemas/PermissionEnum" + }, + "units": { + "example": [ + "repo.code", + "repo.issues", + "repo.ext_issues", + "repo.wiki", + "repo.pulls", + "repo.releases", + "repo.projects", + "repo.ext_wiki" + ], + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Units" + }, + "units_map": { + "additionalProperties": { + "type": "string" + }, + "example": { + "repo.code": "read", + "repo.ext_issues": "none", + "repo.ext_wiki": "none", + "repo.issues": "write", + "repo.projects": "none", + "repo.pulls": "owner", + "repo.releases": "none", + "repo.wiki": "admin" + }, + "type": "object", + "x-go-name": "UnitsMap" + } + }, + "required": [ + "name" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "EditUserOption": { + "description": "EditUserOption edit user options", + "properties": { + "active": { + "description": "Whether the user account is active", + "type": "boolean", + "x-go-name": "Active" + }, + "admin": { + "description": "Whether the user has administrator privileges", + "type": "boolean", + "x-go-name": "Admin" + }, + "allow_create_organization": { + "description": "Whether the user can create organizations", + "type": "boolean", + "x-go-name": "AllowCreateOrganization" + }, + "allow_git_hook": { + "description": "Whether the user can use Git hooks", + "type": "boolean", + "x-go-name": "AllowGitHook" + }, + "allow_import_local": { + "description": "Whether the user can import local repositories", + "type": "boolean", + "x-go-name": "AllowImportLocal" + }, + "description": { + "description": "The user's personal description or bio", + "type": "string", + "x-go-name": "Description" + }, + "email": { + "format": "email", + "type": "string", + "x-go-name": "Email" + }, + "full_name": { + "description": "The full display name of the user", + "type": "string", + "x-go-name": "FullName" + }, + "location": { + "description": "The user's location or address", + "type": "string", + "x-go-name": "Location" + }, + "login_name": { + "default": "empty", + "description": "identifier of the user, provided by the external authenticator (if configured)", + "type": "string", + "x-go-name": "LoginName" + }, + "max_repo_creation": { + "description": "Maximum number of repositories the user can create", + "format": "int64", + "type": "integer", + "x-go-name": "MaxRepoCreation" + }, + "must_change_password": { + "description": "Whether the user must change password on next login", + "type": "boolean", + "x-go-name": "MustChangePassword" + }, + "password": { + "description": "The plain text password for the user", + "type": "string", + "x-go-name": "Password" + }, + "prohibit_login": { + "description": "Whether the user is prohibited from logging in", + "type": "boolean", + "x-go-name": "ProhibitLogin" + }, + "restricted": { + "description": "Whether the user has restricted access privileges", + "type": "boolean", + "x-go-name": "Restricted" + }, + "source_id": { + "format": "int64", + "type": "integer", + "x-go-name": "SourceID" + }, + "visibility": { + "description": "User visibility level: public, limited, or private", + "type": "string", + "x-go-name": "Visibility" + }, + "website": { + "description": "The user's personal website URL", + "type": "string", + "x-go-name": "Website" + } + }, + "required": [ + "source_id", + "login_name" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Email": { + "description": "Email an email address belonging to a user", + "properties": { + "email": { + "format": "email", + "type": "string", + "x-go-name": "Email" + }, + "primary": { + "description": "Whether this is the primary email address", + "type": "boolean", + "x-go-name": "Primary" + }, + "user_id": { + "description": "The unique identifier of the user who owns this email", + "format": "int64", + "type": "integer", + "x-go-name": "UserID" + }, + "username": { + "description": "username of the user", + "type": "string", + "x-go-name": "UserName" + }, + "verified": { + "description": "Whether the email address has been verified", + "type": "boolean", + "x-go-name": "Verified" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ExternalTracker": { + "description": "ExternalTracker represents settings for external tracker", + "properties": { + "external_tracker_format": { + "description": "External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.", + "type": "string", + "x-go-name": "ExternalTrackerFormat" + }, + "external_tracker_regexp_pattern": { + "description": "External Issue Tracker issue regular expression", + "type": "string", + "x-go-name": "ExternalTrackerRegexpPattern" + }, + "external_tracker_style": { + "description": "External Issue Tracker Number Format, either `numeric`, `alphanumeric`, or `regexp`", + "type": "string", + "x-go-name": "ExternalTrackerStyle" + }, + "external_tracker_url": { + "description": "URL of external issue tracker.", + "format": "uri", + "type": "string", + "x-go-name": "ExternalTrackerURL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ExternalWiki": { + "description": "ExternalWiki represents setting for external wiki", + "properties": { + "external_wiki_url": { + "description": "URL of external wiki.", + "format": "uri", + "type": "string", + "x-go-name": "ExternalWikiURL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "FileCommitResponse": { + "properties": { + "author": { + "$ref": "#/components/schemas/CommitUser" + }, + "committer": { + "$ref": "#/components/schemas/CommitUser" + }, + "created": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "html_url": { + "description": "HTMLURL is the web URL for viewing this commit", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "message": { + "description": "Message is the commit message", + "type": "string", + "x-go-name": "Message" + }, + "parents": { + "description": "Parents contains parent commit metadata", + "items": { + "$ref": "#/components/schemas/CommitMeta" + }, + "type": "array", + "x-go-name": "Parents" + }, + "sha": { + "description": "SHA is the commit SHA hash", + "type": "string", + "x-go-name": "SHA" + }, + "tree": { + "$ref": "#/components/schemas/CommitMeta" + }, + "url": { + "description": "URL is the API URL for the commit", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "title": "FileCommitResponse contains information generated from a Git commit for a repo's file.", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "FileDeleteResponse": { + "description": "FileDeleteResponse contains information about a repo's file that was deleted", + "properties": { + "commit": { + "$ref": "#/components/schemas/FileCommitResponse" + }, + "content": { + "description": "Content is always null for delete operations", + "x-go-name": "Content" + }, + "verification": { + "$ref": "#/components/schemas/PayloadCommitVerification" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "FileLinksResponse": { + "description": "FileLinksResponse contains the links for a repo's file", + "properties": { + "git": { + "description": "GitURL is the Git API URL for this file", + "type": "string", + "x-go-name": "GitURL" + }, + "html": { + "description": "HTMLURL is the web URL for this file", + "type": "string", + "x-go-name": "HTMLURL" + }, + "self": { + "description": "Self is the API URL for this file", + "type": "string", + "x-go-name": "Self" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "FileResponse": { + "description": "FileResponse contains information about a repo's file", + "properties": { + "commit": { + "$ref": "#/components/schemas/FileCommitResponse" + }, + "content": { + "$ref": "#/components/schemas/ContentsResponse" + }, + "verification": { + "$ref": "#/components/schemas/PayloadCommitVerification" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "FilesResponse": { + "description": "FilesResponse contains information about multiple files from a repo", + "properties": { + "commit": { + "$ref": "#/components/schemas/FileCommitResponse" + }, + "files": { + "description": "Files contains the list of file contents and metadata", + "items": { + "$ref": "#/components/schemas/ContentsResponse" + }, + "type": "array", + "x-go-name": "Files" + }, + "verification": { + "$ref": "#/components/schemas/PayloadCommitVerification" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GPGKey": { + "description": "GPGKey a user GPG key to sign commit and tag in repository", + "properties": { + "can_certify": { + "description": "Whether the key can be used for certification", + "type": "boolean", + "x-go-name": "CanCertify" + }, + "can_encrypt_comms": { + "description": "Whether the key can be used for encrypting communications", + "type": "boolean", + "x-go-name": "CanEncryptComms" + }, + "can_encrypt_storage": { + "description": "Whether the key can be used for encrypting storage", + "type": "boolean", + "x-go-name": "CanEncryptStorage" + }, + "can_sign": { + "description": "Whether the key can be used for signing", + "type": "boolean", + "x-go-name": "CanSign" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "emails": { + "description": "List of email addresses associated with this GPG key", + "items": { + "$ref": "#/components/schemas/GPGKeyEmail" + }, + "type": "array", + "x-go-name": "Emails" + }, + "expires_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Expires" + }, + "id": { + "description": "The unique identifier of the GPG key", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "key_id": { + "description": "The key ID of the GPG key", + "type": "string", + "x-go-name": "KeyID" + }, + "primary_key_id": { + "description": "The primary key ID of the GPG key", + "type": "string", + "x-go-name": "PrimaryKeyID" + }, + "public_key": { + "description": "The public key content in armored format", + "type": "string", + "x-go-name": "PublicKey" + }, + "subkeys": { + "description": "List of subkeys of this GPG key", + "items": { + "$ref": "#/components/schemas/GPGKey" + }, + "type": "array", + "x-go-name": "SubsKey" + }, + "verified": { + "description": "Whether the GPG key has been verified", + "type": "boolean", + "x-go-name": "Verified" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GPGKeyEmail": { + "description": "GPGKeyEmail an email attached to a GPGKey", + "properties": { + "email": { + "description": "The email address associated with the GPG key", + "type": "string", + "x-go-name": "Email" + }, + "verified": { + "description": "Whether the email address has been verified", + "type": "boolean", + "x-go-name": "Verified" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GeneralAPISettings": { + "description": "GeneralAPISettings contains global api settings exposed by it", + "properties": { + "default_git_trees_per_page": { + "description": "DefaultGitTreesPerPage is the default number of Git tree items per page", + "format": "int64", + "type": "integer", + "x-go-name": "DefaultGitTreesPerPage" + }, + "default_max_blob_size": { + "description": "DefaultMaxBlobSize is the default maximum blob size for API responses", + "format": "int64", + "type": "integer", + "x-go-name": "DefaultMaxBlobSize" + }, + "default_max_response_size": { + "description": "DefaultMaxResponseSize is the default maximum response size", + "format": "int64", + "type": "integer", + "x-go-name": "DefaultMaxResponseSize" + }, + "default_paging_num": { + "description": "DefaultPagingNum is the default number of items per page", + "format": "int64", + "type": "integer", + "x-go-name": "DefaultPagingNum" + }, + "max_response_items": { + "description": "MaxResponseItems is the maximum number of items returned in API responses", + "format": "int64", + "type": "integer", + "x-go-name": "MaxResponseItems" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GeneralAttachmentSettings": { + "description": "GeneralAttachmentSettings contains global Attachment settings exposed by API", + "properties": { + "allowed_types": { + "description": "AllowedTypes contains the allowed file types for attachments", + "type": "string", + "x-go-name": "AllowedTypes" + }, + "enabled": { + "description": "Enabled indicates if file attachments are enabled", + "type": "boolean", + "x-go-name": "Enabled" + }, + "max_files": { + "description": "MaxFiles is the maximum number of files per attachment", + "format": "int64", + "type": "integer", + "x-go-name": "MaxFiles" + }, + "max_size": { + "description": "MaxSize is the maximum size for individual attachments", + "format": "int64", + "type": "integer", + "x-go-name": "MaxSize" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GeneralRepoSettings": { + "description": "GeneralRepoSettings contains global repository settings exposed by API", + "properties": { + "http_git_disabled": { + "description": "HTTPGitDisabled indicates if HTTP Git operations are disabled", + "type": "boolean", + "x-go-name": "HTTPGitDisabled" + }, + "lfs_disabled": { + "description": "LFSDisabled indicates if Git LFS support is disabled", + "type": "boolean", + "x-go-name": "LFSDisabled" + }, + "migrations_disabled": { + "description": "MigrationsDisabled indicates if repository migrations are disabled", + "type": "boolean", + "x-go-name": "MigrationsDisabled" + }, + "mirrors_disabled": { + "description": "MirrorsDisabled indicates if repository mirroring is disabled", + "type": "boolean", + "x-go-name": "MirrorsDisabled" + }, + "stars_disabled": { + "description": "StarsDisabled indicates if repository starring is disabled", + "type": "boolean", + "x-go-name": "StarsDisabled" + }, + "time_tracking_disabled": { + "description": "TimeTrackingDisabled indicates if time tracking is disabled", + "type": "boolean", + "x-go-name": "TimeTrackingDisabled" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GeneralUISettings": { + "description": "GeneralUISettings contains global ui settings exposed by API", + "properties": { + "allowed_reactions": { + "description": "AllowedReactions contains the list of allowed emoji reactions", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "AllowedReactions" + }, + "custom_emojis": { + "description": "CustomEmojis contains the list of custom emojis", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "CustomEmojis" + }, + "default_theme": { + "description": "DefaultTheme is the default UI theme", + "type": "string", + "x-go-name": "DefaultTheme" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GenerateRepoOption": { + "description": "GenerateRepoOption options when creating a repository using a template", + "properties": { + "avatar": { + "description": "include avatar of the template repo", + "type": "boolean", + "x-go-name": "Avatar" + }, + "default_branch": { + "description": "Default branch of the new repository", + "type": "string", + "x-go-name": "DefaultBranch" + }, + "description": { + "description": "Description of the repository to create", + "type": "string", + "x-go-name": "Description" + }, + "git_content": { + "description": "include git content of default branch in template repo", + "type": "boolean", + "x-go-name": "GitContent" + }, + "git_hooks": { + "description": "include git hooks in template repo", + "type": "boolean", + "x-go-name": "GitHooks" + }, + "labels": { + "description": "include labels in template repo", + "type": "boolean", + "x-go-name": "Labels" + }, + "name": { + "type": "string", + "uniqueItems": true, + "x-go-name": "Name" + }, + "owner": { + "description": "the organization's name or individual user's name who will own the new repository", + "type": "string", + "x-go-name": "Owner" + }, + "private": { + "description": "Whether the repository is private", + "type": "boolean", + "x-go-name": "Private" + }, + "protected_branch": { + "description": "include protected branches in template repo", + "type": "boolean", + "x-go-name": "ProtectedBranch" + }, + "topics": { + "description": "include topics in template repo", + "type": "boolean", + "x-go-name": "Topics" + }, + "webhooks": { + "description": "include webhooks in template repo", + "type": "boolean", + "x-go-name": "Webhooks" + } + }, + "required": [ + "owner", + "name" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GetFilesOptions": { + "description": "GetFilesOptions options for retrieving metadate and content of multiple files", + "properties": { + "files": { + "description": "Files is the list of file paths to retrieve", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Files" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GitBlobResponse": { + "description": "GitBlobResponse represents a git blob", + "properties": { + "content": { + "description": "The content of the git blob (may be base64 encoded)", + "type": "string", + "x-go-name": "Content" + }, + "encoding": { + "description": "The encoding used for the content (e.g., \"base64\")", + "type": "string", + "x-go-name": "Encoding" + }, + "lfs_oid": { + "description": "The LFS object ID if this blob is stored in LFS", + "type": "string", + "x-go-name": "LfsOid" + }, + "lfs_size": { + "description": "The size of the LFS object if this blob is stored in LFS", + "format": "int64", + "type": "integer", + "x-go-name": "LfsSize" + }, + "sha": { + "description": "The SHA hash of the git blob", + "type": "string", + "x-go-name": "SHA" + }, + "size": { + "description": "The size of the git blob in bytes", + "format": "int64", + "type": "integer", + "x-go-name": "Size" + }, + "url": { + "description": "The URL to access this git blob", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GitEntry": { + "description": "GitEntry represents a git tree", + "properties": { + "mode": { + "description": "Mode is the file mode (permissions)", + "type": "string", + "x-go-name": "Mode" + }, + "path": { + "description": "Path is the file or directory path", + "type": "string", + "x-go-name": "Path" + }, + "sha": { + "description": "SHA is the Git object SHA", + "type": "string", + "x-go-name": "SHA" + }, + "size": { + "description": "Size is the file size in bytes", + "format": "int64", + "type": "integer", + "x-go-name": "Size" + }, + "type": { + "description": "Type indicates if this is a file, directory, or symlink", + "type": "string", + "x-go-name": "Type" + }, + "url": { + "description": "URL is the API URL for this tree entry", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GitHook": { + "description": "GitHook represents a Git repository hook", + "properties": { + "content": { + "description": "Content contains the script content of the hook", + "type": "string", + "x-go-name": "Content" + }, + "is_active": { + "description": "IsActive indicates if the hook is active", + "type": "boolean", + "x-go-name": "IsActive" + }, + "name": { + "description": "Name is the name of the Git hook", + "type": "string", + "x-go-name": "Name" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GitObject": { + "properties": { + "sha": { + "description": "The SHA hash of the Git object", + "type": "string", + "x-go-name": "SHA" + }, + "type": { + "description": "The type of the Git object (e.g., commit, tag, tree, blob)", + "type": "string", + "x-go-name": "Type" + }, + "url": { + "description": "The URL to access this Git object", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "title": "GitObject represents a Git object.", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GitTreeResponse": { + "description": "GitTreeResponse returns a git tree", + "properties": { + "page": { + "description": "Page is the current page number for pagination", + "format": "int64", + "type": "integer", + "x-go-name": "Page" + }, + "sha": { + "description": "SHA is the tree object SHA", + "type": "string", + "x-go-name": "SHA" + }, + "total_count": { + "description": "TotalCount is the total number of entries in the tree", + "format": "int64", + "type": "integer", + "x-go-name": "TotalCount" + }, + "tree": { + "description": "Entries contains the tree entries (files and directories)", + "items": { + "$ref": "#/components/schemas/GitEntry" + }, + "type": "array", + "x-go-name": "Entries" + }, + "truncated": { + "description": "Truncated indicates if the response was truncated due to size", + "type": "boolean", + "x-go-name": "Truncated" + }, + "url": { + "description": "URL is the API URL for this tree", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "GitignoreTemplateInfo": { + "description": "GitignoreTemplateInfo name and text of a gitignore template", + "properties": { + "name": { + "description": "Name is the name of the gitignore template", + "type": "string", + "x-go-name": "Name" + }, + "source": { + "description": "Source contains the content of the gitignore template", + "type": "string", + "x-go-name": "Source" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Hook": { + "description": "Hook a hook is a web hook when one repository changed", + "properties": { + "active": { + "description": "Whether the webhook is active and will be triggered", + "type": "boolean", + "x-go-name": "Active" + }, + "authorization_header": { + "description": "Authorization header to include in webhook requests", + "type": "string", + "x-go-name": "AuthorizationHeader" + }, + "branch_filter": { + "description": "Branch filter pattern to determine which branches trigger the webhook", + "type": "string", + "x-go-name": "BranchFilter" + }, + "config": { + "additionalProperties": { + "type": "string" + }, + "description": "Configuration settings for the webhook", + "type": "object", + "x-go-name": "Config" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "events": { + "description": "List of events that trigger this webhook", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Events" + }, + "id": { + "description": "The unique identifier of the webhook", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "type": { + "description": "The type of the webhook (e.g., gitea, slack, discord)", + "type": "string", + "x-go-name": "Type" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Identity": { + "description": "Identity for a person's identity like an author or committer", + "properties": { + "email": { + "format": "email", + "type": "string", + "x-go-name": "Email" + }, + "name": { + "description": "Name is the person's name", + "type": "string", + "x-go-name": "Name" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "InternalTracker": { + "description": "InternalTracker represents settings for internal tracker", + "properties": { + "allow_only_contributors_to_track_time": { + "description": "Let only contributors track time (Built-in issue tracker)", + "type": "boolean", + "x-go-name": "AllowOnlyContributorsToTrackTime" + }, + "enable_issue_dependencies": { + "description": "Enable dependencies for issues and pull requests (Built-in issue tracker)", + "type": "boolean", + "x-go-name": "EnableIssueDependencies" + }, + "enable_time_tracker": { + "description": "Enable time tracking (Built-in issue tracker)", + "type": "boolean", + "x-go-name": "EnableTimeTracker" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Issue": { + "description": "Issue represents an issue in a repository", + "properties": { + "assets": { + "items": { + "$ref": "#/components/schemas/Attachment" + }, + "type": "array", + "x-go-name": "Attachments" + }, + "assignee": { + "$ref": "#/components/schemas/User" + }, + "assignees": { + "items": { + "$ref": "#/components/schemas/User" + }, + "type": "array", + "x-go-name": "Assignees" + }, + "body": { + "type": "string", + "x-go-name": "Body" + }, + "closed_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Closed" + }, + "comments": { + "format": "int64", + "type": "integer", + "x-go-name": "Comments" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "due_date": { + "format": "date-time", + "type": "string", + "x-go-name": "Deadline" + }, + "html_url": { + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "is_locked": { + "type": "boolean", + "x-go-name": "IsLocked" + }, + "labels": { + "items": { + "$ref": "#/components/schemas/Label" + }, + "type": "array", + "x-go-name": "Labels" + }, + "milestone": { + "$ref": "#/components/schemas/Milestone" + }, + "number": { + "format": "int64", + "type": "integer", + "x-go-name": "Index" + }, + "original_author": { + "type": "string", + "x-go-name": "OriginalAuthor" + }, + "original_author_id": { + "format": "int64", + "type": "integer", + "x-go-name": "OriginalAuthorID" + }, + "pin_order": { + "format": "int64", + "type": "integer", + "x-go-name": "PinOrder" + }, + "pull_request": { + "$ref": "#/components/schemas/PullRequestMeta" + }, + "ref": { + "type": "string", + "x-go-name": "Ref" + }, + "repository": { + "$ref": "#/components/schemas/RepositoryMeta" + }, + "state": { + "$ref": "#/components/schemas/StateType" + }, + "time_estimate": { + "format": "int64", + "type": "integer", + "x-go-name": "TimeEstimate" + }, + "title": { + "type": "string", + "x-go-name": "Title" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + }, + "url": { + "format": "uri", + "type": "string", + "x-go-name": "URL" + }, + "user": { + "$ref": "#/components/schemas/User" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "IssueConfig": { + "properties": { + "blank_issues_enabled": { + "type": "boolean", + "x-go-name": "BlankIssuesEnabled" + }, + "contact_links": { + "items": { + "$ref": "#/components/schemas/IssueConfigContactLink" + }, + "type": "array", + "x-go-name": "ContactLinks" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "IssueConfigContactLink": { + "properties": { + "about": { + "type": "string", + "x-go-name": "About" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "url": { + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "IssueConfigValidation": { + "properties": { + "message": { + "type": "string", + "x-go-name": "Message" + }, + "valid": { + "type": "boolean", + "x-go-name": "Valid" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "IssueDeadline": { + "description": "IssueDeadline represents an issue deadline", + "properties": { + "due_date": { + "format": "date-time", + "type": "string", + "x-go-name": "Deadline" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "IssueFormField": { + "description": "IssueFormField represents a form field", + "properties": { + "attributes": { + "additionalProperties": {}, + "type": "object", + "x-go-name": "Attributes" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "type": { + "enum": [ + "markdown", + "textarea", + "input", + "dropdown", + "checkboxes" + ], + "type": "string", + "x-go-enum-desc": "markdown IssueFormFieldTypeMarkdown\ntextarea IssueFormFieldTypeTextarea\ninput IssueFormFieldTypeInput\ndropdown IssueFormFieldTypeDropdown\ncheckboxes IssueFormFieldTypeCheckboxes", + "x-go-name": "Type" + }, + "validations": { + "additionalProperties": {}, + "type": "object", + "x-go-name": "Validations" + }, + "visible": { + "items": { + "enum": [ + "form", + "content" + ], + "type": "string", + "x-go-enum-desc": "form IssueFormFieldVisibleForm\ncontent IssueFormFieldVisibleContent" + }, + "type": "array", + "x-go-name": "Visible" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "IssueLabelsOption": { + "description": "IssueLabelsOption a collection of labels", + "properties": { + "labels": { + "description": "Labels can be a list of integers representing label IDs\nor a list of strings representing label names", + "items": {}, + "type": "array", + "x-go-name": "Labels" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "IssueMeta": { + "description": "IssueMeta basic issue information", + "properties": { + "index": { + "format": "int64", + "type": "integer", + "x-go-name": "Index" + }, + "owner": { + "description": "owner of the issue's repo", + "type": "string", + "x-go-name": "Owner" + }, + "repo": { + "type": "string", + "x-go-name": "Name" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "IssueTemplate": { + "description": "IssueTemplate represents an issue template for a repository", + "properties": { + "about": { + "type": "string", + "x-go-name": "About" + }, + "assignees": { + "$ref": "#/components/schemas/IssueTemplateStringSlice" + }, + "body": { + "items": { + "$ref": "#/components/schemas/IssueFormField" + }, + "type": "array", + "x-go-name": "Fields" + }, + "content": { + "type": "string", + "x-go-name": "Content" + }, + "file_name": { + "type": "string", + "x-go-name": "FileName" + }, + "labels": { + "$ref": "#/components/schemas/IssueTemplateStringSlice" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "ref": { + "type": "string", + "x-go-name": "Ref" + }, + "title": { + "type": "string", + "x-go-name": "Title" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "IssueTemplateStringSlice": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Label": { + "description": "Label a label to an issue or a pr", + "properties": { + "color": { + "example": "00aabb", + "type": "string", + "x-go-name": "Color" + }, + "description": { + "description": "Description provides additional context about the label's purpose", + "type": "string", + "x-go-name": "Description" + }, + "exclusive": { + "example": false, + "type": "boolean", + "x-go-name": "Exclusive" + }, + "id": { + "description": "ID is the unique identifier for the label", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "is_archived": { + "example": false, + "type": "boolean", + "x-go-name": "IsArchived" + }, + "name": { + "description": "Name is the display name of the label", + "type": "string", + "x-go-name": "Name" + }, + "url": { + "description": "URL is the API endpoint for accessing this label", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "LabelTemplate": { + "description": "LabelTemplate info of a Label template", + "properties": { + "color": { + "example": "00aabb", + "type": "string", + "x-go-name": "Color" + }, + "description": { + "description": "Description provides additional context about the label template's purpose", + "type": "string", + "x-go-name": "Description" + }, + "exclusive": { + "example": false, + "type": "boolean", + "x-go-name": "Exclusive" + }, + "name": { + "description": "Name is the display name of the label template", + "type": "string", + "x-go-name": "Name" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "LicenseTemplateInfo": { + "description": "LicensesInfo contains information about a License", + "properties": { + "body": { + "description": "Body contains the full text of the license", + "type": "string", + "x-go-name": "Body" + }, + "implementation": { + "description": "Implementation contains license implementation details", + "type": "string", + "x-go-name": "Implementation" + }, + "key": { + "description": "Key is the unique identifier for the license template", + "type": "string", + "x-go-name": "Key" + }, + "name": { + "description": "Name is the display name of the license", + "type": "string", + "x-go-name": "Name" + }, + "url": { + "description": "URL is the reference URL for the license", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "LicensesTemplateListEntry": { + "description": "LicensesListEntry is used for the API", + "properties": { + "key": { + "description": "Key is the unique identifier for the license template", + "type": "string", + "x-go-name": "Key" + }, + "name": { + "description": "Name is the display name of the license", + "type": "string", + "x-go-name": "Name" + }, + "url": { + "description": "URL is the reference URL for the license", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "LockIssueOption": { + "description": "LockIssueOption options to lock an issue", + "properties": { + "lock_reason": { + "type": "string", + "x-go-name": "Reason" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "MarkdownOption": { + "description": "MarkdownOption markdown options", + "properties": { + "Context": { + "description": "URL path for rendering issue, media and file links\nExpected format: /subpath/{user}/{repo}/src/{branch, commit, tag}/{identifier/path}/{file/dir}\n\nin: body", + "type": "string" + }, + "Mode": { + "description": "Mode to render (markdown, comment, wiki, file)\n\nin: body", + "type": "string" + }, + "Text": { + "description": "Text markdown to render\n\nin: body", + "type": "string" + }, + "Wiki": { + "deprecated": true, + "description": "Is it a wiki page? (use mode=wiki instead)\n\nDeprecated: true\nin: body", + "type": "boolean" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "MarkupOption": { + "description": "MarkupOption markup options", + "properties": { + "Context": { + "description": "URL path for rendering issue, media and file links\nExpected format: /subpath/{user}/{repo}/src/{branch, commit, tag}/{identifier/path}/{file/dir}\n\nin: body", + "type": "string" + }, + "FilePath": { + "description": "File path for detecting extension in file mode\n\nin: body", + "type": "string" + }, + "Mode": { + "description": "Mode to render (markdown, comment, wiki, file)\n\nin: body", + "type": "string" + }, + "Text": { + "description": "Text markup to render\n\nin: body", + "type": "string" + }, + "Wiki": { + "deprecated": true, + "description": "Is it a wiki page? (use mode=wiki instead)\n\nDeprecated: true\nin: body", + "type": "boolean" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "MergePullRequestOption": { + "description": "MergePullRequestForm form for merging Pull Request", + "properties": { + "Do": { + "enum": [ + "merge", + "rebase", + "rebase-merge", + "squash", + "fast-forward-only", + "manually-merged" + ], + "type": "string" + }, + "MergeCommitID": { + "type": "string" + }, + "MergeMessageField": { + "type": "string" + }, + "MergeTitleField": { + "type": "string" + }, + "delete_branch_after_merge": { + "type": "boolean", + "x-go-name": "DeleteBranchAfterMerge" + }, + "force_merge": { + "type": "boolean", + "x-go-name": "ForceMerge" + }, + "head_commit_id": { + "type": "string", + "x-go-name": "HeadCommitID" + }, + "merge_when_checks_succeed": { + "type": "boolean", + "x-go-name": "MergeWhenChecksSucceed" + } + }, + "required": [ + "Do" + ], + "type": "object", + "x-go-name": "MergePullRequestForm", + "x-go-package": "code.gitea.io/gitea/services/forms" + }, + "MergeUpstreamRequest": { + "properties": { + "branch": { + "type": "string", + "x-go-name": "Branch" + }, + "ff_only": { + "type": "boolean", + "x-go-name": "FfOnly" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "MergeUpstreamResponse": { + "properties": { + "merge_type": { + "type": "string", + "x-go-name": "MergeStyle" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "MigrateRepoOptions": { + "description": "MigrateRepoOptions options for migrating repository's\nthis is used to interact with api v1", + "properties": { + "auth_password": { + "type": "string", + "x-go-name": "AuthPassword" + }, + "auth_token": { + "type": "string", + "x-go-name": "AuthToken" + }, + "auth_username": { + "type": "string", + "x-go-name": "AuthUsername" + }, + "aws_access_key_id": { + "type": "string", + "x-go-name": "AWSAccessKeyID" + }, + "aws_secret_access_key": { + "type": "string", + "x-go-name": "AWSSecretAccessKey" + }, + "clone_addr": { + "type": "string", + "x-go-name": "CloneAddr" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "issues": { + "type": "boolean", + "x-go-name": "Issues" + }, + "labels": { + "type": "boolean", + "x-go-name": "Labels" + }, + "lfs": { + "type": "boolean", + "x-go-name": "LFS" + }, + "lfs_endpoint": { + "type": "string", + "x-go-name": "LFSEndpoint" + }, + "milestones": { + "type": "boolean", + "x-go-name": "Milestones" + }, + "mirror": { + "type": "boolean", + "x-go-name": "Mirror" + }, + "mirror_interval": { + "type": "string", + "x-go-name": "MirrorInterval" + }, + "private": { + "type": "boolean", + "x-go-name": "Private" + }, + "pull_requests": { + "type": "boolean", + "x-go-name": "PullRequests" + }, + "releases": { + "type": "boolean", + "x-go-name": "Releases" + }, + "repo_name": { + "type": "string", + "x-go-name": "RepoName" + }, + "repo_owner": { + "description": "the organization's name or individual user's name who will own the migrated repository", + "type": "string", + "x-go-name": "RepoOwner" + }, + "service": { + "enum": [ + "git", + "github", + "gitea", + "gitlab", + "gogs", + "onedev", + "gitbucket", + "codebase", + "codecommit" + ], + "type": "string", + "x-go-name": "Service" + }, + "uid": { + "deprecated": true, + "description": "deprecated (only for backwards compatibility, use repo_owner instead)", + "format": "int64", + "type": "integer", + "x-go-name": "RepoOwnerID" + }, + "wiki": { + "type": "boolean", + "x-go-name": "Wiki" + } + }, + "required": [ + "clone_addr", + "repo_name" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Milestone": { + "description": "Milestone milestone is a collection of issues on one repository", + "properties": { + "closed_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Closed" + }, + "closed_issues": { + "description": "ClosedIssues is the number of closed issues in this milestone", + "format": "int64", + "type": "integer", + "x-go-name": "ClosedIssues" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "description": { + "description": "Description provides details about the milestone", + "type": "string", + "x-go-name": "Description" + }, + "due_on": { + "format": "date-time", + "type": "string", + "x-go-name": "Deadline" + }, + "id": { + "description": "ID is the unique identifier for the milestone", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "open_issues": { + "description": "OpenIssues is the number of open issues in this milestone", + "format": "int64", + "type": "integer", + "x-go-name": "OpenIssues" + }, + "state": { + "allOf": [ + { + "$ref": "#/components/schemas/StateType" + } + ], + "description": "State indicates if the milestone is open or closed\nopen StateOpen StateOpen pr is opened\nclosed StateClosed StateClosed pr is closed" + }, + "title": { + "description": "Title is the title of the milestone", + "type": "string", + "x-go-name": "Title" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "NewIssuePinsAllowed": { + "description": "NewIssuePinsAllowed represents an API response that says if new Issue Pins are allowed", + "properties": { + "issues": { + "type": "boolean", + "x-go-name": "Issues" + }, + "pull_requests": { + "type": "boolean", + "x-go-name": "PullRequests" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "NodeInfo": { + "description": "NodeInfo contains standardized way of exposing metadata about a server running one of the distributed social networks", + "properties": { + "metadata": { + "description": "Metadata contains free form key value pairs for software specific values", + "type": "object", + "x-go-name": "Metadata" + }, + "openRegistrations": { + "description": "OpenRegistrations indicates if new user registrations are accepted", + "type": "boolean", + "x-go-name": "OpenRegistrations" + }, + "protocols": { + "description": "Protocols lists the protocols supported by this server", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Protocols" + }, + "services": { + "$ref": "#/components/schemas/NodeInfoServices" + }, + "software": { + "$ref": "#/components/schemas/NodeInfoSoftware" + }, + "usage": { + "$ref": "#/components/schemas/NodeInfoUsage" + }, + "version": { + "description": "Version specifies the schema version", + "type": "string", + "x-go-name": "Version" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "NodeInfoServices": { + "description": "NodeInfoServices contains the third party sites this server can connect to via their application API", + "properties": { + "inbound": { + "description": "Inbound lists services that can deliver content to this server", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Inbound" + }, + "outbound": { + "description": "Outbound lists services this server can deliver content to", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Outbound" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "NodeInfoSoftware": { + "description": "NodeInfoSoftware contains Metadata about server software in use", + "properties": { + "homepage": { + "description": "Homepage is the URL to the homepage of this server software", + "type": "string", + "x-go-name": "Homepage" + }, + "name": { + "description": "Name is the canonical name of this server software", + "type": "string", + "x-go-name": "Name" + }, + "repository": { + "description": "Repository is the URL to the source code repository", + "type": "string", + "x-go-name": "Repository" + }, + "version": { + "description": "Version is the version of this server software", + "type": "string", + "x-go-name": "Version" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "NodeInfoUsage": { + "description": "NodeInfoUsage contains usage statistics for this server", + "properties": { + "localComments": { + "description": "LocalComments is the total amount of comments made by users local to this server", + "format": "int64", + "type": "integer", + "x-go-name": "LocalComments" + }, + "localPosts": { + "description": "LocalPosts is the total amount of posts made by users local to this server", + "format": "int64", + "type": "integer", + "x-go-name": "LocalPosts" + }, + "users": { + "$ref": "#/components/schemas/NodeInfoUsageUsers" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "NodeInfoUsageUsers": { + "description": "NodeInfoUsageUsers contains statistics about the users of this server", + "properties": { + "activeHalfyear": { + "description": "ActiveHalfyear is the amount of users that signed in at least once in the last 180 days", + "format": "int64", + "type": "integer", + "x-go-name": "ActiveHalfyear" + }, + "activeMonth": { + "description": "ActiveMonth is the amount of users that signed in at least once in the last 30 days", + "format": "int64", + "type": "integer", + "x-go-name": "ActiveMonth" + }, + "total": { + "description": "Total is the total amount of users on this server", + "format": "int64", + "type": "integer", + "x-go-name": "Total" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Note": { + "description": "Note contains information related to a git note", + "properties": { + "commit": { + "$ref": "#/components/schemas/Commit" + }, + "message": { + "description": "The content message of the git note", + "type": "string", + "x-go-name": "Message" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "NotificationCount": { + "description": "NotificationCount number of unread notifications", + "properties": { + "new": { + "description": "New is the number of unread notifications", + "format": "int64", + "type": "integer", + "x-go-name": "New" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "NotificationSubject": { + "description": "NotificationSubject contains the notification subject (Issue/Pull/Commit)", + "properties": { + "html_url": { + "description": "HTMLURL is the web URL for the notification subject", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "latest_comment_html_url": { + "description": "LatestCommentHTMLURL is the web URL for the latest comment", + "format": "uri", + "type": "string", + "x-go-name": "LatestCommentHTMLURL" + }, + "latest_comment_url": { + "description": "LatestCommentURL is the API URL for the latest comment", + "format": "uri", + "type": "string", + "x-go-name": "LatestCommentURL" + }, + "state": { + "description": "State indicates the current state of the notification subject\nopen NotifySubjectStateOpen NotifySubjectStateOpen is an open subject\nclosed NotifySubjectStateClosed NotifySubjectStateClosed is a closed subject\nmerged NotifySubjectStateMerged NotifySubjectStateMerged is a merged pull request", + "enum": [ + "open", + "closed", + "merged" + ], + "type": "string", + "x-go-enum-desc": "open NotifySubjectStateOpen NotifySubjectStateOpen is an open subject\nclosed NotifySubjectStateClosed NotifySubjectStateClosed is a closed subject\nmerged NotifySubjectStateMerged NotifySubjectStateMerged is a merged pull request", + "x-go-name": "State" + }, + "title": { + "description": "Title is the title of the notification subject", + "type": "string", + "x-go-name": "Title" + }, + "type": { + "description": "Type indicates the type of the notification subject\nIssue NotifySubjectIssue NotifySubjectIssue an issue is subject of an notification\nPull NotifySubjectPull NotifySubjectPull an pull is subject of an notification\nCommit NotifySubjectCommit NotifySubjectCommit an commit is subject of an notification\nRepository NotifySubjectRepository NotifySubjectRepository an repository is subject of an notification", + "enum": [ + "Issue", + "Pull", + "Commit", + "Repository" + ], + "type": "string", + "x-go-enum-desc": "Issue NotifySubjectIssue NotifySubjectIssue an issue is subject of an notification\nPull NotifySubjectPull NotifySubjectPull an pull is subject of an notification\nCommit NotifySubjectCommit NotifySubjectCommit an commit is subject of an notification\nRepository NotifySubjectRepository NotifySubjectRepository an repository is subject of an notification", + "x-go-name": "Type" + }, + "url": { + "description": "URL is the API URL for the notification subject", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "NotificationThread": { + "description": "NotificationThread expose Notification on API", + "properties": { + "id": { + "description": "ID is the unique identifier for the notification thread", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "pinned": { + "description": "Pinned indicates if the notification is pinned", + "type": "boolean", + "x-go-name": "Pinned" + }, + "repository": { + "$ref": "#/components/schemas/Repository" + }, + "subject": { + "$ref": "#/components/schemas/NotificationSubject" + }, + "unread": { + "description": "Unread indicates if the notification has been read", + "type": "boolean", + "x-go-name": "Unread" + }, + "updated_at": { + "description": "UpdatedAt is the time when the notification was last updated", + "format": "date-time", + "type": "string", + "x-go-name": "UpdatedAt" + }, + "url": { + "description": "URL is the API URL for this notification thread", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "OAuth2Application": { + "properties": { + "client_id": { + "description": "The client ID of the OAuth2 application", + "type": "string", + "x-go-name": "ClientID" + }, + "client_secret": { + "description": "The client secret of the OAuth2 application", + "type": "string", + "x-go-name": "ClientSecret" + }, + "confidential_client": { + "description": "Whether the client is confidential", + "type": "boolean", + "x-go-name": "ConfidentialClient" + }, + "created": { + "description": "The timestamp when the application was created", + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "id": { + "description": "The unique identifier of the OAuth2 application", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "name": { + "description": "The name of the OAuth2 application", + "type": "string", + "x-go-name": "Name" + }, + "redirect_uris": { + "description": "The list of allowed redirect URIs", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "RedirectURIs" + }, + "skip_secondary_authorization": { + "description": "Whether to skip secondary authorization", + "type": "boolean", + "x-go-name": "SkipSecondaryAuthorization" + } + }, + "title": "OAuth2Application represents an OAuth2 application.", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ObjectFormatNameEnum": { + "enum": [ + "sha1", + "sha256" + ], + "type": "string" + }, + "Organization": { + "description": "Organization represents an organization", + "properties": { + "avatar_url": { + "description": "The URL of the organization's avatar", + "format": "uri", + "type": "string", + "x-go-name": "AvatarURL" + }, + "description": { + "description": "The description of the organization", + "type": "string", + "x-go-name": "Description" + }, + "email": { + "description": "The email address of the organization", + "type": "string", + "x-go-name": "Email" + }, + "full_name": { + "description": "The full display name of the organization", + "type": "string", + "x-go-name": "FullName" + }, + "id": { + "description": "The unique identifier of the organization", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "location": { + "description": "The location of the organization", + "type": "string", + "x-go-name": "Location" + }, + "name": { + "description": "The name of the organization", + "type": "string", + "x-go-name": "Name" + }, + "repo_admin_change_team_access": { + "description": "Whether repository administrators can change team access", + "type": "boolean", + "x-go-name": "RepoAdminChangeTeamAccess" + }, + "username": { + "deprecated": true, + "description": "username of the organization\ndeprecated", + "type": "string", + "x-go-name": "UserName" + }, + "visibility": { + "description": "The visibility level of the organization (public, limited, private)", + "type": "string", + "x-go-name": "Visibility" + }, + "website": { + "description": "The website URL of the organization", + "type": "string", + "x-go-name": "Website" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "OrganizationPermissions": { + "description": "OrganizationPermissions list different users permissions on an organization", + "properties": { + "can_create_repository": { + "description": "Whether the user can create repositories in the organization", + "type": "boolean", + "x-go-name": "CanCreateRepository" + }, + "can_read": { + "description": "Whether the user can read the organization", + "type": "boolean", + "x-go-name": "CanRead" + }, + "can_write": { + "description": "Whether the user can write to the organization", + "type": "boolean", + "x-go-name": "CanWrite" + }, + "is_admin": { + "description": "Whether the user is an admin of the organization", + "type": "boolean", + "x-go-name": "IsAdmin" + }, + "is_owner": { + "description": "Whether the user is an owner of the organization", + "type": "boolean", + "x-go-name": "IsOwner" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "PRBranchInfo": { + "description": "PRBranchInfo information about a branch", + "properties": { + "label": { + "description": "The display name of the branch", + "type": "string", + "x-go-name": "Name" + }, + "ref": { + "description": "The git reference of the branch", + "type": "string", + "x-go-name": "Ref" + }, + "repo": { + "$ref": "#/components/schemas/Repository" + }, + "repo_id": { + "description": "The unique identifier of the repository", + "format": "int64", + "type": "integer", + "x-go-name": "RepoID" + }, + "sha": { + "description": "The commit SHA of the branch head", + "type": "string", + "x-go-name": "Sha" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Package": { + "description": "Package represents a package", + "properties": { + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "CreatedAt" + }, + "creator": { + "$ref": "#/components/schemas/User" + }, + "html_url": { + "description": "The HTML URL to view the package", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "description": "The unique identifier of the package", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "name": { + "description": "The name of the package", + "type": "string", + "x-go-name": "Name" + }, + "owner": { + "$ref": "#/components/schemas/User" + }, + "repository": { + "$ref": "#/components/schemas/Repository" + }, + "type": { + "description": "The type of the package (e.g., npm, maven, docker)", + "type": "string", + "x-go-name": "Type" + }, + "version": { + "description": "The version of the package", + "type": "string", + "x-go-name": "Version" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "PackageFile": { + "description": "PackageFile represents a package file", + "properties": { + "id": { + "description": "The unique identifier of the package file", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "md5": { + "description": "The MD5 hash of the package file", + "type": "string", + "x-go-name": "HashMD5" + }, + "name": { + "description": "The name of the package file", + "type": "string", + "x-go-name": "Name" + }, + "sha1": { + "description": "The SHA1 hash of the package file", + "type": "string", + "x-go-name": "HashSHA1" + }, + "sha256": { + "description": "The SHA256 hash of the package file", + "type": "string", + "x-go-name": "HashSHA256" + }, + "sha512": { + "description": "The SHA512 hash of the package file", + "type": "string", + "x-go-name": "HashSHA512" + }, + "size": { + "description": "The size of the package file in bytes", + "format": "int64", + "type": "integer", + "x-go-name": "Size" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "PayloadCommit": { + "description": "PayloadCommit represents a commit", + "properties": { + "added": { + "description": "List of files added in this commit", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Added" + }, + "author": { + "$ref": "#/components/schemas/PayloadUser" + }, + "committer": { + "$ref": "#/components/schemas/PayloadUser" + }, + "id": { + "description": "sha1 hash of the commit", + "type": "string", + "x-go-name": "ID" + }, + "message": { + "description": "The commit message", + "type": "string", + "x-go-name": "Message" + }, + "modified": { + "description": "List of files modified in this commit", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Modified" + }, + "removed": { + "description": "List of files removed in this commit", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Removed" + }, + "timestamp": { + "format": "date-time", + "type": "string", + "x-go-name": "Timestamp" + }, + "url": { + "description": "The URL to view this commit", + "format": "uri", + "type": "string", + "x-go-name": "URL" + }, + "verification": { + "$ref": "#/components/schemas/PayloadCommitVerification" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "PayloadCommitVerification": { + "description": "PayloadCommitVerification represents the GPG verification of a commit", + "properties": { + "payload": { + "description": "The signed payload content", + "type": "string", + "x-go-name": "Payload" + }, + "reason": { + "description": "The reason for the verification status", + "type": "string", + "x-go-name": "Reason" + }, + "signature": { + "description": "The GPG signature of the commit", + "type": "string", + "x-go-name": "Signature" + }, + "signer": { + "$ref": "#/components/schemas/PayloadUser" + }, + "verified": { + "description": "Whether the commit signature is verified", + "type": "boolean", + "x-go-name": "Verified" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "PayloadUser": { + "description": "PayloadUser represents the author or committer of a commit", + "properties": { + "email": { + "format": "email", + "type": "string", + "x-go-name": "Email" + }, + "name": { + "description": "Full name of the commit author", + "type": "string", + "x-go-name": "Name" + }, + "username": { + "description": "username of the user", + "type": "string", + "x-go-name": "UserName" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Permission": { + "description": "Permission represents a set of permissions", + "properties": { + "admin": { + "type": "boolean", + "x-go-name": "Admin" + }, + "pull": { + "type": "boolean", + "x-go-name": "Pull" + }, + "push": { + "type": "boolean", + "x-go-name": "Push" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "PermissionEnum": { + "enum": [ + "read", + "write", + "admin" + ], + "type": "string" + }, + "PublicKey": { + "description": "PublicKey publickey is a user key to push code to repository", + "properties": { + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "fingerprint": { + "description": "Fingerprint is the key's fingerprint", + "type": "string", + "x-go-name": "Fingerprint" + }, + "id": { + "description": "ID is the unique identifier for the public key", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "key": { + "description": "Key contains the actual SSH public key content", + "type": "string", + "x-go-name": "Key" + }, + "key_type": { + "description": "KeyType indicates the type of the SSH key", + "type": "string", + "x-go-name": "KeyType" + }, + "last_used_at": { + "description": "Updated is the time when the key was last used", + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + }, + "read_only": { + "description": "ReadOnly indicates if the key has read-only access", + "type": "boolean", + "x-go-name": "ReadOnly" + }, + "title": { + "description": "Title is the human-readable name for the key", + "type": "string", + "x-go-name": "Title" + }, + "url": { + "description": "URL is the API URL for this key", + "format": "uri", + "type": "string", + "x-go-name": "URL" + }, + "user": { + "$ref": "#/components/schemas/User" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "PullRequest": { + "description": "PullRequest represents a pull request", + "properties": { + "additions": { + "description": "The number of lines added in the pull request", + "format": "int64", + "type": "integer", + "x-go-name": "Additions" + }, + "allow_maintainer_edit": { + "description": "Whether maintainers can edit the pull request", + "type": "boolean", + "x-go-name": "AllowMaintainerEdit" + }, + "assignee": { + "$ref": "#/components/schemas/User" + }, + "assignees": { + "description": "The list of users assigned to the pull request", + "items": { + "$ref": "#/components/schemas/User" + }, + "type": "array", + "x-go-name": "Assignees" + }, + "base": { + "$ref": "#/components/schemas/PRBranchInfo" + }, + "body": { + "description": "The description body of the pull request", + "type": "string", + "x-go-name": "Body" + }, + "changed_files": { + "description": "The number of files changed in the pull request", + "format": "int64", + "type": "integer", + "x-go-name": "ChangedFiles" + }, + "closed_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Closed" + }, + "comments": { + "description": "The number of comments on the pull request", + "format": "int64", + "type": "integer", + "x-go-name": "Comments" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "deletions": { + "description": "The number of lines deleted in the pull request", + "format": "int64", + "type": "integer", + "x-go-name": "Deletions" + }, + "diff_url": { + "description": "The URL to download the diff patch", + "format": "uri", + "type": "string", + "x-go-name": "DiffURL" + }, + "draft": { + "description": "Whether the pull request is a draft", + "type": "boolean", + "x-go-name": "Draft" + }, + "due_date": { + "format": "date-time", + "type": "string", + "x-go-name": "Deadline" + }, + "head": { + "$ref": "#/components/schemas/PRBranchInfo" + }, + "html_url": { + "description": "The HTML URL to view the pull request", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "description": "The unique identifier of the pull request", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "is_locked": { + "description": "Whether the pull request conversation is locked", + "type": "boolean", + "x-go-name": "IsLocked" + }, + "labels": { + "description": "The labels attached to the pull request", + "items": { + "$ref": "#/components/schemas/Label" + }, + "type": "array", + "x-go-name": "Labels" + }, + "merge_base": { + "description": "The merge base commit SHA", + "type": "string", + "x-go-name": "MergeBase" + }, + "merge_commit_sha": { + "description": "The SHA of the merge commit", + "type": "string", + "x-go-name": "MergedCommitID" + }, + "mergeable": { + "description": "Whether the pull request can be merged", + "type": "boolean", + "x-go-name": "Mergeable" + }, + "merged": { + "description": "Whether the pull request has been merged", + "type": "boolean", + "x-go-name": "HasMerged" + }, + "merged_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Merged" + }, + "merged_by": { + "$ref": "#/components/schemas/User" + }, + "milestone": { + "$ref": "#/components/schemas/Milestone" + }, + "number": { + "description": "The pull request number", + "format": "int64", + "type": "integer", + "x-go-name": "Index" + }, + "patch_url": { + "description": "The URL to download the patch file", + "format": "uri", + "type": "string", + "x-go-name": "PatchURL" + }, + "pin_order": { + "description": "The pin order for the pull request", + "format": "int64", + "type": "integer", + "x-go-name": "PinOrder" + }, + "requested_reviewers": { + "description": "The users requested to review the pull request", + "items": { + "$ref": "#/components/schemas/User" + }, + "type": "array", + "x-go-name": "RequestedReviewers" + }, + "requested_reviewers_teams": { + "description": "The teams requested to review the pull request", + "items": { + "$ref": "#/components/schemas/Team" + }, + "type": "array", + "x-go-name": "RequestedReviewersTeams" + }, + "review_comments": { + "description": "number of review comments made on the diff of a PR review (not including comments on commits or issues in a PR)", + "format": "int64", + "type": "integer", + "x-go-name": "ReviewComments" + }, + "state": { + "allOf": [ + { + "$ref": "#/components/schemas/StateType" + } + ], + "description": "The current state of the pull request\nopen StateOpen StateOpen pr is opened\nclosed StateClosed StateClosed pr is closed" + }, + "title": { + "description": "The title of the pull request", + "type": "string", + "x-go-name": "Title" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + }, + "url": { + "description": "The API URL of the pull request", + "format": "uri", + "type": "string", + "x-go-name": "URL" + }, + "user": { + "$ref": "#/components/schemas/User" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "PullRequestMeta": { + "description": "PullRequestMeta PR info if an issue is a PR", + "properties": { + "draft": { + "type": "boolean", + "x-go-name": "IsWorkInProgress" + }, + "html_url": { + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "merged": { + "type": "boolean", + "x-go-name": "HasMerged" + }, + "merged_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Merged" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "PullReview": { + "description": "PullReview represents a pull request review", + "properties": { + "body": { + "type": "string", + "x-go-name": "Body" + }, + "comments_count": { + "format": "int64", + "type": "integer", + "x-go-name": "CodeCommentsCount" + }, + "commit_id": { + "type": "string", + "x-go-name": "CommitID" + }, + "dismissed": { + "type": "boolean", + "x-go-name": "Dismissed" + }, + "html_url": { + "description": "HTMLURL is the web URL for viewing the review", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "official": { + "type": "boolean", + "x-go-name": "Official" + }, + "pull_request_url": { + "description": "HTMLPullURL is the web URL for the pull request", + "format": "uri", + "type": "string", + "x-go-name": "HTMLPullURL" + }, + "stale": { + "type": "boolean", + "x-go-name": "Stale" + }, + "state": { + "$ref": "#/components/schemas/ReviewStateType" + }, + "submitted_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Submitted" + }, + "team": { + "$ref": "#/components/schemas/Team" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + }, + "user": { + "$ref": "#/components/schemas/User" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "PullReviewComment": { + "description": "PullReviewComment represents a comment on a pull request review", + "properties": { + "body": { + "type": "string", + "x-go-name": "Body" + }, + "commit_id": { + "type": "string", + "x-go-name": "CommitID" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "diff_hunk": { + "type": "string", + "x-go-name": "DiffHunk" + }, + "html_url": { + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "original_commit_id": { + "type": "string", + "x-go-name": "OrigCommitID" + }, + "original_position": { + "format": "uint64", + "type": "integer", + "x-go-name": "OldLineNum" + }, + "path": { + "type": "string", + "x-go-name": "Path" + }, + "position": { + "format": "uint64", + "type": "integer", + "x-go-name": "LineNum" + }, + "pull_request_review_id": { + "format": "int64", + "type": "integer", + "x-go-name": "ReviewID" + }, + "pull_request_url": { + "format": "uri", + "type": "string", + "x-go-name": "HTMLPullURL" + }, + "resolver": { + "$ref": "#/components/schemas/User" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + }, + "user": { + "$ref": "#/components/schemas/User" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "PullReviewRequestOptions": { + "description": "PullReviewRequestOptions are options to add or remove pull request review requests", + "properties": { + "reviewers": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Reviewers" + }, + "team_reviewers": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "TeamReviewers" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "PushMirror": { + "description": "PushMirror represents information of a push mirror", + "properties": { + "created": { + "format": "date-time", + "type": "string", + "x-go-name": "CreatedUnix" + }, + "interval": { + "description": "The sync interval for automatic updates", + "type": "string", + "x-go-name": "Interval" + }, + "last_error": { + "description": "The last error message encountered during sync", + "type": "string", + "x-go-name": "LastError" + }, + "last_update": { + "format": "date-time", + "type": "string", + "x-go-name": "LastUpdateUnix" + }, + "remote_address": { + "description": "The remote repository URL being mirrored to", + "type": "string", + "x-go-name": "RemoteAddress" + }, + "remote_name": { + "description": "The name of the remote in the git configuration", + "type": "string", + "x-go-name": "RemoteName" + }, + "repo_name": { + "description": "The name of the source repository", + "type": "string", + "x-go-name": "RepoName" + }, + "sync_on_commit": { + "description": "Whether to sync on every commit", + "type": "boolean", + "x-go-name": "SyncOnCommit" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Reaction": { + "description": "Reaction contain one reaction", + "properties": { + "content": { + "description": "The reaction content (e.g., emoji or reaction type)", + "type": "string", + "x-go-name": "Reaction" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "user": { + "$ref": "#/components/schemas/User" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Reference": { + "properties": { + "object": { + "$ref": "#/components/schemas/GitObject" + }, + "ref": { + "description": "The name of the Git reference (e.g., refs/heads/main)", + "type": "string", + "x-go-name": "Ref" + }, + "url": { + "description": "The URL to access this Git reference", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "title": "Reference represents a Git reference.", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Release": { + "description": "Release represents a repository release", + "properties": { + "assets": { + "description": "The files attached to the release", + "items": { + "$ref": "#/components/schemas/Attachment" + }, + "type": "array", + "x-go-name": "Attachments" + }, + "author": { + "$ref": "#/components/schemas/User" + }, + "body": { + "description": "The release notes or description", + "type": "string", + "x-go-name": "Note" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "CreatedAt" + }, + "draft": { + "description": "Whether the release is a draft", + "type": "boolean", + "x-go-name": "IsDraft" + }, + "html_url": { + "description": "The HTML URL to view the release", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "description": "The unique identifier of the release", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "name": { + "description": "The display title of the release", + "type": "string", + "x-go-name": "Title" + }, + "prerelease": { + "description": "Whether the release is a prerelease", + "type": "boolean", + "x-go-name": "IsPrerelease" + }, + "published_at": { + "format": "date-time", + "type": "string", + "x-go-name": "PublishedAt" + }, + "tag_name": { + "description": "The name of the git tag associated with the release", + "type": "string", + "x-go-name": "TagName" + }, + "tarball_url": { + "description": "The URL to download the tarball archive", + "format": "uri", + "type": "string", + "x-go-name": "TarURL" + }, + "target_commitish": { + "description": "The target commitish for the release", + "type": "string", + "x-go-name": "Target" + }, + "upload_url": { + "description": "The URL template for uploading release assets", + "format": "uri", + "type": "string", + "x-go-name": "UploadURL" + }, + "url": { + "description": "The API URL of the release", + "format": "uri", + "type": "string", + "x-go-name": "URL" + }, + "zipball_url": { + "description": "The URL to download the zip archive", + "format": "uri", + "type": "string", + "x-go-name": "ZipURL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "RenameBranchRepoOption": { + "description": "RenameBranchRepoOption options when renaming a branch in a repository", + "properties": { + "name": { + "description": "New branch name", + "type": "string", + "uniqueItems": true, + "x-go-name": "Name" + } + }, + "required": [ + "name" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "RenameOrgOption": { + "description": "RenameOrgOption options when renaming an organization", + "properties": { + "new_name": { + "description": "New username for this org. This name cannot be in use yet by any other user.", + "type": "string", + "uniqueItems": true, + "x-go-name": "NewName" + } + }, + "required": [ + "new_name" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "RenameUserOption": { + "description": "RenameUserOption options when renaming a user", + "properties": { + "new_username": { + "description": "New username for this user. This name cannot be in use yet by any other user.", + "type": "string", + "uniqueItems": true, + "x-go-name": "NewName" + } + }, + "required": [ + "new_username" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "RepoCollaboratorPermission": { + "description": "RepoCollaboratorPermission to get repository permission for a collaborator", + "properties": { + "permission": { + "description": "Permission level of the collaborator", + "type": "string", + "x-go-name": "Permission" + }, + "role_name": { + "description": "RoleName is the name of the permission role", + "type": "string", + "x-go-name": "RoleName" + }, + "user": { + "$ref": "#/components/schemas/User" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "RepoCommit": { + "properties": { + "author": { + "$ref": "#/components/schemas/CommitUser" + }, + "committer": { + "$ref": "#/components/schemas/CommitUser" + }, + "message": { + "description": "Message is the commit message", + "type": "string", + "x-go-name": "Message" + }, + "tree": { + "$ref": "#/components/schemas/CommitMeta" + }, + "url": { + "description": "URL is the API URL for the commit", + "format": "uri", + "type": "string", + "x-go-name": "URL" + }, + "verification": { + "$ref": "#/components/schemas/PayloadCommitVerification" + } + }, + "title": "RepoCommit contains information of a commit in the context of a repository.", + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "RepoTopicOptions": { + "description": "RepoTopicOptions a collection of repo topic names", + "properties": { + "topics": { + "description": "list of topic names", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Topics" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "RepoTransfer": { + "description": "RepoTransfer represents a pending repo transfer", + "properties": { + "doer": { + "$ref": "#/components/schemas/User" + }, + "recipient": { + "$ref": "#/components/schemas/User" + }, + "teams": { + "items": { + "$ref": "#/components/schemas/Team" + }, + "type": "array", + "x-go-name": "Teams" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Repository": { + "description": "Repository represents a repository", + "properties": { + "allow_fast_forward_only_merge": { + "type": "boolean", + "x-go-name": "AllowFastForwardOnly" + }, + "allow_manual_merge": { + "type": "boolean", + "x-go-name": "AllowManualMerge" + }, + "allow_merge_commits": { + "type": "boolean", + "x-go-name": "AllowMerge" + }, + "allow_rebase": { + "type": "boolean", + "x-go-name": "AllowRebase" + }, + "allow_rebase_explicit": { + "type": "boolean", + "x-go-name": "AllowRebaseMerge" + }, + "allow_rebase_update": { + "type": "boolean", + "x-go-name": "AllowRebaseUpdate" + }, + "allow_squash_merge": { + "type": "boolean", + "x-go-name": "AllowSquash" + }, + "archived": { + "type": "boolean", + "x-go-name": "Archived" + }, + "archived_at": { + "format": "date-time", + "type": "string", + "x-go-name": "ArchivedAt" + }, + "autodetect_manual_merge": { + "type": "boolean", + "x-go-name": "AutodetectManualMerge" + }, + "avatar_url": { + "format": "uri", + "type": "string", + "x-go-name": "AvatarURL" + }, + "branch_count": { + "format": "int64", + "type": "integer", + "x-go-name": "BranchCount" + }, + "clone_url": { + "format": "uri", + "type": "string", + "x-go-name": "CloneURL" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "default_allow_maintainer_edit": { + "type": "boolean", + "x-go-name": "DefaultAllowMaintainerEdit" + }, + "default_branch": { + "type": "string", + "x-go-name": "DefaultBranch" + }, + "default_delete_branch_after_merge": { + "type": "boolean", + "x-go-name": "DefaultDeleteBranchAfterMerge" + }, + "default_merge_style": { + "type": "string", + "x-go-name": "DefaultMergeStyle" + }, + "default_target_branch": { + "type": "string", + "x-go-name": "DefaultTargetBranch" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "empty": { + "type": "boolean", + "x-go-name": "Empty" + }, + "external_tracker": { + "$ref": "#/components/schemas/ExternalTracker" + }, + "external_wiki": { + "$ref": "#/components/schemas/ExternalWiki" + }, + "fork": { + "type": "boolean", + "x-go-name": "Fork" + }, + "forks_count": { + "format": "int64", + "type": "integer", + "x-go-name": "Forks" + }, + "full_name": { + "type": "string", + "x-go-name": "FullName" + }, + "has_actions": { + "type": "boolean", + "x-go-name": "HasActions" + }, + "has_code": { + "type": "boolean", + "x-go-name": "HasCode" + }, + "has_issues": { + "type": "boolean", + "x-go-name": "HasIssues" + }, + "has_packages": { + "type": "boolean", + "x-go-name": "HasPackages" + }, + "has_projects": { + "type": "boolean", + "x-go-name": "HasProjects" + }, + "has_pull_requests": { + "type": "boolean", + "x-go-name": "HasPullRequests" + }, + "has_releases": { + "type": "boolean", + "x-go-name": "HasReleases" + }, + "has_wiki": { + "type": "boolean", + "x-go-name": "HasWiki" + }, + "html_url": { + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "ignore_whitespace_conflicts": { + "type": "boolean", + "x-go-name": "IgnoreWhitespaceConflicts" + }, + "internal": { + "type": "boolean", + "x-go-name": "Internal" + }, + "internal_tracker": { + "$ref": "#/components/schemas/InternalTracker" + }, + "language": { + "type": "string", + "x-go-name": "Language" + }, + "languages_url": { + "format": "uri", + "type": "string", + "x-go-name": "LanguagesURL" + }, + "licenses": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Licenses" + }, + "link": { + "type": "string", + "x-go-name": "Link" + }, + "mirror": { + "type": "boolean", + "x-go-name": "Mirror" + }, + "mirror_interval": { + "type": "string", + "x-go-name": "MirrorInterval" + }, + "mirror_updated": { + "format": "date-time", + "type": "string", + "x-go-name": "MirrorUpdated" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "object_format_name": { + "allOf": [ + { + "$ref": "#/components/schemas/ObjectFormatNameEnum" + } + ], + "description": "ObjectFormatName of the underlying git repository" + }, + "open_issues_count": { + "format": "int64", + "type": "integer", + "x-go-name": "OpenIssues" + }, + "open_pr_counter": { + "format": "int64", + "type": "integer", + "x-go-name": "OpenPulls" + }, + "original_url": { + "format": "uri", + "type": "string", + "x-go-name": "OriginalURL" + }, + "owner": { + "$ref": "#/components/schemas/User" + }, + "parent": { + "$ref": "#/components/schemas/Repository" + }, + "permissions": { + "$ref": "#/components/schemas/Permission" + }, + "private": { + "type": "boolean", + "x-go-name": "Private" + }, + "projects_mode": { + "type": "string", + "x-go-name": "ProjectsMode" + }, + "release_counter": { + "format": "int64", + "type": "integer", + "x-go-name": "Releases" + }, + "repo_transfer": { + "$ref": "#/components/schemas/RepoTransfer" + }, + "size": { + "format": "int64", + "type": "integer", + "x-go-name": "Size" + }, + "ssh_url": { + "format": "uri", + "type": "string", + "x-go-name": "SSHURL" + }, + "stars_count": { + "format": "int64", + "type": "integer", + "x-go-name": "Stars" + }, + "template": { + "type": "boolean", + "x-go-name": "Template" + }, + "topics": { + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Topics" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + }, + "url": { + "format": "uri", + "type": "string", + "x-go-name": "URL" + }, + "watchers_count": { + "format": "int64", + "type": "integer", + "x-go-name": "Watchers" + }, + "website": { + "type": "string", + "x-go-name": "Website" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "RepositoryMeta": { + "description": "RepositoryMeta basic repository information", + "properties": { + "full_name": { + "type": "string", + "x-go-name": "FullName" + }, + "id": { + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "owner": { + "type": "string", + "x-go-name": "Owner" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ReviewStateType": { + "enum": [ + "APPROVED", + "PENDING", + "COMMENT", + "REQUEST_CHANGES", + "REQUEST_REVIEW" + ], + "type": "string" + }, + "RunDetails": { + "description": "RunDetails returns workflow_dispatch runid and url", + "properties": { + "html_url": { + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "run_url": { + "format": "uri", + "type": "string", + "x-go-name": "RunURL" + }, + "workflow_run_id": { + "format": "int64", + "type": "integer", + "x-go-name": "WorkflowRunID" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "SearchResults": { + "description": "SearchResults results of a successful search", + "properties": { + "data": { + "description": "Data contains the repository search results", + "items": { + "$ref": "#/components/schemas/Repository" + }, + "type": "array", + "x-go-name": "Data" + }, + "ok": { + "description": "OK indicates if the search was successful", + "type": "boolean", + "x-go-name": "OK" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Secret": { + "description": "Secret represents a secret", + "properties": { + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "description": { + "description": "the secret's description", + "type": "string", + "x-go-name": "Description" + }, + "name": { + "description": "the secret's name", + "type": "string", + "x-go-name": "Name" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "ServerVersion": { + "description": "ServerVersion wraps the version of the server", + "properties": { + "version": { + "description": "Version is the server version string", + "type": "string", + "x-go-name": "Version" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "StateType": { + "enum": [ + "open", + "closed" + ], + "type": "string" + }, + "StopWatch": { + "description": "StopWatch represent a running stopwatch", + "properties": { + "created": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "duration": { + "description": "Duration is a human-readable duration string", + "type": "string", + "x-go-name": "Duration" + }, + "issue_index": { + "description": "IssueIndex is the index number of the associated issue", + "format": "int64", + "type": "integer", + "x-go-name": "IssueIndex" + }, + "issue_title": { + "description": "IssueTitle is the title of the associated issue", + "type": "string", + "x-go-name": "IssueTitle" + }, + "repo_name": { + "description": "RepoName is the name of the repository", + "type": "string", + "x-go-name": "RepoName" + }, + "repo_owner_name": { + "description": "RepoOwnerName is the name of the repository owner", + "type": "string", + "x-go-name": "RepoOwnerName" + }, + "seconds": { + "description": "Seconds is the total elapsed time in seconds", + "format": "int64", + "type": "integer", + "x-go-name": "Seconds" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "SubmitPullReviewOptions": { + "description": "SubmitPullReviewOptions are options to submit a pending pull request review", + "properties": { + "body": { + "type": "string", + "x-go-name": "Body" + }, + "event": { + "$ref": "#/components/schemas/ReviewStateType" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Tag": { + "description": "Tag represents a repository tag", + "properties": { + "commit": { + "$ref": "#/components/schemas/CommitMeta" + }, + "id": { + "description": "The ID (SHA) of the tag", + "type": "string", + "x-go-name": "ID" + }, + "message": { + "description": "The message associated with the tag", + "type": "string", + "x-go-name": "Message" + }, + "name": { + "description": "The name of the tag", + "type": "string", + "x-go-name": "Name" + }, + "tarball_url": { + "description": "The URL to download the tarball archive", + "format": "uri", + "type": "string", + "x-go-name": "TarballURL" + }, + "zipball_url": { + "description": "The URL to download the zipball archive", + "format": "uri", + "type": "string", + "x-go-name": "ZipballURL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "TagProtection": { + "description": "TagProtection represents a tag protection", + "properties": { + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "id": { + "description": "The unique identifier of the tag protection", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "name_pattern": { + "description": "The pattern to match tag names for protection", + "type": "string", + "x-go-name": "NamePattern" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + }, + "whitelist_teams": { + "description": "List of team names allowed to create/delete protected tags", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "WhitelistTeams" + }, + "whitelist_usernames": { + "description": "List of usernames allowed to create/delete protected tags", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "WhitelistUsernames" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "Team": { + "description": "Team represents a team in an organization", + "properties": { + "can_create_org_repo": { + "description": "Whether the team can create repositories in the organization", + "type": "boolean", + "x-go-name": "CanCreateOrgRepo" + }, + "description": { + "description": "The description of the team", + "type": "string", + "x-go-name": "Description" + }, + "id": { + "description": "The unique identifier of the team", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "includes_all_repositories": { + "description": "Whether the team has access to all repositories in the organization", + "type": "boolean", + "x-go-name": "IncludesAllRepositories" + }, + "name": { + "description": "The name of the team", + "type": "string", + "x-go-name": "Name" + }, + "organization": { + "$ref": "#/components/schemas/Organization" + }, + "permission": { + "enum": [ + "none", + "read", + "write", + "admin", + "owner" + ], + "type": "string", + "x-go-name": "Permission" + }, + "units": { + "example": [ + "repo.code", + "repo.issues", + "repo.ext_issues", + "repo.wiki", + "repo.pulls", + "repo.releases", + "repo.projects", + "repo.ext_wiki" + ], + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "Units" + }, + "units_map": { + "additionalProperties": { + "type": "string" + }, + "example": { + "repo.code": "read", + "repo.ext_issues": "none", + "repo.ext_wiki": "none", + "repo.issues": "write", + "repo.projects": "none", + "repo.pulls": "owner", + "repo.releases": "none", + "repo.wiki": "admin" + }, + "type": "object", + "x-go-name": "UnitsMap" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "TimeStamp": { + "description": "TimeStamp defines a timestamp", + "format": "int64", + "type": "integer", + "x-go-package": "code.gitea.io/gitea/modules/timeutil" + }, + "TimelineComment": { + "description": "TimelineComment represents a timeline comment (comment of any type) on a commit or issue", + "properties": { + "assignee": { + "$ref": "#/components/schemas/User" + }, + "assignee_team": { + "$ref": "#/components/schemas/Team" + }, + "body": { + "description": "Body contains the timeline event content", + "type": "string", + "x-go-name": "Body" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "dependent_issue": { + "$ref": "#/components/schemas/Issue" + }, + "html_url": { + "description": "HTMLURL is the web URL for viewing the comment", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "description": "ID is the unique identifier for the timeline comment", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "issue_url": { + "description": "IssueURL is the API URL for the issue", + "format": "uri", + "type": "string", + "x-go-name": "IssueURL" + }, + "label": { + "$ref": "#/components/schemas/Label" + }, + "milestone": { + "$ref": "#/components/schemas/Milestone" + }, + "new_ref": { + "type": "string", + "x-go-name": "NewRef" + }, + "new_title": { + "type": "string", + "x-go-name": "NewTitle" + }, + "old_milestone": { + "$ref": "#/components/schemas/Milestone" + }, + "old_project_id": { + "format": "int64", + "type": "integer", + "x-go-name": "OldProjectID" + }, + "old_ref": { + "type": "string", + "x-go-name": "OldRef" + }, + "old_title": { + "type": "string", + "x-go-name": "OldTitle" + }, + "project_id": { + "format": "int64", + "type": "integer", + "x-go-name": "ProjectID" + }, + "pull_request_url": { + "description": "PRURL is the API URL for the pull request (if applicable)", + "format": "uri", + "type": "string", + "x-go-name": "PRURL" + }, + "ref_action": { + "type": "string", + "x-go-name": "RefAction" + }, + "ref_comment": { + "$ref": "#/components/schemas/Comment" + }, + "ref_commit_sha": { + "description": "commit SHA where issue/PR was referenced", + "type": "string", + "x-go-name": "RefCommitSHA" + }, + "ref_issue": { + "$ref": "#/components/schemas/Issue" + }, + "removed_assignee": { + "description": "whether the assignees were removed or added", + "type": "boolean", + "x-go-name": "RemovedAssignee" + }, + "resolve_doer": { + "$ref": "#/components/schemas/User" + }, + "review_id": { + "format": "int64", + "type": "integer", + "x-go-name": "ReviewID" + }, + "tracked_time": { + "$ref": "#/components/schemas/TrackedTime" + }, + "type": { + "description": "Type indicates the type of timeline event", + "type": "string", + "x-go-name": "Type" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + }, + "user": { + "$ref": "#/components/schemas/User" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "TopicName": { + "description": "TopicName a list of repo topic names", + "properties": { + "topics": { + "description": "List of topic names", + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "TopicNames" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "TopicResponse": { + "description": "TopicResponse for returning topics", + "properties": { + "created": { + "description": "The date and time when the topic was created", + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "id": { + "description": "The unique identifier of the topic", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "repo_count": { + "description": "The number of repositories using this topic", + "format": "int64", + "type": "integer", + "x-go-name": "RepoCount" + }, + "topic_name": { + "description": "The name of the topic", + "type": "string", + "x-go-name": "Name" + }, + "updated": { + "description": "The date and time when the topic was last updated", + "format": "date-time", + "type": "string", + "x-go-name": "Updated" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "TrackedTime": { + "description": "TrackedTime worked time for an issue / pr", + "properties": { + "created": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "id": { + "description": "ID is the unique identifier for the tracked time entry", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "issue": { + "$ref": "#/components/schemas/Issue" + }, + "issue_id": { + "deprecated": true, + "description": "deprecated (only for backwards compatibility)", + "format": "int64", + "type": "integer", + "x-go-name": "IssueID" + }, + "time": { + "description": "Time in seconds", + "format": "int64", + "type": "integer", + "x-go-name": "Time" + }, + "user_id": { + "deprecated": true, + "description": "deprecated (only for backwards compatibility)", + "format": "int64", + "type": "integer", + "x-go-name": "UserID" + }, + "user_name": { + "description": "username of the user", + "type": "string", + "x-go-name": "UserName" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "TransferRepoOption": { + "description": "TransferRepoOption options when transfer a repository's ownership", + "properties": { + "new_owner": { + "type": "string", + "x-go-name": "NewOwner" + }, + "team_ids": { + "description": "ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories.", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "x-go-name": "TeamIDs" + } + }, + "required": [ + "new_owner" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "UpdateBranchProtectionPriories": { + "description": "UpdateBranchProtectionPriories a list to update the branch protection rule priorities", + "properties": { + "ids": { + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "x-go-name": "IDs" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "UpdateBranchRepoOption": { + "description": "UpdateBranchRepoOption options when updating a branch reference in a repository", + "properties": { + "force": { + "description": "Force update even if the change is not a fast-forward", + "type": "boolean", + "x-go-name": "Force" + }, + "new_commit_id": { + "description": "New commit SHA (or any ref) the branch should point to", + "type": "string", + "x-go-name": "NewCommitID" + }, + "old_commit_id": { + "description": "Expected old commit SHA of the branch; if provided it must match the current tip", + "type": "string", + "x-go-name": "OldCommitID" + } + }, + "required": [ + "new_commit_id" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "UpdateFileOptions": { + "description": "UpdateFileOptions options for updating or creating a file\nNote: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)", + "properties": { + "author": { + "$ref": "#/components/schemas/Identity" + }, + "branch": { + "description": "branch (optional) is the base branch for the changes. If not supplied, the default branch is used", + "type": "string", + "x-go-name": "BranchName" + }, + "committer": { + "$ref": "#/components/schemas/Identity" + }, + "content": { + "description": "content must be base64 encoded", + "type": "string", + "x-go-name": "ContentBase64" + }, + "dates": { + "$ref": "#/components/schemas/CommitDateOptions" + }, + "force_push": { + "description": "force_push (optional) will do a force-push if the new branch already exists", + "type": "boolean", + "x-go-name": "ForcePush" + }, + "from_path": { + "description": "from_path (optional) is the path of the original file which will be moved/renamed to the path in the URL", + "type": "string", + "x-go-name": "FromPath" + }, + "message": { + "description": "message (optional) is the commit message of the changes. If not supplied, a default message will be used", + "type": "string", + "x-go-name": "Message" + }, + "new_branch": { + "description": "new_branch (optional) will make a new branch from base branch for the changes. If not supplied, the changes will be committed to the base branch", + "type": "string", + "x-go-name": "NewBranchName" + }, + "sha": { + "description": "the blob ID (SHA) for the file that already exists to update, or leave it empty to create a new file", + "type": "string", + "x-go-name": "SHA" + }, + "signoff": { + "description": "Add a Signed-off-by trailer by the committer at the end of the commit log message.", + "type": "boolean", + "x-go-name": "Signoff" + } + }, + "required": [ + "content" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "UpdateRepoAvatarOption": { + "description": "UpdateRepoAvatarUserOption options when updating the repo avatar", + "properties": { + "image": { + "description": "image must be base64 encoded", + "type": "string", + "x-go-name": "Image" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "UpdateUserAvatarOption": { + "description": "UpdateUserAvatarUserOption options when updating the user avatar", + "properties": { + "image": { + "description": "image must be base64 encoded", + "type": "string", + "x-go-name": "Image" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "UpdateVariableOption": { + "description": "UpdateVariableOption the option when updating variable", + "properties": { + "description": { + "description": "Description of the variable to update", + "type": "string", + "x-go-name": "Description" + }, + "name": { + "description": "New name for the variable. If the field is empty, the variable name won't be updated.", + "type": "string", + "x-go-name": "Name" + }, + "value": { + "description": "Value of the variable to update", + "type": "string", + "x-go-name": "Value" + } + }, + "required": [ + "value" + ], + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "User": { + "description": "User represents a user", + "properties": { + "active": { + "description": "Is user active", + "type": "boolean", + "x-go-name": "IsActive" + }, + "avatar_url": { + "description": "URL to the user's avatar", + "format": "uri", + "type": "string", + "x-go-name": "AvatarURL" + }, + "created": { + "format": "date-time", + "type": "string", + "x-go-name": "Created" + }, + "description": { + "description": "the user's description", + "type": "string", + "x-go-name": "Description" + }, + "email": { + "format": "email", + "type": "string", + "x-go-name": "Email" + }, + "followers_count": { + "description": "user counts", + "format": "int64", + "type": "integer", + "x-go-name": "Followers" + }, + "following_count": { + "format": "int64", + "type": "integer", + "x-go-name": "Following" + }, + "full_name": { + "description": "the user's full name", + "type": "string", + "x-go-name": "FullName" + }, + "html_url": { + "description": "URL to the user's gitea page", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "id": { + "description": "the user's id", + "format": "int64", + "type": "integer", + "x-go-name": "ID" + }, + "is_admin": { + "description": "Is the user an administrator", + "type": "boolean", + "x-go-name": "IsAdmin" + }, + "language": { + "description": "User locale", + "type": "string", + "x-go-name": "Language" + }, + "last_login": { + "format": "date-time", + "type": "string", + "x-go-name": "LastLogin" + }, + "location": { + "description": "the user's location", + "type": "string", + "x-go-name": "Location" + }, + "login": { + "description": "login of the user, same as `username`", + "type": "string", + "x-go-name": "UserName" + }, + "login_name": { + "default": "empty", + "description": "identifier of the user, provided by the external authenticator (if configured)", + "type": "string", + "x-go-name": "LoginName" + }, + "prohibit_login": { + "description": "Is user login prohibited", + "type": "boolean", + "x-go-name": "ProhibitLogin" + }, + "restricted": { + "description": "Is user restricted", + "type": "boolean", + "x-go-name": "Restricted" + }, + "source_id": { + "description": "The ID of the user's Authentication Source", + "format": "int64", + "type": "integer", + "x-go-name": "SourceID" + }, + "starred_repos_count": { + "format": "int64", + "type": "integer", + "x-go-name": "StarredRepos" + }, + "visibility": { + "description": "User visibility level option: public, limited, private", + "type": "string", + "x-go-name": "Visibility" + }, + "website": { + "description": "the user's website", + "type": "string", + "x-go-name": "Website" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "UserBadgeOption": { + "description": "UserBadgeOption options for link between users and badges", + "properties": { + "badge_slugs": { + "example": [ + "badge1", + "badge2" + ], + "items": { + "type": "string" + }, + "type": "array", + "x-go-name": "BadgeSlugs" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "UserHeatmapData": { + "description": "UserHeatmapData represents the data needed to create a heatmap", + "properties": { + "contributions": { + "format": "int64", + "type": "integer", + "x-go-name": "Contributions" + }, + "timestamp": { + "$ref": "#/components/schemas/TimeStamp" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/models/activities" + }, + "UserSettings": { + "description": "UserSettings represents user settings", + "properties": { + "description": { + "type": "string", + "x-go-name": "Description" + }, + "diff_view_style": { + "type": "string", + "x-go-name": "DiffViewStyle" + }, + "full_name": { + "type": "string", + "x-go-name": "FullName" + }, + "hide_activity": { + "type": "boolean", + "x-go-name": "HideActivity" + }, + "hide_email": { + "description": "Privacy", + "type": "boolean", + "x-go-name": "HideEmail" + }, + "language": { + "type": "string", + "x-go-name": "Language" + }, + "location": { + "type": "string", + "x-go-name": "Location" + }, + "theme": { + "type": "string", + "x-go-name": "Theme" + }, + "website": { + "type": "string", + "x-go-name": "Website" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "UserSettingsOptions": { + "description": "UserSettingsOptions represents options to change user settings", + "properties": { + "description": { + "type": "string", + "x-go-name": "Description" + }, + "diff_view_style": { + "type": "string", + "x-go-name": "DiffViewStyle" + }, + "full_name": { + "type": "string", + "x-go-name": "FullName" + }, + "hide_activity": { + "type": "boolean", + "x-go-name": "HideActivity" + }, + "hide_email": { + "description": "Privacy", + "type": "boolean", + "x-go-name": "HideEmail" + }, + "language": { + "type": "string", + "x-go-name": "Language" + }, + "location": { + "type": "string", + "x-go-name": "Location" + }, + "theme": { + "type": "string", + "x-go-name": "Theme" + }, + "website": { + "type": "string", + "x-go-name": "Website" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "VisibilityEnum": { + "enum": [ + "public", + "limited", + "private" + ], + "type": "string" + }, + "WatchInfo": { + "description": "WatchInfo represents an API watch status of one repository", + "properties": { + "created_at": { + "description": "The timestamp when the watch status was created", + "format": "date-time", + "type": "string", + "x-go-name": "CreatedAt" + }, + "ignored": { + "description": "Whether notifications for the repository are ignored", + "type": "boolean", + "x-go-name": "Ignored" + }, + "reason": { + "description": "The reason for the current watch status", + "x-go-name": "Reason" + }, + "repository_url": { + "description": "The URL of the repository being watched", + "format": "uri", + "type": "string", + "x-go-name": "RepositoryURL" + }, + "subscribed": { + "description": "Whether the repository is being watched for notifications", + "type": "boolean", + "x-go-name": "Subscribed" + }, + "url": { + "description": "The URL for managing the watch status", + "format": "uri", + "type": "string", + "x-go-name": "URL" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "WikiCommit": { + "description": "WikiCommit page commit/revision", + "properties": { + "author": { + "$ref": "#/components/schemas/CommitUser" + }, + "commiter": { + "$ref": "#/components/schemas/CommitUser" + }, + "message": { + "description": "The commit message", + "type": "string", + "x-go-name": "Message" + }, + "sha": { + "description": "The commit SHA hash", + "type": "string", + "x-go-name": "ID" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "WikiCommitList": { + "description": "WikiCommitList commit/revision list", + "properties": { + "commits": { + "description": "The list of wiki commits", + "items": { + "$ref": "#/components/schemas/WikiCommit" + }, + "type": "array", + "x-go-name": "WikiCommits" + }, + "count": { + "description": "The total count of commits", + "format": "int64", + "type": "integer", + "x-go-name": "Count" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "WikiPage": { + "description": "WikiPage a wiki page", + "properties": { + "commit_count": { + "description": "The number of commits that modified this page", + "format": "int64", + "type": "integer", + "x-go-name": "CommitCount" + }, + "content_base64": { + "description": "Page content, base64 encoded", + "type": "string", + "x-go-name": "ContentBase64" + }, + "footer": { + "description": "The footer content for the wiki page", + "type": "string", + "x-go-name": "Footer" + }, + "html_url": { + "description": "The HTML URL to view the wiki page", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "last_commit": { + "$ref": "#/components/schemas/WikiCommit" + }, + "sidebar": { + "description": "The sidebar content for the wiki page", + "type": "string", + "x-go-name": "Sidebar" + }, + "sub_url": { + "description": "The sub URL path for the wiki page", + "format": "uri", + "type": "string", + "x-go-name": "SubURL" + }, + "title": { + "description": "The title of the wiki page", + "type": "string", + "x-go-name": "Title" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, + "WikiPageMetaData": { + "description": "WikiPageMetaData wiki page meta information", + "properties": { + "html_url": { + "description": "The HTML URL to view the wiki page", + "format": "uri", + "type": "string", + "x-go-name": "HTMLURL" + }, + "last_commit": { + "$ref": "#/components/schemas/WikiCommit" + }, + "sub_url": { + "description": "The sub URL path for the wiki page", + "format": "uri", + "type": "string", + "x-go-name": "SubURL" + }, + "title": { + "description": "The title of the wiki page", + "type": "string", + "x-go-name": "Title" + } + }, + "type": "object", + "x-go-package": "code.gitea.io/gitea/modules/structs" + } + }, + "securitySchemes": { + "AccessToken": { + "description": "This authentication option is deprecated for removal in Gitea 1.23. Please use AuthorizationHeaderToken instead.", + "in": "query", + "name": "access_token", + "type": "apiKey" + }, + "AuthorizationHeaderToken": { + "description": "API tokens must be prepended with \"token\" followed by a space.", + "in": "header", + "name": "Authorization", + "type": "apiKey" + }, + "BasicAuth": { + "scheme": "basic", + "type": "http" + }, + "SudoHeader": { + "description": "Sudo API request as the user provided as the key. Admin privileges are required.", + "in": "header", + "name": "Sudo", + "type": "apiKey" + }, + "SudoParam": { + "description": "Sudo API request as the user provided as the key. Admin privileges are required.", + "in": "query", + "name": "sudo", + "type": "apiKey" + }, + "TOTPHeader": { + "description": "Must be used in combination with BasicAuth if two-factor authentication is enabled.", + "in": "header", + "name": "X-GITEA-OTP", + "type": "apiKey" + }, + "Token": { + "description": "This authentication option is deprecated for removal in Gitea 1.23. Please use AuthorizationHeaderToken instead.", + "in": "query", + "name": "token", + "type": "apiKey" + } + } + }, + "info": { + "description": "This documentation describes the Gitea API.", + "license": { + "name": "MIT", + "url": "http://opensource.org/licenses/MIT" + }, + "title": "Gitea API", + "version": "{{.SwaggerAppVer}}" + }, + "openapi": "3.0.3", + "paths": { + "/admin/actions/jobs": { + "get": { + "operationId": "listAdminWorkflowJobs", + "parameters": [ + { + "description": "workflow status (pending, queued, in_progress, failure, success, skipped)", + "in": "query", + "name": "status", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WorkflowJobsList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Lists all jobs", + "tags": [ + "admin" + ] + } + }, + "/admin/actions/runners": { + "get": { + "operationId": "getAdminRunners", + "parameters": [ + { + "description": "filter by disabled status (true or false)", + "in": "query", + "name": "disabled", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RunnerList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get all runners", + "tags": [ + "admin" + ] + } + }, + "/admin/actions/runners/registration-token": { + "post": { + "operationId": "adminCreateRunnerRegistrationToken", + "responses": { + "200": { + "$ref": "#/components/responses/RegistrationToken" + } + }, + "summary": "Get a global actions runner registration token", + "tags": [ + "admin" + ] + } + }, + "/admin/actions/runners/{runner_id}": { + "delete": { + "operationId": "deleteAdminRunner", + "parameters": [ + { + "description": "id of the runner", + "in": "path", + "name": "runner_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "runner has been deleted" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a global runner", + "tags": [ + "admin" + ] + }, + "get": { + "operationId": "getAdminRunner", + "parameters": [ + { + "description": "id of the runner", + "in": "path", + "name": "runner_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Runner" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a global runner", + "tags": [ + "admin" + ] + }, + "patch": { + "operationId": "updateAdminRunner", + "parameters": [ + { + "description": "id of the runner", + "in": "path", + "name": "runner_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditActionRunnerOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Runner" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Update a global runner", + "tags": [ + "admin" + ] + } + }, + "/admin/actions/runs": { + "get": { + "operationId": "listAdminWorkflowRuns", + "parameters": [ + { + "description": "workflow event name", + "in": "query", + "name": "event", + "schema": { + "type": "string" + } + }, + { + "description": "workflow branch", + "in": "query", + "name": "branch", + "schema": { + "type": "string" + } + }, + { + "description": "workflow status (pending, queued, in_progress, failure, success, skipped)", + "in": "query", + "name": "status", + "schema": { + "type": "string" + } + }, + { + "description": "triggered by user", + "in": "query", + "name": "actor", + "schema": { + "type": "string" + } + }, + { + "description": "triggering sha of the workflow run", + "in": "query", + "name": "head_sha", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WorkflowRunsList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Lists all runs", + "tags": [ + "admin" + ] + } + }, + "/admin/cron": { + "get": { + "operationId": "adminCronList", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/CronList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "summary": "List cron tasks", + "tags": [ + "admin" + ] + } + }, + "/admin/cron/{task}": { + "post": { + "operationId": "adminCronRun", + "parameters": [ + { + "description": "task to run", + "in": "path", + "name": "task", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Run cron task", + "tags": [ + "admin" + ] + } + }, + "/admin/emails": { + "get": { + "operationId": "adminGetAllEmails", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/EmailList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "summary": "List all emails", + "tags": [ + "admin" + ] + } + }, + "/admin/emails/search": { + "get": { + "operationId": "adminSearchEmails", + "parameters": [ + { + "description": "keyword", + "in": "query", + "name": "q", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/EmailList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "summary": "Search all emails", + "tags": [ + "admin" + ] + } + }, + "/admin/hooks": { + "get": { + "operationId": "adminListHooks", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + }, + { + "description": "system, default or both kinds of webhooks", + "in": "query", + "name": "type", + "schema": { + "default": "system", + "enum": [ + "system", + "default", + "all" + ], + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/HookList" + } + }, + "summary": "List system's webhooks", + "tags": [ + "admin" + ] + }, + "post": { + "operationId": "adminCreateHook", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateHookOption" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Hook" + } + }, + "summary": "Create a hook", + "tags": [ + "admin" + ] + } + }, + "/admin/hooks/{id}": { + "delete": { + "operationId": "adminDeleteHook", + "parameters": [ + { + "description": "id of the hook to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + } + }, + "summary": "Delete a hook", + "tags": [ + "admin" + ] + }, + "get": { + "operationId": "adminGetHook", + "parameters": [ + { + "description": "id of the hook to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Hook" + } + }, + "summary": "Get a hook", + "tags": [ + "admin" + ] + }, + "patch": { + "operationId": "adminEditHook", + "parameters": [ + { + "description": "id of the hook to update", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditHookOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Hook" + } + }, + "summary": "Update a hook", + "tags": [ + "admin" + ] + } + }, + "/admin/orgs": { + "get": { + "operationId": "adminGetAllOrgs", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/OrganizationList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "summary": "List all organizations", + "tags": [ + "admin" + ] + } + }, + "/admin/unadopted": { + "get": { + "operationId": "adminUnadoptedList", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + }, + { + "description": "pattern of repositories to search for", + "in": "query", + "name": "pattern", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/StringSlice" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "summary": "List unadopted repositories", + "tags": [ + "admin" + ] + } + }, + "/admin/unadopted/{owner}/{repo}": { + "delete": { + "operationId": "adminDeleteUnadoptedRepository", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "summary": "Delete unadopted files", + "tags": [ + "admin" + ] + }, + "post": { + "operationId": "adminAdoptRepository", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Adopt unadopted files as a repository", + "tags": [ + "admin" + ] + } + }, + "/admin/users": { + "get": { + "operationId": "adminSearchUsers", + "parameters": [ + { + "description": "ID of the user's login source to search for", + "in": "query", + "name": "source_id", + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "identifier of the user, provided by the external authenticator", + "in": "query", + "name": "login_name", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + }, + { + "description": "sort users by attribute. Supported values are \"name\", \"created\", \"updated\" and \"id\". Default is \"name\"", + "in": "query", + "name": "sort", + "schema": { + "type": "string" + } + }, + { + "description": "sort order, either \"asc\" (ascending) or \"desc\" (descending). Default is \"asc\", ignored if \"sort\" is not specified.", + "in": "query", + "name": "order", + "schema": { + "type": "string" + } + }, + { + "description": "search term (username, full name, email)", + "in": "query", + "name": "q", + "schema": { + "type": "string" + } + }, + { + "description": "visibility filter. Supported values are \"public\", \"limited\" and \"private\".", + "in": "query", + "name": "visibility", + "schema": { + "type": "string" + } + }, + { + "description": "filter active users", + "in": "query", + "name": "is_active", + "schema": { + "type": "boolean" + } + }, + { + "description": "filter admin users", + "in": "query", + "name": "is_admin", + "schema": { + "type": "boolean" + } + }, + { + "description": "filter restricted users", + "in": "query", + "name": "is_restricted", + "schema": { + "type": "boolean" + } + }, + { + "description": "filter 2FA enabled users", + "in": "query", + "name": "is_2fa_enabled", + "schema": { + "type": "boolean" + } + }, + { + "description": "filter login prohibited users", + "in": "query", + "name": "is_prohibit_login", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Search users according filter conditions", + "tags": [ + "admin" + ] + }, + "post": { + "operationId": "adminCreateUser", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUserOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/User" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a user", + "tags": [ + "admin" + ] + } + }, + "/admin/users/{username}": { + "delete": { + "operationId": "adminDeleteUser", + "parameters": [ + { + "description": "username of the user to delete", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "purge the user from the system completely", + "in": "query", + "name": "purge", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Delete a user", + "tags": [ + "admin" + ] + }, + "patch": { + "operationId": "adminEditUser", + "parameters": [ + { + "description": "username of the user whose data is to be edited", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditUserOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/User" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Edit an existing user", + "tags": [ + "admin" + ] + } + }, + "/admin/users/{username}/badges": { + "delete": { + "operationId": "adminDeleteUserBadges", + "parameters": [ + { + "description": "username of the user whose badge is to be deleted", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserBadgeOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Remove a badge from a user", + "tags": [ + "admin" + ] + }, + "get": { + "operationId": "adminListUserBadges", + "parameters": [ + { + "description": "username of the user whose badges are to be listed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/BadgeList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a user's badges", + "tags": [ + "admin" + ] + }, + "post": { + "operationId": "adminAddUserBadges", + "parameters": [ + { + "description": "username of the user to whom a badge is to be added", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserBadgeOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "summary": "Add a badge to a user", + "tags": [ + "admin" + ] + } + }, + "/admin/users/{username}/keys": { + "post": { + "operationId": "adminCreatePublicKey", + "parameters": [ + { + "description": "username of the user who is to receive a public key", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateKeyOption" + } + } + }, + "x-originalParamName": "key" + }, + "responses": { + "201": { + "$ref": "#/components/responses/PublicKey" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Add a public key on behalf of a user", + "tags": [ + "admin" + ] + } + }, + "/admin/users/{username}/keys/{id}": { + "delete": { + "operationId": "adminDeleteUserPublicKey", + "parameters": [ + { + "description": "username of the user whose public key is to be deleted", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the key to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a user's public key", + "tags": [ + "admin" + ] + } + }, + "/admin/users/{username}/orgs": { + "post": { + "operationId": "adminCreateOrg", + "parameters": [ + { + "description": "username of the user who will own the created organization", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrgOption" + } + } + }, + "required": true, + "x-originalParamName": "organization" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Organization" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create an organization", + "tags": [ + "admin" + ] + } + }, + "/admin/users/{username}/rename": { + "post": { + "operationId": "adminRenameUser", + "parameters": [ + { + "description": "current username of the user", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RenameUserOption" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Rename a user", + "tags": [ + "admin" + ] + } + }, + "/admin/users/{username}/repos": { + "post": { + "operationId": "adminCreateRepo", + "parameters": [ + { + "description": "username of the user who will own the created repository", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateRepoOption" + } + } + }, + "required": true, + "x-originalParamName": "repository" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Repository" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a repository on behalf of a user", + "tags": [ + "admin" + ] + } + }, + "/gitignore/templates": { + "get": { + "operationId": "listGitignoresTemplates", + "responses": { + "200": { + "$ref": "#/components/responses/GitignoreTemplateList" + } + }, + "summary": "Returns a list of all gitignore templates", + "tags": [ + "miscellaneous" + ] + } + }, + "/gitignore/templates/{name}": { + "get": { + "operationId": "getGitignoreTemplateInfo", + "parameters": [ + { + "description": "name of the template", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/GitignoreTemplateInfo" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Returns information about a gitignore template", + "tags": [ + "miscellaneous" + ] + } + }, + "/label/templates": { + "get": { + "operationId": "listLabelTemplates", + "responses": { + "200": { + "$ref": "#/components/responses/LabelTemplateList" + } + }, + "summary": "Returns a list of all label templates", + "tags": [ + "miscellaneous" + ] + } + }, + "/label/templates/{name}": { + "get": { + "operationId": "getLabelTemplateInfo", + "parameters": [ + { + "description": "name of the template", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/LabelTemplateInfo" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Returns all labels in a template", + "tags": [ + "miscellaneous" + ] + } + }, + "/licenses": { + "get": { + "operationId": "listLicenseTemplates", + "responses": { + "200": { + "$ref": "#/components/responses/LicenseTemplateList" + } + }, + "summary": "Returns a list of all license templates", + "tags": [ + "miscellaneous" + ] + } + }, + "/licenses/{name}": { + "get": { + "operationId": "getLicenseTemplateInfo", + "parameters": [ + { + "description": "name of the license", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/LicenseTemplateInfo" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Returns information about a license template", + "tags": [ + "miscellaneous" + ] + } + }, + "/markdown": { + "post": { + "operationId": "renderMarkdown", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MarkdownOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/MarkdownRender" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Render a markdown document as HTML", + "tags": [ + "miscellaneous" + ] + } + }, + "/markdown/raw": { + "post": { + "operationId": "renderMarkdownRaw", + "requestBody": { + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + }, + "description": "Request body to render", + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/MarkdownRender" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Render raw markdown as HTML", + "tags": [ + "miscellaneous" + ] + } + }, + "/markup": { + "post": { + "operationId": "renderMarkup", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MarkupOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/MarkupRender" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Render a markup document as HTML", + "tags": [ + "miscellaneous" + ] + } + }, + "/notifications": { + "get": { + "operationId": "notifyGetList", + "parameters": [ + { + "description": "If true, show notifications marked as read. Default value is false", + "in": "query", + "name": "all", + "schema": { + "type": "boolean" + } + }, + { + "description": "Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread \u0026 pinned.", + "in": "query", + "name": "status-types", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + { + "description": "filter notifications by subject type", + "in": "query", + "name": "subject-type", + "schema": { + "items": { + "enum": [ + "issue", + "pull", + "commit", + "repository" + ], + "type": "string" + }, + "type": "array" + } + }, + { + "description": "Only show notifications updated after the given time. This is a timestamp in RFC 3339 format", + "in": "query", + "name": "since", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "Only show notifications updated before the given time. This is a timestamp in RFC 3339 format", + "in": "query", + "name": "before", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/NotificationThreadList" + } + }, + "summary": "List users's notification threads", + "tags": [ + "notification" + ] + }, + "put": { + "operationId": "notifyReadList", + "parameters": [ + { + "description": "Describes the last point that notifications were checked. Anything updated since this time will not be updated.", + "in": "query", + "name": "last_read_at", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "If true, mark all notifications on this repo. Default value is false", + "in": "query", + "name": "all", + "schema": { + "type": "string" + } + }, + { + "description": "Mark notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread.", + "in": "query", + "name": "status-types", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + { + "description": "Status to mark notifications as, Defaults to read.", + "in": "query", + "name": "to-status", + "schema": { + "type": "string" + } + } + ], + "responses": { + "205": { + "$ref": "#/components/responses/NotificationThreadList" + } + }, + "summary": "Mark notification threads as read, pinned or unread", + "tags": [ + "notification" + ] + } + }, + "/notifications/new": { + "get": { + "operationId": "notifyNewAvailable", + "responses": { + "200": { + "$ref": "#/components/responses/NotificationCount" + } + }, + "summary": "Check if unread notifications exist", + "tags": [ + "notification" + ] + } + }, + "/notifications/threads/{id}": { + "get": { + "operationId": "notifyGetThread", + "parameters": [ + { + "description": "id of notification thread", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/NotificationThread" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get notification thread by ID", + "tags": [ + "notification" + ] + }, + "patch": { + "operationId": "notifyReadThread", + "parameters": [ + { + "description": "id of notification thread", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Status to mark notifications as", + "in": "query", + "name": "to-status", + "schema": { + "default": "read", + "type": "string" + } + } + ], + "responses": { + "205": { + "$ref": "#/components/responses/NotificationThread" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Mark notification thread as read by ID", + "tags": [ + "notification" + ] + } + }, + "/org/{org}/repos": { + "post": { + "deprecated": true, + "operationId": "createOrgRepoDeprecated", + "parameters": [ + { + "description": "name of organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateRepoOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Repository" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a repository in an organization", + "tags": [ + "organization" + ] + } + }, + "/orgs": { + "get": { + "operationId": "orgGetAll", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/OrganizationList" + } + }, + "summary": "Get list of organizations", + "tags": [ + "organization" + ] + }, + "post": { + "operationId": "orgCreate", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrgOption" + } + } + }, + "required": true, + "x-originalParamName": "organization" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Organization" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create an organization", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}": { + "delete": { + "operationId": "orgDelete", + "parameters": [ + { + "description": "organization that is to be deleted", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete an organization", + "tags": [ + "organization" + ] + }, + "get": { + "operationId": "orgGet", + "parameters": [ + { + "description": "name of the organization to get", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Organization" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get an organization", + "tags": [ + "organization" + ] + }, + "patch": { + "operationId": "orgEdit", + "parameters": [ + { + "description": "name of the organization to edit", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditOrgOption" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Organization" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Edit an organization", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/actions/jobs": { + "get": { + "operationId": "getOrgWorkflowJobs", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "workflow status (pending, queued, in_progress, failure, success, skipped)", + "in": "query", + "name": "status", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WorkflowJobsList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get org-level workflow jobs", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/actions/runners": { + "get": { + "operationId": "getOrgRunners", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "filter by disabled status (true or false)", + "in": "query", + "name": "disabled", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RunnerList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get org-level runners", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/actions/runners/registration-token": { + "post": { + "operationId": "orgCreateRunnerRegistrationToken", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RegistrationToken" + } + }, + "summary": "Get an organization's actions runner registration token", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/actions/runners/{runner_id}": { + "delete": { + "operationId": "deleteOrgRunner", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the runner", + "in": "path", + "name": "runner_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "runner has been deleted" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete an org-level runner", + "tags": [ + "organization" + ] + }, + "get": { + "operationId": "getOrgRunner", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the runner", + "in": "path", + "name": "runner_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Runner" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get an org-level runner", + "tags": [ + "organization" + ] + }, + "patch": { + "operationId": "updateOrgRunner", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the runner", + "in": "path", + "name": "runner_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditActionRunnerOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Runner" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Update an org-level runner", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/actions/runs": { + "get": { + "operationId": "getOrgWorkflowRuns", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "workflow event name", + "in": "query", + "name": "event", + "schema": { + "type": "string" + } + }, + { + "description": "workflow branch", + "in": "query", + "name": "branch", + "schema": { + "type": "string" + } + }, + { + "description": "workflow status (pending, queued, in_progress, failure, success, skipped)", + "in": "query", + "name": "status", + "schema": { + "type": "string" + } + }, + { + "description": "triggered by user", + "in": "query", + "name": "actor", + "schema": { + "type": "string" + } + }, + { + "description": "triggering sha of the workflow run", + "in": "query", + "name": "head_sha", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WorkflowRunsList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get org-level workflow runs", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/actions/secrets": { + "get": { + "operationId": "orgListActionsSecrets", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/SecretList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List an organization's actions secrets", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/actions/secrets/{secretname}": { + "delete": { + "operationId": "deleteOrgSecret", + "parameters": [ + { + "description": "name of organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the secret", + "in": "path", + "name": "secretname", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "delete one secret of the organization" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a secret in an organization", + "tags": [ + "organization" + ] + }, + "put": { + "operationId": "updateOrgSecret", + "parameters": [ + { + "description": "name of organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the secret", + "in": "path", + "name": "secretname", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrUpdateSecretOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "description": "response when creating a secret" + }, + "204": { + "description": "response when updating a secret" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Create or Update a secret value in an organization", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/actions/variables": { + "get": { + "operationId": "getOrgVariablesList", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/VariableList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get an org-level variables list", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/actions/variables/{variablename}": { + "delete": { + "operationId": "deleteOrgVariable", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the variable", + "in": "path", + "name": "variablename", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ActionVariable" + }, + "201": { + "description": "response when deleting a variable" + }, + "204": { + "description": "response when deleting a variable" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete an org-level variable", + "tags": [ + "organization" + ] + }, + "get": { + "operationId": "getOrgVariable", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the variable", + "in": "path", + "name": "variablename", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ActionVariable" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get an org-level variable", + "tags": [ + "organization" + ] + }, + "post": { + "operationId": "createOrgVariable", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the variable", + "in": "path", + "name": "variablename", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateVariableOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "description": "successfully created the org-level variable" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "409": { + "description": "variable name already exists." + }, + "500": { + "$ref": "#/components/responses/error" + } + }, + "summary": "Create an org-level variable", + "tags": [ + "organization" + ] + }, + "put": { + "operationId": "updateOrgVariable", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the variable", + "in": "path", + "name": "variablename", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateVariableOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "description": "response when updating an org-level variable" + }, + "204": { + "description": "response when updating an org-level variable" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Update an org-level variable", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/activities/feeds": { + "get": { + "operationId": "orgListActivityFeeds", + "parameters": [ + { + "description": "name of the org", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the date of the activities to be found", + "in": "query", + "name": "date", + "schema": { + "format": "date", + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ActivityFeedsList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List an organization's activity feeds", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/avatar": { + "delete": { + "operationId": "orgDeleteAvatar", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete Avatar", + "tags": [ + "organization" + ] + }, + "post": { + "operationId": "orgUpdateAvatar", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserAvatarOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Update Avatar", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/blocks": { + "get": { + "operationId": "organizationListBlocks", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + } + }, + "summary": "List users blocked by the organization", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/blocks/{username}": { + "delete": { + "operationId": "organizationUnblockUser", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the user to unblock", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Unblock a user", + "tags": [ + "organization" + ] + }, + "get": { + "operationId": "organizationCheckUserBlock", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the user to check", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Check if a user is blocked by the organization", + "tags": [ + "organization" + ] + }, + "put": { + "operationId": "organizationBlockUser", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the user to block", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "optional note for the block", + "in": "query", + "name": "note", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Block a user", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/hooks": { + "get": { + "operationId": "orgListHooks", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/HookList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List an organization's webhooks", + "tags": [ + "organization" + ] + }, + "post": { + "operationId": "orgCreateHook", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateHookOption" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Hook" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Create a hook", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/hooks/{id}": { + "delete": { + "operationId": "orgDeleteHook", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the hook to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a hook", + "tags": [ + "organization" + ] + }, + "get": { + "operationId": "orgGetHook", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the hook to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Hook" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a hook", + "tags": [ + "organization" + ] + }, + "patch": { + "operationId": "orgEditHook", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the hook to update", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditHookOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Hook" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Update a hook", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/labels": { + "get": { + "operationId": "orgListLabels", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/LabelList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List an organization's labels", + "tags": [ + "organization" + ] + }, + "post": { + "operationId": "orgCreateLabel", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateLabelOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Label" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a label for an organization", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/labels/{id}": { + "delete": { + "operationId": "orgDeleteLabel", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the label to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a label", + "tags": [ + "organization" + ] + }, + "get": { + "operationId": "orgGetLabel", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the label to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Label" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a single label", + "tags": [ + "organization" + ] + }, + "patch": { + "operationId": "orgEditLabel", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the label to edit", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditLabelOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Label" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Update a label", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/members": { + "get": { + "operationId": "orgListMembers", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List an organization's members", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/members/{username}": { + "delete": { + "operationId": "orgDeleteMember", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the user to remove from the organization", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "member removed" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Remove a member from an organization", + "tags": [ + "organization" + ] + }, + "get": { + "operationId": "orgIsMember", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the user to check for an organization membership", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "user is a member" + }, + "303": { + "description": "redirection to /orgs/{org}/public_members/{username}" + }, + "404": { + "description": "user is not a member" + } + }, + "summary": "Check if a user is a member of an organization", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/public_members": { + "get": { + "operationId": "orgListPublicMembers", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List an organization's public members", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/public_members/{username}": { + "delete": { + "operationId": "orgConcealMember", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the user whose membership is to be concealed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Conceal a user's membership", + "tags": [ + "organization" + ] + }, + "get": { + "operationId": "orgIsPublicMember", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the user to check for a public organization membership", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "user is a public member" + }, + "404": { + "description": "user is not a public member" + } + }, + "summary": "Check if a user is a public member of an organization", + "tags": [ + "organization" + ] + }, + "put": { + "operationId": "orgPublicizeMember", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the user whose membership is to be publicized", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "membership publicized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Publicize a user's membership", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/rename": { + "post": { + "operationId": "renameOrg", + "parameters": [ + { + "description": "existing org name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RenameOrgOption" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Rename an organization", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/repos": { + "get": { + "operationId": "orgListRepos", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepositoryList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List an organization's repos", + "tags": [ + "organization" + ] + }, + "post": { + "operationId": "createOrgRepo", + "parameters": [ + { + "description": "name of organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateRepoOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Repository" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Create a repository in an organization", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/teams": { + "get": { + "operationId": "orgListTeams", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TeamList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List an organization's teams", + "tags": [ + "organization" + ] + }, + "post": { + "operationId": "orgCreateTeam", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateTeamOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Team" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a team", + "tags": [ + "organization" + ] + } + }, + "/orgs/{org}/teams/search": { + "get": { + "operationId": "teamSearch", + "parameters": [ + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "keywords to search", + "in": "query", + "name": "q", + "schema": { + "type": "string" + } + }, + { + "description": "include search within team description (defaults to true)", + "in": "query", + "name": "include_desc", + "schema": { + "type": "boolean" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/Team" + }, + "type": "array" + }, + "ok": { + "type": "boolean" + } + }, + "type": "object" + } + } + }, + "description": "SearchResults of a successful search" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Search for teams within an organization", + "tags": [ + "organization" + ] + } + }, + "/packages/{owner}": { + "get": { + "operationId": "listPackages", + "parameters": [ + { + "description": "owner of the packages", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + }, + { + "description": "package type filter", + "in": "query", + "name": "type", + "schema": { + "enum": [ + "alpine", + "cargo", + "chef", + "composer", + "conan", + "conda", + "container", + "cran", + "debian", + "generic", + "go", + "helm", + "maven", + "npm", + "nuget", + "pub", + "pypi", + "rpm", + "rubygems", + "swift", + "vagrant" + ], + "type": "string" + } + }, + { + "description": "name filter", + "in": "query", + "name": "q", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PackageList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets all packages of an owner", + "tags": [ + "package" + ] + } + }, + "/packages/{owner}/{type}/{name}": { + "get": { + "operationId": "listPackageVersions", + "parameters": [ + { + "description": "owner of the package", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "type of the package", + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the package", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PackageList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets all versions of a package", + "tags": [ + "package" + ] + } + }, + "/packages/{owner}/{type}/{name}/-/latest": { + "get": { + "operationId": "getLatestPackageVersion", + "parameters": [ + { + "description": "owner of the package", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "type of the package", + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the package", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Package" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets the latest version of a package", + "tags": [ + "package" + ] + } + }, + "/packages/{owner}/{type}/{name}/-/link/{repo_name}": { + "post": { + "operationId": "linkPackage", + "parameters": [ + { + "description": "owner of the package", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "type of the package", + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the package", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository to link.", + "in": "path", + "name": "repo_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "201": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Link a package to a repository", + "tags": [ + "package" + ] + } + }, + "/packages/{owner}/{type}/{name}/-/unlink": { + "post": { + "operationId": "unlinkPackage", + "parameters": [ + { + "description": "owner of the package", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "type of the package", + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the package", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "201": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Unlink a package from a repository", + "tags": [ + "package" + ] + } + }, + "/packages/{owner}/{type}/{name}/{version}": { + "delete": { + "operationId": "deletePackage", + "parameters": [ + { + "description": "owner of the package", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "type of the package", + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the package", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "version of the package", + "in": "path", + "name": "version", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a package", + "tags": [ + "package" + ] + }, + "get": { + "operationId": "getPackage", + "parameters": [ + { + "description": "owner of the package", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "type of the package", + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the package", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "version of the package", + "in": "path", + "name": "version", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Package" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets a package", + "tags": [ + "package" + ] + } + }, + "/packages/{owner}/{type}/{name}/{version}/files": { + "get": { + "operationId": "listPackageFiles", + "parameters": [ + { + "description": "owner of the package", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "type of the package", + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the package", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "version of the package", + "in": "path", + "name": "version", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PackageFileList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets all files of a package", + "tags": [ + "package" + ] + } + }, + "/repos/issues/search": { + "get": { + "operationId": "issueSearchIssues", + "parameters": [ + { + "description": "State of the issue", + "in": "query", + "name": "state", + "schema": { + "default": "open", + "enum": [ + "open", + "closed", + "all" + ], + "type": "string" + } + }, + { + "description": "Comma-separated list of label names. Fetch only issues that have any of these labels. Non existent labels are discarded.", + "in": "query", + "name": "labels", + "schema": { + "type": "string" + } + }, + { + "description": "Comma-separated list of milestone names. Fetch only issues that have any of these milestones. Non existent milestones are discarded.", + "in": "query", + "name": "milestones", + "schema": { + "type": "string" + } + }, + { + "description": "Search string", + "in": "query", + "name": "q", + "schema": { + "type": "string" + } + }, + { + "description": "Filter by issue type", + "in": "query", + "name": "type", + "schema": { + "enum": [ + "issues", + "pulls" + ], + "type": "string" + } + }, + { + "description": "Only show issues updated after the given time (RFC 3339 format)", + "in": "query", + "name": "since", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "Only show issues updated before the given time (RFC 3339 format)", + "in": "query", + "name": "before", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "Filter issues or pulls assigned to the authenticated user", + "in": "query", + "name": "assigned", + "schema": { + "default": false, + "type": "boolean" + } + }, + { + "description": "Filter issues or pulls created by the authenticated user", + "in": "query", + "name": "created", + "schema": { + "default": false, + "type": "boolean" + } + }, + { + "description": "Filter issues or pulls mentioning the authenticated user", + "in": "query", + "name": "mentioned", + "schema": { + "default": false, + "type": "boolean" + } + }, + { + "description": "Filter pull requests where the authenticated user's review was requested", + "in": "query", + "name": "review_requested", + "schema": { + "default": false, + "type": "boolean" + } + }, + { + "description": "Filter pull requests reviewed by the authenticated user", + "in": "query", + "name": "reviewed", + "schema": { + "default": false, + "type": "boolean" + } + }, + { + "description": "Filter by repository owner", + "in": "query", + "name": "owner", + "schema": { + "type": "string" + } + }, + { + "description": "Only show items which were created by the given user", + "in": "query", + "name": "created_by", + "schema": { + "type": "string" + } + }, + { + "description": "Filter by team (requires organization owner parameter)", + "in": "query", + "name": "team", + "schema": { + "type": "string" + } + }, + { + "description": "Page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "default": 1, + "minimum": 1, + "type": "integer" + } + }, + { + "description": "Number of items per page", + "in": "query", + "name": "limit", + "schema": { + "minimum": 0, + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/IssueList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Search for issues across the repositories that the user has access to", + "tags": [ + "issue" + ] + } + }, + "/repos/migrate": { + "post": { + "operationId": "repoMigrate", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MigrateRepoOptions" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Repository" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "409": { + "description": "The repository with the same name already exists." + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Migrate a remote git repository", + "tags": [ + "repository" + ] + } + }, + "/repos/search": { + "get": { + "operationId": "repoSearch", + "parameters": [ + { + "description": "keyword", + "in": "query", + "name": "q", + "schema": { + "type": "string" + } + }, + { + "description": "Limit search to repositories with keyword as topic", + "in": "query", + "name": "topic", + "schema": { + "type": "boolean" + } + }, + { + "description": "include search of keyword within repository description", + "in": "query", + "name": "includeDesc", + "schema": { + "type": "boolean" + } + }, + { + "description": "search only for repos that the user with the given id owns or contributes to", + "in": "query", + "name": "uid", + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "repo owner to prioritize in the results", + "in": "query", + "name": "priority_owner_id", + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "search only for repos that belong to the given team id", + "in": "query", + "name": "team_id", + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "search only for repos that the user with the given id has starred", + "in": "query", + "name": "starredBy", + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "include private repositories this user has access to (defaults to true)", + "in": "query", + "name": "private", + "schema": { + "type": "boolean" + } + }, + { + "description": "show only pubic, private or all repositories (defaults to all)", + "in": "query", + "name": "is_private", + "schema": { + "type": "boolean" + } + }, + { + "description": "include template repositories this user has access to (defaults to true)", + "in": "query", + "name": "template", + "schema": { + "type": "boolean" + } + }, + { + "description": "show only archived, non-archived or all repositories (defaults to all)", + "in": "query", + "name": "archived", + "schema": { + "type": "boolean" + } + }, + { + "description": "type of repository to search for. Supported values are \"fork\", \"source\", \"mirror\" and \"collaborative\"", + "in": "query", + "name": "mode", + "schema": { + "type": "string" + } + }, + { + "description": "if `uid` is given, search only for repos that the user owns", + "in": "query", + "name": "exclusive", + "schema": { + "type": "boolean" + } + }, + { + "description": "sort repos by attribute. Supported values are \"alpha\", \"created\", \"updated\", \"size\", \"git_size\", \"lfs_size\", \"stars\", \"forks\" and \"id\". Default is \"alpha\"", + "in": "query", + "name": "sort", + "schema": { + "type": "string" + } + }, + { + "description": "sort order, either \"asc\" (ascending) or \"desc\" (descending). Default is \"asc\", ignored if \"sort\" is not specified.", + "in": "query", + "name": "order", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/SearchResults" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Search for repositories", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}": { + "delete": { + "operationId": "repoDelete", + "parameters": [ + { + "description": "owner of the repo to delete", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to delete", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a repository", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGet", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Repository" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a repository", + "tags": [ + "repository" + ] + }, + "patch": { + "operationId": "repoEdit", + "parameters": [ + { + "description": "owner of the repo to edit", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to edit", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditRepoOption" + } + } + }, + "description": "Properties of a repo that you can edit", + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Repository" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Edit a repository's properties. Only fields that are set will be changed.", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/artifacts": { + "get": { + "operationId": "getArtifacts", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the artifact", + "in": "query", + "name": "name", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ArtifactsList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Lists all artifacts for a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}": { + "delete": { + "operationId": "deleteArtifact", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the artifact", + "in": "path", + "name": "artifact_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Deletes a specific artifact for a workflow run", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "getArtifact", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the artifact", + "in": "path", + "name": "artifact_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Artifact" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets a specific artifact for a workflow run", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/zip": { + "get": { + "operationId": "downloadArtifact", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the artifact", + "in": "path", + "name": "artifact_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "302": { + "description": "redirect to the blob download" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Downloads a specific artifact for a workflow run redirects to blob url", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/jobs": { + "get": { + "operationId": "listWorkflowJobs", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "workflow status (pending, queued, in_progress, failure, success, skipped)", + "in": "query", + "name": "status", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WorkflowJobsList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Lists all jobs for a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/jobs/{job_id}": { + "get": { + "operationId": "getWorkflowJob", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the job", + "in": "path", + "name": "job_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WorkflowJob" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets a specific workflow job for a workflow run", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/jobs/{job_id}/logs": { + "get": { + "operationId": "downloadActionsRunJobLogs", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the job", + "in": "path", + "name": "job_id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "output blob content" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Downloads the job logs for a workflow run", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/runners": { + "get": { + "operationId": "getRepoRunners", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "filter by disabled status (true or false)", + "in": "query", + "name": "disabled", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RunnerList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get repo-level runners", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/runners/registration-token": { + "post": { + "operationId": "repoCreateRunnerRegistrationToken", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RegistrationToken" + } + }, + "summary": "Get a repository's actions runner registration token", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/runners/{runner_id}": { + "delete": { + "operationId": "deleteRepoRunner", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the runner", + "in": "path", + "name": "runner_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "runner has been deleted" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a repo-level runner", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "getRepoRunner", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the runner", + "in": "path", + "name": "runner_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Runner" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a repo-level runner", + "tags": [ + "repository" + ] + }, + "patch": { + "operationId": "updateRepoRunner", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the runner", + "in": "path", + "name": "runner_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditActionRunnerOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Runner" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Update a repo-level runner", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/runs": { + "get": { + "operationId": "getWorkflowRuns", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "workflow event name", + "in": "query", + "name": "event", + "schema": { + "type": "string" + } + }, + { + "description": "workflow branch", + "in": "query", + "name": "branch", + "schema": { + "type": "string" + } + }, + { + "description": "workflow status (pending, queued, in_progress, failure, success, skipped)", + "in": "query", + "name": "status", + "schema": { + "type": "string" + } + }, + { + "description": "triggered by user", + "in": "query", + "name": "actor", + "schema": { + "type": "string" + } + }, + { + "description": "triggering sha of the workflow run", + "in": "query", + "name": "head_sha", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WorkflowRunsList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Lists all runs for a repository run", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/runs/{run}": { + "delete": { + "operationId": "deleteActionRun", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "runid of the workflow run", + "in": "path", + "name": "run", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a workflow run", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "GetWorkflowRun", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the run", + "in": "path", + "name": "run", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WorkflowRun" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets a specific workflow run", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/runs/{run}/artifacts": { + "get": { + "operationId": "getArtifactsOfRun", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "runid of the workflow run", + "in": "path", + "name": "run", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "description": "name of the artifact", + "in": "query", + "name": "name", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ArtifactsList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Lists all artifacts for a repository run", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/runs/{run}/jobs": { + "get": { + "operationId": "listWorkflowRunJobs", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "runid of the workflow run", + "in": "path", + "name": "run", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "description": "workflow status (pending, queued, in_progress, failure, success, skipped)", + "in": "query", + "name": "status", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WorkflowJobsList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Lists all jobs for a workflow run", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/runs/{run}/jobs/{job_id}/rerun": { + "post": { + "operationId": "rerunWorkflowJob", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the run", + "in": "path", + "name": "run", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "description": "id of the job", + "in": "path", + "name": "job_id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "201": { + "$ref": "#/components/responses/WorkflowJob" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Reruns a specific workflow job in a run", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/runs/{run}/rerun": { + "post": { + "operationId": "rerunWorkflowRun", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the run", + "in": "path", + "name": "run", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "201": { + "$ref": "#/components/responses/WorkflowRun" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Reruns an entire workflow run", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/runs/{run}/rerun-failed-jobs": { + "post": { + "operationId": "rerunFailedWorkflowRun", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the run", + "in": "path", + "name": "run", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "201": { + "$ref": "#/components/responses/empty" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Reruns all failed jobs in a workflow run", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/secrets": { + "get": { + "operationId": "repoListActionsSecrets", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/SecretList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List an repo's actions secrets", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/secrets/{secretname}": { + "delete": { + "operationId": "deleteRepoSecret", + "parameters": [ + { + "description": "owner of the repository", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the secret", + "in": "path", + "name": "secretname", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "delete one secret of the repository" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a secret in a repository", + "tags": [ + "repository" + ] + }, + "put": { + "operationId": "updateRepoSecret", + "parameters": [ + { + "description": "owner of the repository", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the secret", + "in": "path", + "name": "secretname", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrUpdateSecretOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "description": "response when creating a secret" + }, + "204": { + "description": "response when updating a secret" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Create or Update a secret value in a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/tasks": { + "get": { + "operationId": "ListActionTasks", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results, default maximum page size is 50", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TasksList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "$ref": "#/components/responses/conflict" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "List a repository's action tasks", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/variables": { + "get": { + "operationId": "getRepoVariablesList", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/VariableList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get repo-level variables list", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/variables/{variablename}": { + "delete": { + "operationId": "deleteRepoVariable", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the variable", + "in": "path", + "name": "variablename", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ActionVariable" + }, + "201": { + "description": "response when deleting a variable" + }, + "204": { + "description": "response when deleting a variable" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a repo-level variable", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "getRepoVariable", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the variable", + "in": "path", + "name": "variablename", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ActionVariable" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a repo-level variable", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "createRepoVariable", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the variable", + "in": "path", + "name": "variablename", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateVariableOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "description": "response when creating a repo-level variable" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "409": { + "description": "variable name already exists." + }, + "500": { + "$ref": "#/components/responses/error" + } + }, + "summary": "Create a repo-level variable", + "tags": [ + "repository" + ] + }, + "put": { + "operationId": "updateRepoVariable", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repository", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the variable", + "in": "path", + "name": "variablename", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateVariableOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "description": "response when updating a repo-level variable" + }, + "204": { + "description": "response when updating a repo-level variable" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Update a repo-level variable", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/workflows": { + "get": { + "operationId": "ActionsListRepositoryWorkflows", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ActionWorkflowList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "500": { + "$ref": "#/components/responses/error" + } + }, + "summary": "List repository workflows", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}": { + "get": { + "operationId": "ActionsGetWorkflow", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the workflow", + "in": "path", + "name": "workflow_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ActionWorkflow" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "500": { + "$ref": "#/components/responses/error" + } + }, + "summary": "Get a workflow", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": { + "put": { + "operationId": "ActionsDisableWorkflow", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the workflow", + "in": "path", + "name": "workflow_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Disable a workflow", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": { + "post": { + "operationId": "ActionsDispatchWorkflow", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the workflow", + "in": "path", + "name": "workflow_id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Whether the response should include the workflow run ID and URLs.", + "in": "query", + "name": "return_run_details", + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateActionWorkflowDispatch" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/RunDetails" + }, + "204": { + "description": "No Content, if return_run_details is missing or false" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a workflow dispatch event", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": { + "put": { + "operationId": "ActionsEnableWorkflow", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the workflow", + "in": "path", + "name": "workflow_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "$ref": "#/components/responses/conflict" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Enable a workflow", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/activities/feeds": { + "get": { + "operationId": "repoListActivityFeeds", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the date of the activities to be found", + "in": "query", + "name": "date", + "schema": { + "format": "date", + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ActivityFeedsList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repository's activity feeds", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/archive/{archive}": { + "get": { + "operationId": "repoGetArchive", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the git reference for download with attached archive format (e.g. master.zip)", + "in": "path", + "name": "archive", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "subpath of the repository to download", + "in": "query", + "name": "path", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "description": "success" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get an archive of a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/assignees": { + "get": { + "operationId": "repoGetAssignees", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Return all users that have write access and can be assigned to issues", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/avatar": { + "delete": { + "operationId": "repoDeleteAvatar", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete avatar", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoUpdateAvatar", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateRepoAvatarOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Update avatar", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/branch_protections": { + "get": { + "operationId": "repoListBranchProtection", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/BranchProtectionList" + } + }, + "summary": "List branch protections for a repository", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreateBranchProtection", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateBranchProtectionOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/BranchProtection" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Create a branch protections for a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/branch_protections/priority": { + "post": { + "operationId": "repoUpdateBranchProtectionPriories", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateBranchProtectionPriories" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Update the priorities of branch protections for a repository.", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/branch_protections/{name}": { + "delete": { + "operationId": "repoDeleteBranchProtection", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of protected branch", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a specific branch protection for the repository", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetBranchProtection", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of protected branch", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/BranchProtection" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a specific branch protection for the repository", + "tags": [ + "repository" + ] + }, + "patch": { + "operationId": "repoEditBranchProtection", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of protected branch", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditBranchProtectionOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/BranchProtection" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Edit a branch protections for a repository. Only fields that are set will be changed", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/branches": { + "get": { + "operationId": "repoListBranches", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/BranchList" + } + }, + "summary": "List a repository's branches", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreateBranch", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateBranchRepoOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Branch" + }, + "403": { + "description": "The branch is archived or a mirror." + }, + "404": { + "description": "The old branch does not exist." + }, + "409": { + "description": "The branch with the same name already exists." + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Create a branch", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/branches/{branch}": { + "delete": { + "operationId": "repoDeleteBranch", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "branch to delete", + "in": "path", + "name": "branch", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Delete a specific branch from a repository", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetBranch", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "branch to get", + "in": "path", + "name": "branch", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Branch" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Retrieve a specific branch from a repository, including its effective branch protection", + "tags": [ + "repository" + ] + }, + "patch": { + "operationId": "repoRenameBranch", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the branch", + "in": "path", + "name": "branch", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RenameBranchRepoOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Rename a branch", + "tags": [ + "repository" + ] + }, + "put": { + "operationId": "repoUpdateBranch", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the branch", + "in": "path", + "name": "branch", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateBranchRepoOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "$ref": "#/components/responses/conflict" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Update a branch reference to a new commit", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/collaborators": { + "get": { + "operationId": "repoListCollaborators", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repository's collaborators", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/collaborators/{collaborator}": { + "delete": { + "operationId": "repoDeleteCollaborator", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the collaborator to delete", + "in": "path", + "name": "collaborator", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Delete a collaborator from a repository", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoCheckCollaborator", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the user to check for being a collaborator", + "in": "path", + "name": "collaborator", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Check if a user is a collaborator of a repository", + "tags": [ + "repository" + ] + }, + "put": { + "operationId": "repoAddCollaborator", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the user to add or update as a collaborator", + "in": "path", + "name": "collaborator", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddCollaboratorOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Add or Update a collaborator to a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/collaborators/{collaborator}/permission": { + "get": { + "operationId": "repoGetRepoPermissions", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the collaborator whose permissions are to be obtained", + "in": "path", + "name": "collaborator", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepoCollaboratorPermission" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get repository permissions for a user", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/commits": { + "get": { + "operationId": "repoGetAllCommits", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "SHA or branch to start listing commits from (usually 'master')", + "in": "query", + "name": "sha", + "schema": { + "type": "string" + } + }, + { + "description": "filepath of a file/dir", + "in": "query", + "name": "path", + "schema": { + "type": "string" + } + }, + { + "description": "Only commits after this date will be returned (ISO 8601 format)", + "in": "query", + "name": "since", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "Only commits before this date will be returned (ISO 8601 format)", + "in": "query", + "name": "until", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "include diff stats for every commit (disable for speedup, default 'true')", + "in": "query", + "name": "stat", + "schema": { + "type": "boolean" + } + }, + { + "description": "include verification for every commit (disable for speedup, default 'true')", + "in": "query", + "name": "verification", + "schema": { + "type": "boolean" + } + }, + { + "description": "include a list of affected files for every commit (disable for speedup, default 'true')", + "in": "query", + "name": "files", + "schema": { + "type": "boolean" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results (ignored if used with 'path')", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + }, + { + "description": "commits that match the given specifier will not be listed.", + "in": "query", + "name": "not", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/CommitList" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "$ref": "#/components/responses/EmptyRepository" + } + }, + "summary": "Get a list of all commits from a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/commits/{ref}/status": { + "get": { + "operationId": "repoGetCombinedStatusByRef", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of branch/tag/commit", + "in": "path", + "name": "ref", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/CombinedStatus" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a commit's combined status, by branch/tag/commit reference", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/commits/{ref}/statuses": { + "get": { + "operationId": "repoListStatusesByRef", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of branch/tag/commit", + "in": "path", + "name": "ref", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "type of sort", + "in": "query", + "name": "sort", + "schema": { + "enum": [ + "oldest", + "recentupdate", + "leastupdate", + "leastindex", + "highestindex" + ], + "type": "string" + } + }, + { + "description": "type of state", + "in": "query", + "name": "state", + "schema": { + "enum": [ + "pending", + "success", + "error", + "failure", + "warning" + ], + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/CommitStatusList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a commit's statuses, by branch/tag/commit reference", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/commits/{sha}/pull": { + "get": { + "operationId": "repoGetCommitPullRequest", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "SHA of the commit to get", + "in": "path", + "name": "sha", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PullRequest" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get the merged pull request of the commit", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/compare/{basehead}": { + "get": { + "operationId": "repoCompareDiff", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "compare two branches or commits", + "in": "path", + "name": "basehead", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Compare" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get commit comparison information", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/contents": { + "get": { + "description": "This API follows GitHub's design, and it is not easy to use. Recommend users to use our \"contents-ext\" API instead.", + "operationId": "repoGetContentsList", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The name of the commit/branch/tag. Default to the repository’s default branch.", + "in": "query", + "name": "ref", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ContentsListResponse" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets the metadata of all the entries of the root dir.", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoChangeFiles", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeFilesOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/FilesResponse" + }, + "403": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/error" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Modify multiple files in a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/contents-ext/{filepath}": { + "get": { + "description": "It guarantees that only one of the response fields is set if the request succeeds. Users can pass \"includes=file_content\" or \"includes=lfs_metadata\" to retrieve more fields. \"includes=file_content\" only works for single file, if you need to retrieve file contents in batch, use \"file-contents\" API after listing the directory.", + "operationId": "repoGetContentsExt", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "path of the dir, file, symlink or submodule in the repo. Swagger requires path parameter to be \"required\", you can leave it empty or pass a single dot (\".\") to get the root directory.", + "in": "path", + "name": "filepath", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the name of the commit/branch/tag, default to the repository’s default branch.", + "in": "query", + "name": "ref", + "schema": { + "type": "string" + } + }, + { + "description": "By default this API's response only contains file's metadata. Use comma-separated \"includes\" options to retrieve more fields. Option \"file_content\" will try to retrieve the file content, \"lfs_metadata\" will try to retrieve LFS metadata, \"commit_metadata\" will try to retrieve commit metadata, and \"commit_message\" will try to retrieve commit message.", + "in": "query", + "name": "includes", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ContentsExtResponse" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "The extended \"contents\" API, to get file metadata and/or content, or list a directory.", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/contents/{filepath}": { + "delete": { + "operationId": "repoDeleteFile", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "path of the file to delete", + "in": "path", + "name": "filepath", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteFileOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/FileDeleteResponse" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/error" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Delete a file in a repository", + "tags": [ + "repository" + ] + }, + "get": { + "description": "This API follows GitHub's design, and it is not easy to use. Recommend users to use the \"contents-ext\" API instead.", + "operationId": "repoGetContents", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "path of the dir, file, symlink or submodule in the repo", + "in": "path", + "name": "filepath", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The name of the commit/branch/tag. Default to the repository’s default branch.", + "in": "query", + "name": "ref", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ContentsResponse" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets the metadata and contents (if a file) of an entry in a repository, or a list of entries if a dir.", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreateFile", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "path of the file to create", + "in": "path", + "name": "filepath", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFileOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/FileResponse" + }, + "403": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/error" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Create a file in a repository", + "tags": [ + "repository" + ] + }, + "put": { + "operationId": "repoUpdateFile", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "path of the file to update", + "in": "path", + "name": "filepath", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFileOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/FileResponse" + }, + "201": { + "$ref": "#/components/responses/FileResponse" + }, + "403": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/error" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Update a file in a repository if SHA is set, or create the file if SHA is not set", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/diffpatch": { + "post": { + "operationId": "repoApplyDiffPatch", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApplyDiffPatchFileOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/FileResponse" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Apply diff patch to repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/editorconfig/{filepath}": { + "get": { + "operationId": "repoGetEditorConfig", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "filepath of file to get", + "in": "path", + "name": "filepath", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The name of the commit/branch/tag. Default to the repository’s default branch.", + "in": "query", + "name": "ref", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "success" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get the EditorConfig definitions of a file in a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/file-contents": { + "get": { + "description": "See the POST method. This GET method supports using JSON encoded request body in query parameter.", + "operationId": "repoGetFileContents", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The name of the commit/branch/tag. Default to the repository’s default branch.", + "in": "query", + "name": "ref", + "schema": { + "type": "string" + } + }, + { + "description": "The JSON encoded body (see the POST request): {\"files\": [\"filename1\", \"filename2\"]}", + "in": "query", + "name": "body", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ContentsListResponse" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get the metadata and contents of requested files", + "tags": [ + "repository" + ] + }, + "post": { + "description": "Uses automatic pagination based on default page size and max response size and returns the maximum allowed number of files. Files which could not be retrieved are null. Files which are too large are being returned with `encoding == null`, `content == null` and `size \u003e 0`, they can be requested separately by using the `download_url`.", + "operationId": "repoGetFileContentsPost", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The name of the commit/branch/tag. Default to the repository’s default branch.", + "in": "query", + "name": "ref", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetFilesOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/ContentsListResponse" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get the metadata and contents of requested files", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/forks": { + "get": { + "operationId": "listForks", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepositoryList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repository's forks", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "createFork", + "parameters": [ + { + "description": "owner of the repo to fork", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to fork", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateForkOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "202": { + "$ref": "#/components/responses/Repository" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "description": "The repository with the same name already exists." + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Fork a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/git/blobs/{sha}": { + "get": { + "operationId": "GetBlob", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "sha of the commit", + "in": "path", + "name": "sha", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/GitBlobResponse" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets the blob of a repository.", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/git/commits/{sha}": { + "get": { + "operationId": "repoGetSingleCommit", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "a git ref or commit sha", + "in": "path", + "name": "sha", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "include diff stats for every commit (disable for speedup, default 'true')", + "in": "query", + "name": "stat", + "schema": { + "type": "boolean" + } + }, + { + "description": "include verification for every commit (disable for speedup, default 'true')", + "in": "query", + "name": "verification", + "schema": { + "type": "boolean" + } + }, + { + "description": "include a list of affected files for every commit (disable for speedup, default 'true')", + "in": "query", + "name": "files", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Commit" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Get a single commit from a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/git/commits/{sha}.{diffType}": { + "get": { + "operationId": "repoDownloadCommitDiffOrPatch", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "SHA of the commit to get", + "in": "path", + "name": "sha", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "whether the output is diff or patch", + "in": "path", + "name": "diffType", + "required": true, + "schema": { + "enum": [ + "diff", + "patch" + ], + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/string" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a commit's diff or patch", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/git/notes/{sha}": { + "get": { + "operationId": "repoGetNote", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "a git ref or commit sha", + "in": "path", + "name": "sha", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "include verification for every commit (disable for speedup, default 'true')", + "in": "query", + "name": "verification", + "schema": { + "type": "boolean" + } + }, + { + "description": "include a list of affected files for every commit (disable for speedup, default 'true')", + "in": "query", + "name": "files", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Note" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Get a note corresponding to a single commit from a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/git/refs": { + "get": { + "operationId": "repoListAllGitRefs", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ReferenceList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get specified ref or filtered repository's refs", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/git/refs/{ref}": { + "get": { + "operationId": "repoListGitRefs", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "part or full name of the ref", + "in": "path", + "name": "ref", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ReferenceList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get specified ref or filtered repository's refs", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/git/tags/{sha}": { + "get": { + "operationId": "GetAnnotatedTag", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "sha of the tag. The Git tags API only supports annotated tag objects, not lightweight tags.", + "in": "path", + "name": "sha", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/AnnotatedTag" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets the tag object of an annotated tag (not lightweight tags)", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/git/trees/{sha}": { + "get": { + "operationId": "GetTree", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "sha of the commit", + "in": "path", + "name": "sha", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "show all directories and files", + "in": "query", + "name": "recursive", + "schema": { + "type": "boolean" + } + }, + { + "description": "page number; the 'truncated' field in the response will be true if there are still more items after this page, false if the last page", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "number of items per page", + "in": "query", + "name": "per_page", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/GitTreeResponse" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets the tree of a repository.", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/hooks": { + "get": { + "operationId": "repoListHooks", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/HookList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List the hooks in a repository", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreateHook", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateHookOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Hook" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Create a hook", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/hooks/git": { + "get": { + "operationId": "repoListGitHooks", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/GitHookList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List the Git hooks in a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/hooks/git/{id}": { + "delete": { + "operationId": "repoDeleteGitHook", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the hook to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a Git hook in a repository", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetGitHook", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the hook to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/GitHook" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a Git hook", + "tags": [ + "repository" + ] + }, + "patch": { + "operationId": "repoEditGitHook", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the hook to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditGitHookOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/GitHook" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Edit a Git hook in a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/hooks/{id}": { + "delete": { + "operationId": "repoDeleteHook", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the hook to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a hook in a repository", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetHook", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the hook to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Hook" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a hook", + "tags": [ + "repository" + ] + }, + "patch": { + "operationId": "repoEditHook", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the hook", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditHookOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Hook" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Edit a hook in a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/hooks/{id}/tests": { + "post": { + "operationId": "repoTestHook", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the hook to test", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "The name of the commit/branch/tag, indicates which commit will be loaded to the webhook payload.", + "in": "query", + "name": "ref", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Test a push webhook", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/issue_config": { + "get": { + "operationId": "repoGetIssueConfig", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepoIssueConfig" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Returns the issue config for a repo", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/issue_config/validate": { + "get": { + "operationId": "repoValidateIssueConfig", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepoIssueConfigValidation" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Returns the validation information for a issue config", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/issue_templates": { + "get": { + "operationId": "repoGetIssueTemplates", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/IssueTemplates" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get available issue templates for a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/issues": { + "get": { + "operationId": "issueListIssues", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "whether issue is open or closed", + "in": "query", + "name": "state", + "schema": { + "enum": [ + "closed", + "open", + "all" + ], + "type": "string" + } + }, + { + "description": "comma separated list of label names. Fetch only issues that have any of this label names. Non existent labels are discarded.", + "in": "query", + "name": "labels", + "schema": { + "type": "string" + } + }, + { + "description": "search string", + "in": "query", + "name": "q", + "schema": { + "type": "string" + } + }, + { + "description": "filter by type (issues / pulls) if set", + "in": "query", + "name": "type", + "schema": { + "enum": [ + "issues", + "pulls" + ], + "type": "string" + } + }, + { + "description": "comma separated list of milestone names or ids. It uses names and fall back to ids. Fetch only issues that have any of this milestones. Non existent milestones are discarded", + "in": "query", + "name": "milestones", + "schema": { + "type": "string" + } + }, + { + "description": "Only show items updated after the given time. This is a timestamp in RFC 3339 format", + "in": "query", + "name": "since", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "Only show items updated before the given time. This is a timestamp in RFC 3339 format", + "in": "query", + "name": "before", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "Only show items which were created by the given user", + "in": "query", + "name": "created_by", + "schema": { + "type": "string" + } + }, + { + "description": "Only show items for which the given user is assigned", + "in": "query", + "name": "assigned_by", + "schema": { + "type": "string" + } + }, + { + "description": "Only show items in which the given user was mentioned", + "in": "query", + "name": "mentioned_by", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/IssueList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repository's issues", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "issueCreateIssue", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateIssueOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Issue" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "412": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Create an issue. If using deadline only the date will be taken into account, and time of day ignored.", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/comments": { + "get": { + "operationId": "issueGetRepoComments", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "if provided, only comments updated since the provided time are returned.", + "in": "query", + "name": "since", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "if provided, only comments updated before the provided time are returned.", + "in": "query", + "name": "before", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/CommentList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List all comments in a repository", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/comments/{id}": { + "delete": { + "operationId": "issueDeleteComment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of comment to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a comment", + "tags": [ + "issue" + ] + }, + "get": { + "operationId": "issueGetComment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the comment", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Comment" + }, + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a comment", + "tags": [ + "issue" + ] + }, + "patch": { + "operationId": "issueEditComment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the comment to edit", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditIssueCommentOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Comment" + }, + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Edit a comment", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/comments/{id}/assets": { + "get": { + "operationId": "issueListIssueCommentAttachments", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the comment", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/AttachmentList" + }, + "404": { + "$ref": "#/components/responses/error" + } + }, + "summary": "List comment's attachments", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "issueCreateIssueCommentAttachment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the comment", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "name of the attachment", + "in": "query", + "name": "name", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "properties": { + "attachment": { + "description": "attachment to upload", + "format": "binary", + "type": "string", + "x-formData-name": "attachment" + } + }, + "required": [ + "attachment" + ], + "type": "object" + } + } + } + }, + "responses": { + "201": { + "$ref": "#/components/responses/Attachment" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/error" + }, + "413": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Create a comment attachment", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/comments/{id}/assets/{attachment_id}": { + "delete": { + "operationId": "issueDeleteIssueCommentAttachment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the comment", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the attachment to delete", + "in": "path", + "name": "attachment_id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/error" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Delete a comment attachment", + "tags": [ + "issue" + ] + }, + "get": { + "operationId": "issueGetIssueCommentAttachment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the comment", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the attachment to get", + "in": "path", + "name": "attachment_id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Attachment" + }, + "404": { + "$ref": "#/components/responses/error" + } + }, + "summary": "Get a comment attachment", + "tags": [ + "issue" + ] + }, + "patch": { + "operationId": "issueEditIssueCommentAttachment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the comment", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the attachment to edit", + "in": "path", + "name": "attachment_id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditAttachmentOptions" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Attachment" + }, + "404": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Edit a comment attachment", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/comments/{id}/reactions": { + "delete": { + "operationId": "issueDeleteCommentReaction", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the comment to edit", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditReactionOption" + } + } + }, + "x-originalParamName": "content" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Remove a reaction from a comment of an issue", + "tags": [ + "issue" + ] + }, + "get": { + "operationId": "issueGetCommentReactions", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the comment to edit", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ReactionList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a list of reactions from a comment of an issue", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "issuePostCommentReaction", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the comment to edit", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditReactionOption" + } + } + }, + "x-originalParamName": "content" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Reaction" + }, + "201": { + "$ref": "#/components/responses/Reaction" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Add a reaction to a comment of an issue", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/pinned": { + "get": { + "operationId": "repoListPinnedIssues", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/IssueList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repo's pinned issues", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}": { + "delete": { + "operationId": "issueDelete", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of issue to delete", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete an issue", + "tags": [ + "issue" + ] + }, + "get": { + "operationId": "issueGetIssue", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue to get", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Issue" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get an issue", + "tags": [ + "issue" + ] + }, + "patch": { + "operationId": "issueEditIssue", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue to edit", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditIssueOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Issue" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "412": { + "$ref": "#/components/responses/error" + } + }, + "summary": "Edit an issue. If using deadline only the date will be taken into account, and time of day ignored.", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/assets": { + "get": { + "operationId": "issueListIssueAttachments", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/AttachmentList" + }, + "404": { + "$ref": "#/components/responses/error" + } + }, + "summary": "List issue's attachments", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "issueCreateIssueAttachment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "name of the attachment", + "in": "query", + "name": "name", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "properties": { + "attachment": { + "description": "attachment to upload", + "format": "binary", + "type": "string", + "x-formData-name": "attachment" + } + }, + "required": [ + "attachment" + ], + "type": "object" + } + } + } + }, + "responses": { + "201": { + "$ref": "#/components/responses/Attachment" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/error" + }, + "413": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Create an issue attachment", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/assets/{attachment_id}": { + "delete": { + "operationId": "issueDeleteIssueAttachment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the attachment to delete", + "in": "path", + "name": "attachment_id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/error" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Delete an issue attachment", + "tags": [ + "issue" + ] + }, + "get": { + "operationId": "issueGetIssueAttachment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the attachment to get", + "in": "path", + "name": "attachment_id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Attachment" + }, + "404": { + "$ref": "#/components/responses/error" + } + }, + "summary": "Get an issue attachment", + "tags": [ + "issue" + ] + }, + "patch": { + "operationId": "issueEditIssueAttachment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the attachment to edit", + "in": "path", + "name": "attachment_id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditAttachmentOptions" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Attachment" + }, + "404": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Edit an issue attachment", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/blocks": { + "delete": { + "operationId": "issueRemoveIssueBlocking", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IssueMeta" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Issue" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Unblock the issue given in the body by the issue in path", + "tags": [ + "issue" + ] + }, + "get": { + "operationId": "issueListBlocks", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/IssueList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List issues that are blocked by this issue", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "issueCreateIssueBlocking", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IssueMeta" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Issue" + }, + "404": { + "description": "the issue does not exist" + } + }, + "summary": "Block the issue given in the body by the issue in path", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/comments": { + "get": { + "operationId": "issueGetComments", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "if provided, only comments updated since the specified time are returned.", + "in": "query", + "name": "since", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "if provided, only comments updated before the provided time are returned.", + "in": "query", + "name": "before", + "schema": { + "format": "date-time", + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/CommentList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List all comments on an issue", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "issueCreateComment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateIssueCommentOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Comment" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Add a comment to an issue", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/comments/{id}": { + "delete": { + "deprecated": true, + "operationId": "issueDeleteCommentDeprecated", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "this parameter is ignored", + "in": "path", + "name": "index", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "description": "id of comment to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a comment", + "tags": [ + "issue" + ] + }, + "patch": { + "deprecated": true, + "operationId": "issueEditCommentDeprecated", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "this parameter is ignored", + "in": "path", + "name": "index", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "description": "id of the comment to edit", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditIssueCommentOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Comment" + }, + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Edit a comment", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/deadline": { + "post": { + "operationId": "issueEditIssueDeadline", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue to create or update a deadline on", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditDeadlineOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/IssueDeadline" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Set an issue deadline. If set to null, the deadline is deleted. If using deadline only the date will be taken into account, and time of day ignored.", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/dependencies": { + "delete": { + "operationId": "issueRemoveIssueDependencies", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IssueMeta" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Issue" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Remove an issue dependency", + "tags": [ + "issue" + ] + }, + "get": { + "operationId": "issueListIssueDependencies", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/IssueList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List an issue's dependencies, i.e all issues that block this issue.", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "issueCreateIssueDependencies", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IssueMeta" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Issue" + }, + "404": { + "description": "the issue does not exist" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Make the issue in the url depend on the issue in the form.", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/labels": { + "delete": { + "operationId": "issueClearLabels", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Remove all labels from an issue", + "tags": [ + "issue" + ] + }, + "get": { + "operationId": "issueGetLabels", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/LabelList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get an issue's labels", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "issueAddLabel", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IssueLabelsOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/LabelList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Add a label to an issue", + "tags": [ + "issue" + ] + }, + "put": { + "operationId": "issueReplaceLabels", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IssueLabelsOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/LabelList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Replace an issue's labels", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/labels/{id}": { + "delete": { + "operationId": "issueRemoveLabel", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the label to remove", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Remove a label from an issue", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/lock": { + "delete": { + "operationId": "issueUnlockIssue", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Unlock an issue", + "tags": [ + "issue" + ] + }, + "put": { + "operationId": "issueLockIssue", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LockIssueOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Lock an issue", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/pin": { + "delete": { + "operationId": "unpinIssue", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of issue to unpin", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Unpin an Issue", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "pinIssue", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of issue to pin", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Pin an Issue", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/pin/{position}": { + "patch": { + "operationId": "moveIssuePin", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "the new position", + "in": "path", + "name": "position", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Moves the Pin to the given Position", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/reactions": { + "delete": { + "operationId": "issueDeleteIssueReaction", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditReactionOption" + } + } + }, + "x-originalParamName": "content" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Remove a reaction from an issue", + "tags": [ + "issue" + ] + }, + "get": { + "operationId": "issueGetIssueReactions", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ReactionList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a list reactions of an issue", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "issuePostIssueReaction", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditReactionOption" + } + } + }, + "x-originalParamName": "content" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Reaction" + }, + "201": { + "$ref": "#/components/responses/Reaction" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Add a reaction to an issue", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/stopwatch/delete": { + "delete": { + "operationId": "issueDeleteStopWatch", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue to stop the stopwatch on", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "description": "Not repo writer, user does not have rights to toggle stopwatch" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "description": "Cannot cancel a non-existent stopwatch" + } + }, + "summary": "Delete an issue's existing stopwatch.", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/stopwatch/start": { + "post": { + "operationId": "issueStartStopWatch", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue to create the stopwatch on", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "201": { + "$ref": "#/components/responses/empty" + }, + "403": { + "description": "Not repo writer, user does not have rights to toggle stopwatch" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "description": "Cannot start a stopwatch again if it already exists" + } + }, + "summary": "Start stopwatch on an issue.", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/stopwatch/stop": { + "post": { + "operationId": "issueStopStopWatch", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue to stop the stopwatch on", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "201": { + "$ref": "#/components/responses/empty" + }, + "403": { + "description": "Not repo writer, user does not have rights to toggle stopwatch" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "description": "Cannot stop a non-existent stopwatch" + } + }, + "summary": "Stop an issue's existing stopwatch.", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/subscriptions": { + "get": { + "operationId": "issueSubscriptions", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get users who subscribed on an issue.", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/subscriptions/check": { + "get": { + "operationId": "issueCheckSubscription", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WatchInfo" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Check if user is subscribed to an issue", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/subscriptions/{user}": { + "delete": { + "operationId": "issueDeleteSubscription", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "username of the user to unsubscribe from an issue", + "in": "path", + "name": "user", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Already unsubscribed" + }, + "201": { + "description": "Successfully Unsubscribed" + }, + "304": { + "description": "User can only subscribe itself if he is no admin" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Unsubscribe user from issue", + "tags": [ + "issue" + ] + }, + "put": { + "operationId": "issueAddSubscription", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "username of the user to subscribe the issue to", + "in": "path", + "name": "user", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Already subscribed" + }, + "201": { + "description": "Successfully Subscribed" + }, + "304": { + "description": "User can only subscribe itself if he is no admin" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Subscribe user to issue", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/timeline": { + "get": { + "operationId": "issueGetCommentsAndTimeline", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "if provided, only comments updated since the specified time are returned.", + "in": "query", + "name": "since", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + }, + { + "description": "if provided, only comments updated before the provided time are returned.", + "in": "query", + "name": "before", + "schema": { + "format": "date-time", + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TimelineList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List all comments and events on an issue", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/times": { + "delete": { + "operationId": "issueResetTime", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue to add tracked time to", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Reset a tracked time of an issue", + "tags": [ + "issue" + ] + }, + "get": { + "operationId": "issueTrackedTimes", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "optional filter by user (available for issue managers)", + "in": "query", + "name": "user", + "schema": { + "type": "string" + } + }, + { + "description": "Only show times updated after the given time. This is a timestamp in RFC 3339 format", + "in": "query", + "name": "since", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "Only show times updated before the given time. This is a timestamp in RFC 3339 format", + "in": "query", + "name": "before", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TrackedTimeList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List an issue's tracked times", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "issueAddTime", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddTimeOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/TrackedTime" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Add tracked time to a issue", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/issues/{index}/times/{id}": { + "delete": { + "operationId": "issueDeleteTime", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the issue", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of time to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete specific tracked time", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/keys": { + "get": { + "operationId": "repoListKeys", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the key_id to search for", + "in": "query", + "name": "key_id", + "schema": { + "type": "integer" + } + }, + { + "description": "fingerprint of the key", + "in": "query", + "name": "fingerprint", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/DeployKeyList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repository's keys", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreateKey", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateKeyOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/DeployKey" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Add a key to a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/keys/{id}": { + "delete": { + "operationId": "repoDeleteKey", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the key to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a key from a repository", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetKey", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the key to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/DeployKey" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a repository's key by id", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/labels": { + "get": { + "operationId": "issueListLabels", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/LabelList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get all of a repository's labels", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "issueCreateLabel", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateLabelOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Label" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a label", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/labels/{id}": { + "delete": { + "operationId": "issueDeleteLabel", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the label to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a label", + "tags": [ + "issue" + ] + }, + "get": { + "operationId": "issueGetLabel", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the label to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Label" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a single label", + "tags": [ + "issue" + ] + }, + "patch": { + "operationId": "issueEditLabel", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the label to edit", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditLabelOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Label" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Update a label", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/languages": { + "get": { + "operationId": "repoGetLanguages", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/LanguageStatistics" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get languages and number of bytes of code written", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/licenses": { + "get": { + "operationId": "repoGetLicenses", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/LicensesList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get repo licenses", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/media/{filepath}": { + "get": { + "operationId": "repoGetRawFileOrLFS", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "path of the file to get, it should be \"{ref}/{filepath}\". If there is no ref could be inferred, it will be treated as the default branch", + "in": "path", + "name": "filepath", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The name of the commit/branch/tag. Default to the repository’s default branch", + "in": "query", + "name": "ref", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/octet-stream": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "Returns raw file content." + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a file or it's LFS object from a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/merge-upstream": { + "post": { + "operationId": "repoMergeUpstream", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MergeUpstreamRequest" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/MergeUpstreamResponse" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Merge a branch from upstream", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/milestones": { + "get": { + "operationId": "issueGetMilestonesList", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Milestone state, Recognized values are open, closed and all. Defaults to \"open\"", + "in": "query", + "name": "state", + "schema": { + "type": "string" + } + }, + { + "description": "filter by milestone name", + "in": "query", + "name": "name", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/MilestoneList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get all of a repository's opened milestones", + "tags": [ + "issue" + ] + }, + "post": { + "operationId": "issueCreateMilestone", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMilestoneOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Milestone" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Create a milestone", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/milestones/{id}": { + "delete": { + "operationId": "issueDeleteMilestone", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the milestone to delete, identified by ID and if not available by name", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a milestone", + "tags": [ + "issue" + ] + }, + "get": { + "operationId": "issueGetMilestone", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the milestone to get, identified by ID and if not available by name", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Milestone" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a milestone", + "tags": [ + "issue" + ] + }, + "patch": { + "operationId": "issueEditMilestone", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the milestone to edit, identified by ID and if not available by name", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditMilestoneOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Milestone" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Update a milestone", + "tags": [ + "issue" + ] + } + }, + "/repos/{owner}/{repo}/mirror-sync": { + "post": { + "operationId": "repoMirrorSync", + "parameters": [ + { + "description": "owner of the repo to sync", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to sync", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Sync a mirrored repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/new_pin_allowed": { + "get": { + "operationId": "repoNewPinAllowed", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepoNewIssuePinsAllowed" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Returns if new Issue Pins are allowed", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/notifications": { + "get": { + "operationId": "notifyGetRepoList", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "If true, show notifications marked as read. Default value is false", + "in": "query", + "name": "all", + "schema": { + "type": "boolean" + } + }, + { + "description": "Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread \u0026 pinned", + "in": "query", + "name": "status-types", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + { + "description": "filter notifications by subject type", + "in": "query", + "name": "subject-type", + "schema": { + "items": { + "enum": [ + "issue", + "pull", + "commit", + "repository" + ], + "type": "string" + }, + "type": "array" + } + }, + { + "description": "Only show notifications updated after the given time. This is a timestamp in RFC 3339 format", + "in": "query", + "name": "since", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "Only show notifications updated before the given time. This is a timestamp in RFC 3339 format", + "in": "query", + "name": "before", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/NotificationThreadList" + } + }, + "summary": "List users's notification threads on a specific repo", + "tags": [ + "notification" + ] + }, + "put": { + "operationId": "notifyReadRepoList", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "If true, mark all notifications on this repo. Default value is false", + "in": "query", + "name": "all", + "schema": { + "type": "string" + } + }, + { + "description": "Mark notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread.", + "in": "query", + "name": "status-types", + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + { + "description": "Status to mark notifications as. Defaults to read.", + "in": "query", + "name": "to-status", + "schema": { + "type": "string" + } + }, + { + "description": "Describes the last point that notifications were checked. Anything updated since this time will not be updated.", + "in": "query", + "name": "last_read_at", + "schema": { + "format": "date-time", + "type": "string" + } + } + ], + "responses": { + "205": { + "$ref": "#/components/responses/NotificationThreadList" + } + }, + "summary": "Mark notification threads as read, pinned or unread on a specific repo", + "tags": [ + "notification" + ] + } + }, + "/repos/{owner}/{repo}/pulls": { + "get": { + "operationId": "repoListPullRequests", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Filter by target base branch of the pull request", + "in": "query", + "name": "base_branch", + "schema": { + "type": "string" + } + }, + { + "description": "State of pull request", + "in": "query", + "name": "state", + "schema": { + "default": "open", + "enum": [ + "open", + "closed", + "all" + ], + "type": "string" + } + }, + { + "description": "Type of sort", + "in": "query", + "name": "sort", + "schema": { + "enum": [ + "oldest", + "recentupdate", + "recentclose", + "leastupdate", + "mostcomment", + "leastcomment", + "priority" + ], + "type": "string" + } + }, + { + "description": "ID of the milestone", + "in": "query", + "name": "milestone", + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "Label IDs", + "in": "query", + "name": "labels", + "schema": { + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array" + } + }, + { + "description": "Filter by pull request author", + "in": "query", + "name": "poster", + "schema": { + "type": "string" + } + }, + { + "description": "Page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "default": 1, + "minimum": 1, + "type": "integer" + } + }, + { + "description": "Page size of results", + "in": "query", + "name": "limit", + "schema": { + "minimum": 0, + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PullRequestList" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "500": { + "$ref": "#/components/responses/error" + } + }, + "summary": "List a repo's pull requests", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreatePullRequest", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreatePullRequestOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/PullRequest" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Create a pull request", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/comments/{id}/resolve": { + "post": { + "operationId": "repoResolvePullReviewComment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the review comment", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "400": { + "$ref": "#/components/responses/validationError" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Resolve a pull request review comment", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/comments/{id}/unresolve": { + "post": { + "operationId": "repoUnresolvePullReviewComment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the review comment", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "400": { + "$ref": "#/components/responses/validationError" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Unresolve a pull request review comment", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/pinned": { + "get": { + "operationId": "repoListPinnedPullRequests", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PullRequestList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repo's pinned pull requests", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{base}/{head}": { + "get": { + "operationId": "repoGetPullRequestByBaseHead", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "base of the pull request to get", + "in": "path", + "name": "base", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "head of the pull request to get", + "in": "path", + "name": "head", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PullRequest" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a pull request by base and head", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{index}": { + "get": { + "operationId": "repoGetPullRequest", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request to get", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PullRequest" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a pull request", + "tags": [ + "repository" + ] + }, + "patch": { + "operationId": "repoEditPullRequest", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request to edit", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditPullRequestOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/PullRequest" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "$ref": "#/components/responses/error" + }, + "412": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Update a pull request. If using deadline only the date will be taken into account, and time of day ignored.", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{index}.{diffType}": { + "get": { + "operationId": "repoDownloadPullDiffOrPatch", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request to get", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "whether the output is diff or patch", + "in": "path", + "name": "diffType", + "required": true, + "schema": { + "enum": [ + "diff", + "patch" + ], + "type": "string" + } + }, + { + "description": "whether to include binary file changes. if true, the diff is applicable with `git apply`", + "in": "query", + "name": "binary", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/string" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a pull request diff or patch", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{index}/commits": { + "get": { + "operationId": "repoGetPullRequestCommits", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request to get", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + }, + { + "description": "include verification for every commit (disable for speedup, default 'true')", + "in": "query", + "name": "verification", + "schema": { + "type": "boolean" + } + }, + { + "description": "include a list of affected files for every commit (disable for speedup, default 'true')", + "in": "query", + "name": "files", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/CommitList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get commits for a pull request", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{index}/files": { + "get": { + "operationId": "repoGetPullRequestFiles", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request to get", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "skip to given file", + "in": "query", + "name": "skip-to", + "schema": { + "type": "string" + } + }, + { + "description": "whitespace behavior", + "in": "query", + "name": "whitespace", + "schema": { + "enum": [ + "ignore-all", + "ignore-change", + "ignore-eol", + "show-all" + ], + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ChangedFileList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get changed files for a pull request", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{index}/merge": { + "delete": { + "operationId": "repoCancelScheduledAutoMerge", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request to merge", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Cancel the scheduled auto merge for the given pull request", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoPullRequestIsMerged", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "pull request has been merged" + }, + "404": { + "description": "pull request has not been merged" + } + }, + "summary": "Check if a pull request has been merged", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoMergePullRequest", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request to merge", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MergePullRequestOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "405": { + "$ref": "#/components/responses/empty" + }, + "409": { + "$ref": "#/components/responses/error" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Merge a pull request", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{index}/requested_reviewers": { + "delete": { + "operationId": "repoDeletePullReviewRequests", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PullReviewRequestOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "cancel review requests for a pull request", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreatePullReviewRequests", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PullReviewRequestOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/PullReviewList" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "create review requests for a pull request", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{index}/reviews": { + "get": { + "operationId": "repoListPullReviews", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PullReviewList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List all reviews for a pull request", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreatePullReview", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreatePullReviewOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/PullReview" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a review to an pull request", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{index}/reviews/{id}": { + "delete": { + "operationId": "repoDeletePullReview", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the review", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a specific review from a pull request", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetPullReview", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the review", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PullReview" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a specific review for a pull request", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoSubmitPullReview", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the review", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubmitPullReviewOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/PullReview" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Submit a pending review to an pull request", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{index}/reviews/{id}/comments": { + "get": { + "operationId": "repoGetPullReviewComments", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the review", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PullReviewCommentList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a specific review for a pull request", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{index}/reviews/{id}/dismissals": { + "post": { + "operationId": "repoDismissPullReview", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the review", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DismissPullReviewOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/PullReview" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Dismiss a review for a pull request", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{index}/reviews/{id}/undismissals": { + "post": { + "operationId": "repoUnDismissPullReview", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the review", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PullReview" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Cancel to dismiss a review for a pull request", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/pulls/{index}/update": { + "post": { + "operationId": "repoUpdatePullRequest", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "index of the pull request to get", + "in": "path", + "name": "index", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "how to update pull request", + "in": "query", + "name": "style", + "schema": { + "enum": [ + "merge", + "rebase" + ], + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Merge PR's baseBranch into headBranch", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/push_mirrors": { + "get": { + "operationId": "repoListPushMirrors", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PushMirrorList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get all push mirrors of the repository", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoAddPushMirror", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreatePushMirrorOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/PushMirror" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "add a push mirror to the repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/push_mirrors-sync": { + "post": { + "operationId": "repoPushMirrorSync", + "parameters": [ + { + "description": "owner of the repo to sync", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to sync", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/empty" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Sync all push mirrored repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/push_mirrors/{name}": { + "delete": { + "operationId": "repoDeletePushMirror", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "remote name of the pushMirror", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "deletes a push mirror from a repository by remoteName", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetPushMirrorByRemoteName", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "remote name of push mirror", + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PushMirror" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get push mirror of the repository by remoteName", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/raw/{filepath}": { + "get": { + "operationId": "repoGetRawFile", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "path of the file to get, it should be \"{ref}/{filepath}\". If there is no ref could be inferred, it will be treated as the default branch", + "in": "path", + "name": "filepath", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The name of the commit/branch/tag. Default to the repository’s default branch", + "in": "query", + "name": "ref", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/octet-stream": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "Returns raw file content." + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a file from a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/releases": { + "get": { + "operationId": "repoListReleases", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "filter (exclude / include) drafts, if you don't have repo write access none will show", + "in": "query", + "name": "draft", + "schema": { + "type": "boolean" + } + }, + { + "description": "filter (exclude / include) pre-releases", + "in": "query", + "name": "pre-release", + "schema": { + "type": "boolean" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ReleaseList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repo's releases", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreateRelease", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateReleaseOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Release" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a release", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/releases/latest": { + "get": { + "operationId": "repoGetLatestRelease", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Release" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Gets the most recent non-prerelease, non-draft release of a repository, sorted by created_at", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/releases/tags/{tag}": { + "delete": { + "operationId": "repoDeleteReleaseByTag", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "tag name of the release to delete", + "in": "path", + "name": "tag", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Delete a release by tag name", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetReleaseByTag", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "tag name of the release to get", + "in": "path", + "name": "tag", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Release" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a release by tag name", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/releases/{id}": { + "delete": { + "operationId": "repoDeleteRelease", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the release to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Delete a release", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetRelease", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the release to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Release" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a release", + "tags": [ + "repository" + ] + }, + "patch": { + "operationId": "repoEditRelease", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the release to edit", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditReleaseOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Release" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Update a release", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/releases/{id}/assets": { + "get": { + "operationId": "repoListReleaseAttachments", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the release", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/AttachmentList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List release's attachments", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreateReleaseAttachment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the release", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "name of the attachment", + "in": "query", + "name": "name", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/octet-stream": { + "schema": { + "properties": { + "attachment": { + "description": "attachment to upload", + "format": "binary", + "type": "string", + "x-formData-name": "attachment" + } + }, + "type": "object" + } + }, + "multipart/form-data": { + "schema": { + "properties": { + "attachment": { + "description": "attachment to upload", + "format": "binary", + "type": "string", + "x-formData-name": "attachment" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "201": { + "$ref": "#/components/responses/Attachment" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "413": { + "$ref": "#/components/responses/error" + } + }, + "summary": "Create a release attachment", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/releases/{id}/assets/{attachment_id}": { + "delete": { + "operationId": "repoDeleteReleaseAttachment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the release", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the attachment to delete", + "in": "path", + "name": "attachment_id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a release attachment", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetReleaseAttachment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the release", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the attachment to get", + "in": "path", + "name": "attachment_id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Attachment" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a release attachment", + "tags": [ + "repository" + ] + }, + "patch": { + "operationId": "repoEditReleaseAttachment", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the release", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "id of the attachment to edit", + "in": "path", + "name": "attachment_id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditAttachmentOptions" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Attachment" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Edit a release attachment", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/reviewers": { + "get": { + "operationId": "repoGetReviewers", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Return all users that can be requested to review in this repo", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/signing-key.gpg": { + "get": { + "operationId": "repoSigningKey", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + }, + "description": "GPG armored public key" + } + }, + "summary": "Get signing-key.gpg for given repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/signing-key.pub": { + "get": { + "operationId": "repoSigningKeySSH", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + }, + "description": "ssh public key" + } + }, + "summary": "Get signing-key.pub for given repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/stargazers": { + "get": { + "operationId": "repoListStargazers", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repo's stargazers", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/statuses/{sha}": { + "get": { + "operationId": "repoListStatuses", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "sha of the commit", + "in": "path", + "name": "sha", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "type of sort", + "in": "query", + "name": "sort", + "schema": { + "enum": [ + "oldest", + "recentupdate", + "leastupdate", + "leastindex", + "highestindex" + ], + "type": "string" + } + }, + { + "description": "type of state", + "in": "query", + "name": "state", + "schema": { + "enum": [ + "pending", + "success", + "error", + "failure", + "warning" + ], + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/CommitStatusList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a commit's statuses", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreateStatus", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "sha of the commit", + "in": "path", + "name": "sha", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateStatusOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/CommitStatus" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Create a commit status", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/subscribers": { + "get": { + "operationId": "repoListSubscribers", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repo's watchers", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/subscription": { + "delete": { + "operationId": "userCurrentDeleteSubscription", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Unwatch a repo", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "userCurrentCheckSubscription", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WatchInfo" + }, + "404": { + "description": "User is not watching this repo or repo do not exist" + } + }, + "summary": "Check if the current user is watching a repo", + "tags": [ + "repository" + ] + }, + "put": { + "operationId": "userCurrentPutSubscription", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WatchInfo" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Watch a repo", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/tag_protections": { + "get": { + "operationId": "repoListTagProtection", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TagProtectionList" + } + }, + "summary": "List tag protections for a repository", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreateTagProtection", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateTagProtectionOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/TagProtection" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Create a tag protections for a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/tag_protections/{id}": { + "delete": { + "operationId": "repoDeleteTagProtection", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of protected tag", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a specific tag protection for the repository", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetTagProtection", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of the tag protect to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TagProtection" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a specific tag protection for the repository", + "tags": [ + "repository" + ] + }, + "patch": { + "operationId": "repoEditTagProtection", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "id of protected tag", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditTagProtectionOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/TagProtection" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Edit a tag protections for a repository. Only fields that are set will be changed", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/tags": { + "get": { + "operationId": "repoListTags", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results, default maximum page size is 50", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TagList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repository's tags", + "tags": [ + "repository" + ] + }, + "post": { + "operationId": "repoCreateTag", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateTagOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Tag" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "405": { + "$ref": "#/components/responses/empty" + }, + "409": { + "$ref": "#/components/responses/conflict" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Create a new git tag in a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/tags/{tag}": { + "delete": { + "operationId": "repoDeleteTag", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of tag to delete", + "in": "path", + "name": "tag", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "405": { + "$ref": "#/components/responses/empty" + }, + "409": { + "$ref": "#/components/responses/conflict" + }, + "422": { + "$ref": "#/components/responses/validationError" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Delete a repository's tag by name", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetTag", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of tag", + "in": "path", + "name": "tag", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Tag" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get the tag of a repository by tag name", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/teams": { + "get": { + "operationId": "repoListTeams", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TeamList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repository's teams", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/teams/{team}": { + "delete": { + "operationId": "repoDeleteTeam", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "405": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Delete a team from a repository", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoCheckTeam", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Team" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "405": { + "$ref": "#/components/responses/error" + } + }, + "summary": "Check if a team is assigned to a repository", + "tags": [ + "repository" + ] + }, + "put": { + "operationId": "repoAddTeam", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "405": { + "$ref": "#/components/responses/error" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Add a team to a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/times": { + "get": { + "operationId": "repoTrackedTimes", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "optional filter by user (available for issue managers)", + "in": "query", + "name": "user", + "schema": { + "type": "string" + } + }, + { + "description": "Only show times updated after the given time. This is a timestamp in RFC 3339 format", + "in": "query", + "name": "since", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "Only show times updated before the given time. This is a timestamp in RFC 3339 format", + "in": "query", + "name": "before", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TrackedTimeList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a repo's tracked times", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/times/{user}": { + "get": { + "deprecated": true, + "operationId": "userTrackedTimes", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the user whose tracked times are to be listed", + "in": "path", + "name": "user", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TrackedTimeList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a user's tracked times in a repo", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/topics": { + "get": { + "operationId": "repoListTopics", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TopicNames" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get list of topics that a repository has", + "tags": [ + "repository" + ] + }, + "put": { + "operationId": "repoUpdateTopics", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepoTopicOptions" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/invalidTopicsError" + } + }, + "summary": "Replace list of topics for a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/topics/{topic}": { + "delete": { + "operationId": "repoDeleteTopic", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the topic to delete", + "in": "path", + "name": "topic", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/invalidTopicsError" + } + }, + "summary": "Delete a topic from a repository", + "tags": [ + "repository" + ] + }, + "put": { + "operationId": "repoAddTopic", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the topic to add", + "in": "path", + "name": "topic", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/invalidTopicsError" + } + }, + "summary": "Add a topic to a repository", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/transfer": { + "post": { + "operationId": "repoTransfer", + "parameters": [ + { + "description": "owner of the repo to transfer", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to transfer", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransferRepoOption" + } + } + }, + "description": "Transfer Options", + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "202": { + "$ref": "#/components/responses/Repository" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Transfer a repo ownership", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/transfer/accept": { + "post": { + "operationId": "acceptRepoTransfer", + "parameters": [ + { + "description": "owner of the repo to transfer", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to transfer", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "$ref": "#/components/responses/Repository" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Accept a repo transfer", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/transfer/reject": { + "post": { + "operationId": "rejectRepoTransfer", + "parameters": [ + { + "description": "owner of the repo to transfer", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to transfer", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Repository" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Reject a repo transfer", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/wiki/new": { + "post": { + "operationId": "repoCreateWikiPage", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateWikiPageOptions" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/WikiPage" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Create a wiki page", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/wiki/page/{pageName}": { + "delete": { + "operationId": "repoDeleteWikiPage", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the page", + "in": "path", + "name": "pageName", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Delete a wiki page", + "tags": [ + "repository" + ] + }, + "get": { + "operationId": "repoGetWikiPage", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the page", + "in": "path", + "name": "pageName", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WikiPage" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a wiki page", + "tags": [ + "repository" + ] + }, + "patch": { + "operationId": "repoEditWikiPage", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the page", + "in": "path", + "name": "pageName", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateWikiPageOptions" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/WikiPage" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "423": { + "$ref": "#/components/responses/repoArchivedError" + } + }, + "summary": "Edit a wiki page", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/wiki/pages": { + "get": { + "operationId": "repoGetWikiPages", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WikiPageList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get all wiki pages", + "tags": [ + "repository" + ] + } + }, + "/repos/{owner}/{repo}/wiki/revisions/{pageName}": { + "get": { + "operationId": "repoGetWikiPageRevisions", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the page", + "in": "path", + "name": "pageName", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WikiCommitList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get revisions of a wiki page", + "tags": [ + "repository" + ] + } + }, + "/repos/{template_owner}/{template_repo}/generate": { + "post": { + "operationId": "generateRepo", + "parameters": [ + { + "description": "owner of the template repository", + "in": "path", + "name": "template_owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the template repository", + "in": "path", + "name": "template_repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GenerateRepoOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Repository" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "409": { + "description": "The repository with the same name already exists." + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a repository using a template", + "tags": [ + "repository" + ] + } + }, + "/repositories/{id}": { + "get": { + "operationId": "repoGetByID", + "parameters": [ + { + "description": "id of the repo to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Repository" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a repository by id", + "tags": [ + "repository" + ] + } + }, + "/settings/api": { + "get": { + "operationId": "getGeneralAPISettings", + "responses": { + "200": { + "$ref": "#/components/responses/GeneralAPISettings" + } + }, + "summary": "Get instance's global settings for api", + "tags": [ + "settings" + ] + } + }, + "/settings/attachment": { + "get": { + "operationId": "getGeneralAttachmentSettings", + "responses": { + "200": { + "$ref": "#/components/responses/GeneralAttachmentSettings" + } + }, + "summary": "Get instance's global settings for Attachment", + "tags": [ + "settings" + ] + } + }, + "/settings/repository": { + "get": { + "operationId": "getGeneralRepositorySettings", + "responses": { + "200": { + "$ref": "#/components/responses/GeneralRepoSettings" + } + }, + "summary": "Get instance's global settings for repositories", + "tags": [ + "settings" + ] + } + }, + "/settings/ui": { + "get": { + "operationId": "getGeneralUISettings", + "responses": { + "200": { + "$ref": "#/components/responses/GeneralUISettings" + } + }, + "summary": "Get instance's global settings for ui", + "tags": [ + "settings" + ] + } + }, + "/signing-key.gpg": { + "get": { + "operationId": "getSigningKey", + "responses": { + "200": { + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + }, + "description": "GPG armored public key" + } + }, + "summary": "Get default signing-key.gpg", + "tags": [ + "miscellaneous" + ] + } + }, + "/signing-key.pub": { + "get": { + "operationId": "getSigningKeySSH", + "responses": { + "200": { + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + }, + "description": "ssh public key" + } + }, + "summary": "Get default signing-key.pub", + "tags": [ + "miscellaneous" + ] + } + }, + "/teams/{id}": { + "delete": { + "operationId": "orgDeleteTeam", + "parameters": [ + { + "description": "id of the team to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "team deleted" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a team", + "tags": [ + "organization" + ] + }, + "get": { + "operationId": "orgGetTeam", + "parameters": [ + { + "description": "id of the team to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Team" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a team", + "tags": [ + "organization" + ] + }, + "patch": { + "operationId": "orgEditTeam", + "parameters": [ + { + "description": "id of the team to edit", + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditTeamOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Team" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Edit a team", + "tags": [ + "organization" + ] + } + }, + "/teams/{id}/activities/feeds": { + "get": { + "operationId": "orgListTeamActivityFeeds", + "parameters": [ + { + "description": "id of the team", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "the date of the activities to be found", + "in": "query", + "name": "date", + "schema": { + "format": "date", + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ActivityFeedsList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a team's activity feeds", + "tags": [ + "organization" + ] + } + }, + "/teams/{id}/members": { + "get": { + "operationId": "orgListTeamMembers", + "parameters": [ + { + "description": "id of the team", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a team's members", + "tags": [ + "organization" + ] + } + }, + "/teams/{id}/members/{username}": { + "delete": { + "operationId": "orgRemoveTeamMember", + "parameters": [ + { + "description": "id of the team", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "username of the user to remove from a team", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Remove a team member", + "tags": [ + "organization" + ] + }, + "get": { + "operationId": "orgListTeamMember", + "parameters": [ + { + "description": "id of the team", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "username of the user whose data is to be listed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/User" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a particular member of team", + "tags": [ + "organization" + ] + }, + "put": { + "operationId": "orgAddTeamMember", + "parameters": [ + { + "description": "id of the team", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "username of the user to add to a team", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Add a team member", + "tags": [ + "organization" + ] + } + }, + "/teams/{id}/repos": { + "get": { + "operationId": "orgListTeamRepos", + "parameters": [ + { + "description": "id of the team", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepositoryList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a team's repos", + "tags": [ + "organization" + ] + } + }, + "/teams/{id}/repos/{org}/{repo}": { + "delete": { + "description": "This does not delete the repository, it only removes the repository from the team.", + "operationId": "orgRemoveTeamRepository", + "parameters": [ + { + "description": "id of the team", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "organization that owns the repo to remove", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to remove", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Remove a repository from a team", + "tags": [ + "organization" + ] + }, + "get": { + "operationId": "orgListTeamRepo", + "parameters": [ + { + "description": "id of the team", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "organization that owns the repo to list", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to list", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Repository" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a particular repo of team", + "tags": [ + "organization" + ] + }, + "put": { + "operationId": "orgAddTeamRepository", + "parameters": [ + { + "description": "id of the team", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "organization that owns the repo to add", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to add", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Add a repository to a team", + "tags": [ + "organization" + ] + } + }, + "/topics/search": { + "get": { + "operationId": "topicSearch", + "parameters": [ + { + "description": "keywords to search", + "in": "query", + "name": "q", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TopicListResponse" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "search topics via keyword", + "tags": [ + "repository" + ] + } + }, + "/user": { + "get": { + "operationId": "userGetCurrent", + "responses": { + "200": { + "$ref": "#/components/responses/User" + } + }, + "summary": "Get the authenticated user", + "tags": [ + "user" + ] + } + }, + "/user/actions/jobs": { + "get": { + "operationId": "getUserWorkflowJobs", + "parameters": [ + { + "description": "workflow status (pending, queued, in_progress, failure, success, skipped)", + "in": "query", + "name": "status", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WorkflowJobsList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get workflow jobs", + "tags": [ + "user" + ] + } + }, + "/user/actions/runners": { + "get": { + "operationId": "getUserRunners", + "parameters": [ + { + "description": "filter by disabled status (true or false)", + "in": "query", + "name": "disabled", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RunnerList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get user-level runners", + "tags": [ + "user" + ] + } + }, + "/user/actions/runners/registration-token": { + "post": { + "operationId": "userCreateRunnerRegistrationToken", + "responses": { + "200": { + "$ref": "#/components/responses/RegistrationToken" + } + }, + "summary": "Get an user's actions runner registration token", + "tags": [ + "user" + ] + } + }, + "/user/actions/runners/{runner_id}": { + "delete": { + "operationId": "deleteUserRunner", + "parameters": [ + { + "description": "id of the runner", + "in": "path", + "name": "runner_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "runner has been deleted" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a user-level runner", + "tags": [ + "user" + ] + }, + "get": { + "operationId": "getUserRunner", + "parameters": [ + { + "description": "id of the runner", + "in": "path", + "name": "runner_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Runner" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a user-level runner", + "tags": [ + "user" + ] + }, + "patch": { + "operationId": "updateUserRunner", + "parameters": [ + { + "description": "id of the runner", + "in": "path", + "name": "runner_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditActionRunnerOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Runner" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Update a user-level runner", + "tags": [ + "user" + ] + } + }, + "/user/actions/runs": { + "get": { + "operationId": "getUserWorkflowRuns", + "parameters": [ + { + "description": "workflow event name", + "in": "query", + "name": "event", + "schema": { + "type": "string" + } + }, + { + "description": "workflow branch", + "in": "query", + "name": "branch", + "schema": { + "type": "string" + } + }, + { + "description": "workflow status (pending, queued, in_progress, failure, success, skipped)", + "in": "query", + "name": "status", + "schema": { + "type": "string" + } + }, + { + "description": "triggered by user", + "in": "query", + "name": "actor", + "schema": { + "type": "string" + } + }, + { + "description": "triggering sha of the workflow run", + "in": "query", + "name": "head_sha", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/WorkflowRunsList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get workflow runs", + "tags": [ + "user" + ] + } + }, + "/user/actions/secrets/{secretname}": { + "delete": { + "operationId": "deleteUserSecret", + "parameters": [ + { + "description": "name of the secret", + "in": "path", + "name": "secretname", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "delete one secret of the user" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a secret in a user scope", + "tags": [ + "user" + ] + }, + "put": { + "operationId": "updateUserSecret", + "parameters": [ + { + "description": "name of the secret", + "in": "path", + "name": "secretname", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrUpdateSecretOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "description": "response when creating a secret" + }, + "204": { + "description": "response when updating a secret" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Create or Update a secret value in a user scope", + "tags": [ + "user" + ] + } + }, + "/user/actions/variables": { + "get": { + "operationId": "getUserVariablesList", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/VariableList" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get the user-level list of variables which is created by current doer", + "tags": [ + "user" + ] + } + }, + "/user/actions/variables/{variablename}": { + "delete": { + "operationId": "deleteUserVariable", + "parameters": [ + { + "description": "name of the variable", + "in": "path", + "name": "variablename", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "response when deleting a variable" + }, + "204": { + "description": "response when deleting a variable" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a user-level variable which is created by current doer", + "tags": [ + "user" + ] + }, + "get": { + "operationId": "getUserVariable", + "parameters": [ + { + "description": "name of the variable", + "in": "path", + "name": "variablename", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ActionVariable" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a user-level variable which is created by current doer", + "tags": [ + "user" + ] + }, + "post": { + "operationId": "createUserVariable", + "parameters": [ + { + "description": "name of the variable", + "in": "path", + "name": "variablename", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateVariableOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "description": "successfully created the user-level variable" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "409": { + "description": "variable name already exists." + } + }, + "summary": "Create a user-level variable", + "tags": [ + "user" + ] + }, + "put": { + "operationId": "updateUserVariable", + "parameters": [ + { + "description": "name of the variable", + "in": "path", + "name": "variablename", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateVariableOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "description": "response when updating a variable" + }, + "204": { + "description": "response when updating a variable" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Update a user-level variable which is created by current doer", + "tags": [ + "user" + ] + } + }, + "/user/applications/oauth2": { + "get": { + "operationId": "userGetOauth2Application", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/OAuth2ApplicationList" + } + }, + "summary": "List the authenticated user's oauth2 applications", + "tags": [ + "user" + ] + }, + "post": { + "operationId": "userCreateOAuth2Application", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOAuth2ApplicationOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/OAuth2Application" + }, + "400": { + "$ref": "#/components/responses/error" + } + }, + "summary": "creates a new OAuth2 application", + "tags": [ + "user" + ] + } + }, + "/user/applications/oauth2/{id}": { + "delete": { + "operationId": "userDeleteOAuth2Application", + "parameters": [ + { + "description": "token to be deleted", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "delete an OAuth2 Application", + "tags": [ + "user" + ] + }, + "get": { + "operationId": "userGetOAuth2Application", + "parameters": [ + { + "description": "Application ID to be found", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/OAuth2Application" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "get an OAuth2 Application", + "tags": [ + "user" + ] + }, + "patch": { + "operationId": "userUpdateOAuth2Application", + "parameters": [ + { + "description": "application to be updated", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOAuth2ApplicationOptions" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/OAuth2Application" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "update an OAuth2 Application, this includes regenerating the client secret", + "tags": [ + "user" + ] + } + }, + "/user/avatar": { + "delete": { + "operationId": "userDeleteAvatar", + "responses": { + "204": { + "$ref": "#/components/responses/empty" + } + }, + "summary": "Delete Avatar", + "tags": [ + "user" + ] + }, + "post": { + "operationId": "userUpdateAvatar", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserAvatarOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + } + }, + "summary": "Update Avatar", + "tags": [ + "user" + ] + } + }, + "/user/blocks": { + "get": { + "operationId": "userListBlocks", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + } + }, + "summary": "List users blocked by the authenticated user", + "tags": [ + "user" + ] + } + }, + "/user/blocks/{username}": { + "delete": { + "operationId": "userUnblockUser", + "parameters": [ + { + "description": "username of the user to unblock", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Unblock a user", + "tags": [ + "user" + ] + }, + "get": { + "operationId": "userCheckUserBlock", + "parameters": [ + { + "description": "username of the user to check", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Check if a user is blocked by the authenticated user", + "tags": [ + "user" + ] + }, + "put": { + "operationId": "userBlockUser", + "parameters": [ + { + "description": "username of the user to block", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "optional note for the block", + "in": "query", + "name": "note", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Block a user", + "tags": [ + "user" + ] + } + }, + "/user/emails": { + "delete": { + "operationId": "userDeleteEmail", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteEmailOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete email addresses", + "tags": [ + "user" + ] + }, + "get": { + "operationId": "userListEmails", + "responses": { + "200": { + "$ref": "#/components/responses/EmailList" + } + }, + "summary": "List the authenticated user's email addresses", + "tags": [ + "user" + ] + }, + "post": { + "operationId": "userAddEmail", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateEmailOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/EmailList" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Add email addresses", + "tags": [ + "user" + ] + } + }, + "/user/followers": { + "get": { + "operationId": "userCurrentListFollowers", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + } + }, + "summary": "List the authenticated user's followers", + "tags": [ + "user" + ] + } + }, + "/user/following": { + "get": { + "operationId": "userCurrentListFollowing", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + } + }, + "summary": "List the users that the authenticated user is following", + "tags": [ + "user" + ] + } + }, + "/user/following/{username}": { + "delete": { + "operationId": "userCurrentDeleteFollow", + "parameters": [ + { + "description": "username of the user to unfollow", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Unfollow a user", + "tags": [ + "user" + ] + }, + "get": { + "operationId": "userCurrentCheckFollowing", + "parameters": [ + { + "description": "username of the user to check for authenticated followers", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Check whether a user is followed by the authenticated user", + "tags": [ + "user" + ] + }, + "put": { + "operationId": "userCurrentPutFollow", + "parameters": [ + { + "description": "username of the user to follow", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Follow a user", + "tags": [ + "user" + ] + } + }, + "/user/gpg_key_token": { + "get": { + "operationId": "getVerificationToken", + "responses": { + "200": { + "$ref": "#/components/responses/string" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a Token to verify", + "tags": [ + "user" + ] + } + }, + "/user/gpg_key_verify": { + "post": { + "operationId": "userVerifyGPGKey", + "responses": { + "201": { + "$ref": "#/components/responses/GPGKey" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Verify a GPG key", + "tags": [ + "user" + ] + } + }, + "/user/gpg_keys": { + "get": { + "operationId": "userCurrentListGPGKeys", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/GPGKeyList" + } + }, + "summary": "List the authenticated user's GPG keys", + "tags": [ + "user" + ] + }, + "post": { + "operationId": "userCurrentPostGPGKey", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateGPGKeyOption" + } + } + }, + "x-originalParamName": "Form" + }, + "responses": { + "201": { + "$ref": "#/components/responses/GPGKey" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a GPG key", + "tags": [ + "user" + ] + } + }, + "/user/gpg_keys/{id}": { + "delete": { + "operationId": "userCurrentDeleteGPGKey", + "parameters": [ + { + "description": "id of key to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Remove a GPG key", + "tags": [ + "user" + ] + }, + "get": { + "operationId": "userCurrentGetGPGKey", + "parameters": [ + { + "description": "id of key to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/GPGKey" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a GPG key", + "tags": [ + "user" + ] + } + }, + "/user/hooks": { + "get": { + "operationId": "userListHooks", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/HookList" + } + }, + "summary": "List the authenticated user's webhooks", + "tags": [ + "user" + ] + }, + "post": { + "operationId": "userCreateHook", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateHookOption" + } + } + }, + "required": true, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Hook" + } + }, + "summary": "Create a hook", + "tags": [ + "user" + ] + } + }, + "/user/hooks/{id}": { + "delete": { + "operationId": "userDeleteHook", + "parameters": [ + { + "description": "id of the hook to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + } + }, + "summary": "Delete a hook", + "tags": [ + "user" + ] + }, + "get": { + "operationId": "userGetHook", + "parameters": [ + { + "description": "id of the hook to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Hook" + } + }, + "summary": "Get a hook", + "tags": [ + "user" + ] + }, + "patch": { + "operationId": "userEditHook", + "parameters": [ + { + "description": "id of the hook to update", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditHookOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Hook" + } + }, + "summary": "Update a hook", + "tags": [ + "user" + ] + } + }, + "/user/keys": { + "get": { + "operationId": "userCurrentListKeys", + "parameters": [ + { + "description": "fingerprint of the key", + "in": "query", + "name": "fingerprint", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PublicKeyList" + } + }, + "summary": "List the authenticated user's public keys", + "tags": [ + "user" + ] + }, + "post": { + "operationId": "userCurrentPostKey", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateKeyOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/PublicKey" + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a public key", + "tags": [ + "user" + ] + } + }, + "/user/keys/{id}": { + "delete": { + "operationId": "userCurrentDeleteKey", + "parameters": [ + { + "description": "id of key to delete", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Delete a public key", + "tags": [ + "user" + ] + }, + "get": { + "operationId": "userCurrentGetKey", + "parameters": [ + { + "description": "id of key to get", + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PublicKey" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a public key", + "tags": [ + "user" + ] + } + }, + "/user/orgs": { + "get": { + "operationId": "orgListCurrentUserOrgs", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/OrganizationList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List the current user's organizations", + "tags": [ + "organization" + ] + } + }, + "/user/repos": { + "get": { + "operationId": "userCurrentListRepos", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepositoryList" + } + }, + "summary": "List the repos that the authenticated user owns", + "tags": [ + "user" + ] + }, + "post": { + "operationId": "createCurrentUserRepo", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateRepoOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/Repository" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "409": { + "description": "The repository with the same name already exists." + }, + "422": { + "$ref": "#/components/responses/validationError" + } + }, + "summary": "Create a repository", + "tags": [ + "repository", + "user" + ] + } + }, + "/user/settings": { + "get": { + "operationId": "getUserSettings", + "responses": { + "200": { + "$ref": "#/components/responses/UserSettings" + } + }, + "summary": "Get user settings", + "tags": [ + "user" + ] + }, + "patch": { + "operationId": "updateUserSettings", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserSettingsOptions" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "200": { + "$ref": "#/components/responses/UserSettings" + } + }, + "summary": "Update user settings", + "tags": [ + "user" + ] + } + }, + "/user/starred": { + "get": { + "operationId": "userCurrentListStarred", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepositoryList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "summary": "The repos that the authenticated user has starred", + "tags": [ + "user" + ] + } + }, + "/user/starred/{owner}/{repo}": { + "delete": { + "operationId": "userCurrentDeleteStar", + "parameters": [ + { + "description": "owner of the repo to unstar", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to unstar", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Unstar the given repo", + "tags": [ + "user" + ] + }, + "get": { + "operationId": "userCurrentCheckStarring", + "parameters": [ + { + "description": "owner of the repo", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Whether the authenticated is starring the repo", + "tags": [ + "user" + ] + }, + "put": { + "operationId": "userCurrentPutStar", + "parameters": [ + { + "description": "owner of the repo to star", + "in": "path", + "name": "owner", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the repo to star", + "in": "path", + "name": "repo", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Star the given repo", + "tags": [ + "user" + ] + } + }, + "/user/stopwatches": { + "get": { + "operationId": "userGetStopWatches", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/StopWatchList" + } + }, + "summary": "Get list of all existing stopwatches", + "tags": [ + "user" + ] + } + }, + "/user/subscriptions": { + "get": { + "operationId": "userCurrentListSubscriptions", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepositoryList" + } + }, + "summary": "List repositories watched by the authenticated user", + "tags": [ + "user" + ] + } + }, + "/user/teams": { + "get": { + "operationId": "userListTeams", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TeamList" + } + }, + "summary": "List all the teams a user belongs to", + "tags": [ + "user" + ] + } + }, + "/user/times": { + "get": { + "operationId": "userCurrentTrackedTimes", + "parameters": [ + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + }, + { + "description": "Only show times updated after the given time. This is a timestamp in RFC 3339 format", + "in": "query", + "name": "since", + "schema": { + "format": "date-time", + "type": "string" + } + }, + { + "description": "Only show times updated before the given time. This is a timestamp in RFC 3339 format", + "in": "query", + "name": "before", + "schema": { + "format": "date-time", + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TrackedTimeList" + } + }, + "summary": "List the current user's tracked times", + "tags": [ + "user" + ] + } + }, + "/users/search": { + "get": { + "operationId": "userSearch", + "parameters": [ + { + "description": "keyword", + "in": "query", + "name": "q", + "schema": { + "type": "string" + } + }, + { + "description": "ID of the user to search for", + "in": "query", + "name": "uid", + "schema": { + "format": "int64", + "type": "integer" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/User" + }, + "type": "array" + }, + "ok": { + "type": "boolean" + } + }, + "type": "object" + } + } + }, + "description": "SearchResults of a successful search" + } + }, + "summary": "Search for users", + "tags": [ + "user" + ] + } + }, + "/users/{username}": { + "get": { + "operationId": "userGet", + "parameters": [ + { + "description": "username of the user whose data is to be listed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/User" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a user", + "tags": [ + "user" + ] + } + }, + "/users/{username}/activities/feeds": { + "get": { + "operationId": "userListActivityFeeds", + "parameters": [ + { + "description": "username of the user whose activity feeds are to be listed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "if true, only show actions performed by the requested user", + "in": "query", + "name": "only-performed-by", + "schema": { + "type": "boolean" + } + }, + { + "description": "the date of the activities to be found", + "in": "query", + "name": "date", + "schema": { + "format": "date", + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ActivityFeedsList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a user's activity feeds", + "tags": [ + "user" + ] + } + }, + "/users/{username}/followers": { + "get": { + "operationId": "userListFollowers", + "parameters": [ + { + "description": "username of the user whose followers are to be listed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List the given user's followers", + "tags": [ + "user" + ] + } + }, + "/users/{username}/following": { + "get": { + "operationId": "userListFollowing", + "parameters": [ + { + "description": "username of the user whose followed users are to be listed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List the users that the given user is following", + "tags": [ + "user" + ] + } + }, + "/users/{username}/following/{target}": { + "get": { + "operationId": "userCheckFollowing", + "parameters": [ + { + "description": "username of the following user", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "username of the followed user", + "in": "path", + "name": "target", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Check if one user is following another user", + "tags": [ + "user" + ] + } + }, + "/users/{username}/gpg_keys": { + "get": { + "operationId": "userListGPGKeys", + "parameters": [ + { + "description": "username of the user whose GPG key list is to be obtained", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/GPGKeyList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List the given user's GPG keys", + "tags": [ + "user" + ] + } + }, + "/users/{username}/heatmap": { + "get": { + "operationId": "userGetHeatmapData", + "parameters": [ + { + "description": "username of the user whose heatmap is to be obtained", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/UserHeatmapData" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get a user's heatmap", + "tags": [ + "user" + ] + } + }, + "/users/{username}/keys": { + "get": { + "operationId": "userListKeys", + "parameters": [ + { + "description": "username of the user whose public keys are to be listed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "fingerprint of the key", + "in": "query", + "name": "fingerprint", + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PublicKeyList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List the given user's public keys", + "tags": [ + "user" + ] + } + }, + "/users/{username}/orgs": { + "get": { + "operationId": "orgListUserOrgs", + "parameters": [ + { + "description": "username of the user whose organizations are to be listed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/OrganizationList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List a user's organizations", + "tags": [ + "organization" + ] + } + }, + "/users/{username}/orgs/{org}/permissions": { + "get": { + "operationId": "orgGetUserPermissions", + "parameters": [ + { + "description": "username of the user whose permissions are to be obtained", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "name of the organization", + "in": "path", + "name": "org", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/OrganizationPermissions" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "Get user permissions in organization", + "tags": [ + "organization" + ] + } + }, + "/users/{username}/repos": { + "get": { + "operationId": "userListRepos", + "parameters": [ + { + "description": "username of the user whose owned repos are to be listed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepositoryList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List the repos owned by the given user", + "tags": [ + "user" + ] + } + }, + "/users/{username}/starred": { + "get": { + "operationId": "userListStarred", + "parameters": [ + { + "description": "username of the user whose starred repos are to be listed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepositoryList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "The repos that the given user has starred", + "tags": [ + "user" + ] + } + }, + "/users/{username}/subscriptions": { + "get": { + "operationId": "userListSubscriptions", + "parameters": [ + { + "description": "username of the user whose watched repos are to be listed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/RepositoryList" + }, + "404": { + "$ref": "#/components/responses/notFound" + } + }, + "summary": "List the repositories watched by a user", + "tags": [ + "user" + ] + } + }, + "/users/{username}/tokens": { + "get": { + "operationId": "userGetTokens", + "parameters": [ + { + "description": "username of to user whose access tokens are to be listed", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "page number of results to return (1-based)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "page size of results", + "in": "query", + "name": "limit", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/AccessTokenList" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "summary": "List the authenticated user's access tokens", + "tags": [ + "user" + ] + }, + "post": { + "operationId": "userCreateToken", + "parameters": [ + { + "description": "username of the user whose token is to be created", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateAccessTokenOption" + } + } + }, + "x-originalParamName": "body" + }, + "responses": { + "201": { + "$ref": "#/components/responses/AccessToken" + }, + "400": { + "$ref": "#/components/responses/error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "summary": "Create an access token", + "tags": [ + "user" + ] + } + }, + "/users/{username}/tokens/{token}": { + "delete": { + "operationId": "userDeleteAccessToken", + "parameters": [ + { + "description": "username of the user whose token is to be deleted", + "in": "path", + "name": "username", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "token to be deleted, identified by ID and if not available by name", + "in": "path", + "name": "token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/empty" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/notFound" + }, + "422": { + "$ref": "#/components/responses/error" + } + }, + "summary": "delete an access token", + "tags": [ + "user" + ] + } + }, + "/version": { + "get": { + "operationId": "getVersion", + "responses": { + "200": { + "$ref": "#/components/responses/ServerVersion" + } + }, + "summary": "Returns the version of the Gitea application", + "tags": [ + "miscellaneous" + ] + } + } + }, + "security": [ + { + "BasicAuth": [] + }, + { + "Token": [] + }, + { + "AccessToken": [] + }, + { + "AuthorizationHeaderToken": [] + }, + { + "SudoParam": [] + }, + { + "SudoHeader": [] + }, + { + "TOTPHeader": [] + } + ], + "servers": [ + { + "url": "{{.SwaggerAppSubUrl}}/api/v1" + } + ] +}