fix: ignore empty credentials files for v3

Signed-off-by: Terry Howe <terrylhowe@gmail.com>
pull/30910/head
Terry Howe 4 months ago
parent 806d59750a
commit c1d8c04e31

@ -115,13 +115,29 @@ func NewClient(options ...ClientOption) (*Client, error) {
} }
store, err := credentials.NewStore(client.credentialsFile, storeOptions) store, err := credentials.NewStore(client.credentialsFile, storeOptions)
if err != nil { if err != nil {
fileInfo, fileErr := os.Stat(client.credentialsFile)
if fileErr != nil {
// Actual problem reading file
return nil, err return nil, err
} }
dockerStore, err := credentials.NewStoreFromDocker(storeOptions) if fileInfo.Size() != 0 {
if err != nil { // Likely a parse error
// should only fail if user home directory can't be determined return nil, err
}
fileErr = os.WriteFile(client.credentialsFile, []byte("{}"), 0600)
if fileErr != nil {
return nil, err
}
store, fileErr = credentials.NewStore(client.credentialsFile, storeOptions)
if fileErr != nil {
return nil, err
}
}
client.credentialsStore = store client.credentialsStore = store
} else { dockerStore, err := credentials.NewStoreFromDocker(storeOptions)
if err == nil {
// use Helm credentials with fallback to Docker // use Helm credentials with fallback to Docker
client.credentialsStore = credentials.NewStoreWithFallbacks(store, dockerStore) client.credentialsStore = credentials.NewStoreWithFallbacks(store, dockerStore)
} }

Loading…
Cancel
Save