diff options
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/api/handlers/libpod/images.go | 7 | ||||
-rw-r--r-- | pkg/api/server/register_images.go | 4 | ||||
-rw-r--r-- | pkg/bindings/images/images.go | 1 | ||||
-rw-r--r-- | pkg/domain/entities/images.go | 4 | ||||
-rw-r--r-- | pkg/domain/infra/abi/images.go | 2 |
5 files changed, 16 insertions, 2 deletions
diff --git a/pkg/api/handlers/libpod/images.go b/pkg/api/handlers/libpod/images.go index 43123c5a3..1292090fb 100644 --- a/pkg/api/handlers/libpod/images.go +++ b/pkg/api/handlers/libpod/images.go @@ -608,6 +608,7 @@ func SearchImages(w http.ResponseWriter, r *http.Request) { NoTrunc bool `json:"noTrunc"` Filters []string `json:"filters"` TLSVerify bool `json:"tlsVerify"` + ListTags bool `json:"listTags"` }{ // This is where you can override the golang default value for one of fields } @@ -618,8 +619,9 @@ func SearchImages(w http.ResponseWriter, r *http.Request) { } options := image.SearchOptions{ - Limit: query.Limit, - NoTrunc: query.NoTrunc, + Limit: query.Limit, + NoTrunc: query.NoTrunc, + ListTags: query.ListTags, } if _, found := r.URL.Query()["tlsVerify"]; found { options.InsecureSkipTLSVerify = types.NewOptionalBool(!query.TLSVerify) @@ -650,6 +652,7 @@ func SearchImages(w http.ResponseWriter, r *http.Request) { reports[i].Stars = searchResults[i].Stars reports[i].Official = searchResults[i].Official reports[i].Automated = searchResults[i].Automated + reports[i].Tag = searchResults[i].Tag } utils.WriteResponse(w, http.StatusOK, reports) diff --git a/pkg/api/server/register_images.go b/pkg/api/server/register_images.go index ad779203d..c2423218a 100644 --- a/pkg/api/server/register_images.go +++ b/pkg/api/server/register_images.go @@ -169,6 +169,10 @@ func (s *APIServer) registerImagesHandlers(r *mux.Router) error { // - `is-automated=(true|false)` // - `is-official=(true|false)` // - `stars=<number>` Matches images that has at least 'number' stars. + // - in: query + // name: listTags + // type: boolean + // description: list the available tags in the repository // produces: // - application/json // responses: diff --git a/pkg/bindings/images/images.go b/pkg/bindings/images/images.go index a78e7f4c6..2d3035d8d 100644 --- a/pkg/bindings/images/images.go +++ b/pkg/bindings/images/images.go @@ -314,6 +314,7 @@ func Search(ctx context.Context, term string, opts entities.ImageSearchOptions) params.Set("term", term) params.Set("limit", strconv.Itoa(opts.Limit)) params.Set("noTrunc", strconv.FormatBool(opts.NoTrunc)) + params.Set("listTags", strconv.FormatBool(opts.ListTags)) for _, f := range opts.Filters { params.Set("filters", f) } diff --git a/pkg/domain/entities/images.go b/pkg/domain/entities/images.go index ac81c282d..982fa0cc0 100644 --- a/pkg/domain/entities/images.go +++ b/pkg/domain/entities/images.go @@ -214,6 +214,8 @@ type ImageSearchOptions struct { NoTrunc bool // SkipTLSVerify to skip HTTPS and certificate verification. SkipTLSVerify types.OptionalBool + // ListTags search the available tags of the repository + ListTags bool } // ImageSearchReport is the response from searching images. @@ -230,6 +232,8 @@ type ImageSearchReport struct { Official string // Automated indicates if the image was created by an automated build. Automated string + // Tag is the repository tag + Tag string } // Image List Options diff --git a/pkg/domain/infra/abi/images.go b/pkg/domain/infra/abi/images.go index 3bb7de83c..f9d733c63 100644 --- a/pkg/domain/infra/abi/images.go +++ b/pkg/domain/infra/abi/images.go @@ -511,6 +511,7 @@ func (ir *ImageEngine) Search(ctx context.Context, term string, opts entities.Im Limit: opts.Limit, NoTrunc: opts.NoTrunc, InsecureSkipTLSVerify: opts.SkipTLSVerify, + ListTags: opts.ListTags, } searchResults, err := image.SearchImages(term, searchOpts) @@ -529,6 +530,7 @@ func (ir *ImageEngine) Search(ctx context.Context, term string, opts entities.Im reports[i].Stars = searchResults[i].Stars reports[i].Official = searchResults[i].Official reports[i].Automated = searchResults[i].Automated + reports[i].Tag = searchResults[i].Tag } return reports, nil |