API expose usefull General Repo settings settings (#11758)

* GeneralRepoSettings expose MirrorsDisabled, HTTPGitDisabled, MaxCreationLimit

* Apply suggestions from code review

Co-authored-by: proton <25139420+proton-ab@users.noreply.github.com>

* lint

Co-authored-by: proton <25139420+proton-ab@users.noreply.github.com>
This commit is contained in:
6543 2020-06-10 14:05:46 +02:00 committed by GitHub
parent 1ac46186ff
commit 68a2af6d68
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 74 additions and 0 deletions

View file

@ -0,0 +1,11 @@
// Copyright 2020 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package structs
// GeneralRepoSettings contains global repository settings exposed by API
type GeneralRepoSettings struct {
MirrorsDisabled bool `json:"mirrors_disabled"`
HTTPGitDisabled bool `json:"http_git_disabled"`
}

View file

@ -514,6 +514,7 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Post("/markdown/raw", misc.MarkdownRaw) m.Post("/markdown/raw", misc.MarkdownRaw)
m.Group("/settings", func() { m.Group("/settings", func() {
m.Get("/allowed_reactions", misc.SettingGetsAllowedReactions) m.Get("/allowed_reactions", misc.SettingGetsAllowedReactions)
m.Get("/repository", misc.GetGeneralRepoSettings)
}) })
// Notifications // Notifications

View file

@ -9,6 +9,7 @@ import (
"code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
) )
// SettingGetsAllowedReactions return allowed reactions // SettingGetsAllowedReactions return allowed reactions
@ -23,3 +24,19 @@ func SettingGetsAllowedReactions(ctx *context.APIContext) {
// "$ref": "#/responses/StringSlice" // "$ref": "#/responses/StringSlice"
ctx.JSON(http.StatusOK, setting.UI.Reactions) ctx.JSON(http.StatusOK, setting.UI.Reactions)
} }
// GetGeneralRepoSettings returns instance's global settings for repositories
func GetGeneralRepoSettings(ctx *context.APIContext) {
// swagger:operation GET /settings/repository miscellaneous getGeneralRepositorySettings
// ---
// summary: Get instance's global settings for repositories
// produces:
// - application/json
// responses:
// "200":
// "$ref": "#/responses/GeneralRepoSettings"
ctx.JSON(http.StatusOK, api.GeneralRepoSettings{
MirrorsDisabled: setting.Repository.DisableMirrors,
HTTPGitDisabled: setting.Repository.DisableHTTPGit,
})
}

View file

@ -21,3 +21,10 @@ type swaggerResponseStringSlice struct {
// in:body // in:body
Body []string `json:"body"` Body []string `json:"body"`
} }
// GeneralRepoSettings
// swagger:response GeneralRepoSettings
type swaggerResponseGeneralRepoSettings struct {
// in:body
Body api.GeneralRepoSettings `json:"body"`
}

View file

@ -8487,6 +8487,23 @@
} }
} }
}, },
"/settings/repository": {
"get": {
"produces": [
"application/json"
],
"tags": [
"miscellaneous"
],
"summary": "Get instance's global settings for repositories",
"operationId": "getGeneralRepositorySettings",
"responses": {
"200": {
"$ref": "#/responses/GeneralRepoSettings"
}
}
}
},
"/signing-key.gpg": { "/signing-key.gpg": {
"get": { "get": {
"produces": [ "produces": [
@ -12721,6 +12738,21 @@
}, },
"x-go-package": "code.gitea.io/gitea/modules/structs" "x-go-package": "code.gitea.io/gitea/modules/structs"
}, },
"GeneralRepoSettings": {
"description": "GeneralRepoSettings contains global repository settings exposed by API",
"type": "object",
"properties": {
"http_git_disabled": {
"type": "boolean",
"x-go-name": "HTTPGitDisabled"
},
"mirrors_disabled": {
"type": "boolean",
"x-go-name": "MirrorsDisabled"
}
},
"x-go-package": "code.gitea.io/gitea/modules/structs"
},
"GitBlobResponse": { "GitBlobResponse": {
"description": "GitBlobResponse represents a git blob", "description": "GitBlobResponse represents a git blob",
"type": "object", "type": "object",
@ -14890,6 +14922,12 @@
} }
} }
}, },
"GeneralRepoSettings": {
"description": "GeneralRepoSettings",
"schema": {
"$ref": "#/definitions/GeneralRepoSettings"
}
},
"GitBlobResponse": { "GitBlobResponse": {
"description": "GitBlobResponse", "description": "GitBlobResponse",
"schema": { "schema": {