enhance(ui): use OpenAPI 3.0 spec in API viewer, add spec buttons (#38478)

Follow-ups from https://github.com/go-gitea/gitea/pull/37038:

- Render the OpenAPI 3.0 spec in the API viewer, it is richer than the
Swagger 2.0 rendering
- Replace the back link with gitea-styled buttons to view both specs and
return to Gitea, flowing above swagger-ui on viewports where they would
overlap the title
- Key `VisibilityModes` by the string enum type, now named
`VisibilityString`, removing the `string()` casts at API call sites
- Drop the raw visibility strings from the `Service` settings struct in
favor of the typed mode fields, which also removes the org default
visibility row from the admin config page
- Fix two pre-existing issues surfaced in review: an invalid
`DEFAULT_USER_VISIBILITY` was silently accepted as public, and the org
visibility error message showed the enum zero value instead of the
submitted input

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
silverwind
2026-07-16 17:38:33 +00:00
committed by GitHub
co-authored by wxiaoguang
parent 02f82a2054
commit f0d9af3a18
23 changed files with 163 additions and 131 deletions
+3 -2
View File
@@ -235,9 +235,10 @@ func SettingsRenamePost(ctx *context.Context) {
// SettingsChangeVisibilityPost response for change organization visibility
func SettingsChangeVisibilityPost(ctx *context.Context) {
visibility, ok := structs.VisibilityModes[ctx.FormString("visibility")]
visibilityStr := ctx.FormString("visibility")
visibility, ok := structs.VisibilityModes[structs.VisibilityString(visibilityStr)]
if !ok {
ctx.Flash.Error(ctx.Tr("invalid_data", visibility))
ctx.Flash.Error(ctx.Tr("invalid_data", visibilityStr))
ctx.JSONRedirect(setting.AppSubURL + "/org/" + url.PathEscape(ctx.Org.Organization.Name) + "/settings")
return
}