@@ -12,14 +12,15 @@ import (
1212 "sync"
1313 "time"
1414
15+ "github.com/docker/docker/api/types/registry"
1516 "github.com/docker/go-sdk/config/auth"
1617)
1718
1819var cacheInitMutex sync.Mutex
1920
2021// authConfigCache holds the caching state for a Config instance
2122type authConfigCache struct {
22- entries map [string ]AuthConfig
23+ entries map [string ]registry. AuthConfig
2324 mutex sync.RWMutex
2425 key string
2526}
@@ -30,7 +31,7 @@ func (c *Config) clearAuthCache() {
3031 cache .mutex .Lock ()
3132 defer cache .mutex .Unlock ()
3233
33- cache .entries = make (map [string ]AuthConfig )
34+ cache .entries = make (map [string ]registry. AuthConfig )
3435}
3536
3637// cacheStats returns statistics about the auth config cache
@@ -72,7 +73,7 @@ func (c *Config) initCache() {
7273 }
7374
7475 newCache := & authConfigCache {
75- entries : make (map [string ]AuthConfig ),
76+ entries : make (map [string ]registry. AuthConfig ),
7677 key : c .generateCacheKey (),
7778 }
7879
@@ -89,7 +90,7 @@ func (c *Config) generateCacheKey() string {
8990}
9091
9192// AuthConfigForHostname returns the auth config for the given hostname with caching
92- func (c * Config ) AuthConfigForHostname (hostname string ) (AuthConfig , error ) {
93+ func (c * Config ) AuthConfigForHostname (hostname string ) (registry. AuthConfig , error ) {
9394 cache := c .getCache ()
9495
9596 // Try cache first
@@ -103,7 +104,7 @@ func (c *Config) AuthConfigForHostname(hostname string) (AuthConfig, error) {
103104 // Cache miss - resolve auth config
104105 authConfig , err := c .resolveAuthConfigForHostname (hostname )
105106 if err != nil {
106- return AuthConfig {}, err
107+ return registry. AuthConfig {}, err
107108 }
108109
109110 // Cache the result
@@ -115,8 +116,8 @@ func (c *Config) AuthConfigForHostname(hostname string) (AuthConfig, error) {
115116}
116117
117118// AuthConfigsForImages returns auth configs for multiple images with caching
118- func (c * Config ) AuthConfigsForImages (images []string ) (map [string ]AuthConfig , error ) {
119- result := make (map [string ]AuthConfig )
119+ func (c * Config ) AuthConfigsForImages (images []string ) (map [string ]registry. AuthConfig , error ) {
120+ result := make (map [string ]registry. AuthConfig )
120121 var errs []error
121122
122123 // Process each image
@@ -143,15 +144,15 @@ func (c *Config) AuthConfigsForImages(images []string) (map[string]AuthConfig, e
143144}
144145
145146// AuthConfigForImage returns the auth config for a single image
146- func (c * Config ) AuthConfigForImage (image string ) (string , AuthConfig , error ) {
147+ func (c * Config ) AuthConfigForImage (image string ) (string , registry. AuthConfig , error ) {
147148 ref , err := auth .ParseImageRef (image )
148149 if err != nil {
149- return "" , AuthConfig {}, fmt .Errorf ("parse image ref: %w" , err )
150+ return "" , registry. AuthConfig {}, fmt .Errorf ("parse image ref: %w" , err )
150151 }
151152
152153 authConfig , err := c .AuthConfigForHostname (ref .Registry )
153154 if err != nil {
154- return ref .Registry , AuthConfig {}, err
155+ return ref .Registry , registry. AuthConfig {}, err
155156 }
156157
157158 authConfig .ServerAddress = ref .Registry
@@ -206,7 +207,7 @@ func (c *Config) Save() error {
206207}
207208
208209// resolveAuthConfigForHostname performs the actual auth config resolution
209- func (c * Config ) resolveAuthConfigForHostname (hostname string ) (AuthConfig , error ) {
210+ func (c * Config ) resolveAuthConfigForHostname (hostname string ) (registry. AuthConfig , error ) {
210211 // Normalize Docker registry hostnames
211212 hostname = auth .ResolveRegistryHost (hostname )
212213
@@ -234,19 +235,19 @@ func (c *Config) resolveAuthConfigForHostname(hostname string) (AuthConfig, erro
234235}
235236
236237// resolveFromCredentialHelper resolves credentials from a credential helper
237- func (c * Config ) resolveFromCredentialHelper (helper , hostname string ) (AuthConfig , error ) {
238+ func (c * Config ) resolveFromCredentialHelper (helper , hostname string ) (registry. AuthConfig , error ) {
238239 // Use existing credentialsFromHelper function but adapt to return AuthConfig
239240 credentials , err := credentialsFromHelper (helper , hostname )
240241 if err != nil {
241- return AuthConfig {}, err
242+ return registry. AuthConfig {}, err
242243 }
243244
244245 return credentials , nil
245246}
246247
247248// processStoredAuthConfig processes auth config from stored configuration
248- func (c * Config ) processStoredAuthConfig (stored AuthConfig , hostname string ) (AuthConfig , error ) {
249- authConfig := AuthConfig {
249+ func (c * Config ) processStoredAuthConfig (stored registry. AuthConfig , hostname string ) (registry. AuthConfig , error ) {
250+ authConfig := registry. AuthConfig {
250251 Auth : stored .Auth ,
251252 IdentityToken : stored .IdentityToken ,
252253 Password : stored .Password ,
@@ -269,7 +270,7 @@ func (c *Config) processStoredAuthConfig(stored AuthConfig, hostname string) (Au
269270 // Base64 auth case
270271 user , pass , err := decodeBase64Auth (authConfig )
271272 if err != nil {
272- return AuthConfig {}, fmt .Errorf ("decode base64 auth: %w" , err )
273+ return registry. AuthConfig {}, fmt .Errorf ("decode base64 auth: %w" , err )
273274 }
274275 authConfig .Username = user
275276 authConfig .Password = pass
@@ -286,7 +287,7 @@ func (c *Config) processStoredAuthConfig(stored AuthConfig, hostname string) (Au
286287// It takes the "Auth" filed from AuthConfig and decodes that into a username and password.
287288//
288289// If "Auth" is empty, an empty user/pass will be returned, but not an error.
289- func decodeBase64Auth (auth AuthConfig ) (string , string , error ) {
290+ func decodeBase64Auth (auth registry. AuthConfig ) (string , string , error ) {
290291 if auth .Auth == "" {
291292 return "" , "" , nil
292293 }
0 commit comments