feat: support multiple owners per registry (comma-separated)
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -225,7 +225,7 @@
|
||||
"tokenHelpNew": "API-токен для аутентификации",
|
||||
"tokenHelpEdit": "Оставьте пустым, чтобы сохранить текущий токен",
|
||||
"owner": "Владелец",
|
||||
"ownerHelp": "Владелец пакетов (имя пользователя или организации) для списка образов",
|
||||
"ownerHelp": "Владельцы пакетов через запятую (напр., alexei,my-org)",
|
||||
"save": "Сохранить",
|
||||
"saving": "Сохранение...",
|
||||
"update": "Обновить",
|
||||
|
||||
Reference in New Issue
Block a user