From 5eff305c744cf91cf0c187b98e31c2f36ddcc11f Mon Sep 17 00:00:00 2001 From: logikonline Date: Tue, 27 Jan 2026 21:02:37 -0500 Subject: [PATCH] feat(api): add plugin information to version endpoint Include loaded plugin details (name, version, description) in /api/v2/version response when plugins are enabled. Also add page class to AI learning admin templates for consistent styling. --- routers/api/v2/misc.go | 35 +++++++++++++++++++++------ templates/admin/ai_learning.tmpl | 2 +- templates/admin/ai_learning_edit.tmpl | 2 +- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/routers/api/v2/misc.go b/routers/api/v2/misc.go index bde1020a02..1287ac2c1a 100644 --- a/routers/api/v2/misc.go +++ b/routers/api/v2/misc.go @@ -6,22 +6,43 @@ package v2 import ( "net/http" + "code.gitcaddy.com/server/v3/modules/plugins" "code.gitcaddy.com/server/v3/modules/setting" "code.gitcaddy.com/server/v3/services/context" ) -// VersionResponse contains version information -type VersionResponse struct { - Version string `json:"version"` - API string `json:"api"` +// VersionPluginInfo is a summary of a loaded plugin. +type VersionPluginInfo struct { + Name string `json:"name"` + Version string `json:"version"` + Description string `json:"description"` } -// Version returns the Gitea version +// VersionResponse contains version information +type VersionResponse struct { + Version string `json:"version"` + API string `json:"api"` + Plugins []VersionPluginInfo `json:"plugins,omitempty"` +} + +// Version returns the server version and loaded plugins func Version(ctx *context.APIContext) { - ctx.JSON(http.StatusOK, VersionResponse{ + resp := VersionResponse{ Version: setting.AppVer, API: "v2", - }) + } + + if setting.Plugins.Enabled { + for _, p := range plugins.All() { + resp.Plugins = append(resp.Plugins, VersionPluginInfo{ + Name: p.Name(), + Version: p.Version(), + Description: p.Description(), + }) + } + } + + ctx.JSON(http.StatusOK, resp) } // GetAuthenticatedUser returns the authenticated user diff --git a/templates/admin/ai_learning.tmpl b/templates/admin/ai_learning.tmpl index 99d1cd06b3..708ba13502 100644 --- a/templates/admin/ai_learning.tmpl +++ b/templates/admin/ai_learning.tmpl @@ -1,4 +1,4 @@ -{{template "admin/layout_head" .}} +{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin ai-learning")}}

{{ctx.Locale.Tr "admin.ai_learning"}} diff --git a/templates/admin/ai_learning_edit.tmpl b/templates/admin/ai_learning_edit.tmpl index b69229efe8..0b2adc8ca1 100644 --- a/templates/admin/ai_learning_edit.tmpl +++ b/templates/admin/ai_learning_edit.tmpl @@ -1,4 +1,4 @@ -{{template "admin/layout_head" .}} +{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin ai-learning")}}

{{ctx.Locale.Tr "admin.ai_learning.edit"}} - {{.Pattern.Pattern}}