@@ -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