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 (
"errors"
"log/slog"
"net/http"
"strings"
"github.com/go-chi/chi/v5"
@@ -309,11 +311,24 @@ func (s *Server) listRegistryImages(w http.ResponseWriter, r *http.Request) {
return
}
images, err := client.ListImages(r.Context(), reg.Owner)
if err != nil {
respondError(w, http.StatusBadGateway, "failed to list images: "+err.Error())
return
// Support comma-separated owners (e.g., "alexei,team-org,other-user").
owners := strings.Split(reg.Owner, ",")
var allImages []registry.RegistryImage
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",
"tokenHelpEdit": "Leave empty to keep the existing token",
"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",
"saving": "Saving...",
"update": "Update",
+1 -1
View File
@@ -225,7 +225,7 @@
"tokenHelpNew": "API-токен для аутентификации",
"tokenHelpEdit": "Оставьте пустым, чтобы сохранить текущий токен",
"owner": "Владелец",
"ownerHelp": "Владелец пакетов (имя пользователя или организации) для списка образов",
"ownerHelp": "Владельцы пакетов через запятую (напр., alexei,my-org)",
"save": "Сохранить",
"saving": "Сохранение...",
"update": "Обновить",