@@ -27,6 +27,7 @@ import (
2727 "time"
2828
2929 "github.com/blang/semver/v4"
30+ "github.com/linuxsuren/api-testing/pkg/util"
3031)
3132
3233type OCIDownloader interface {
@@ -95,7 +96,7 @@ func (d *defaultOCIDownloader) Download(image, tag, file string) (reader io.Read
9596 return
9697 }
9798
98- req .Header .Set (" Authorization" , fmt .Sprintf ("Bearer %s" , authStr ))
99+ req .Header .Set (util . Authorization , fmt .Sprintf ("Bearer %s" , authStr ))
99100 req .Header .Set ("Accept" , "application/vnd.oci.image.manifest.v1+json" )
100101
101102 var resp * http.Response
@@ -106,8 +107,12 @@ func (d *defaultOCIDownloader) Download(image, tag, file string) (reader io.Read
106107 err = fmt .Errorf ("failed to get manifest from %q, status code: %d" , api , resp .StatusCode )
107108 return
108109 } else {
110+ progressReader := NewProgressReader (resp .Body )
111+ progressReader .SetLength (resp .ContentLength )
112+ progressReader .SetTitle ("Fetching manifest:" )
113+
109114 var data []byte
110- data , err = io .ReadAll (resp . Body )
115+ data , err = io .ReadAll (progressReader )
111116 if err != nil {
112117 return
113118 }
@@ -161,7 +166,7 @@ func (d *defaultOCIDownloader) getLatestTag(image, authToken string) (tag string
161166 return
162167 }
163168
164- req .Header .Set (" Authorization" , fmt .Sprintf ("Bearer %s" , authToken ))
169+ req .Header .Set (util . Authorization , fmt .Sprintf ("Bearer %s" , authToken ))
165170 var resp * http.Response
166171 if resp , err = d .getHTTPClient ().Do (req ); err != nil {
167172 err = fmt .Errorf ("failed to get image tags from %q, error: %v" , req .URL , err )
@@ -170,8 +175,12 @@ func (d *defaultOCIDownloader) getLatestTag(image, authToken string) (tag string
170175 } else {
171176 defer resp .Body .Close ()
172177
178+ progressReader := NewProgressReader (resp .Body )
179+ progressReader .SetLength (resp .ContentLength )
180+ progressReader .SetTitle ("Fetching tags:" )
181+
173182 var data []byte
174- if data , err = io .ReadAll (resp . Body ); err != nil {
183+ if data , err = io .ReadAll (progressReader ); err != nil {
175184 return
176185 }
177186
@@ -214,13 +223,17 @@ func (d *defaultOCIDownloader) downloadLayer(image, digest, authToken string) (r
214223 return
215224 }
216225
217- req .Header .Set (" Authorization" , fmt .Sprintf ("Bearer %s" , authToken ))
226+ req .Header .Set (util . Authorization , fmt .Sprintf ("Bearer %s" , authToken ))
218227 var resp * http.Response
219228 if resp , err = d .getHTTPClient ().Do (req ); err != nil {
220229 err = fmt .Errorf ("failed to get layer from %q, error: %v" , req .URL .String (), err )
221230 } else {
231+ progressReader := NewProgressReader (resp .Body )
232+ progressReader .SetLength (resp .ContentLength )
233+ progressReader .SetTitle ("Fetching Layer:" )
234+
222235 var data []byte
223- if data , err = io .ReadAll (resp . Body ); err != nil {
236+ if data , err = io .ReadAll (progressReader ); err != nil {
224237 return
225238 }
226239
0 commit comments