feat: support multiple owners per registry (comma-separated)

This commit is contained in:
2026-03-28 14:15:42 +03:00
parent 5e366fb2ab
commit 4ba3673b96
3 changed files with 22 additions and 7 deletions
+20 -5
View File
@@ -2,7 +2,9 @@ package api
import ( import (
"errors" "errors"
"log/slog"
"net/http" "net/http"
"strings"
"github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5"
@@ -309,11 +311,24 @@ func (s *Server) listRegistryImages(w http.ResponseWriter, r *http.Request) {
return return
} }
images, err := client.ListImages(r.Context(), reg.Owner) // Support comma-separated owners (e.g., "alexei,team-org,other-user").
if err != nil { owners := strings.Split(reg.Owner, ",")
respondError(w, http.StatusBadGateway, "failed to list images: "+err.Error()) var allImages []registry.RegistryImage
return for _, owner := range owners {
owner = strings.TrimSpace(owner)
if owner == "" {
continue
}
images, err := client.ListImages(r.Context(), owner)
if err != nil {
slog.Warn("failed to list images for owner", "owner", owner, "error", err)
continue
}
allImages = append(allImages, images...)
}
if allImages == nil {
allImages = []registry.RegistryImage{}
} }
respondJSON(w, http.StatusOK, images) respondJSON(w, http.StatusOK, allImages)
} }
+1 -1
View File
@@ -225,7 +225,7 @@
"tokenHelpNew": "API token for authentication", "tokenHelpNew": "API token for authentication",
"tokenHelpEdit": "Leave empty to keep the existing token", "tokenHelpEdit": "Leave empty to keep the existing token",
"owner": "Owner", "owner": "Owner",
"ownerHelp": "Package owner (e.g., username or organization) for image listing", "ownerHelp": "Package owners, comma-separated (e.g., alexei,my-org)",
"save": "Save", "save": "Save",
"saving": "Saving...", "saving": "Saving...",
"update": "Update", "update": "Update",
+1 -1
View File
@@ -225,7 +225,7 @@
"tokenHelpNew": "API-токен для аутентификации", "tokenHelpNew": "API-токен для аутентификации",
"tokenHelpEdit": "Оставьте пустым, чтобы сохранить текущий токен", "tokenHelpEdit": "Оставьте пустым, чтобы сохранить текущий токен",
"owner": "Владелец", "owner": "Владелец",
"ownerHelp": "Владелец пакетов (имя пользователя или организации) для списка образов", "ownerHelp": "Владельцы пакетов через запятую (напр., alexei,my-org)",
"save": "Сохранить", "save": "Сохранить",
"saving": "Сохранение...", "saving": "Сохранение...",
"update": "Обновить", "update": "Обновить",