@@ -22,18 +22,18 @@ import (
2222 "github.com/google/go-containerregistry/pkg/v1/remote"
2323 "github.com/google/go-containerregistry/pkg/v1/remote/transport"
2424
25- "knative.dev/func/pkg/docker "
25+ "knative.dev/func/pkg/oci "
2626)
2727
28- type CredentialsCallback func (registry string ) (docker .Credentials , error )
28+ type CredentialsCallback func (registry string ) (oci .Credentials , error )
2929
3030var ErrUnauthorized = errors .New ("bad credentials" )
3131
3232var ErrCredentialsNotFound = errors .New ("credentials not found" )
3333
3434// VerifyCredentialsCallback checks if credentials are authorized for image push.
3535// If credentials are incorrect this callback shall return ErrUnauthorized.
36- type VerifyCredentialsCallback func (ctx context.Context , image string , credentials docker .Credentials ) error
36+ type VerifyCredentialsCallback func (ctx context.Context , image string , credentials oci .Credentials ) error
3737
3838type keyChain struct {
3939 user string
@@ -48,7 +48,7 @@ func (k keyChain) Resolve(resource authn.Resource) (authn.Authenticator, error)
4848}
4949
5050// CheckAuth verifies that credentials can be used for image push
51- func CheckAuth (ctx context.Context , image string , credentials docker .Credentials , trans http.RoundTripper ) error {
51+ func CheckAuth (ctx context.Context , image string , credentials oci .Credentials , trans http.RoundTripper ) error {
5252
5353 ref , err := name .ParseReference (image )
5454 if err != nil {
@@ -142,9 +142,8 @@ func WithAdditionalCredentialLoaders(loaders ...CredentialsCallback) Opt {
142142// The picked value will be saved in the func config.
143143//
144144// To verify that credentials are correct custom callback can be used (see WithVerifyCredentials).
145- func NewCredentialsProvider (configPath string , opts ... Opt ) docker .CredentialsProvider {
145+ func NewCredentialsProvider (configPath string , opts ... Opt ) oci .CredentialsProvider {
146146 var c credentialsProvider
147-
148147 for _ , o := range opts {
149148 o (& c )
150149 }
@@ -154,7 +153,7 @@ func NewCredentialsProvider(configPath string, opts ...Opt) docker.CredentialsPr
154153 }
155154
156155 if c .verifyCredentials == nil {
157- c .verifyCredentials = func (ctx context.Context , registry string , credentials docker .Credentials ) error {
156+ c .verifyCredentials = func (ctx context.Context , registry string , credentials oci .Credentials ) error {
158157 return CheckAuth (ctx , registry , credentials , c .transport )
159158 }
160159 }
@@ -175,7 +174,7 @@ func NewCredentialsProvider(configPath string, opts ...Opt) docker.CredentialsPr
175174
176175 if _ , err := os .Stat (c .authFilePath ); err == nil {
177176 defaultCredentialLoaders = append (defaultCredentialLoaders ,
178- func (registry string ) (docker .Credentials , error ) {
177+ func (registry string ) (oci .Credentials , error ) {
179178 return getCredentialsByCredentialHelper (c .authFilePath , registry )
180179 })
181180 }
@@ -185,54 +184,54 @@ func NewCredentialsProvider(configPath string, opts ...Opt) docker.CredentialsPr
185184 if err == nil {
186185 dockerConfigPath := filepath .Join (home , ".docker" , "config.json" )
187186 defaultCredentialLoaders = append (defaultCredentialLoaders ,
188- func (registry string ) (docker .Credentials , error ) {
187+ func (registry string ) (oci .Credentials , error ) {
189188 return getCredentialsByCredentialHelper (dockerConfigPath , registry )
190189 })
191190 }
192191 defaultCredentialLoaders = append (defaultCredentialLoaders ,
193- func (registry string ) (docker .Credentials , error ) {
192+ func (registry string ) (oci .Credentials , error ) {
194193 creds , err := dockerConfig .GetCredentials (sys , registry )
195194 if err != nil {
196- return docker .Credentials {}, err
195+ return oci .Credentials {}, err
197196 }
198197 if creds .Username == "" || creds .Password == "" {
199- return docker .Credentials {}, ErrCredentialsNotFound
198+ return oci .Credentials {}, ErrCredentialsNotFound
200199 }
201- return docker .Credentials {
200+ return oci .Credentials {
202201 Username : creds .Username ,
203202 Password : creds .Password ,
204203 }, nil
205204 })
206205 defaultCredentialLoaders = append (defaultCredentialLoaders ,
207- func (registry string ) (docker .Credentials , error ) {
206+ func (registry string ) (oci .Credentials , error ) {
208207 // Fallback onto default docker config locations
209208 emptySys := & containersTypes.SystemContext {}
210209 creds , err := dockerConfig .GetCredentials (emptySys , registry )
211210 if err != nil {
212- return docker .Credentials {}, err
211+ return oci .Credentials {}, err
213212 }
214- return docker .Credentials {
213+ return oci .Credentials {
215214 Username : creds .Username ,
216215 Password : creds .Password ,
217216 }, nil
218217 })
219218 defaultCredentialLoaders = append (defaultCredentialLoaders ,
220- func (registry string ) (docker .Credentials , error ) { // empty credentials provider for unsecured registries
221- return docker .Credentials {}, nil
219+ func (registry string ) (oci .Credentials , error ) { // empty credentials provider for unsecured registries
220+ return oci .Credentials {}, nil
222221 })
223222
224223 c .credentialLoaders = append (c .credentialLoaders , defaultCredentialLoaders ... )
225224
226225 return c .getCredentials
227226}
228227
229- func (c * credentialsProvider ) getCredentials (ctx context.Context , image string ) (docker .Credentials , error ) {
228+ func (c * credentialsProvider ) getCredentials (ctx context.Context , image string ) (oci .Credentials , error ) {
230229 var err error
231- result := docker .Credentials {}
230+ result := oci .Credentials {}
232231
233232 ref , err := name .ParseReference (image )
234233 if err != nil {
235- return docker .Credentials {}, fmt .Errorf ("cannot parse the image reference: %w" , err )
234+ return oci .Credentials {}, fmt .Errorf ("cannot parse the image reference: %w" , err )
236235 }
237236
238237 registry := ref .Context ().RegistryStr ()
@@ -244,22 +243,22 @@ func (c *credentialsProvider) getCredentials(ctx context.Context, image string)
244243 if errors .Is (err , ErrCredentialsNotFound ) {
245244 continue
246245 }
247- return docker .Credentials {}, err
246+ return oci .Credentials {}, err
248247 }
249248
250249 err = c .verifyCredentials (ctx , image , result )
251250 if err == nil {
252251 return result , nil
253252 } else {
254253 if ! errors .Is (err , ErrUnauthorized ) {
255- return docker .Credentials {}, err
254+ return oci .Credentials {}, err
256255 }
257256 }
258257
259258 }
260259
261260 if c .promptForCredentials == nil {
262- return docker .Credentials {}, ErrCredentialsNotFound
261+ return oci .Credentials {}, ErrCredentialsNotFound
263262 }
264263
265264 // this is [registry] / [repository]
@@ -271,7 +270,7 @@ func (c *credentialsProvider) getCredentials(ctx context.Context, image string)
271270 // use repo here to print it out in prompt
272271 result , err = c .promptForCredentials (repository )
273272 if err != nil {
274- return docker .Credentials {}, err
273+ return oci .Credentials {}, err
275274 }
276275
277276 err = c .verifyCredentials (ctx , image , result )
@@ -282,33 +281,33 @@ func (c *credentialsProvider) getCredentials(ctx context.Context, image string)
282281 // This shouldn't be fatal error.
283282 if strings .Contains (err .Error (), "not implemented" ) {
284283 fmt .Fprintf (os .Stderr , "the cred-helper does not support write operation (consider changing the cred-helper it in auth.json)\n " )
285- return docker .Credentials {}, nil
284+ return oci .Credentials {}, nil
286285 }
287286
288287 if ! errors .Is (err , errNoCredentialHelperConfigured ) {
289- return docker .Credentials {}, err
288+ return oci .Credentials {}, err
290289 }
291290 helpers := listCredentialHelpers ()
292291 helper , err := c .promptForCredentialStore (helpers )
293292 if err != nil {
294- return docker .Credentials {}, err
293+ return oci .Credentials {}, err
295294 }
296295 helper = strings .TrimPrefix (helper , "docker-credential-" )
297296 err = setCredentialHelperToConfig (c .authFilePath , helper )
298297 if err != nil {
299- return docker .Credentials {}, fmt .Errorf ("faild to set the helper to the config: %w" , err )
298+ return oci .Credentials {}, fmt .Errorf ("faild to set the helper to the config: %w" , err )
300299 }
301300 err = setCredentialsByCredentialHelper (c .authFilePath , registry , result .Username , result .Password )
302301 if err != nil {
303302
304303 // This shouldn't be fatal error.
305304 if strings .Contains (err .Error (), "not implemented" ) {
306305 fmt .Fprintf (os .Stderr , "the cred-helper does not support write operation (consider changing the cred-helper it in auth.json)\n " )
307- return docker .Credentials {}, nil
306+ return oci .Credentials {}, nil
308307 }
309308
310309 if ! errors .Is (err , errNoCredentialHelperConfigured ) {
311- return docker .Credentials {}, err
310+ return oci .Credentials {}, err
312311 }
313312 }
314313 }
@@ -317,7 +316,7 @@ func (c *credentialsProvider) getCredentials(ctx context.Context, image string)
317316 if errors .Is (err , ErrUnauthorized ) {
318317 continue
319318 }
320- return docker .Credentials {}, err
319+ return oci .Credentials {}, err
321320 }
322321 }
323322}
@@ -374,8 +373,8 @@ func setCredentialHelperToConfig(confFilePath, helper string) error {
374373 return nil
375374}
376375
377- func getCredentialsByCredentialHelper (confFilePath , registry string ) (docker .Credentials , error ) {
378- result := docker .Credentials {}
376+ func getCredentialsByCredentialHelper (confFilePath , registry string ) (oci .Credentials , error ) {
377+ result := oci .Credentials {}
379378
380379 helper , err := getCredentialHelperFromConfig (confFilePath )
381380 if err != nil && ! os .IsNotExist (err ) {
0 commit comments